Unverified Commit 7181c7a8 authored by Greg Spencer's avatar Greg Spencer Committed by GitHub

Convert some more widget tests to NNBD (#68160)

parent ef205f7e
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:flutter/physics.dart'; import 'package:flutter/physics.dart';
...@@ -46,10 +44,10 @@ class TestBehavior extends ScrollBehavior { ...@@ -46,10 +44,10 @@ class TestBehavior extends ScrollBehavior {
} }
class TestScrollPhysics extends ClampingScrollPhysics { class TestScrollPhysics extends ClampingScrollPhysics {
const TestScrollPhysics({ ScrollPhysics parent }) : super(parent: parent); const TestScrollPhysics({ ScrollPhysics? parent }) : super(parent: parent);
@override @override
TestScrollPhysics applyTo(ScrollPhysics ancestor) { TestScrollPhysics applyTo(ScrollPhysics? ancestor) {
return TestScrollPhysics(parent: parent?.applyTo(ancestor) ?? ancestor); return TestScrollPhysics(parent: parent?.applyTo(ancestor) ?? ancestor);
} }
...@@ -59,9 +57,9 @@ class TestScrollPhysics extends ClampingScrollPhysics { ...@@ -59,9 +57,9 @@ class TestScrollPhysics extends ClampingScrollPhysics {
class TestViewportScrollPosition extends ScrollPositionWithSingleContext { class TestViewportScrollPosition extends ScrollPositionWithSingleContext {
TestViewportScrollPosition({ TestViewportScrollPosition({
ScrollPhysics physics, required ScrollPhysics physics,
ScrollContext context, required ScrollContext context,
ScrollPosition oldPosition, ScrollPosition? oldPosition,
}) : super(physics: physics, context: context, oldPosition: oldPosition); }) : super(physics: physics, context: context, oldPosition: oldPosition);
@override @override
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
...@@ -404,8 +402,8 @@ List<Widget> createSwitchedChildList(List<Widget> childList, int i, int j) { ...@@ -404,8 +402,8 @@ List<Widget> createSwitchedChildList(List<Widget> childList, int i, int j) {
class SwitchingChildBuilderTest extends StatefulWidget { class SwitchingChildBuilderTest extends StatefulWidget {
const SwitchingChildBuilderTest({ const SwitchingChildBuilderTest({
this.children, required this.children,
Key key, Key? key,
}) : super(key: key); }) : super(key: key);
final List<Widget> children; final List<Widget> children;
...@@ -415,8 +413,8 @@ class SwitchingChildBuilderTest extends StatefulWidget { ...@@ -415,8 +413,8 @@ class SwitchingChildBuilderTest extends StatefulWidget {
} }
class _SwitchingChildBuilderTest extends State<SwitchingChildBuilderTest> { class _SwitchingChildBuilderTest extends State<SwitchingChildBuilderTest> {
List<Widget> children; late List<Widget> children;
Map<Key, int> _mapKeyToIndex; late Map<Key, int> _mapKeyToIndex;
@override @override
void initState() { void initState() {
...@@ -424,7 +422,7 @@ class _SwitchingChildBuilderTest extends State<SwitchingChildBuilderTest> { ...@@ -424,7 +422,7 @@ class _SwitchingChildBuilderTest extends State<SwitchingChildBuilderTest> {
children = widget.children; children = widget.children;
_mapKeyToIndex = <Key, int>{}; _mapKeyToIndex = <Key, int>{};
for (int index = 0; index < children.length; index += 1) { for (int index = 0; index < children.length; index += 1) {
final Key key = children[index].key; final Key? key = children[index].key;
if (key != null) { if (key != null) {
_mapKeyToIndex[key] = index; _mapKeyToIndex[key] = index;
} }
...@@ -438,7 +436,7 @@ class _SwitchingChildBuilderTest extends State<SwitchingChildBuilderTest> { ...@@ -438,7 +436,7 @@ class _SwitchingChildBuilderTest extends State<SwitchingChildBuilderTest> {
children = widget.children; children = widget.children;
_mapKeyToIndex = <Key, int>{}; _mapKeyToIndex = <Key, int>{};
for (int index = 0; index < children.length; index += 1) { for (int index = 0; index < children.length; index += 1) {
final Key key = children[index].key; final Key? key = children[index].key;
if (key != null) { if (key != null) {
_mapKeyToIndex[key] = index; _mapKeyToIndex[key] = index;
} }
...@@ -475,9 +473,9 @@ class _SwitchingChildBuilderTest extends State<SwitchingChildBuilderTest> { ...@@ -475,9 +473,9 @@ class _SwitchingChildBuilderTest extends State<SwitchingChildBuilderTest> {
class SwitchingChildListTest extends StatefulWidget { class SwitchingChildListTest extends StatefulWidget {
const SwitchingChildListTest({ const SwitchingChildListTest({
this.children, required this.children,
this.viewportFraction = 1.0, this.viewportFraction = 1.0,
Key key, Key? key,
}) : super(key: key); }) : super(key: key);
final List<Widget> children; final List<Widget> children;
...@@ -512,9 +510,9 @@ class _SwitchingChildListTest extends State<SwitchingChildListTest> { ...@@ -512,9 +510,9 @@ class _SwitchingChildListTest extends State<SwitchingChildListTest> {
class SwitchingSliverListTest extends StatefulWidget { class SwitchingSliverListTest extends StatefulWidget {
const SwitchingSliverListTest({ const SwitchingSliverListTest({
this.children, required this.children,
this.viewportFraction = 1.0, this.viewportFraction = 1.0,
Key key, Key? key,
}) : super(key: key); }) : super(key: key);
final List<Widget> children; final List<Widget> children;
...@@ -548,9 +546,9 @@ class _SwitchingSliverListTest extends State<SwitchingSliverListTest> { ...@@ -548,9 +546,9 @@ class _SwitchingSliverListTest extends State<SwitchingSliverListTest> {
class WidgetTest0 extends StatefulWidget { class WidgetTest0 extends StatefulWidget {
const WidgetTest0({ const WidgetTest0({
this.text, required this.text,
this.keepAlive = false, this.keepAlive = false,
Key key, Key? key,
}) : super(key: key); }) : super(key: key);
final String text; final String text;
...@@ -581,9 +579,9 @@ class _WidgetTest0State extends State<WidgetTest0> with AutomaticKeepAliveClient ...@@ -581,9 +579,9 @@ class _WidgetTest0State extends State<WidgetTest0> with AutomaticKeepAliveClient
class WidgetTest1 extends StatefulWidget { class WidgetTest1 extends StatefulWidget {
const WidgetTest1({ const WidgetTest1({
this.text, required this.text,
this.keepAlive = false, this.keepAlive = false,
Key key, Key? key,
}) : super(key: key); }) : super(key: key);
final String text; final String text;
...@@ -614,9 +612,9 @@ class _WidgetTest1State extends State<WidgetTest1> with AutomaticKeepAliveClient ...@@ -614,9 +612,9 @@ class _WidgetTest1State extends State<WidgetTest1> with AutomaticKeepAliveClient
class WidgetTest2 extends StatefulWidget { class WidgetTest2 extends StatefulWidget {
const WidgetTest2({ const WidgetTest2({
this.text, required this.text,
this.keepAlive = false, this.keepAlive = false,
Key key, Key? key,
}) : super(key: key); }) : super(key: key);
final String text; final String text;
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
...@@ -544,6 +542,6 @@ void main() { ...@@ -544,6 +542,6 @@ void main() {
), ),
parentUsesSize: true, parentUsesSize: true,
); );
expect(renderObject.geometry.paintOrigin, 10.0); expect(renderObject.geometry!.paintOrigin, 10.0);
}); });
} }
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'dart:math' as math; import 'dart:math' as math;
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
...@@ -11,9 +9,9 @@ import 'package:flutter/rendering.dart'; ...@@ -11,9 +9,9 @@ import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
void verifyPaintPosition(GlobalKey key, Offset ideal) { void verifyPaintPosition(GlobalKey key, Offset ideal) {
final RenderObject target = key.currentContext.findRenderObject(); final RenderObject target = key.currentContext!.findRenderObject()!;
expect(target.parent, isA<RenderViewport>()); expect(target.parent, isA<RenderViewport>());
final SliverPhysicalParentData parentData = target.parentData as SliverPhysicalParentData; final SliverPhysicalParentData parentData = target.parentData! as SliverPhysicalParentData;
final Offset actual = parentData.paintOffset; final Offset actual = parentData.paintOffset;
expect(actual, ideal); expect(actual, ideal);
} }
...@@ -57,7 +55,7 @@ void main() { ...@@ -57,7 +55,7 @@ void main() {
class RenderBigSliver extends RenderSliver { class RenderBigSliver extends RenderSliver {
static const double height = 550.0; static const double height = 550.0;
double get paintExtent => (height - constraints.scrollOffset).clamp(0.0, constraints.remainingPaintExtent) as double; double get paintExtent => (height - constraints.scrollOffset).clamp(0.0, constraints.remainingPaintExtent);
@override @override
void performLayout() { void performLayout() {
...@@ -70,7 +68,7 @@ class RenderBigSliver extends RenderSliver { ...@@ -70,7 +68,7 @@ class RenderBigSliver extends RenderSliver {
} }
class BigSliver extends LeafRenderObjectWidget { class BigSliver extends LeafRenderObjectWidget {
const BigSliver({ Key key }) : super(key: key); const BigSliver({ Key? key }) : super(key: key);
@override @override
RenderBigSliver createRenderObject(BuildContext context) { RenderBigSliver createRenderObject(BuildContext context) {
return RenderBigSliver(); return RenderBigSliver();
...@@ -92,7 +90,7 @@ class RenderOverlappingSliver extends RenderSliver { ...@@ -92,7 +90,7 @@ class RenderOverlappingSliver extends RenderSliver {
} }
double get layoutExtent { double get layoutExtent {
return (totalHeight - constraints.scrollOffset).clamp(0.0, constraints.remainingPaintExtent) as double; return (totalHeight - constraints.scrollOffset).clamp(0.0, constraints.remainingPaintExtent);
} }
@override @override
...@@ -107,7 +105,7 @@ class RenderOverlappingSliver extends RenderSliver { ...@@ -107,7 +105,7 @@ class RenderOverlappingSliver extends RenderSliver {
} }
class OverlappingSliver extends LeafRenderObjectWidget { class OverlappingSliver extends LeafRenderObjectWidget {
const OverlappingSliver({ Key key }) : super(key: key); const OverlappingSliver({ Key? key }) : super(key: key);
@override @override
RenderOverlappingSliver createRenderObject(BuildContext context) { RenderOverlappingSliver createRenderObject(BuildContext context) {
return RenderOverlappingSliver(); return RenderOverlappingSliver();
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
...@@ -51,9 +49,7 @@ Future<void> testSliverFixedExtentList(WidgetTester tester, List<String> items) ...@@ -51,9 +49,7 @@ Future<void> testSliverFixedExtentList(WidgetTester tester, List<String> items)
childCount : items.length, childCount : items.length,
findChildIndexCallback: (Key key) { findChildIndexCallback: (Key key) {
final ValueKey<String> valueKey = key as ValueKey<String>; final ValueKey<String> valueKey = key as ValueKey<String>;
final String data = valueKey.value; return items.indexOf(valueKey.value);
final int index = items.indexOf(data);
return index == -1 ? null : index;
}, },
), ),
), ),
...@@ -68,7 +64,7 @@ void verify(WidgetTester tester, List<Offset> idealPositions, List<bool> idealVi ...@@ -68,7 +64,7 @@ void verify(WidgetTester tester, List<Offset> idealPositions, List<bool> idealVi
(RenderBox target) => target.localToGlobal(const Offset(0.0, 0.0)) (RenderBox target) => target.localToGlobal(const Offset(0.0, 0.0))
).toList(); ).toList();
final List<bool> actualVisibles = tester.renderObjectList<RenderSliverToBoxAdapter>(find.byType(SliverToBoxAdapter, skipOffstage: false)).map<bool>( final List<bool> actualVisibles = tester.renderObjectList<RenderSliverToBoxAdapter>(find.byType(SliverToBoxAdapter, skipOffstage: false)).map<bool>(
(RenderSliverToBoxAdapter target) => target.geometry.visible (RenderSliverToBoxAdapter target) => target.geometry!.visible
).toList(); ).toList();
expect(actualPositions, equals(idealPositions)); expect(actualPositions, equals(idealPositions));
expect(actualVisibles, equals(idealVisibles)); expect(actualVisibles, equals(idealVisibles));
...@@ -497,7 +493,7 @@ void main() { ...@@ -497,7 +493,7 @@ void main() {
addRepaintBoundaries: false, addRepaintBoundaries: false,
addSemanticIndexes: false, addSemanticIndexes: false,
); );
final KeyedSubtree wrapped = builderThrowsDelegate.build(_NullBuildContext(), 0) as KeyedSubtree; final KeyedSubtree wrapped = builderThrowsDelegate.build(_NullBuildContext(), 0)! as KeyedSubtree;
expect(wrapped.child, errorText); expect(wrapped.child, errorText);
expect(tester.takeException(), 'builder'); expect(tester.takeException(), 'builder');
ErrorWidget.builder = oldBuilder; ErrorWidget.builder = oldBuilder;
...@@ -614,8 +610,8 @@ void main() { ...@@ -614,8 +610,8 @@ void main() {
expect(semantics.nodesWith(label: 'a'), hasLength(0)); expect(semantics.nodesWith(label: 'a'), hasLength(0));
expect(find.byType(Text), findsNothing); expect(find.byType(Text), findsNothing);
final RenderViewport renderViewport = tester.renderObject(find.byType(Viewport)); final RenderViewport renderViewport = tester.renderObject(find.byType(Viewport));
final RenderSliver renderSliver = renderViewport.lastChild; final RenderSliver renderSliver = renderViewport.lastChild!;
expect(renderSliver.geometry.scrollExtent, 0.0); expect(renderSliver.geometry!.scrollExtent, 0.0);
expect(find.byType(SliverOffstage), findsNothing); expect(find.byType(SliverOffstage), findsNothing);
}); });
...@@ -633,8 +629,8 @@ void main() { ...@@ -633,8 +629,8 @@ void main() {
expect(semantics.nodesWith(label: 'a'), hasLength(1)); expect(semantics.nodesWith(label: 'a'), hasLength(1));
expect(find.byType(Text), findsOneWidget); expect(find.byType(Text), findsOneWidget);
final RenderViewport renderViewport = tester.renderObject(find.byType(Viewport)); final RenderViewport renderViewport = tester.renderObject(find.byType(Viewport));
final RenderSliver renderSliver = renderViewport.lastChild; final RenderSliver renderSliver = renderViewport.lastChild!;
expect(renderSliver.geometry.scrollExtent, 14.0); expect(renderSliver.geometry!.scrollExtent, 14.0);
expect(find.byType(SliverOffstage), paints..paragraph()); expect(find.byType(SliverOffstage), paints..paragraph());
}); });
}); });
...@@ -945,7 +941,7 @@ bool sameHorizontal(Offset a, Offset b) => b.dy == a.dy; ...@@ -945,7 +941,7 @@ bool sameHorizontal(Offset a, Offset b) => b.dy == a.dy;
bool sameVertical(Offset a, Offset b) => b.dx == a.dx; bool sameVertical(Offset a, Offset b) => b.dx == a.dx;
class TestSliverGrid extends StatelessWidget { class TestSliverGrid extends StatelessWidget {
const TestSliverGrid(this.children, { Key key }) : super(key: key); const TestSliverGrid(this.children, { Key? key }) : super(key: key);
final List<Widget> children; final List<Widget> children;
...@@ -1003,7 +999,7 @@ class _TestArbitrarySliverGridLayout implements SliverGridLayout { ...@@ -1003,7 +999,7 @@ class _TestArbitrarySliverGridLayout implements SliverGridLayout {
} }
class TestSliverFixedExtentList extends StatelessWidget { class TestSliverFixedExtentList extends StatelessWidget {
const TestSliverFixedExtentList(this.children, { Key key }) : super(key: key); const TestSliverFixedExtentList(this.children, { Key? key }) : super(key: key);
final List<Widget> children; final List<Widget> children;
...@@ -1026,7 +1022,7 @@ class TestSliverFixedExtentList extends StatelessWidget { ...@@ -1026,7 +1022,7 @@ class TestSliverFixedExtentList extends StatelessWidget {
} }
class KeepAlive extends StatefulWidget { class KeepAlive extends StatefulWidget {
const KeepAlive(this.data, { Key key }) : super(key: key); const KeepAlive(this.data, { Key? key }) : super(key: key);
final String data; final String data;
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
...@@ -61,7 +59,7 @@ void main() { ...@@ -61,7 +59,7 @@ void main() {
StackParentData parentData; StackParentData parentData;
container = tester.element(find.byKey(key)); container = tester.element(find.byKey(key));
parentData = container.renderObject.parentData as StackParentData; parentData = container.renderObject!.parentData! as StackParentData;
expect(parentData.top, isNull); expect(parentData.top, isNull);
expect(parentData.right, isNull); expect(parentData.right, isNull);
expect(parentData.bottom, isNull); expect(parentData.bottom, isNull);
...@@ -86,7 +84,7 @@ void main() { ...@@ -86,7 +84,7 @@ void main() {
); );
container = tester.element(find.byKey(key)); container = tester.element(find.byKey(key));
parentData = container.renderObject.parentData as StackParentData; parentData = container.renderObject!.parentData! as StackParentData;
expect(parentData.top, isNull); expect(parentData.top, isNull);
expect(parentData.right, equals(10.0)); expect(parentData.right, equals(10.0));
expect(parentData.bottom, isNull); expect(parentData.bottom, isNull);
...@@ -108,7 +106,7 @@ void main() { ...@@ -108,7 +106,7 @@ void main() {
Element containerElement = tester.element(find.byKey(key)); Element containerElement = tester.element(find.byKey(key));
StackParentData parentData; StackParentData parentData;
parentData = containerElement.renderObject.parentData as StackParentData; parentData = containerElement.renderObject!.parentData! as StackParentData;
expect(parentData.top, isNull); expect(parentData.top, isNull);
expect(parentData.right, isNull); expect(parentData.right, isNull);
expect(parentData.bottom, isNull); expect(parentData.bottom, isNull);
...@@ -124,7 +122,7 @@ void main() { ...@@ -124,7 +122,7 @@ void main() {
); );
containerElement = tester.element(find.byKey(key)); containerElement = tester.element(find.byKey(key));
parentData = containerElement.renderObject.parentData as StackParentData; parentData = containerElement.renderObject!.parentData! as StackParentData;
expect(parentData.top, isNull); expect(parentData.top, isNull);
expect(parentData.right, isNull); expect(parentData.right, isNull);
expect(parentData.bottom, isNull); expect(parentData.bottom, isNull);
...@@ -153,11 +151,11 @@ void main() { ...@@ -153,11 +151,11 @@ void main() {
); );
final Element child0 = tester.element(find.byKey(child0Key)); final Element child0 = tester.element(find.byKey(child0Key));
final StackParentData child0RenderObjectParentData = child0.renderObject.parentData as StackParentData; final StackParentData child0RenderObjectParentData = child0.renderObject!.parentData! as StackParentData;
expect(child0RenderObjectParentData.offset, equals(const Offset(0.0, 0.0))); expect(child0RenderObjectParentData.offset, equals(const Offset(0.0, 0.0)));
final Element child1 = tester.element(find.byKey(child1Key)); final Element child1 = tester.element(find.byKey(child1Key));
final StackParentData child1RenderObjectParentData = child1.renderObject.parentData as StackParentData; final StackParentData child1RenderObjectParentData = child1.renderObject!.parentData! as StackParentData;
expect(child1RenderObjectParentData.offset, equals(const Offset(5.0, 5.0))); expect(child1RenderObjectParentData.offset, equals(const Offset(5.0, 5.0)));
await tester.pumpWidget( await tester.pumpWidget(
...@@ -199,11 +197,11 @@ void main() { ...@@ -199,11 +197,11 @@ void main() {
); );
final Element child0 = tester.element(find.byKey(child0Key)); final Element child0 = tester.element(find.byKey(child0Key));
final StackParentData child0RenderObjectParentData = child0.renderObject.parentData as StackParentData; final StackParentData child0RenderObjectParentData = child0.renderObject!.parentData! as StackParentData;
expect(child0RenderObjectParentData.offset, equals(const Offset(0.0, 0.0))); expect(child0RenderObjectParentData.offset, equals(const Offset(0.0, 0.0)));
final Element child1 = tester.element(find.byKey(child1Key)); final Element child1 = tester.element(find.byKey(child1Key));
final StackParentData child1RenderObjectParentData = child1.renderObject.parentData as StackParentData; final StackParentData child1RenderObjectParentData = child1.renderObject!.parentData! as StackParentData;
expect(child1RenderObjectParentData.offset, equals(const Offset(5.0, 5.0))); expect(child1RenderObjectParentData.offset, equals(const Offset(5.0, 5.0)));
await tester.pumpWidget( await tester.pumpWidget(
...@@ -245,7 +243,7 @@ void main() { ...@@ -245,7 +243,7 @@ void main() {
testWidgets('Can construct an IndexedStack', (WidgetTester tester) async { testWidgets('Can construct an IndexedStack', (WidgetTester tester) async {
const int itemCount = 3; const int itemCount = 3;
List<int> itemsPainted; late List<int> itemsPainted;
Widget buildFrame(int index) { Widget buildFrame(int index) {
itemsPainted = <int>[]; itemsPainted = <int>[];
...@@ -282,7 +280,7 @@ void main() { ...@@ -282,7 +280,7 @@ void main() {
testWidgets('Can hit test an IndexedStack', (WidgetTester tester) async { testWidgets('Can hit test an IndexedStack', (WidgetTester tester) async {
const Key key = Key('indexedStack'); const Key key = Key('indexedStack');
const int itemCount = 3; const int itemCount = 3;
List<int> itemsTapped; late List<int> itemsTapped;
Widget buildFrame(int index) { Widget buildFrame(int index) {
itemsTapped = <int>[]; itemsTapped = <int>[];
...@@ -336,8 +334,8 @@ void main() { ...@@ -336,8 +334,8 @@ void main() {
StackParentData parentData; StackParentData parentData;
box = tester.element(find.byKey(key)); box = tester.element(find.byKey(key));
renderBox = box.renderObject as RenderBox; renderBox = box.renderObject! as RenderBox;
parentData = renderBox.parentData as StackParentData; parentData = renderBox.parentData! as StackParentData;
expect(parentData.top, isNull); expect(parentData.top, isNull);
expect(parentData.right, isNull); expect(parentData.right, isNull);
expect(parentData.bottom, isNull); expect(parentData.bottom, isNull);
...@@ -364,8 +362,8 @@ void main() { ...@@ -364,8 +362,8 @@ void main() {
); );
box = tester.element(find.byKey(key)); box = tester.element(find.byKey(key));
renderBox = box.renderObject as RenderBox; renderBox = box.renderObject! as RenderBox;
parentData = renderBox.parentData as StackParentData; parentData = renderBox.parentData! as StackParentData;
expect(parentData.top, isNull); expect(parentData.top, isNull);
expect(parentData.right, equals(10.0)); expect(parentData.right, equals(10.0));
expect(parentData.bottom, isNull); expect(parentData.bottom, isNull);
...@@ -388,7 +386,7 @@ void main() { ...@@ -388,7 +386,7 @@ void main() {
}); });
testWidgets('IndexedStack with null index', (WidgetTester tester) async { testWidgets('IndexedStack with null index', (WidgetTester tester) async {
bool tapped; bool? tapped;
await tester.pumpWidget( await tester.pumpWidget(
Directionality( Directionality(
......
...@@ -2,13 +2,11 @@ ...@@ -2,13 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
class Foo extends StatefulWidget { class Foo extends StatefulWidget {
const Foo({ Key key }) : super(key: key); const Foo({ Key? key }) : super(key: key);
@override @override
FooState createState() => FooState(); FooState createState() => FooState();
} }
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
......
...@@ -2,13 +2,11 @@ ...@@ -2,13 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
class InnerWidget extends StatefulWidget { class InnerWidget extends StatefulWidget {
const InnerWidget({ Key key }) : super(key: key); const InnerWidget({ Key? key }) : super(key: key);
@override @override
InnerWidgetState createState() => InnerWidgetState(); InnerWidgetState createState() => InnerWidgetState();
...@@ -30,7 +28,7 @@ class InnerWidgetState extends State<InnerWidget> { ...@@ -30,7 +28,7 @@ class InnerWidgetState extends State<InnerWidget> {
} }
class OuterContainer extends StatefulWidget { class OuterContainer extends StatefulWidget {
const OuterContainer({ Key key, this.child }) : super(key: key); const OuterContainer({ Key? key, required this.child }) : super(key: key);
final InnerWidget child; final InnerWidget child;
...@@ -61,7 +59,7 @@ void main() { ...@@ -61,7 +59,7 @@ void main() {
final InnerWidgetState innerElementState = innerElement.state as InnerWidgetState; final InnerWidgetState innerElementState = innerElement.state as InnerWidgetState;
expect(innerElementState.widget, equals(inner1)); expect(innerElementState.widget, equals(inner1));
expect(innerElementState._didInitState, isTrue); expect(innerElementState._didInitState, isTrue);
expect(innerElement.renderObject.attached, isTrue); expect(innerElement.renderObject!.attached, isTrue);
inner2 = const InnerWidget(key: innerKey); inner2 = const InnerWidget(key: innerKey);
outer2 = OuterContainer(key: outerKey, child: inner2); outer2 = OuterContainer(key: outerKey, child: inner2);
...@@ -73,7 +71,7 @@ void main() { ...@@ -73,7 +71,7 @@ void main() {
expect(innerElementState.widget, equals(inner2)); expect(innerElementState.widget, equals(inner2));
expect(innerElementState._didInitState, isTrue); expect(innerElementState._didInitState, isTrue);
expect(innerElement.renderObject.attached, isTrue); expect(innerElement.renderObject!.attached, isTrue);
final StatefulElement outerElement = tester.element(find.byKey(outerKey)); final StatefulElement outerElement = tester.element(find.byKey(outerKey));
expect(outerElement.state.widget, equals(outer2)); expect(outerElement.state.widget, equals(outer2));
...@@ -83,6 +81,6 @@ void main() { ...@@ -83,6 +81,6 @@ void main() {
expect(tester.element(find.byKey(innerKey)), equals(innerElement)); expect(tester.element(find.byKey(innerKey)), equals(innerElement));
expect(innerElement.state, equals(innerElementState)); expect(innerElement.state, equals(innerElementState));
expect(innerElementState.widget, equals(inner2)); expect(innerElementState.widget, equals(inner2));
expect(innerElement.renderObject.attached, isTrue); expect(innerElement.renderObject!.attached, isTrue);
}); });
} }
...@@ -2,16 +2,14 @@ ...@@ -2,16 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
class TestStatusTransitionWidget extends StatusTransitionWidget { class TestStatusTransitionWidget extends StatusTransitionWidget {
const TestStatusTransitionWidget({ const TestStatusTransitionWidget({
Key key, Key? key,
this.builder, required this.builder,
Animation<double> animation, required Animation<double> animation,
}) : super(key: key, animation: animation); }) : super(key: key, animation: animation);
final WidgetBuilder builder; final WidgetBuilder builder;
......
...@@ -2,17 +2,15 @@ ...@@ -2,17 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
class TestWidget extends StatefulWidget { class TestWidget extends StatefulWidget {
const TestWidget({ const TestWidget({
Key key, Key? key,
this.child, required this.child,
this.persistentState, required this.persistentState,
this.syncedState, required this.syncedState,
}) : super(key: key); }) : super(key: key);
final Widget child; final Widget child;
...@@ -24,8 +22,8 @@ class TestWidget extends StatefulWidget { ...@@ -24,8 +22,8 @@ class TestWidget extends StatefulWidget {
} }
class TestWidgetState extends State<TestWidget> { class TestWidgetState extends State<TestWidget> {
int persistentState; late int persistentState;
int syncedState; late int syncedState;
int updates = 0; int updates = 0;
@override @override
...@@ -56,6 +54,7 @@ void main() { ...@@ -56,6 +54,7 @@ void main() {
child: Container( child: Container(
child: TestWidget( child: TestWidget(
persistentState: 1, persistentState: 1,
syncedState: 0,
child: Container(), child: Container(),
), ),
), ),
...@@ -72,6 +71,7 @@ void main() { ...@@ -72,6 +71,7 @@ void main() {
child: Container( child: Container(
child: TestWidget( child: TestWidget(
persistentState: 2, persistentState: 2,
syncedState: 0,
child: Container(), child: Container(),
), ),
), ),
...@@ -90,6 +90,7 @@ void main() { ...@@ -90,6 +90,7 @@ void main() {
child: Container( child: Container(
child: TestWidget( child: TestWidget(
persistentState: 10, persistentState: 10,
syncedState: 0,
child: Container(), child: Container(),
), ),
), ),
...@@ -105,6 +106,7 @@ void main() { ...@@ -105,6 +106,7 @@ void main() {
Container( Container(
child: TestWidget( child: TestWidget(
persistentState: 11, persistentState: 11,
syncedState: 0,
child: Container(), child: Container(),
), ),
), ),
......
...@@ -2,15 +2,13 @@ ...@@ -2,15 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class TestStatefulWidget extends StatefulWidget { class TestStatefulWidget extends StatefulWidget {
const TestStatefulWidget({ Key key }) : super(key: key); const TestStatefulWidget({ Key? key }) : super(key: key);
@override @override
TestStatefulWidgetState createState() => TestStatefulWidgetState(); TestStatefulWidgetState createState() => TestStatefulWidgetState();
...@@ -22,7 +20,7 @@ class TestStatefulWidgetState extends State<TestStatefulWidget> { ...@@ -22,7 +20,7 @@ class TestStatefulWidgetState extends State<TestStatefulWidget> {
} }
class TestChildWidget extends StatefulWidget { class TestChildWidget extends StatefulWidget {
const TestChildWidget({ Key key }) : super(key: key); const TestChildWidget({ Key? key }) : super(key: key);
@override @override
TestChildState createState() => TestChildState(); TestChildState createState() => TestChildState();
...@@ -877,7 +875,7 @@ void main() { ...@@ -877,7 +875,7 @@ void main() {
), ),
); );
await tester.pumpWidget(table); await tester.pumpWidget(table);
final RenderObjectElement element = key0.currentContext as RenderObjectElement; final RenderObjectElement element = key0.currentContext! as RenderObjectElement;
expect(element, hasAGoodToStringDeep); expect(element, hasAGoodToStringDeep);
expect( expect(
element.toStringDeep(minLevel: DiagnosticLevel.info), element.toStringDeep(minLevel: DiagnosticLevel.info),
...@@ -959,7 +957,7 @@ void main() { ...@@ -959,7 +957,7 @@ void main() {
testWidgets( testWidgets(
'Table widget requires all TableRows to have non-null children', 'Table widget requires all TableRows to have non-null children',
(WidgetTester tester) async { (WidgetTester tester) async {
FlutterError error; FlutterError? error;
try { try {
await tester.pumpWidget( await tester.pumpWidget(
Directionality( Directionality(
...@@ -976,7 +974,7 @@ void main() { ...@@ -976,7 +974,7 @@ void main() {
error = e; error = e;
} finally { } finally {
expect(error, isNotNull); expect(error, isNotNull);
expect(error.toStringDeep(), contains('The children property of TableRow must not be null.')); expect(error!.toStringDeep(), contains('The children property of TableRow must not be null.'));
} }
}); });
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
@TestOn('!chrome') // Flaky on web @TestOn('!chrome') // Flaky on web
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/gestures.dart' show PointerDeviceKind; import 'package:flutter/gestures.dart' show PointerDeviceKind;
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
...@@ -18,7 +16,7 @@ class MockClipboard { ...@@ -18,7 +16,7 @@ class MockClipboard {
final bool getDataThrows; final bool getDataThrows;
Object _clipboardData = <String, dynamic>{ dynamic _clipboardData = <String, dynamic>{
'text': null, 'text': null,
}; };
...@@ -36,16 +34,16 @@ class MockClipboard { ...@@ -36,16 +34,16 @@ class MockClipboard {
} }
void main() { void main() {
int tapCount; late int tapCount;
int singleTapUpCount; late int singleTapUpCount;
int singleTapCancelCount; late int singleTapCancelCount;
int singleLongTapStartCount; late int singleLongTapStartCount;
int doubleTapDownCount; late int doubleTapDownCount;
int forcePressStartCount; late int forcePressStartCount;
int forcePressEndCount; late int forcePressEndCount;
int dragStartCount; late int dragStartCount;
int dragUpdateCount; late int dragUpdateCount;
int dragEndCount; late int dragEndCount;
const Offset forcePressOffset = Offset(400.0, 50.0); const Offset forcePressOffset = Offset(400.0, 50.0);
void _handleTapDown(TapDownDetails details) { tapCount++; } void _handleTapDown(TapDownDetails details) { tapCount++; }
...@@ -687,9 +685,9 @@ void main() { ...@@ -687,9 +685,9 @@ void main() {
class FakeTextSelectionGestureDetectorBuilderDelegate implements TextSelectionGestureDetectorBuilderDelegate { class FakeTextSelectionGestureDetectorBuilderDelegate implements TextSelectionGestureDetectorBuilderDelegate {
FakeTextSelectionGestureDetectorBuilderDelegate({ FakeTextSelectionGestureDetectorBuilderDelegate({
this.editableTextKey, required this.editableTextKey,
this.forcePressEnabled, required this.forcePressEnabled,
this.selectionEnabled, required this.selectionEnabled,
}); });
@override @override
...@@ -703,7 +701,7 @@ class FakeTextSelectionGestureDetectorBuilderDelegate implements TextSelectionGe ...@@ -703,7 +701,7 @@ class FakeTextSelectionGestureDetectorBuilderDelegate implements TextSelectionGe
} }
class FakeEditableText extends EditableText { class FakeEditableText extends EditableText {
FakeEditableText({Key key}): super( FakeEditableText({Key? key}): super(
key: key, key: key,
controller: TextEditingController(), controller: TextEditingController(),
focusNode: FocusNode(), focusNode: FocusNode(),
...@@ -721,7 +719,7 @@ class FakeEditableTextState extends EditableTextState { ...@@ -721,7 +719,7 @@ class FakeEditableTextState extends EditableTextState {
bool showToolbarCalled = false; bool showToolbarCalled = false;
@override @override
RenderEditable get renderEditable => _editableKey.currentContext.findRenderObject() as RenderEditable; RenderEditable get renderEditable => _editableKey.currentContext!.findRenderObject()! as RenderEditable;
@override @override
bool showToolbar() { bool showToolbar() {
...@@ -739,7 +737,7 @@ class FakeEditableTextState extends EditableTextState { ...@@ -739,7 +737,7 @@ class FakeEditableTextState extends EditableTextState {
class FakeEditable extends LeafRenderObjectWidget { class FakeEditable extends LeafRenderObjectWidget {
const FakeEditable( const FakeEditable(
this.delegate, { this.delegate, {
Key key, Key? key,
}) : super(key: key); }) : super(key: key);
final EditableTextState delegate; final EditableTextState delegate;
...@@ -769,25 +767,25 @@ class FakeRenderEditable extends RenderEditable { ...@@ -769,25 +767,25 @@ class FakeRenderEditable extends RenderEditable {
bool selectWordsInRangeCalled = false; bool selectWordsInRangeCalled = false;
@override @override
void selectWordsInRange({ @required Offset from, Offset to, @required SelectionChangedCause cause }) { void selectWordsInRange({ required Offset from, Offset? to, required SelectionChangedCause cause }) {
selectWordsInRangeCalled = true; selectWordsInRangeCalled = true;
} }
bool selectWordEdgeCalled = false; bool selectWordEdgeCalled = false;
@override @override
void selectWordEdge({ @required SelectionChangedCause cause }) { void selectWordEdge({ required SelectionChangedCause cause }) {
selectWordEdgeCalled = true; selectWordEdgeCalled = true;
} }
bool selectPositionAtCalled = false; bool selectPositionAtCalled = false;
@override @override
void selectPositionAt({ @required Offset from, Offset to, @required SelectionChangedCause cause }) { void selectPositionAt({ required Offset from, Offset? to, required SelectionChangedCause cause }) {
selectPositionAtCalled = true; selectPositionAtCalled = true;
} }
bool selectWordCalled = false; bool selectWordCalled = false;
@override @override
void selectWord({ @required SelectionChangedCause cause }) { void selectWord({ required SelectionChangedCause cause }) {
selectWordCalled = true; selectWordCalled = true;
} }
} }
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/gestures.dart'; import 'package:flutter/gestures.dart';
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'dart:ui' as ui; import 'dart:ui' as ui;
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
...@@ -127,7 +125,7 @@ void main() { ...@@ -127,7 +125,7 @@ void main() {
final RichText text = tester.firstWidget(find.byType(RichText)); final RichText text = tester.firstWidget(find.byType(RichText));
expect(text, isNotNull); expect(text, isNotNull);
expect(text.text.style.fontSize, 20.0); expect(text.text.style!.fontSize, 20.0);
}); });
testWidgets('inline widgets works with ellipsis', (WidgetTester tester) async { testWidgets('inline widgets works with ellipsis', (WidgetTester tester) async {
...@@ -1007,7 +1005,11 @@ void main() { ...@@ -1007,7 +1005,11 @@ void main() {
}, semanticsEnabled: true, skip: isBrowser); // Browser semantics have different sizes. }, semanticsEnabled: true, skip: isBrowser); // Browser semantics have different sizes.
} }
Future<void> _pumpTextWidget({ WidgetTester tester, String text, TextOverflow overflow }) { Future<void> _pumpTextWidget({
required WidgetTester tester,
required String text,
required TextOverflow overflow,
}) {
return tester.pumpWidget( return tester.pumpWidget(
Directionality( Directionality(
textDirection: TextDirection.ltr, textDirection: TextDirection.ltr,
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
...@@ -29,7 +27,7 @@ void main() { ...@@ -29,7 +27,7 @@ void main() {
final ContainerLayer containerLayer = ContainerLayer(); final ContainerLayer containerLayer = ContainerLayer();
final PaintingContext paintingContext = PaintingContext(containerLayer, Rect.zero); final PaintingContext paintingContext = PaintingContext(containerLayer, Rect.zero);
textureBox.paint(paintingContext, Offset.zero); textureBox.paint(paintingContext, Offset.zero);
final Layer layer = containerLayer.lastChild; final Layer layer = containerLayer.lastChild!;
expect(layer, isNotNull); expect(layer, isNotNull);
final TextureLayer textureLayer = layer as TextureLayer; final TextureLayer textureLayer = layer as TextureLayer;
expect(textureLayer, isNotNull); expect(textureLayer, isNotNull);
...@@ -58,7 +56,7 @@ void main() { ...@@ -58,7 +56,7 @@ void main() {
final ContainerLayer containerLayer = ContainerLayer(); final ContainerLayer containerLayer = ContainerLayer();
final PaintingContext paintingContext = PaintingContext(containerLayer, Rect.zero); final PaintingContext paintingContext = PaintingContext(containerLayer, Rect.zero);
textureBox.paint(paintingContext, Offset.zero); textureBox.paint(paintingContext, Offset.zero);
final Layer layer = containerLayer.lastChild; final Layer layer = containerLayer.lastChild!;
expect(layer, isNotNull); expect(layer, isNotNull);
final TextureLayer textureLayer = layer as TextureLayer; final TextureLayer textureLayer = layer as TextureLayer;
expect(textureLayer, isNotNull); expect(textureLayer, isNotNull);
...@@ -86,7 +84,7 @@ void main() { ...@@ -86,7 +84,7 @@ void main() {
final ContainerLayer containerLayer = ContainerLayer(); final ContainerLayer containerLayer = ContainerLayer();
final PaintingContext paintingContext = PaintingContext(containerLayer, Rect.zero); final PaintingContext paintingContext = PaintingContext(containerLayer, Rect.zero);
textureBox.paint(paintingContext, Offset.zero); textureBox.paint(paintingContext, Offset.zero);
final Layer layer = containerLayer.lastChild; final Layer layer = containerLayer.lastChild!;
expect(layer, isNotNull); expect(layer, isNotNull);
final TextureLayer textureLayer = layer as TextureLayer; final TextureLayer textureLayer = layer as TextureLayer;
expect(textureLayer, isNotNull); expect(textureLayer, isNotNull);
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter/scheduler.dart'; import 'package:flutter/scheduler.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
...@@ -13,7 +11,7 @@ void main() { ...@@ -13,7 +11,7 @@ void main() {
int outerTickCount = 0; int outerTickCount = 0;
int innerTickCount = 0; int innerTickCount = 0;
Widget nestedTickerModes({bool innerEnabled, bool outerEnabled}) { Widget nestedTickerModes({required bool innerEnabled, required bool outerEnabled}) {
return Directionality( return Directionality(
textDirection: TextDirection.rtl, textDirection: TextDirection.rtl,
child: TickerMode( child: TickerMode(
...@@ -103,7 +101,7 @@ void main() { ...@@ -103,7 +101,7 @@ void main() {
} }
class _TickingWidget extends StatefulWidget { class _TickingWidget extends StatefulWidget {
const _TickingWidget({this.onTick}); const _TickingWidget({required this.onTick});
final VoidCallback onTick; final VoidCallback onTick;
...@@ -112,7 +110,7 @@ class _TickingWidget extends StatefulWidget { ...@@ -112,7 +110,7 @@ class _TickingWidget extends StatefulWidget {
} }
class _TickingWidgetState extends State<_TickingWidget> with SingleTickerProviderStateMixin { class _TickingWidgetState extends State<_TickingWidget> with SingleTickerProviderStateMixin {
Ticker _ticker; late Ticker _ticker;
@override @override
void initState() { void initState() {
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/scheduler.dart'; import 'package:flutter/scheduler.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
...@@ -104,15 +102,15 @@ void main() { ...@@ -104,15 +102,15 @@ void main() {
child: _SingleTickerTest(key: key), child: _SingleTickerTest(key: key),
); );
await tester.pumpWidget(widget); await tester.pumpWidget(widget);
FlutterError error; FlutterError? error;
key.currentState.controller.repeat(); key.currentState!.controller.repeat();
try { try {
key.currentState.dispose(); key.currentState!.dispose();
} on FlutterError catch (e) { } on FlutterError catch (e) {
error = e; error = e;
} finally { } finally {
expect(error, isNotNull); expect(error, isNotNull);
expect(error.diagnostics.length, 4); expect(error!.diagnostics.length, 4);
expect(error.diagnostics[2].level, DiagnosticLevel.hint); expect(error.diagnostics[2].level, DiagnosticLevel.hint);
expect( expect(
error.diagnostics[2].toStringDeep(), error.diagnostics[2].toStringDeep(),
...@@ -137,7 +135,7 @@ void main() { ...@@ -137,7 +135,7 @@ void main() {
' created))\n' ' created))\n'
' The stack trace when the Ticker was actually created was:' ' The stack trace when the Ticker was actually created was:'
)); ));
key.currentState.controller.stop(); key.currentState!.controller.stop();
} }
}); });
...@@ -147,15 +145,15 @@ void main() { ...@@ -147,15 +145,15 @@ void main() {
child: _SingleTickerTest(key: key), child: _SingleTickerTest(key: key),
); );
await tester.pumpWidget(widget); await tester.pumpWidget(widget);
FlutterError error; FlutterError? error;
key.currentState.controller.repeat(); key.currentState!.controller.repeat();
try { try {
key.currentState.dispose(); key.currentState!.dispose();
} on FlutterError catch (e) { } on FlutterError catch (e) {
error = e; error = e;
} finally { } finally {
expect(error, isNotNull); expect(error, isNotNull);
expect(error.diagnostics.length, 4); expect(error!.diagnostics.length, 4);
expect(error.diagnostics[2].level, DiagnosticLevel.hint); expect(error.diagnostics[2].level, DiagnosticLevel.hint);
expect( expect(
error.diagnostics[2].toStringDeep(), error.diagnostics[2].toStringDeep(),
...@@ -180,7 +178,7 @@ void main() { ...@@ -180,7 +178,7 @@ void main() {
' created))\n' ' created))\n'
' The stack trace when the Ticker was actually created was:' ' The stack trace when the Ticker was actually created was:'
)); ));
key.currentState.controller.stop(); key.currentState!.controller.stop();
} }
}); });
...@@ -190,15 +188,15 @@ void main() { ...@@ -190,15 +188,15 @@ void main() {
child: _MultipleTickerTest(key: key), child: _MultipleTickerTest(key: key),
); );
await tester.pumpWidget(widget); await tester.pumpWidget(widget);
FlutterError error; FlutterError? error;
key.currentState.controllers.first.repeat(); key.currentState!.controllers.first.repeat();
try { try {
key.currentState.dispose(); key.currentState!.dispose();
} on FlutterError catch (e) { } on FlutterError catch (e) {
error = e; error = e;
} finally { } finally {
expect(error, isNotNull); expect(error, isNotNull);
expect(error.diagnostics.length, 4); expect(error!.diagnostics.length, 4);
expect(error.diagnostics[2].level, DiagnosticLevel.hint); expect(error.diagnostics[2].level, DiagnosticLevel.hint);
expect( expect(
error.diagnostics[2].toStringDeep(), error.diagnostics[2].toStringDeep(),
...@@ -223,14 +221,14 @@ void main() { ...@@ -223,14 +221,14 @@ void main() {
' _MultipleTickerTestState#00000(lifecycle state: created,\n' ' _MultipleTickerTestState#00000(lifecycle state: created,\n'
' tickers: tracking 0 tickers))' ' tickers: tracking 0 tickers))'
)); ));
key.currentState.controllers.first.stop(); key.currentState!.controllers.first.stop();
} }
}); });
}); });
} }
class BoringTickerTest extends StatefulWidget { class BoringTickerTest extends StatefulWidget {
const BoringTickerTest({ Key key }) : super(key: key); const BoringTickerTest({ Key? key }) : super(key: key);
@override @override
_BoringTickerTestState createState() => _BoringTickerTestState(); _BoringTickerTestState createState() => _BoringTickerTestState();
} }
...@@ -241,14 +239,14 @@ class _BoringTickerTestState extends State<BoringTickerTest> with SingleTickerPr ...@@ -241,14 +239,14 @@ class _BoringTickerTestState extends State<BoringTickerTest> with SingleTickerPr
} }
class _SingleTickerTest extends StatefulWidget { class _SingleTickerTest extends StatefulWidget {
const _SingleTickerTest({Key key}) : super(key: key); const _SingleTickerTest({Key? key}) : super(key: key);
@override @override
_SingleTickerTestState createState() => _SingleTickerTestState(); _SingleTickerTestState createState() => _SingleTickerTestState();
} }
class _SingleTickerTestState extends State<_SingleTickerTest> with SingleTickerProviderStateMixin { class _SingleTickerTestState extends State<_SingleTickerTest> with SingleTickerProviderStateMixin {
AnimationController controller; late AnimationController controller;
@override @override
void initState() { void initState() {
...@@ -266,7 +264,7 @@ class _SingleTickerTestState extends State<_SingleTickerTest> with SingleTickerP ...@@ -266,7 +264,7 @@ class _SingleTickerTestState extends State<_SingleTickerTest> with SingleTickerP
} }
class _MultipleTickerTest extends StatefulWidget { class _MultipleTickerTest extends StatefulWidget {
const _MultipleTickerTest({Key key}) : super(key: key); const _MultipleTickerTest({Key? key}) : super(key: key);
@override @override
_MultipleTickerTestState createState() => _MultipleTickerTestState(); _MultipleTickerTestState createState() => _MultipleTickerTestState();
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
...@@ -28,18 +26,6 @@ void main() { ...@@ -28,18 +26,6 @@ void main() {
expect(widget.color, equals(const Color(0xFF00FF00))); expect(widget.color, equals(const Color(0xFF00FF00)));
}); });
testWidgets('should not allow null title or color', (WidgetTester tester) async {
expect(() => Title(
title: null,
color: const Color(0xFF00FF00),
child: Container(),
), throwsAssertionError);
expect(() => Title(
color: null,
child: Container(),
), throwsAssertionError);
});
testWidgets('should not allow non-opaque color', (WidgetTester tester) async { testWidgets('should not allow non-opaque color', (WidgetTester tester) async {
expect(() => Title( expect(() => Title(
color: const Color(0x00000000), color: const Color(0x00000000),
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'dart:math' as math; import 'dart:math' as math;
import 'dart:ui' as ui; import 'dart:ui' as ui;
...@@ -255,7 +253,7 @@ void main() { ...@@ -255,7 +253,7 @@ void main() {
expect(layers.length, 2); expect(layers.length, 2);
// The first transform is from the render view. // The first transform is from the render view.
final TransformLayer layer = layers[1] as TransformLayer; final TransformLayer layer = layers[1] as TransformLayer;
final Matrix4 transform = layer.transform; final Matrix4 transform = layer.transform!;
expect(transform.getTranslation(), equals(Vector3(100.0, 75.0, 0.0))); expect(transform.getTranslation(), equals(Vector3(100.0, 75.0, 0.0)));
}); });
...@@ -272,7 +270,7 @@ void main() { ...@@ -272,7 +270,7 @@ void main() {
expect(layers.length, 2); expect(layers.length, 2);
// The first transform is from the render view. // The first transform is from the render view.
final TransformLayer layer = layers[1] as TransformLayer; final TransformLayer layer = layers[1] as TransformLayer;
final Matrix4 transform = layer.transform; final Matrix4 transform = layer.transform!;
expect(transform.storage, <dynamic>[ expect(transform.storage, <dynamic>[
moreOrLessEquals(0.0), 1.0, 0.0, 0.0, moreOrLessEquals(0.0), 1.0, 0.0, 0.0,
-1.0, moreOrLessEquals(0.0), 0.0, 0.0, -1.0, moreOrLessEquals(0.0), 0.0, 0.0,
...@@ -327,7 +325,7 @@ void main() { ...@@ -327,7 +325,7 @@ void main() {
expect(layers.length, 2); expect(layers.length, 2);
// The first transform is from the render view. // The first transform is from the render view.
final TransformLayer layer = layers[1] as TransformLayer; final TransformLayer layer = layers[1] as TransformLayer;
final Matrix4 transform = layer.transform; final Matrix4 transform = layer.transform!;
expect(transform.storage, <dynamic>[ expect(transform.storage, <dynamic>[
// These are column-major, not row-major. // These are column-major, not row-major.
2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0,
...@@ -380,8 +378,8 @@ void main() { ...@@ -380,8 +378,8 @@ void main() {
(WidgetTester tester) async { (WidgetTester tester) async {
for (double angle = 0; angle <= math.pi/4; angle += 0.01) { for (double angle = 0; angle <= math.pi/4; angle += 0.01) {
await tester.pumpWidget(RepaintBoundary(child: _generateTransform(true, angle))); await tester.pumpWidget(RepaintBoundary(child: _generateTransform(true, angle)));
final RenderBox renderBox = tester.binding.renderView.child; final RenderBox renderBox = tester.binding.renderView.child!;
final OffsetLayer layer = renderBox.debugLayer as OffsetLayer; final OffsetLayer layer = renderBox.debugLayer! as OffsetLayer;
final ui.Image imageWithCompositing = await layer.toImage(renderBox.paintBounds); final ui.Image imageWithCompositing = await layer.toImage(renderBox.paintBounds);
await tester.pumpWidget(RepaintBoundary(child: _generateTransform(false, angle))); await tester.pumpWidget(RepaintBoundary(child: _generateTransform(false, angle)));
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
// @dart = 2.8
import 'dart:math' as math; import 'dart:math' as math;
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment