@@ -150,84 +150,3 @@ TEST(ListenerTest, StartStopListeningForEventSpec) {
150
150
ASSERT_EQ (event_sp->GetBroadcaster (), &broadcaster1);
151
151
ASSERT_FALSE (listener_sp->GetEvent (event_sp, std::chrono::seconds (0 )));
152
152
}
153
-
154
- TEST (ListenerTest, MoveEventsOnHijackAndRestore) {
155
- Broadcaster broadcaster (nullptr , " test-broadcaster" );
156
- const uint32_t event_mask = 1 ;
157
- EventSP event_sp;
158
-
159
- // Create the original listener and start listening.
160
- ListenerSP original_listener = Listener::MakeListener (" original-listener" );
161
- ASSERT_EQ (event_mask, original_listener->StartListeningForEvents (&broadcaster,
162
- event_mask));
163
- broadcaster.SetPrimaryListener (original_listener);
164
-
165
- // Queue two events to original listener, but do not consume them yet.
166
- broadcaster.BroadcastEvent (event_mask, nullptr );
167
- broadcaster.BroadcastEvent (event_mask, nullptr );
168
-
169
- // Hijack.
170
- ListenerSP hijack_listener = Listener::MakeListener (" hijack-listener" );
171
- broadcaster.HijackBroadcaster (hijack_listener, event_mask);
172
-
173
- // The events should have been moved to the hijack listener.
174
- EXPECT_FALSE (original_listener->GetEvent (event_sp, std::chrono::seconds (0 )));
175
- EXPECT_TRUE (hijack_listener->GetEvent (event_sp, std::chrono::seconds (0 )));
176
- EXPECT_TRUE (hijack_listener->GetEvent (event_sp, std::chrono::seconds (0 )));
177
-
178
- // Queue two events while hijacked, but do not consume them yet.
179
- broadcaster.BroadcastEvent (event_mask, nullptr );
180
- broadcaster.BroadcastEvent (event_mask, nullptr );
181
-
182
- // Restore the original listener.
183
- broadcaster.RestoreBroadcaster ();
184
-
185
- // The events queued while hijacked should have been moved back to the
186
- // original listener.
187
- EXPECT_FALSE (hijack_listener->GetEvent (event_sp, std::chrono::seconds (0 )));
188
- EXPECT_TRUE (original_listener->GetEvent (event_sp, std::chrono::seconds (0 )));
189
- EXPECT_TRUE (original_listener->GetEvent (event_sp, std::chrono::seconds (0 )));
190
- }
191
-
192
- TEST (ListenerTest, MoveEventsBetweenHijackers) {
193
- Broadcaster broadcaster (nullptr , " test-broadcaster" );
194
- const uint32_t event_mask = 1 ;
195
- EventSP event_sp;
196
-
197
- // Create the original listener and start listening.
198
- ListenerSP original_listener = Listener::MakeListener (" original-listener" );
199
- ASSERT_EQ (event_mask, original_listener->StartListeningForEvents (&broadcaster,
200
- event_mask));
201
- broadcaster.SetPrimaryListener (original_listener);
202
-
203
- // First hijack.
204
- ListenerSP hijack_listener1 = Listener::MakeListener (" hijack-listener1" );
205
- broadcaster.HijackBroadcaster (hijack_listener1, event_mask);
206
-
207
- // Queue two events while hijacked, but do not consume
208
- // them yet.
209
- broadcaster.BroadcastEvent (event_mask, nullptr );
210
- broadcaster.BroadcastEvent (event_mask, nullptr );
211
-
212
- // Second hijack.
213
- ListenerSP hijack_listener2 = Listener::MakeListener (" hijack-listener2" );
214
- broadcaster.HijackBroadcaster (hijack_listener2, event_mask);
215
-
216
- // The second hijacker should have the events now.
217
- EXPECT_FALSE (hijack_listener1->GetEvent (event_sp, std::chrono::seconds (0 )));
218
- EXPECT_TRUE (hijack_listener2->GetEvent (event_sp, std::chrono::seconds (0 )));
219
- EXPECT_TRUE (hijack_listener2->GetEvent (event_sp, std::chrono::seconds (0 )));
220
-
221
- // Queue two events while hijacked with second hijacker, but do not consume
222
- // them yet.
223
- broadcaster.BroadcastEvent (event_mask, nullptr );
224
- broadcaster.BroadcastEvent (event_mask, nullptr );
225
-
226
- // Restore the previous hijacker.
227
- broadcaster.RestoreBroadcaster ();
228
-
229
- // The first hijacker should now have the events.
230
- EXPECT_FALSE (hijack_listener2->GetEvent (event_sp, std::chrono::seconds (0 )));
231
- EXPECT_TRUE (hijack_listener1->GetEvent (event_sp, std::chrono::seconds (0 )));
232
- EXPECT_TRUE (hijack_listener1->GetEvent (event_sp, std::chrono::seconds (0 )));
233
- }
0 commit comments