Skip to content

Commit 019e90f

Browse files
authored
[NNBD] Migrates some rendering tests (flutter#67449)
1 parent 3517412 commit 019e90f

37 files changed

+257
-318
lines changed

packages/flutter/test/rendering/editable_test.dart

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

5-
// @dart = 2.8
6-
75
import 'package:flutter/foundation.dart';
86
import 'package:flutter/material.dart';
97
import 'package:flutter/rendering.dart';
@@ -408,7 +406,7 @@ void main() {
408406
test('ignore key event from web platform', () async {
409407
final TextSelectionDelegate delegate = FakeEditableTextState();
410408
final ViewportOffset viewportOffset = ViewportOffset.zero();
411-
TextSelection currentSelection;
409+
late TextSelection currentSelection;
412410
final RenderEditable editable = RenderEditable(
413411
backgroundCursorColor: Colors.grey,
414412
selectionColor: Colors.black,
@@ -460,7 +458,7 @@ void main() {
460458
test('selects correct place with offsets', () {
461459
final TextSelectionDelegate delegate = FakeEditableTextState();
462460
final ViewportOffset viewportOffset = ViewportOffset.zero();
463-
TextSelection currentSelection;
461+
late TextSelection currentSelection;
464462
final RenderEditable editable = RenderEditable(
465463
backgroundCursorColor: Colors.grey,
466464
selectionColor: Colors.black,
@@ -545,7 +543,7 @@ void main() {
545543
test('selects correct place when offsets are flipped', () {
546544
final TextSelectionDelegate delegate = FakeEditableTextState();
547545
final ViewportOffset viewportOffset = ViewportOffset.zero();
548-
TextSelection currentSelection;
546+
late TextSelection currentSelection;
549547
final RenderEditable editable = RenderEditable(
550548
backgroundCursorColor: Colors.grey,
551549
selectionColor: Colors.black,
@@ -578,7 +576,7 @@ void main() {
578576

579577
test('selection does not flicker as user is dragging', () {
580578
int selectionChangedCount = 0;
581-
TextSelection updatedSelection;
579+
TextSelection? updatedSelection;
582580
final TextSelectionDelegate delegate = FakeEditableTextState();
583581
const TextSpan text = TextSpan(
584582
text: 'abc def ghi',
@@ -630,8 +628,8 @@ void main() {
630628
editable2.selectPositionAt(from: const Offset(30, 2), to: const Offset(48, 2), cause: SelectionChangedCause.drag);
631629
pumpFrame();
632630

633-
expect(updatedSelection.baseOffset, 3);
634-
expect(updatedSelection.extentOffset, 5);
631+
expect(updatedSelection!.baseOffset, 3);
632+
expect(updatedSelection!.extentOffset, 5);
635633
expect(selectionChangedCount, 1);
636634
}, skip: isBrowser); // https://github.com/flutter/flutter/issues/61028
637635

@@ -742,7 +740,7 @@ void main() {
742740
test('arrow keys and delete handle simple text correctly', () async {
743741
final TextSelectionDelegate delegate = FakeEditableTextState();
744742
final ViewportOffset viewportOffset = ViewportOffset.zero();
745-
TextSelection currentSelection;
743+
late TextSelection currentSelection;
746744
final RenderEditable editable = RenderEditable(
747745
backgroundCursorColor: Colors.grey,
748746
selectionColor: Colors.black,
@@ -791,7 +789,7 @@ void main() {
791789
test('arrow keys and delete handle surrogate pairs correctly', () async {
792790
final TextSelectionDelegate delegate = FakeEditableTextState();
793791
final ViewportOffset viewportOffset = ViewportOffset.zero();
794-
TextSelection currentSelection;
792+
late TextSelection currentSelection;
795793
final RenderEditable editable = RenderEditable(
796794
backgroundCursorColor: Colors.grey,
797795
selectionColor: Colors.black,
@@ -841,7 +839,7 @@ void main() {
841839
test('arrow keys and delete handle grapheme clusters correctly', () async {
842840
final TextSelectionDelegate delegate = FakeEditableTextState();
843841
final ViewportOffset viewportOffset = ViewportOffset.zero();
844-
TextSelection currentSelection;
842+
late TextSelection currentSelection;
845843
final RenderEditable editable = RenderEditable(
846844
backgroundCursorColor: Colors.grey,
847845
selectionColor: Colors.black,
@@ -891,7 +889,7 @@ void main() {
891889
test('arrow keys and delete handle surrogate pairs correctly', () async {
892890
final TextSelectionDelegate delegate = FakeEditableTextState();
893891
final ViewportOffset viewportOffset = ViewportOffset.zero();
894-
TextSelection currentSelection;
892+
late TextSelection currentSelection;
895893
final RenderEditable editable = RenderEditable(
896894
backgroundCursorColor: Colors.grey,
897895
selectionColor: Colors.black,
@@ -1048,11 +1046,11 @@ void main() {
10481046
// Give it a width that forces the editable to wrap.
10491047
editable.layout(const BoxConstraints.tightFor(width: 200));
10501048

1051-
final Rect composingRect = editable.getRectForComposingRange(const TextRange(start: 0, end: 20 + 2));
1049+
final Rect composingRect = editable.getRectForComposingRange(const TextRange(start: 0, end: 20 + 2))!;
10521050

10531051
// Since the range covers an entire line, the Rect should also be almost
10541052
// as wide as the entire paragraph (give or take 1 character).
1055-
expect(composingRect?.width, greaterThan(200 - 10));
1053+
expect(composingRect.width, greaterThan(200 - 10));
10561054
}, skip: isBrowser); // https://github.com/flutter/flutter/issues/66089
10571055
});
10581056

packages/flutter/test/rendering/error_test.dart

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

5-
// @dart = 2.8
6-
75
import 'package:flutter_test/flutter_test.dart';
86
import 'package:flutter/rendering.dart';
97
import 'package:flutter/widgets.dart';

packages/flutter/test/rendering/first_frame_test.dart

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

5-
// @dart = 2.8
6-
75
import 'dart:async';
86

97
import 'package:flutter/foundation.dart';
@@ -30,9 +28,4 @@ void main() {
3028
}, skip: !kIsWeb);
3129
}
3230

33-
class TestRenderBinding extends BindingBase with SchedulerBinding, ServicesBinding, GestureBinding, SemanticsBinding, RendererBinding {
34-
@override
35-
void initInstances() {
36-
super.initInstances();
37-
}
38-
}
31+
class TestRenderBinding extends BindingBase with SchedulerBinding, ServicesBinding, GestureBinding, SemanticsBinding, RendererBinding {}

packages/flutter/test/rendering/flex_overflow_test.dart

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

5-
// @dart = 2.8
6-
75
import 'package:flutter_test/flutter_test.dart';
86
import 'package:flutter/widgets.dart';
97

packages/flutter/test/rendering/flex_test.dart

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
// @dart = 2.8
6-
75
import 'package:flutter/foundation.dart';
86
import 'package:flutter/rendering.dart';
97
import 'package:flutter_test/flutter_test.dart';
@@ -28,7 +26,7 @@ void main() {
2826
const double slightlyLarger = 438.8571428571429;
2927
const double slightlySmaller = 438.85714285714283;
3028
final List<dynamic> exceptions = <dynamic>[];
31-
final FlutterExceptionHandler oldHandler = FlutterError.onError;
29+
final FlutterExceptionHandler? oldHandler = FlutterError.onError;
3230
FlutterError.onError = (FlutterErrorDetails details) {
3331
exceptions.add(details.exception);
3432
};

packages/flutter/test/rendering/image_test.dart

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

5-
// @dart = 2.8
6-
75
import 'dart:ui' as ui show Image;
86

97
import 'package:flutter/foundation.dart';
@@ -179,35 +177,35 @@ Future<void> main() async {
179177

180178
test('Render image disposes its image', () async {
181179
final ui.Image image = await createTestImage(width: 10, height: 10, cache: false);
182-
expect(image.debugGetOpenHandleStackTraces().length, 1);
180+
expect(image.debugGetOpenHandleStackTraces()!.length, 1);
183181

184182
final RenderImage renderImage = RenderImage(image: image.clone());
185-
expect(image.debugGetOpenHandleStackTraces().length, 2);
183+
expect(image.debugGetOpenHandleStackTraces()!.length, 2);
186184

187185
renderImage.image = image.clone();
188-
expect(image.debugGetOpenHandleStackTraces().length, 2);
186+
expect(image.debugGetOpenHandleStackTraces()!.length, 2);
189187

190188
renderImage.image = null;
191-
expect(image.debugGetOpenHandleStackTraces().length, 1);
189+
expect(image.debugGetOpenHandleStackTraces()!.length, 1);
192190

193191
image.dispose();
194-
expect(image.debugGetOpenHandleStackTraces().length, 0);
192+
expect(image.debugGetOpenHandleStackTraces()!.length, 0);
195193
}, skip: kIsWeb); // Web doesn't track open image handles.
196194

197195
test('Render image does not dispose its image if setting the same image twice', () async {
198196
final ui.Image image = await createTestImage(width: 10, height: 10, cache: false);
199-
expect(image.debugGetOpenHandleStackTraces().length, 1);
197+
expect(image.debugGetOpenHandleStackTraces()!.length, 1);
200198

201199
final RenderImage renderImage = RenderImage(image: image.clone());
202-
expect(image.debugGetOpenHandleStackTraces().length, 2);
200+
expect(image.debugGetOpenHandleStackTraces()!.length, 2);
203201

204202
renderImage.image = renderImage.image;
205-
expect(image.debugGetOpenHandleStackTraces().length, 2);
203+
expect(image.debugGetOpenHandleStackTraces()!.length, 2);
206204

207205
renderImage.image = null;
208-
expect(image.debugGetOpenHandleStackTraces().length, 1);
206+
expect(image.debugGetOpenHandleStackTraces()!.length, 1);
209207

210208
image.dispose();
211-
expect(image.debugGetOpenHandleStackTraces().length, 0);
209+
expect(image.debugGetOpenHandleStackTraces()!.length, 0);
212210
}, skip: kIsWeb); // Web doesn't track open image handles.
213211
}

packages/flutter/test/rendering/independent_layout_test.dart

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

5-
// @dart = 2.8
6-
75
import 'dart:ui' as ui show window;
86

97
import 'package:flutter/material.dart';
@@ -29,8 +27,8 @@ class TestLayout {
2927
),
3028
);
3129
}
32-
RenderBox root;
33-
RenderBox child;
30+
late RenderBox root;
31+
late RenderBox child;
3432
bool painted = false;
3533
}
3634

packages/flutter/test/rendering/intrinsic_width_test.dart

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

5-
// @dart = 2.8
6-
75
import 'package:flutter/rendering.dart';
86
import '../flutter_test_alternative.dart';
97

packages/flutter/test/rendering/layer_annotations_test.dart

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

5-
// @dart = 2.8
6-
75
import 'dart:ui';
86

9-
import 'package:flutter/foundation.dart';
107
import 'package:flutter/rendering.dart';
118
import 'package:flutter_test/flutter_test.dart';
129
import 'package:vector_math/vector_math_64.dart';
@@ -42,7 +39,7 @@ void main() {
4239
]
4340
).build();
4441

45-
final int result = root.find<int>(Offset.zero);
42+
final int result = root.find<int>(Offset.zero)!;
4643
expect(result, 3);
4744
});
4845

@@ -348,9 +345,9 @@ void main() {
348345
);
349346

350347
void expectOneAnnotation({
351-
@required Offset globalPosition,
352-
@required int value,
353-
@required Offset localPosition,
348+
required Offset globalPosition,
349+
required int value,
350+
required Offset localPosition,
354351
}) {
355352
expect(
356353
root.findAllAnnotations<int>(globalPosition).entries.toList(),
@@ -747,7 +744,7 @@ class _Layers {
747744

748745
final ContainerLayer root;
749746
// Each element must be instance of Layer or _Layers.
750-
final List<Object> children;
747+
final List<Object>? children;
751748
bool _assigned = false;
752749

753750
// Build the layer tree by calling each child's `build`, then append children
@@ -756,8 +753,8 @@ class _Layers {
756753
assert(!_assigned);
757754
_assigned = true;
758755
if (children != null) {
759-
for (final Object child in children) {
760-
Layer layer;
756+
for (final Object child in children!) {
757+
late Layer layer;
761758
if (child is Layer) {
762759
layer = child;
763760
} else if (child is _Layers) {
@@ -775,7 +772,7 @@ class _Layers {
775772
// This layer's [findAnnotation] can be controlled by the given arguments.
776773
class _TestAnnotatedLayer extends Layer {
777774
_TestAnnotatedLayer(this.value, {
778-
@required this.opaque,
775+
required this.opaque,
779776
this.offset = Offset.zero,
780777
this.size,
781778
});
@@ -801,25 +798,25 @@ class _TestAnnotatedLayer extends Layer {
801798
///
802799
/// If [offset] is set, then the offset is applied to the size region before
803800
/// hit testing in [find].
804-
final Size size;
801+
final Size? size;
805802

806803
@override
807-
EngineLayer addToScene(SceneBuilder builder, [Offset layerOffset = Offset.zero]) {
804+
EngineLayer? addToScene(SceneBuilder builder, [Offset layerOffset = Offset.zero]) {
808805
return null;
809806
}
810807

811808
// This implementation is hit when the type is `int` and position is within
812809
// [offset] & [size]. If it is hit, it adds [value] to result and returns
813810
// [opaque]; otherwise it directly returns false.
814811
@override
815-
bool findAnnotations<S>(
812+
bool findAnnotations<S extends Object>(
816813
AnnotationResult<S> result,
817814
Offset localPosition, {
818-
bool onlyFirst,
815+
required bool onlyFirst,
819816
}) {
820817
if (S != int)
821818
return false;
822-
if (size != null && !(offset & size).contains(localPosition))
819+
if (size != null && !(offset & size!).contains(localPosition))
823820
return false;
824821
final Object untypedValue = value;
825822
final S typedValue = untypedValue as S;

packages/flutter/test/rendering/layers_test.dart

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

5-
// @dart = 2.8
6-
75
import 'dart:ui';
86

97
import 'package:flutter/foundation.dart';
@@ -27,23 +25,23 @@ void main() {
2725
expect(inner.debugLayer, null);
2826
expect(boundary.isRepaintBoundary, isTrue);
2927
expect(boundary.debugLayer, isNotNull);
30-
expect(boundary.debugLayer.attached, isTrue); // this time it painted...
28+
expect(boundary.debugLayer!.attached, isTrue); // this time it painted...
3129

3230
root.opacity = 0.0;
3331
pumpFrame(phase: EnginePhase.paint);
3432
expect(inner.isRepaintBoundary, isFalse);
3533
expect(inner.debugLayer, null);
3634
expect(boundary.isRepaintBoundary, isTrue);
3735
expect(boundary.debugLayer, isNotNull);
38-
expect(boundary.debugLayer.attached, isFalse); // this time it did not.
36+
expect(boundary.debugLayer!.attached, isFalse); // this time it did not.
3937

4038
root.opacity = 0.5;
4139
pumpFrame(phase: EnginePhase.paint);
4240
expect(inner.isRepaintBoundary, isFalse);
4341
expect(inner.debugLayer, null);
4442
expect(boundary.isRepaintBoundary, isTrue);
4543
expect(boundary.debugLayer, isNotNull);
46-
expect(boundary.debugLayer.attached, isTrue); // this time it did again!
44+
expect(boundary.debugLayer!.attached, isTrue); // this time it did again!
4745
});
4846

4947
test('updateSubtreeNeedsAddToScene propagates Layer.alwaysNeedsAddToScene up the tree', () {
@@ -410,7 +408,7 @@ void main() {
410408
void _testConflicts(
411409
PhysicalModelLayer layerA,
412410
PhysicalModelLayer layerB, {
413-
@required int expectedErrorCount,
411+
required int expectedErrorCount,
414412
bool enableCheck = true,
415413
}) {
416414
assert(expectedErrorCount != null);

0 commit comments

Comments
 (0)