mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
Revert "Revert "Revert "Restores surface size in the postTest of test binding (#87240)" (#87258)" (#87297)" (#88293)
This reverts commit 91f8b6be51
.
This commit is contained in:
parent
e7f9bcba2d
commit
31d0787d20
@ -7,6 +7,8 @@
|
|||||||
// initialize a binding, which rendering_tester will attempt to re-initialize
|
// initialize a binding, which rendering_tester will attempt to re-initialize
|
||||||
// (or vice versa).
|
// (or vice versa).
|
||||||
|
|
||||||
|
import 'dart:ui' as ui;
|
||||||
|
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/rendering.dart';
|
import 'package:flutter/rendering.dart';
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
@ -779,6 +781,12 @@ void main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
testWidgets('Reverse List showOnScreen', (WidgetTester tester) async {
|
testWidgets('Reverse List showOnScreen', (WidgetTester tester) async {
|
||||||
|
final ui.Size originalScreenSize = tester.binding.window.physicalSize;
|
||||||
|
final double originalDevicePixelRatio = tester.binding.window.devicePixelRatio;
|
||||||
|
addTearDown(() {
|
||||||
|
tester.binding.window.devicePixelRatioTestValue = originalDevicePixelRatio;
|
||||||
|
tester.binding.window.physicalSizeTestValue = originalScreenSize;
|
||||||
|
});
|
||||||
const double screenHeight = 400.0;
|
const double screenHeight = 400.0;
|
||||||
const double screenWidth = 400.0;
|
const double screenWidth = 400.0;
|
||||||
const double itemHeight = screenHeight / 10.0;
|
const double itemHeight = screenHeight / 10.0;
|
||||||
|
@ -163,21 +163,12 @@ abstract class TestWidgetsFlutterBinding extends BindingBase
|
|||||||
}
|
}
|
||||||
TestRestorationManager? _restorationManager;
|
TestRestorationManager? _restorationManager;
|
||||||
|
|
||||||
// The configuration at the beginning of a widget test to be restored after
|
|
||||||
// the test.
|
|
||||||
//
|
|
||||||
// Normally this value should always be non-null during [postTest], except in
|
|
||||||
// rare cases [postTest] is called explicitly without [testWidgets] (so that
|
|
||||||
// [reset] is not called).
|
|
||||||
ViewConfiguration? _preTestViewConfiguration;
|
|
||||||
/// Called by the test framework at the beginning of a widget test to
|
/// Called by the test framework at the beginning of a widget test to
|
||||||
/// prepare the binding for the next test.
|
/// prepare the binding for the next test.
|
||||||
///
|
///
|
||||||
/// If [registerTestTextInput] returns true when this method is called,
|
/// If [registerTestTextInput] returns true when this method is called,
|
||||||
/// the [testTextInput] is configured to simulate the keyboard.
|
/// the [testTextInput] is configured to simulate the keyboard.
|
||||||
void reset() {
|
void reset() {
|
||||||
assert(_surfaceSize == null);
|
|
||||||
_preTestViewConfiguration = renderView.configuration;
|
|
||||||
_restorationManager = null;
|
_restorationManager = null;
|
||||||
resetGestureBinding();
|
resetGestureBinding();
|
||||||
testTextInput.reset();
|
testTextInput.reset();
|
||||||
@ -951,16 +942,6 @@ abstract class TestWidgetsFlutterBinding extends BindingBase
|
|||||||
'active mouse gesture to remove the mouse pointer.');
|
'active mouse gesture to remove the mouse pointer.');
|
||||||
// ignore: invalid_use_of_visible_for_testing_member
|
// ignore: invalid_use_of_visible_for_testing_member
|
||||||
RendererBinding.instance!.initMouseTracker();
|
RendererBinding.instance!.initMouseTracker();
|
||||||
// Reset _surfaceSize and renderView.configuration.
|
|
||||||
//
|
|
||||||
// The _surfaceSize and renderView.configuration might be set within a
|
|
||||||
// test, but such changes should not be carried over. The
|
|
||||||
// renderView.configuration might also be set outside of a test, which
|
|
||||||
// *should* be kept between tests. Don't use [handleMetricsChanged] because
|
|
||||||
// it contains unwanted side effects.
|
|
||||||
_surfaceSize = null;
|
|
||||||
if (_preTestViewConfiguration != null && _preTestViewConfiguration != renderView.configuration)
|
|
||||||
renderView.configuration = _preTestViewConfiguration!;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
// Copyright 2014 The Flutter Authors. All rights reserved.
|
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
|
||||||
// found in the LICENSE file.
|
|
||||||
|
|
||||||
import 'package:flutter/widgets.dart';
|
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
|
||||||
|
|
||||||
// This file contains tests for [testWidgets]. It is separated from bindings_test.dart
|
|
||||||
// because it relies on a persistent side effect (altered view configuration).
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
final AutomatedTestWidgetsFlutterBinding binding = AutomatedTestWidgetsFlutterBinding();
|
|
||||||
group('testWidgets does not override pre-test viewConfiguration', () {
|
|
||||||
// Many tests are written in this way that a view configuration is set at
|
|
||||||
// the beginning of the file and is expected to take effect throughout the
|
|
||||||
// file.
|
|
||||||
binding.renderView.configuration = TestViewConfiguration(size: const Size(900, 900));
|
|
||||||
|
|
||||||
// Run the same test twice to ensure that the view configuration is as
|
|
||||||
// expected after a test.
|
|
||||||
|
|
||||||
for (int times = 1; times <= 2; times += 1) {
|
|
||||||
testWidgets('test $times', (WidgetTester tester) async {
|
|
||||||
expect(binding.renderView.configuration.size, const Size(900, 900));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
@ -33,26 +33,6 @@ void main() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
group('testWidgets resets the surface size', () {
|
|
||||||
// A setSurfaceSize in one test should not bleed into another test.
|
|
||||||
|
|
||||||
// The next two tests must run in order.
|
|
||||||
int order = 0;
|
|
||||||
|
|
||||||
testWidgets('prepare: one test called setSurfaceSize', (WidgetTester tester) async {
|
|
||||||
assert(order == 0);
|
|
||||||
// This test case is only for preparation. It doesn't need `expect`.
|
|
||||||
binding.setSurfaceSize(const Size(100, 100));
|
|
||||||
order += 1;
|
|
||||||
});
|
|
||||||
|
|
||||||
testWidgets('other tests should still have the default surface size', (WidgetTester tester) async {
|
|
||||||
assert(order == 1);
|
|
||||||
expect(binding.renderView.configuration.size, const Size(800, 600));
|
|
||||||
order += 1;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// The next three tests must run in order -- first using `test`, then `testWidgets`, then `test` again.
|
// The next three tests must run in order -- first using `test`, then `testWidgets`, then `test` again.
|
||||||
|
|
||||||
int order = 0;
|
int order = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user