Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit de5ba9b

Browse files
committed
update test
1 parent d9033d8 commit de5ba9b

File tree

2 files changed

+37
-25
lines changed

2 files changed

+37
-25
lines changed

shell/platform/android/io/flutter/embedding/android/FlutterActivity.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -681,9 +681,14 @@ public void unregisterOnBackInvokedCallback() {
681681
}
682682
}
683683

684-
final OnBackInvokedCallback onBackInvokedCallback =
684+
private final OnBackInvokedCallback onBackInvokedCallback =
685685
Build.VERSION.SDK_INT < 33 ? null : createOnBackInvokedCallback();
686686

687+
@VisibleForTesting
688+
protected OnBackInvokedCallback getOnBackInvokedCallback() {
689+
return onBackInvokedCallback;
690+
}
691+
687692
@NonNull
688693
@TargetApi(33)
689694
@RequiresApi(33)

shell/platform/android/test/io/flutter/embedding/android/FlutterActivityTest.java

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ public void itUnregistersOnBackInvokedCallbackOnRelease() {
126126
}
127127

128128
@Test
129-
@Config(maxSdk = Build.VERSION_CODES.S_V2)
129+
@Config(sdk = Build.VERSION_CODES.S_V2)
130130
public void onBackInvokedCallbackIsNullForSdk32OrLower() {
131131
Intent intent = FlutterActivity.createDefaultIntent(ctx);
132132
ActivityController<FlutterActivity> activityController =
@@ -137,58 +137,65 @@ public void onBackInvokedCallbackIsNullForSdk32OrLower() {
137137

138138
assertNull(
139139
"onBackInvokedCallback should be null for SDK 32 or lower",
140-
flutterActivity.onBackInvokedCallback);
140+
flutterActivity.getOnBackInvokedCallback());
141141
}
142142

143143
@Test
144144
@Config(sdk = Build.VERSION_CODES.TIRAMISU)
145145
@TargetApi(Build.VERSION_CODES.TIRAMISU)
146146
public void onBackInvokedCallbackCallsOnBackPressedForSdk33() {
147-
Intent intent = FlutterActivityWithReportFullyDrawn.createDefaultIntent(ctx);
148-
ActivityController<FlutterActivityWithReportFullyDrawn> activityController =
149-
Robolectric.buildActivity(FlutterActivityWithReportFullyDrawn.class, intent);
150-
FlutterActivityWithReportFullyDrawn activity = spy(activityController.get());
147+
Intent intent = FlutterActivity.createDefaultIntent(ctx);
148+
ActivityController<FlutterActivity> activityController =
149+
Robolectric.buildActivity(FlutterActivity.class, intent);
150+
FlutterActivity activity = activityController.get();
151151

152152
activity.onCreate(null);
153153

154+
OnBackInvokedCallback callback = activity.getOnBackInvokedCallback();
154155
assertNotNull(
155-
"onBackInvokedCallback should not be null for SDK 33", activity.onBackInvokedCallback);
156+
"onBackInvokedCallback should not be null for SDK 33, actual:"
157+
+ (callback != null ? callback.getClass().getName() : "null"),
158+
callback);
156159

157-
OnBackInvokedCallback callback = activity.onBackInvokedCallback;
160+
FlutterActivity spyActivity = spy(activity);
158161

159162
callback.onBackInvoked();
160-
verify(activity, times(1)).onBackPressed();
163+
verify(spyActivity, times(1)).onBackPressed();
161164
}
162165

163166
@Test
164167
@Config(sdk = Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
165168
@TargetApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
166169
public void itHandlesOnBackAnimationCallbackAsExpectedForSdk34OrHigher() {
167-
Intent intent = FlutterActivityWithReportFullyDrawn.createDefaultIntent(ctx);
168-
ActivityController<FlutterActivityWithReportFullyDrawn> activityController =
169-
Robolectric.buildActivity(FlutterActivityWithReportFullyDrawn.class, intent);
170-
FlutterActivityWithReportFullyDrawn activity = spy(activityController.get());
170+
Intent intent = FlutterActivity.createDefaultIntent(ctx);
171+
ActivityController<FlutterActivity> activityController =
172+
Robolectric.buildActivity(FlutterActivity.class, intent);
173+
FlutterActivity activity = spy(activityController.get());
171174

172175
activity.onCreate(null);
173176

177+
OnBackInvokedCallback callback = activity.getOnBackInvokedCallback();
178+
174179
assertTrue(
175-
"onBackInvokedCallback should be an instance of OnBackAnimationCallback for SDK 34 or higher",
176-
activity.onBackInvokedCallback instanceof OnBackAnimationCallback);
180+
"onBackInvokedCallback should be an instance of OnBackAnimationCallback for SDK 34 or higher, actual:"
181+
+ (callback != null ? callback.getClass().getName() : "null"),
182+
callback instanceof OnBackAnimationCallback);
177183

178-
OnBackAnimationCallback callback = (OnBackAnimationCallback) activity.onBackInvokedCallback;
184+
OnBackAnimationCallback aCallback = (OnBackAnimationCallback) callback;
185+
FlutterActivity spyActivity = spy(activity);
179186

180187
BackEvent mockBackEvent = mock(BackEvent.class);
181-
callback.onBackStarted(mockBackEvent);
182-
verify(activity, times(1)).startBackGesture(mockBackEvent);
188+
aCallback.onBackStarted(mockBackEvent);
189+
verify(spyActivity, times(1)).startBackGesture(mockBackEvent);
183190

184-
callback.onBackProgressed(mockBackEvent);
185-
verify(activity, times(1)).updateBackGestureProgress(mockBackEvent);
191+
aCallback.onBackProgressed(mockBackEvent);
192+
verify(spyActivity, times(1)).updateBackGestureProgress(mockBackEvent);
186193

187-
callback.onBackInvoked();
188-
verify(activity, times(1)).commitBackGesture();
194+
aCallback.onBackInvoked();
195+
verify(spyActivity, times(1)).commitBackGesture();
189196

190-
callback.onBackCancelled();
191-
verify(activity, times(1)).cancelBackGesture();
197+
aCallback.onBackCancelled();
198+
verify(spyActivity, times(1)).cancelBackGesture();
192199
}
193200

194201
@Test

0 commit comments

Comments
 (0)