116
120
EXPECT_TRUE(bc.sticky_edges);
118
122
for (unsigned i = 0; i < monitors::MAX; ++i)
119
ASSERT_EQ(bc.GetSubscriber(i), &subscribers_[i]);
122
TEST_F(TestEdgeBarrierController, Unsubscribe)
124
for (unsigned i = 0; i < monitors::MAX; ++i)
126
bc.Unsubscribe(&subscribers_[i], i);
127
ASSERT_EQ(bc.GetSubscriber(i), nullptr);
131
TEST_F(TestEdgeBarrierController, UnsubscribeInvalid)
133
bc.Unsubscribe(&subscribers_[2], 1);
134
ASSERT_EQ(bc.GetSubscriber(2), &subscribers_[2]);
137
TEST_F(TestEdgeBarrierController, SubscriberReplace)
139
TestBarrierSubscriber handling_subscriber(EdgeBarrierSubscriber::Result::HANDLED);
140
bc.Subscribe(&handling_subscriber, 0);
141
EXPECT_EQ(bc.GetSubscriber(0), &handling_subscriber);
144
TEST_F(TestEdgeBarrierController, ProcessHandledEvent)
148
TestBarrierSubscriber handling_subscriber(EdgeBarrierSubscriber::Result::HANDLED);
149
bc.Subscribe(&handling_subscriber, monitor);
151
MockPointerBarrier owner(monitor);
152
auto breaking_barrier_event = MakeBarrierEvent(0, true);
154
EXPECT_CALL(owner, ReleaseBarrier(_)).Times(0);
155
ProcessBarrierEvent(&owner, breaking_barrier_event);
156
EXPECT_EQ(GetPrivateImpl()->decaymulator_.value(), 0);
159
TEST_F(TestEdgeBarrierController, ProcessHandledEventOnReleasedBarrier)
161
int monitor = monitors::MAX-1;
163
TestBarrierSubscriber handling_subscriber(EdgeBarrierSubscriber::Result::HANDLED);
164
bc.Subscribe(&handling_subscriber, monitor);
166
MockPointerBarrier owner(monitor, true);
167
auto breaking_barrier_event = MakeBarrierEvent(5, true);
169
EXPECT_CALL(owner, ReleaseBarrier(5)).Times(1);
170
ProcessBarrierEvent(&owner, breaking_barrier_event);
173
TEST_F(TestEdgeBarrierController, ProcessUnHandledEventBreakingBarrier)
177
MockPointerBarrier owner(monitor);
178
int breaking_id = 12345;
179
auto breaking_barrier_event = MakeBarrierEvent(breaking_id, true);
181
EXPECT_CALL(owner, ReleaseBarrier(breaking_id));
182
ProcessBarrierEvent(&owner, breaking_barrier_event);
185
TEST_F(TestEdgeBarrierController, ProcessUnHandledEventBreakingBarrierOnMaxMonitor)
187
int monitor = monitors::MAX;
189
MockPointerBarrier owner(monitor);
190
auto breaking_barrier_event = MakeBarrierEvent(0, true);
192
EXPECT_CALL(owner, ReleaseBarrier(_));
193
ProcessBarrierEvent(&owner, breaking_barrier_event);
196
TEST_F(TestEdgeBarrierController, ProcessUnHandledEventNotBreakingBarrier)
200
MockPointerBarrier owner(monitor);
201
int not_breaking_id = 54321;
202
auto not_breaking_barrier_event = MakeBarrierEvent(not_breaking_id, false);
204
EXPECT_CALL(owner, ReleaseBarrier(not_breaking_id)).Times(0);
205
ProcessBarrierEvent(&owner, not_breaking_barrier_event);
208
TEST_F(TestEdgeBarrierController, ProcessUnHandledEventOnReleasedBarrier)
212
MockPointerBarrier owner(monitor, true);
213
int not_breaking_id = 345678;
214
auto not_breaking_barrier_event = MakeBarrierEvent(not_breaking_id, false);
216
EXPECT_CALL(owner, ReleaseBarrier(not_breaking_id));
217
ProcessBarrierEvent(&owner, not_breaking_barrier_event);
220
TEST_F(TestEdgeBarrierController, ProcessAlreadyHandledEvent)
222
int monitor = g_random_int_range(0, monitors::MAX);
224
MockPointerBarrier owner(monitor);
225
subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::ALREADY_HANDLED;
227
auto event = MakeBarrierEvent(g_random_int(), false);
229
EXPECT_CALL(owner, ReleaseBarrier(_)).Times(0);
230
ProcessBarrierEvent(&owner, event);
231
EXPECT_EQ(GetPrivateImpl()->decaymulator_.value(), event->velocity);
234
TEST_F(TestEdgeBarrierController, ProcessIgnoredEventWithStickyEdges)
236
int monitor = g_random_int_range(0, monitors::MAX);
238
bc.sticky_edges = true;
239
MockPointerBarrier owner(monitor);
240
subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::IGNORED;
242
auto event = MakeBarrierEvent(g_random_int(), false);
244
EXPECT_CALL(owner, ReleaseBarrier(_)).Times(0);
245
ProcessBarrierEvent(&owner, event);
246
EXPECT_FALSE(owner.released());
247
EXPECT_FALSE(owner.release_once());
248
EXPECT_EQ(GetPrivateImpl()->decaymulator_.value(), event->velocity);
251
TEST_F(TestEdgeBarrierController, ProcessIgnoredEventWithOutStickyEdges)
253
int monitor = g_random_int_range(0, monitors::MAX);
255
bc.sticky_edges = false;
256
MockPointerBarrier owner(monitor);
257
subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::IGNORED;
259
auto event = MakeBarrierEvent(g_random_int(), false);
261
EXPECT_CALL(owner, ReleaseBarrier(event->event_id));
262
ProcessBarrierEvent(&owner, event);
263
EXPECT_TRUE(owner.released());
264
EXPECT_TRUE(owner.release_once());
265
EXPECT_EQ(GetPrivateImpl()->decaymulator_.value(), 0);
268
TEST_F(TestEdgeBarrierController, ProcessNeedsReleaseEvent)
270
int monitor = g_random_int_range(0, monitors::MAX);
272
MockPointerBarrier owner(monitor);
273
subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::NEEDS_RELEASE;
275
auto event = MakeBarrierEvent(g_random_int(), false);
277
EXPECT_CALL(owner, ReleaseBarrier(event->event_id));
278
ProcessBarrierEvent(&owner, event);
279
EXPECT_EQ(GetPrivateImpl()->decaymulator_.value(), 0);
282
TEST_F(TestEdgeBarrierController, BreakingEdgeTemporaryReleasesBarrier)
284
MockPointerBarrier owner;
286
EXPECT_CALL(owner, ReleaseBarrier(1));
287
ProcessBarrierEvent(&owner, MakeBarrierEvent(1, true));
288
ASSERT_TRUE(owner.released());
290
Utils::WaitForTimeoutMSec(bc.options()->edge_passed_disabled_ms);
291
EXPECT_FALSE(owner.released());
294
TEST_F(TestEdgeBarrierController, BreakingEdgeTemporaryReleasesBarrierForNotHandledEvents)
296
MockPointerBarrier owner;
298
subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::IGNORED;
300
EXPECT_CALL(owner, ReleaseBarrier(5));
301
ProcessBarrierEvent(&owner, MakeBarrierEvent(5, true));
302
ASSERT_TRUE(owner.released());
304
subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::IGNORED;
305
EXPECT_CALL(owner, ReleaseBarrier(6));
306
ProcessBarrierEvent(&owner, MakeBarrierEvent(6, false));
309
TEST_F(TestEdgeBarrierController, BreakingEdgeTemporaryReleasesBarrierForHandledEvents)
311
MockPointerBarrier owner;
313
subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::IGNORED;
315
EXPECT_CALL(owner, ReleaseBarrier(5));
316
ProcessBarrierEvent(&owner, MakeBarrierEvent(5, true));
317
ASSERT_TRUE(owner.released());
319
subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::HANDLED;
124
ASSERT_EQ(bc.GetVerticalSubscriber(i), &vertical_subscribers_[i]);
125
ASSERT_EQ(bc.GetHorizontalSubscriber(i), &horizontal_subscribers_[i]);
129
TEST_F(TestEdgeBarrierController, RemoveVerticalSubscriber)
131
for (unsigned i = 0; i < monitors::MAX; ++i)
133
bc.RemoveVerticalSubscriber(&vertical_subscribers_[i], i);
134
ASSERT_EQ(bc.GetVerticalSubscriber(i), nullptr);
138
TEST_F(TestEdgeBarrierController, RemoveHorizontalSubscriber)
140
for (unsigned i = 0; i < monitors::MAX; ++i)
142
bc.RemoveHorizontalSubscriber(&horizontal_subscribers_[i], i);
143
ASSERT_EQ(bc.GetHorizontalSubscriber(i), nullptr);
147
TEST_F(TestEdgeBarrierController, RemoveVerticalSubscriberInvalid)
149
bc.RemoveVerticalSubscriber(&vertical_subscribers_[2], 1);
150
ASSERT_EQ(bc.GetVerticalSubscriber(2), &vertical_subscribers_[2]);
153
TEST_F(TestEdgeBarrierController, RemoveHorizontalSubscriberInvalid)
155
bc.RemoveHorizontalSubscriber(&horizontal_subscribers_[2], 1);
156
ASSERT_EQ(bc.GetHorizontalSubscriber(2), &horizontal_subscribers_[2]);
159
TEST_F(TestEdgeBarrierController, VerticalSubscriberReplace)
161
TestBarrierSubscriber handling_subscriber(EdgeBarrierSubscriber::Result::HANDLED);
162
bc.AddVerticalSubscriber(&handling_subscriber, 0);
163
EXPECT_EQ(bc.GetVerticalSubscriber(0), &handling_subscriber);
166
TEST_F(TestEdgeBarrierController, HorizontalSubscriberReplace)
168
TestBarrierSubscriber handling_subscriber(EdgeBarrierSubscriber::Result::HANDLED);
169
bc.AddHorizontalSubscriber(&handling_subscriber, 0);
170
EXPECT_EQ(bc.GetHorizontalSubscriber(0), &handling_subscriber);
173
TEST_F(TestEdgeBarrierController, ProcessHandledEventForVerticalSubscriber)
177
TestBarrierSubscriber handling_subscriber(EdgeBarrierSubscriber::Result::HANDLED);
178
bc.AddVerticalSubscriber(&handling_subscriber, monitor);
180
MockPointerBarrierWrapper owner(monitor, false, VERTICAL);
181
auto breaking_barrier_event = MakeBarrierEvent(0, true);
183
EXPECT_CALL(owner, ReleaseBarrier(_)).Times(0);
184
ProcessBarrierEvent(&owner, breaking_barrier_event);
185
EXPECT_EQ(GetPrivateImpl()->decaymulator_.value(), 0);
188
TEST_F(TestEdgeBarrierController, ProcessHandledEventForHorizontalSubscriber)
192
TestBarrierSubscriber handling_subscriber(EdgeBarrierSubscriber::Result::HANDLED);
193
bc.AddHorizontalSubscriber(&handling_subscriber, monitor);
195
MockPointerBarrierWrapper owner(monitor, false, HORIZONTAL);
196
auto breaking_barrier_event = MakeBarrierEvent(0, true);
198
EXPECT_CALL(owner, ReleaseBarrier(_)).Times(0);
199
ProcessBarrierEvent(&owner, breaking_barrier_event);
200
EXPECT_EQ(GetPrivateImpl()->decaymulator_.value(), 0);
203
TEST_F(TestEdgeBarrierController, ProcessHandledEventOnReleasedBarrierForVerticalSubscriber)
205
int monitor = monitors::MAX-1;
207
TestBarrierSubscriber handling_subscriber(EdgeBarrierSubscriber::Result::HANDLED);
208
bc.AddVerticalSubscriber(&handling_subscriber, monitor);
210
MockPointerBarrierWrapper owner(monitor, true, VERTICAL);
211
auto breaking_barrier_event = MakeBarrierEvent(5, true);
213
EXPECT_CALL(owner, ReleaseBarrier(5)).Times(1);
214
ProcessBarrierEvent(&owner, breaking_barrier_event);
217
TEST_F(TestEdgeBarrierController, ProcessHandledEventOnReleasedBarrierForHorizontalSubscriber)
219
int monitor = monitors::MAX-1;
221
TestBarrierSubscriber handling_subscriber(EdgeBarrierSubscriber::Result::HANDLED);
222
bc.AddHorizontalSubscriber(&handling_subscriber, monitor);
224
MockPointerBarrierWrapper owner(monitor, true, HORIZONTAL);
225
auto breaking_barrier_event = MakeBarrierEvent(5, true);
227
EXPECT_CALL(owner, ReleaseBarrier(5)).Times(1);
228
ProcessBarrierEvent(&owner, breaking_barrier_event);
231
TEST_F(TestEdgeBarrierController, ProcessUnHandledEventBreakingBarrierForVerticalSubscriber)
235
MockPointerBarrierWrapper owner(monitor, false, VERTICAL);
236
int breaking_id = 12345;
237
auto breaking_barrier_event = MakeBarrierEvent(breaking_id, true);
239
EXPECT_CALL(owner, ReleaseBarrier(breaking_id));
240
ProcessBarrierEvent(&owner, breaking_barrier_event);
243
TEST_F(TestEdgeBarrierController, ProcessUnHandledEventBreakingBarrierForHorizontalSubscriber)
247
MockPointerBarrierWrapper owner(monitor, false, HORIZONTAL);
248
int breaking_id = 12345;
249
auto breaking_barrier_event = MakeBarrierEvent(breaking_id, true);
251
EXPECT_CALL(owner, ReleaseBarrier(breaking_id));
252
ProcessBarrierEvent(&owner, breaking_barrier_event);
255
TEST_F(TestEdgeBarrierController, ProcessUnHandledEventBreakingBarrierOnMaxMonitorForVerticalSubscriber)
257
int monitor = monitors::MAX;
259
MockPointerBarrierWrapper owner(monitor, false, VERTICAL);
260
auto breaking_barrier_event = MakeBarrierEvent(0, true);
262
EXPECT_CALL(owner, ReleaseBarrier(_));
263
ProcessBarrierEvent(&owner, breaking_barrier_event);
266
TEST_F(TestEdgeBarrierController, ProcessUnHandledEventBreakingBarrierOnMaxMonitorForHorizontalSubscriber)
268
int monitor = monitors::MAX;
270
MockPointerBarrierWrapper owner(monitor, false, HORIZONTAL);
271
auto breaking_barrier_event = MakeBarrierEvent(0, true);
273
EXPECT_CALL(owner, ReleaseBarrier(_));
274
ProcessBarrierEvent(&owner, breaking_barrier_event);
277
TEST_F(TestEdgeBarrierController, ProcessUnHandledEventNotBreakingBarrierForVerticalSubscriber)
281
MockPointerBarrierWrapper owner(monitor, false, VERTICAL);
282
int not_breaking_id = 54321;
283
auto not_breaking_barrier_event = MakeBarrierEvent(not_breaking_id, false);
285
EXPECT_CALL(owner, ReleaseBarrier(not_breaking_id)).Times(0);
286
ProcessBarrierEvent(&owner, not_breaking_barrier_event);
289
TEST_F(TestEdgeBarrierController, ProcessUnHandledEventNotBreakingBarrierForHorizontalSubscriber)
293
MockPointerBarrierWrapper owner(monitor, false, HORIZONTAL);
294
int not_breaking_id = 54321;
295
auto not_breaking_barrier_event = MakeBarrierEvent(not_breaking_id, false);
297
EXPECT_CALL(owner, ReleaseBarrier(not_breaking_id)).Times(0);
298
ProcessBarrierEvent(&owner, not_breaking_barrier_event);
301
TEST_F(TestEdgeBarrierController, ProcessUnHandledEventOnReleasedBarrierForVerticalSubscriber)
305
MockPointerBarrierWrapper owner(monitor, true, VERTICAL);
306
int not_breaking_id = 345678;
307
auto not_breaking_barrier_event = MakeBarrierEvent(not_breaking_id, false);
309
EXPECT_CALL(owner, ReleaseBarrier(not_breaking_id));
310
ProcessBarrierEvent(&owner, not_breaking_barrier_event);
313
TEST_F(TestEdgeBarrierController, ProcessUnHandledEventOnReleasedBarrierForHorizontalSubscriber)
317
MockPointerBarrierWrapper owner(monitor, true, HORIZONTAL);
318
int not_breaking_id = 345678;
319
auto not_breaking_barrier_event = MakeBarrierEvent(not_breaking_id, false);
321
EXPECT_CALL(owner, ReleaseBarrier(not_breaking_id));
322
ProcessBarrierEvent(&owner, not_breaking_barrier_event);
325
TEST_F(TestEdgeBarrierController, ProcessAlreadyHandledEventForVerticalSubscriber)
327
int monitor = g_random_int_range(0, monitors::MAX);
329
MockPointerBarrierWrapper owner(monitor, false, VERTICAL);
330
vertical_subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::ALREADY_HANDLED;
332
auto event = MakeBarrierEvent(g_random_int(), false);
334
EXPECT_CALL(owner, ReleaseBarrier(_)).Times(0);
335
ProcessBarrierEvent(&owner, event);
336
EXPECT_EQ(GetPrivateImpl()->decaymulator_.value(), event->velocity);
339
TEST_F(TestEdgeBarrierController, ProcessAlreadyHandledEventForHorizontalSubscriber)
341
int monitor = g_random_int_range(0, monitors::MAX);
343
MockPointerBarrierWrapper owner(monitor, false, HORIZONTAL);
344
horizontal_subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::ALREADY_HANDLED;
346
auto event = MakeBarrierEvent(g_random_int(), false);
348
EXPECT_CALL(owner, ReleaseBarrier(_)).Times(0);
349
ProcessBarrierEvent(&owner, event);
350
EXPECT_EQ(GetPrivateImpl()->decaymulator_.value(), event->velocity);
353
TEST_F(TestEdgeBarrierController, ProcessIgnoredEventWithStickyEdgesForVerticalSubscriber)
355
int monitor = g_random_int_range(0, monitors::MAX);
357
bc.sticky_edges = true;
358
MockPointerBarrierWrapper owner(monitor, false, VERTICAL);
359
vertical_subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::IGNORED;
361
auto event = MakeBarrierEvent(g_random_int(), false);
363
EXPECT_CALL(owner, ReleaseBarrier(_)).Times(0);
364
ProcessBarrierEvent(&owner, event);
365
EXPECT_FALSE(owner.released());
366
EXPECT_FALSE(owner.release_once());
367
EXPECT_EQ(GetPrivateImpl()->decaymulator_.value(), event->velocity);
370
TEST_F(TestEdgeBarrierController, ProcessIgnoredEventWithStickyEdgesForHorizontalSubscriber)
372
int monitor = g_random_int_range(0, monitors::MAX);
374
bc.sticky_edges = true;
375
MockPointerBarrierWrapper owner(monitor, false, HORIZONTAL);
376
horizontal_subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::IGNORED;
378
auto event = MakeBarrierEvent(g_random_int(), false);
380
EXPECT_CALL(owner, ReleaseBarrier(_)).Times(0);
381
ProcessBarrierEvent(&owner, event);
382
EXPECT_FALSE(owner.released());
383
EXPECT_FALSE(owner.release_once());
384
EXPECT_EQ(GetPrivateImpl()->decaymulator_.value(), event->velocity);
387
TEST_F(TestEdgeBarrierController, ProcessIgnoredEventWithOutStickyEdgesForVerticalSubscriber)
389
int monitor = g_random_int_range(0, monitors::MAX);
391
bc.sticky_edges = false;
392
MockPointerBarrierWrapper owner(monitor, false, VERTICAL);
393
vertical_subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::IGNORED;
395
auto event = MakeBarrierEvent(g_random_int(), false);
397
EXPECT_CALL(owner, ReleaseBarrier(event->event_id));
398
ProcessBarrierEvent(&owner, event);
399
EXPECT_TRUE(owner.released());
400
EXPECT_TRUE(owner.release_once());
401
EXPECT_EQ(GetPrivateImpl()->decaymulator_.value(), 0);
404
TEST_F(TestEdgeBarrierController, ProcessIgnoredEventWithOutStickyEdgesForHoriziontalSubscriber)
406
int monitor = g_random_int_range(0, monitors::MAX);
408
bc.sticky_edges = false;
409
MockPointerBarrierWrapper owner(monitor, false, HORIZONTAL);
410
horizontal_subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::IGNORED;
412
auto event = MakeBarrierEvent(g_random_int(), false);
414
EXPECT_CALL(owner, ReleaseBarrier(event->event_id));
415
ProcessBarrierEvent(&owner, event);
416
EXPECT_TRUE(owner.released());
417
EXPECT_TRUE(owner.release_once());
418
EXPECT_EQ(GetPrivateImpl()->decaymulator_.value(), 0);
421
TEST_F(TestEdgeBarrierController, ProcessNeedsReleaseEventForVerticalSubscriber)
423
int monitor = g_random_int_range(0, monitors::MAX);
425
MockPointerBarrierWrapper owner(monitor, false, VERTICAL);
426
vertical_subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::NEEDS_RELEASE;
428
auto event = MakeBarrierEvent(g_random_int(), false);
430
EXPECT_CALL(owner, ReleaseBarrier(event->event_id));
431
ProcessBarrierEvent(&owner, event);
432
EXPECT_EQ(GetPrivateImpl()->decaymulator_.value(), 0);
435
TEST_F(TestEdgeBarrierController, ProcessNeedsReleaseEventForHorizontalSubscriber)
437
int monitor = g_random_int_range(0, monitors::MAX);
439
MockPointerBarrierWrapper owner(monitor, false, HORIZONTAL);
440
horizontal_subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::NEEDS_RELEASE;
442
auto event = MakeBarrierEvent(g_random_int(), false);
444
EXPECT_CALL(owner, ReleaseBarrier(event->event_id));
445
ProcessBarrierEvent(&owner, event);
446
EXPECT_EQ(GetPrivateImpl()->decaymulator_.value(), 0);
449
TEST_F(TestEdgeBarrierController, BreakingEdgeTemporaryReleasesBarrierForVerticalSubscriber)
451
int monitor = g_random_int_range(0, monitors::MAX);
452
MockPointerBarrierWrapper owner(monitor, false, VERTICAL);
454
EXPECT_CALL(owner, ReleaseBarrier(1));
455
ProcessBarrierEvent(&owner, MakeBarrierEvent(1, true));
456
ASSERT_TRUE(owner.released());
458
Utils::WaitForTimeoutMSec(bc.options()->edge_passed_disabled_ms);
459
EXPECT_FALSE(owner.released());
462
TEST_F(TestEdgeBarrierController, BreakingEdgeTemporaryReleasesBarrierForHoriziontalSubscriber)
464
int monitor = g_random_int_range(0, monitors::MAX);
465
MockPointerBarrierWrapper owner(monitor, false, HORIZONTAL);
467
EXPECT_CALL(owner, ReleaseBarrier(1));
468
ProcessBarrierEvent(&owner, MakeBarrierEvent(1, true));
469
ASSERT_TRUE(owner.released());
471
Utils::WaitForTimeoutMSec(bc.options()->edge_passed_disabled_ms);
472
EXPECT_FALSE(owner.released());
475
TEST_F(TestEdgeBarrierController, BreakingEdgeTemporaryReleasesBarrierForNotHandledEventsForVerticalSubscriber)
478
MockPointerBarrierWrapper owner(monitor, false, VERTICAL);
479
vertical_subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::IGNORED;
481
EXPECT_CALL(owner, ReleaseBarrier(5));
482
ProcessBarrierEvent(&owner, MakeBarrierEvent(5, true));
483
ASSERT_TRUE(owner.released());
485
vertical_subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::IGNORED;
486
EXPECT_CALL(owner, ReleaseBarrier(6));
487
ProcessBarrierEvent(&owner, MakeBarrierEvent(6, false));
490
TEST_F(TestEdgeBarrierController, BreakingEdgeTemporaryReleasesBarrierForNotHandledEventsForHorizontalSubscriber)
493
MockPointerBarrierWrapper owner(monitor, false, HORIZONTAL);
494
horizontal_subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::IGNORED;
496
EXPECT_CALL(owner, ReleaseBarrier(5));
497
ProcessBarrierEvent(&owner, MakeBarrierEvent(5, true));
498
ASSERT_TRUE(owner.released());
500
horizontal_subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::IGNORED;
501
EXPECT_CALL(owner, ReleaseBarrier(6));
502
ProcessBarrierEvent(&owner, MakeBarrierEvent(6, false));
505
TEST_F(TestEdgeBarrierController, BreakingEdgeTemporaryReleasesBarrierForHandledEventsForVerticalSubscriber)
508
MockPointerBarrierWrapper owner(monitor, false, VERTICAL);
509
vertical_subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::IGNORED;
511
EXPECT_CALL(owner, ReleaseBarrier(5));
512
ProcessBarrierEvent(&owner, MakeBarrierEvent(5, true));
513
ASSERT_TRUE(owner.released());
515
vertical_subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::HANDLED;
516
EXPECT_CALL(owner, ReleaseBarrier(6)).Times(1);
517
ProcessBarrierEvent(&owner, MakeBarrierEvent(6, true));
520
TEST_F(TestEdgeBarrierController, BreakingEdgeTemporaryReleasesBarrierForHandledEventsForHoriziontalSubscriber)
523
MockPointerBarrierWrapper owner(monitor, false, HORIZONTAL);
524
horizontal_subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::IGNORED;
526
EXPECT_CALL(owner, ReleaseBarrier(5));
527
ProcessBarrierEvent(&owner, MakeBarrierEvent(5, true));
528
ASSERT_TRUE(owner.released());
530
horizontal_subscribers_[monitor].handle_result_ = EdgeBarrierSubscriber::Result::HANDLED;
320
531
EXPECT_CALL(owner, ReleaseBarrier(6)).Times(1);
321
532
ProcessBarrierEvent(&owner, MakeBarrierEvent(6, true));