Skip to content

Commit c3a9baa

Browse files
Casey Hillershannah-hyj
authored andcommitted
Revert PRs relating to single window assumption (flutter#122369)
* Revert "Remove references to BindingBase.window (flutter#122119)" This reverts commit c7681f0. * Revert "Remove another reference to BindingBase.window (flutter#122341)" This reverts commit 6ec4445. * Revert "Reland (2): Removes single window assumptions from `flutter_test` (flutter#122233)" This reverts commit eb3d317. * Revert "Remove single view assumption from TestViewConfiguration (flutter#122352)" This reverts commit 927289f. * Revert "Updates `flutter/test/cupertino` to no longer use `TestWindow` (flutter#122325)" This reverts commit 67e17e4. * Revert "Updates `flutter/test/gestures` to no longer reference `TestWindow` (flutter#122327)" This reverts commit c2a5111. * Revert "Updates `flutter/test/rendering` to no longer use `TestWindow` (flutter#122347)" This reverts commit 28b65e0. * Revert "Updates `flutter_localizations/test` to stop using `TestWindow` (flutter#122321)" This reverts commit 01367d5.
1 parent 276261d commit c3a9baa

40 files changed

+1494
-2755
lines changed

dev/benchmarks/microbenchmarks/lib/stocks/layout_bench.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ Future<void> main() async {
3131
await tester.pump(); // Start drawer animation
3232
await tester.pump(const Duration(seconds: 1)); // Complete drawer animation
3333

34-
final TestViewConfiguration big = TestViewConfiguration.fromView(
34+
final TestViewConfiguration big = TestViewConfiguration(
3535
size: const Size(360.0, 640.0),
36-
view: tester.view,
36+
window: RendererBinding.instance.window,
3737
);
38-
final TestViewConfiguration small = TestViewConfiguration.fromView(
38+
final TestViewConfiguration small = TestViewConfiguration(
3939
size: const Size(355.0, 635.0),
40-
view: tester.view,
40+
window: RendererBinding.instance.window,
4141
);
4242
final RenderView renderView = WidgetsBinding.instance.renderView;
4343
binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.benchmark;

dev/benchmarks/test_apps/stocks/test/icon_color_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ void main() {
5858
expect(find.text('Account Balance'), findsNothing);
5959

6060
// drag the drawer out
61-
final Offset left = Offset(0.0, (tester.view.physicalSize / tester.view.devicePixelRatio).height / 2.0);
62-
final Offset right = Offset((tester.view.physicalSize / tester.view.devicePixelRatio).width, left.dy);
61+
final Offset left = Offset(0.0, (WidgetsBinding.instance.window.physicalSize / WidgetsBinding.instance.window.devicePixelRatio).height / 2.0);
62+
final Offset right = Offset((WidgetsBinding.instance.window.physicalSize / WidgetsBinding.instance.window.devicePixelRatio).width, left.dy);
6363
final TestGesture gesture = await tester.startGesture(left);
6464
await tester.pump();
6565
await gesture.moveTo(right);

packages/flutter/lib/src/widgets/binding.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -901,13 +901,15 @@ mixin WidgetsBinding on BindingBase, ServicesBinding, SchedulerBinding, GestureB
901901
/// Used by [runApp] to wrap the provided `rootWidget` in the default [View].
902902
///
903903
/// The [View] determines into what [FlutterView] the app is rendered into.
904-
/// This is currently [PlatformDispatcher.implicitView] from [platformDispatcher].
904+
/// For backwards-compatibility reasons, this method currently chooses
905+
/// [window] (which is a [FlutterView]) as the rendering target. This will
906+
/// change in a future version of Flutter.
905907
///
906908
/// The `rootWidget` widget provided to this method must not already be
907909
/// wrapped in a [View].
908910
Widget wrapWithDefaultView(Widget rootWidget) {
909911
return View(
910-
view: platformDispatcher.implicitView!,
912+
view: window,
911913
child: rootWidget,
912914
);
913915
}

packages/flutter/test/cupertino/route_test.dart

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1702,7 +1702,6 @@ void main() {
17021702
];
17031703
await tester.pumpWidget(
17041704
buildNavigator(
1705-
view: tester.view,
17061705
pages: myPages,
17071706
onPopPage: (Route<dynamic> route, dynamic result) {
17081707
assert(false); // The test shouldn't call this.
@@ -1729,7 +1728,6 @@ void main() {
17291728

17301729
await tester.pumpWidget(
17311730
buildNavigator(
1732-
view: tester.view,
17331731
pages: myPages,
17341732
onPopPage: (Route<dynamic> route, dynamic result) {
17351733
assert(false); // The test shouldn't call this.
@@ -1758,7 +1756,6 @@ void main() {
17581756
];
17591757
await tester.pumpWidget(
17601758
buildNavigator(
1761-
view: tester.view,
17621759
pages: myPages,
17631760
onPopPage: (Route<dynamic> route, dynamic result) {
17641761
assert(false); // The test shouldn't call this.
@@ -1780,7 +1777,6 @@ void main() {
17801777

17811778
await tester.pumpWidget(
17821779
buildNavigator(
1783-
view: tester.view,
17841780
pages: myPages,
17851781
onPopPage: (Route<dynamic> route, dynamic result) {
17861782
assert(false); // The test shouldn't call this.
@@ -2217,13 +2213,12 @@ class TransitionDetector extends DefaultTransitionDelegate<void> {
22172213

22182214
Widget buildNavigator({
22192215
required List<Page<dynamic>> pages,
2220-
required FlutterView view,
22212216
PopPageCallback? onPopPage,
22222217
GlobalKey<NavigatorState>? key,
22232218
TransitionDelegate<dynamic>? transitionDelegate,
22242219
}) {
22252220
return MediaQuery(
2226-
data: MediaQueryData.fromView(view),
2221+
data: MediaQueryData.fromView(WidgetsBinding.instance.window),
22272222
child: Localizations(
22282223
locale: const Locale('en', 'US'),
22292224
delegates: const <LocalizationsDelegate<dynamic>>[

packages/flutter/test/cupertino/scrollbar_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ void main() {
251251

252252
const double inset = 3;
253253
const double scaleFactor = 2;
254-
final Size screenSize = tester.view.physicalSize / tester.view.devicePixelRatio;
254+
final Size screenSize = tester.binding.window.physicalSize / tester.binding.window.devicePixelRatio;
255255

256256
final ScrollController scrollController = ScrollController();
257257
await tester.pumpWidget(

packages/flutter/test/cupertino/text_field_test.dart

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,15 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5+
// no-shuffle:
6+
// //TODO(gspencergoog): Remove this tag once this test's state leaks/test
7+
// dependencies have been fixed.
8+
// https://github.com/flutter/flutter/issues/85160
9+
// Fails with "flutter test --test-randomize-ordering-seed=456"
510
// reduced-test-set:
611
// This file is run as part of a reduced test set in CI on Mac and Windows
712
// machines.
8-
@Tags(<String>['reduced-test-set'])
13+
@Tags(<String>['reduced-test-set', 'no-shuffle'])
914
library;
1015

1116
import 'dart:ui' as ui show BoxHeightStyle, BoxWidthStyle, Color;
@@ -4998,11 +5003,9 @@ void main() {
49985003

49995004
group('Text selection toolbar', () {
50005005
testWidgets('Collapsed selection works', (WidgetTester tester) async {
5001-
tester.view.physicalSize = const Size(400, 400);
5002-
tester.view.devicePixelRatio = 1;
5003-
addTearDown(tester.view.reset);
5004-
50055006
EditableText.debugDeterministicCursor = true;
5007+
tester.binding.window.physicalSizeTestValue = const Size(400, 400);
5008+
tester.binding.window.devicePixelRatioTestValue = 1;
50065009
TextEditingController controller;
50075010
EditableTextState state;
50085011
Offset bottomLeftSelectionPosition;
@@ -5180,14 +5183,15 @@ void main() {
51805183
),
51815184
),
51825185
);
5186+
5187+
tester.binding.window.clearPhysicalSizeTestValue();
5188+
tester.binding.window.clearDevicePixelRatioTestValue();
51835189
});
51845190

51855191
testWidgets('selecting multiple words works', (WidgetTester tester) async {
5186-
tester.view.physicalSize = const Size(400, 400);
5187-
tester.view.devicePixelRatio = 1;
5188-
addTearDown(tester.view.reset);
5189-
51905192
EditableText.debugDeterministicCursor = true;
5193+
tester.binding.window.physicalSizeTestValue = const Size(400, 400);
5194+
tester.binding.window.devicePixelRatioTestValue = 1;
51915195
final TextEditingController controller;
51925196
final EditableTextState state;
51935197

@@ -5249,14 +5253,15 @@ void main() {
52495253
),
52505254
),
52515255
);
5256+
5257+
tester.binding.window.clearPhysicalSizeTestValue();
5258+
tester.binding.window.clearDevicePixelRatioTestValue();
52525259
});
52535260

52545261
testWidgets('selecting multiline works', (WidgetTester tester) async {
5255-
tester.view.physicalSize = const Size(400, 400);
5256-
tester.view.devicePixelRatio = 1;
5257-
addTearDown(tester.view.reset);
5258-
52595262
EditableText.debugDeterministicCursor = true;
5263+
tester.binding.window.physicalSizeTestValue = const Size(400, 400);
5264+
tester.binding.window.devicePixelRatioTestValue = 1;
52605265
final TextEditingController controller;
52615266
final EditableTextState state;
52625267

@@ -5322,6 +5327,9 @@ void main() {
53225327
),
53235328
),
53245329
);
5330+
5331+
tester.binding.window.clearPhysicalSizeTestValue();
5332+
tester.binding.window.clearDevicePixelRatioTestValue();
53255333
});
53265334

53275335
// This is a regression test for

packages/flutter/test/cupertino/text_selection_test.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,8 @@ void main() {
246246

247247
testWidgets("When a menu item doesn't fit, a second page is used.", (WidgetTester tester) async {
248248
// Set the screen size to more narrow, so that Paste can't fit.
249-
tester.view.physicalSize = const Size(800, 800);
250-
addTearDown(tester.view.reset);
249+
tester.binding.window.physicalSizeTestValue = const Size(800, 800);
250+
addTearDown(tester.binding.window.clearPhysicalSizeTestValue);
251251

252252
final TextEditingController controller = TextEditingController(text: 'abc def ghi');
253253
await tester.pumpWidget(CupertinoApp(
@@ -318,8 +318,8 @@ void main() {
318318
testWidgets('A smaller menu puts each button on its own page.', (WidgetTester tester) async {
319319
// Set the screen size to more narrow, so that two buttons can't fit on
320320
// the same page.
321-
tester.view.physicalSize = const Size(640, 800);
322-
addTearDown(tester.view.reset);
321+
tester.binding.window.physicalSizeTestValue = const Size(640, 800);
322+
addTearDown(tester.binding.window.clearPhysicalSizeTestValue);
323323

324324
final TextEditingController controller = TextEditingController(text: 'abc def ghi');
325325
await tester.pumpWidget(CupertinoApp(

packages/flutter/test/cupertino/text_selection_toolbar_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,8 @@ void main() {
188188

189189
testWidgets('does not paginate if children fit with zero margin', (WidgetTester tester) async {
190190
final List<Widget> children = List<Widget>.generate(7, (int i) => const TestBox());
191-
final double spacerWidth = 1.0 / tester.view.devicePixelRatio;
192-
final double dividerWidth = 1.0 / tester.view.devicePixelRatio;
191+
final double spacerWidth = 1.0 / tester.binding.window.devicePixelRatio;
192+
final double dividerWidth = 1.0 / tester.binding.window.devicePixelRatio;
193193
const double borderRadius = 8.0; // Should match _kToolbarBorderRadius
194194
final double width = 7 * TestBox.itemWidth + 6 * (dividerWidth + 2 * spacerWidth) + 2 * borderRadius;
195195
await tester.pumpWidget(

packages/flutter/test/gestures/gesture_binding_resample_event_on_widget_test.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,25 +101,25 @@ void main() {
101101
expect(events.length, 1);
102102
expect(events[0], isA<PointerDownEvent>());
103103
expect(events[0].timeStamp, currentTestFrameTime() + kSamplingOffset);
104-
expect(events[0].position, Offset(7.5 / tester.view.devicePixelRatio, 0.0));
104+
expect(events[0].position, Offset(7.5 / GestureBinding.instance.window.devicePixelRatio, 0.0));
105105

106106
// Now the system time is epoch + 20ms
107107
requestFrame();
108108
await tester.pump(const Duration(milliseconds: 10));
109109
expect(events.length, 2);
110110
expect(events[1].timeStamp, currentTestFrameTime() + kSamplingOffset);
111111
expect(events[1], isA<PointerMoveEvent>());
112-
expect(events[1].position, Offset(22.5 / tester.view.devicePixelRatio, 0.0));
113-
expect(events[1].delta, Offset(15.0 / tester.view.devicePixelRatio, 0.0));
112+
expect(events[1].position, Offset(22.5 / GestureBinding.instance.window.devicePixelRatio, 0.0));
113+
expect(events[1].delta, Offset(15.0 / GestureBinding.instance.window.devicePixelRatio, 0.0));
114114

115115
// Now the system time is epoch + 30ms
116116
requestFrame();
117117
await tester.pump(const Duration(milliseconds: 10));
118118
expect(events.length, 4);
119119
expect(events[2].timeStamp, currentTestFrameTime() + kSamplingOffset);
120120
expect(events[2], isA<PointerMoveEvent>());
121-
expect(events[2].position, Offset(37.5 / tester.view.devicePixelRatio, 0.0));
122-
expect(events[2].delta, Offset(15.0 / tester.view.devicePixelRatio, 0.0));
121+
expect(events[2].position, Offset(37.5 / GestureBinding.instance.window.devicePixelRatio, 0.0));
122+
expect(events[2].delta, Offset(15.0 / GestureBinding.instance.window.devicePixelRatio, 0.0));
123123
expect(events[3].timeStamp, currentTestFrameTime() + kSamplingOffset);
124124
expect(events[3], isA<PointerUpEvent>());
125125
});

packages/flutter/test/gestures/gesture_binding_test.dart

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,6 @@ void main() {
162162
expect(events[1], isA<PointerCancelEvent>());
163163
});
164164

165-
const double devicePixelRatio = 2.5;
166-
167165
test('Can expand add and hover pointers', () {
168166
const ui.PointerDataPacket packet = ui.PointerDataPacket(
169167
data: <ui.PointerData>[
@@ -175,7 +173,7 @@ void main() {
175173
],
176174
);
177175

178-
final List<PointerEvent> events = PointerEventConverter.expand(packet.data, devicePixelRatio).toList();
176+
final List<PointerEvent> events = PointerEventConverter.expand(packet.data, GestureBinding.instance.window.devicePixelRatio).toList();
179177

180178
expect(events.length, 5);
181179
expect(events[0], isA<PointerAddedEvent>());
@@ -191,7 +189,7 @@ void main() {
191189
ui.PointerData(change: ui.PointerChange.add, device: 24),
192190
],
193191
);
194-
List<PointerEvent> events = PointerEventConverter.expand(packet.data, devicePixelRatio).toList();
192+
List<PointerEvent> events = PointerEventConverter.expand(packet.data, GestureBinding.instance.window.devicePixelRatio).toList();
195193

196194
expect(events.length, 1);
197195
expect(events[0], isA<PointerAddedEvent>());
@@ -207,7 +205,7 @@ void main() {
207205
ui.PointerData(signalKind: ui.PointerSignalKind.scroll, device: 24, scrollDeltaY: double.negativeInfinity, scrollDeltaX: 10),
208206
],
209207
);
210-
events = PointerEventConverter.expand(packet.data, devicePixelRatio).toList();
208+
events = PointerEventConverter.expand(packet.data, GestureBinding.instance.window.devicePixelRatio).toList();
211209
expect(events.length, 0);
212210

213211
// Send packet with a valid scroll event.
@@ -217,7 +215,7 @@ void main() {
217215
],
218216
);
219217
// Make sure PointerEventConverter can expand when device pixel ratio is valid.
220-
events = PointerEventConverter.expand(packet.data, devicePixelRatio).toList();
218+
events = PointerEventConverter.expand(packet.data, GestureBinding.instance.window.devicePixelRatio).toList();
221219
expect(events.length, 1);
222220
expect(events[0], isA<PointerScrollEvent>());
223221

@@ -234,15 +232,15 @@ void main() {
234232
],
235233
);
236234

237-
final List<PointerEvent> events = PointerEventConverter.expand(packet.data, devicePixelRatio).toList();
235+
final List<PointerEvent> events = PointerEventConverter.expand(packet.data, GestureBinding.instance.window.devicePixelRatio).toList();
238236

239237
expect(events.length, 2);
240238
expect(events[0], isA<PointerAddedEvent>());
241239
expect(events[1], isA<PointerScrollEvent>());
242240
});
243241

244242
test('Should synthesize kPrimaryButton for touch when no button is set', () {
245-
final Offset location = const Offset(10.0, 10.0) * devicePixelRatio;
243+
final Offset location = const Offset(10.0, 10.0) * GestureBinding.instance.window.devicePixelRatio;
246244
final ui.PointerDataPacket packet = ui.PointerDataPacket(
247245
data: <ui.PointerData>[
248246
ui.PointerData(change: ui.PointerChange.add, physicalX: location.dx, physicalY: location.dy),
@@ -253,7 +251,7 @@ void main() {
253251
],
254252
);
255253

256-
final List<PointerEvent> events = PointerEventConverter.expand(packet.data, devicePixelRatio).toList();
254+
final List<PointerEvent> events = PointerEventConverter.expand(packet.data, GestureBinding.instance.window.devicePixelRatio).toList();
257255

258256
expect(events.length, 5);
259257
expect(events[0], isA<PointerAddedEvent>());
@@ -269,7 +267,7 @@ void main() {
269267
});
270268

271269
test('Should not synthesize kPrimaryButton for touch when a button is set', () {
272-
final Offset location = const Offset(10.0, 10.0) * devicePixelRatio;
270+
final Offset location = const Offset(10.0, 10.0) * GestureBinding.instance.window.devicePixelRatio;
273271
final ui.PointerDataPacket packet = ui.PointerDataPacket(
274272
data: <ui.PointerData>[
275273
ui.PointerData(change: ui.PointerChange.add, physicalX: location.dx, physicalY: location.dy),
@@ -280,7 +278,7 @@ void main() {
280278
],
281279
);
282280

283-
final List<PointerEvent> events = PointerEventConverter.expand(packet.data, devicePixelRatio).toList();
281+
final List<PointerEvent> events = PointerEventConverter.expand(packet.data, GestureBinding.instance.window.devicePixelRatio).toList();
284282

285283
expect(events.length, 5);
286284
expect(events[0], isA<PointerAddedEvent>());
@@ -296,7 +294,7 @@ void main() {
296294
});
297295

298296
test('Should synthesize kPrimaryButton for stylus when no button is set', () {
299-
final Offset location = const Offset(10.0, 10.0) * devicePixelRatio;
297+
final Offset location = const Offset(10.0, 10.0) * GestureBinding.instance.window.devicePixelRatio;
300298
for (final PointerDeviceKind kind in <PointerDeviceKind>[
301299
PointerDeviceKind.stylus,
302300
PointerDeviceKind.invertedStylus,
@@ -312,7 +310,7 @@ void main() {
312310
],
313311
);
314312

315-
final List<PointerEvent> events = PointerEventConverter.expand(packet.data, devicePixelRatio).toList();
313+
final List<PointerEvent> events = PointerEventConverter.expand(packet.data, GestureBinding.instance.window.devicePixelRatio).toList();
316314

317315
expect(events.length, 5);
318316
expect(events[0], isA<PointerAddedEvent>());
@@ -329,7 +327,7 @@ void main() {
329327
});
330328

331329
test('Should synthesize kPrimaryButton for unknown devices when no button is set', () {
332-
final Offset location = const Offset(10.0, 10.0) * devicePixelRatio;
330+
final Offset location = const Offset(10.0, 10.0) * GestureBinding.instance.window.devicePixelRatio;
333331
const PointerDeviceKind kind = PointerDeviceKind.unknown;
334332
final ui.PointerDataPacket packet = ui.PointerDataPacket(
335333
data: <ui.PointerData>[
@@ -341,7 +339,7 @@ void main() {
341339
],
342340
);
343341

344-
final List<PointerEvent> events = PointerEventConverter.expand(packet.data, devicePixelRatio).toList();
342+
final List<PointerEvent> events = PointerEventConverter.expand(packet.data, GestureBinding.instance.window.devicePixelRatio).toList();
345343

346344
expect(events.length, 5);
347345
expect(events[0], isA<PointerAddedEvent>());
@@ -357,7 +355,7 @@ void main() {
357355
});
358356

359357
test('Should not synthesize kPrimaryButton for mouse', () {
360-
final Offset location = const Offset(10.0, 10.0) * devicePixelRatio;
358+
final Offset location = const Offset(10.0, 10.0) * GestureBinding.instance.window.devicePixelRatio;
361359
for (final PointerDeviceKind kind in <PointerDeviceKind>[
362360
PointerDeviceKind.mouse,
363361
]) {
@@ -371,7 +369,7 @@ void main() {
371369
],
372370
);
373371

374-
final List<PointerEvent> events = PointerEventConverter.expand(packet.data, devicePixelRatio).toList();
372+
final List<PointerEvent> events = PointerEventConverter.expand(packet.data, GestureBinding.instance.window.devicePixelRatio).toList();
375373

376374
expect(events.length, 5);
377375
expect(events[0], isA<PointerAddedEvent>());

0 commit comments

Comments
 (0)