@@ -30,6 +30,46 @@ void main() {
3030 testMapViewApi.ensureViewAPISetUp ();
3131 });
3232
33+ group ('Recenter Button Events' , () {
34+ const int testViewId = 1 ;
35+
36+ test ('onRecenterButtonClicked fires' , () async {
37+ final List <NavigationViewRecenterButtonClickedEvent > receivedEvents =
38+ < NavigationViewRecenterButtonClickedEvent > [];
39+ final StreamSubscription <NavigationViewRecenterButtonClickedEvent >
40+ subscription = testMapViewApi
41+ .getNavigationRecenterButtonClickedEventStream (viewId: testViewId)
42+ .listen (receivedEvents.add);
43+
44+ testMapViewApi.testEventApi.onRecenterButtonClicked (testViewId);
45+
46+ await Future <void >.delayed (const Duration (milliseconds: 10 ));
47+
48+ expect (receivedEvents.length, 1 );
49+
50+ await subscription.cancel ();
51+ });
52+
53+ test ('recenter button events do not fire after listener removal' , () async {
54+ final List <NavigationViewRecenterButtonClickedEvent > receivedEvents =
55+ < NavigationViewRecenterButtonClickedEvent > [];
56+ final StreamSubscription <NavigationViewRecenterButtonClickedEvent >
57+ subscription = testMapViewApi
58+ .getNavigationRecenterButtonClickedEventStream (viewId: testViewId)
59+ .listen (receivedEvents.add);
60+
61+ testMapViewApi.testEventApi.onRecenterButtonClicked (testViewId);
62+ await Future <void >.delayed (const Duration (milliseconds: 10 ));
63+ expect (receivedEvents.length, 1 );
64+
65+ await subscription.cancel ();
66+
67+ testMapViewApi.testEventApi.onRecenterButtonClicked (testViewId);
68+ await Future <void >.delayed (const Duration (milliseconds: 10 ));
69+ expect (receivedEvents.length, 1 );
70+ });
71+ });
72+
3373 group ('Navigation UI Events' , () {
3474 const int testViewId = 1 ;
3575
0 commit comments