diff --git a/packages/flutter/test/cupertino/bottom_tab_bar_test.dart b/packages/flutter/test/cupertino/bottom_tab_bar_test.dart index 2b01280d2d..9747dc0c12 100644 --- a/packages/flutter/test/cupertino/bottom_tab_bar_test.dart +++ b/packages/flutter/test/cupertino/bottom_tab_bar_test.dart @@ -4,11 +4,13 @@ // @dart = 2.8 +import 'dart:typed_data'; + import 'package:flutter/cupertino.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter_test/flutter_test.dart'; -import '../painting/mocks_for_image_cache.dart'; +import '../painting/image_data.dart'; import '../widgets/semantics_tester.dart'; Future pumpWidgetWithBoilerplate(WidgetTester tester, Widget widget) async { @@ -27,14 +29,15 @@ Future pumpWidgetWithBoilerplate(WidgetTester tester, Widget widget) async ); } -void main() { +Future main() async { + testWidgets('Need at least 2 tabs', (WidgetTester tester) async { try { await pumpWidgetWithBoilerplate(tester, CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 1'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 1'), ), ], )); @@ -49,14 +52,14 @@ void main() { await pumpWidgetWithBoilerplate(tester, MediaQuery( data: const MediaQueryData(), child: CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 1'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 1'), ), BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 2'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 2'), ), ], currentIndex: 1, @@ -83,13 +86,13 @@ void main() { await pumpWidgetWithBoilerplate(tester, MediaQuery( data: const MediaQueryData(), child: CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), label: 'Tab 1', ), BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), label: 'Tab 2', ), ], @@ -115,14 +118,14 @@ void main() { await pumpWidgetWithBoilerplate(tester, MediaQuery( data: const MediaQueryData(), child: CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 1'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 1'), ), BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 2'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 2'), ), ], currentIndex: 1, @@ -156,14 +159,14 @@ void main() { await pumpWidgetWithBoilerplate(tester, MediaQuery( data: const MediaQueryData(platformBrightness: Brightness.dark), child: CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 1'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 1'), ), BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 2'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 2'), ), ], currentIndex: 1, @@ -193,14 +196,14 @@ void main() { await tester.pumpWidget( CupertinoApp( home: CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 1'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 1'), ), BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 2'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 2'), ), ], currentIndex: 1, @@ -224,14 +227,14 @@ void main() { CupertinoApp( theme: const CupertinoThemeData(brightness: Brightness.dark), home: CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 1'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 1'), ), BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 2'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 2'), ), ], currentIndex: 1, @@ -254,21 +257,21 @@ void main() { }); testWidgets('Use active icon', (WidgetTester tester) async { - const TestImageProvider activeIcon = TestImageProvider(16, 16); - const TestImageProvider inactiveIcon = TestImageProvider(24, 24); + final MemoryImage activeIcon = MemoryImage(Uint8List.fromList(kBlueSquare)); + final MemoryImage inactiveIcon = MemoryImage(Uint8List.fromList(kTransparentImage)); await pumpWidgetWithBoilerplate(tester, MediaQuery( data: const MediaQueryData(), child: CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 1'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 1'), ), BottomNavigationBarItem( icon: ImageIcon(inactiveIcon), activeIcon: ImageIcon(activeIcon), - title: Text('Tab 2'), + title: const Text('Tab 2'), ), ], currentIndex: 1, @@ -288,14 +291,14 @@ void main() { testWidgets('Adjusts height to account for bottom padding', (WidgetTester tester) async { final CupertinoTabBar tabBar = CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Aka'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Aka'), ), BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Shiro'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Shiro'), ), ], ); @@ -329,14 +332,14 @@ void main() { await pumpWidgetWithBoilerplate(tester, MediaQuery( data: const MediaQueryData(), child: CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 1'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 1'), ), BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 2'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 2'), ), ], ), @@ -347,14 +350,14 @@ void main() { await pumpWidgetWithBoilerplate(tester, MediaQuery( data: const MediaQueryData(), child: CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 1'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 1'), ), BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 2'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 2'), ), ], backgroundColor: const Color(0xFFFFFFFF), // Opaque white. @@ -370,14 +373,14 @@ void main() { await pumpWidgetWithBoilerplate(tester, MediaQuery( data: const MediaQueryData(), child: CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 1'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 1'), ), BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 2'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 2'), ), ], currentIndex: 1, @@ -395,14 +398,14 @@ void main() { await pumpWidgetWithBoilerplate(tester, MediaQuery( data: const MediaQueryData(), child: CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 1'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 1'), ), BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 2'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 2'), ), ], ), @@ -425,7 +428,7 @@ void main() { }); testWidgets('Title of items should be nullable', (WidgetTester tester) async { - const TestImageProvider iconProvider = TestImageProvider(16, 16); + final MemoryImage iconProvider = MemoryImage(Uint8List.fromList(kTransparentImage)); final List itemsTapped = []; await pumpWidgetWithBoilerplate( @@ -433,12 +436,12 @@ void main() { MediaQuery( data: const MediaQueryData(), child: CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( icon: ImageIcon( - TestImageProvider(24, 24), + MemoryImage(Uint8List.fromList(kTransparentImage)), ), - title: Text('Tab 1'), + title: const Text('Tab 1'), ), BottomNavigationBarItem( icon: ImageIcon( @@ -465,18 +468,18 @@ void main() { MediaQuery( data: const MediaQueryData(), child: CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( icon: ImageIcon( - TestImageProvider(24, 24), + MemoryImage(Uint8List.fromList(kTransparentImage)), ), - title: Text('Tab 1'), + title: const Text('Tab 1'), ), BottomNavigationBarItem( icon: ImageIcon( - TestImageProvider(24, 24), + MemoryImage(Uint8List.fromList(kTransparentImage)), ), - title: Text('Tab 2'), + title: const Text('Tab 2'), ), ], ), @@ -491,18 +494,18 @@ void main() { MediaQuery( data: const MediaQueryData(), child: CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( icon: ImageIcon( - TestImageProvider(24, 24), + MemoryImage(Uint8List.fromList(kTransparentImage)), ), - title: Text('Tab 1'), + title: const Text('Tab 1'), ), BottomNavigationBarItem( icon: ImageIcon( - TestImageProvider(24, 24), + MemoryImage(Uint8List.fromList(kTransparentImage)), ), - title: Text('Tab 2'), + title: const Text('Tab 2'), ), ], backgroundColor: const Color(0xFFFFFFFF), // Opaque white. diff --git a/packages/flutter/test/cupertino/material/tab_scaffold_test.dart b/packages/flutter/test/cupertino/material/tab_scaffold_test.dart index 0d29cc0faf..04122e4759 100644 --- a/packages/flutter/test/cupertino/material/tab_scaffold_test.dart +++ b/packages/flutter/test/cupertino/material/tab_scaffold_test.dart @@ -4,11 +4,13 @@ // @dart = 2.8 +import 'dart:typed_data'; + import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; -import '../../painting/mocks_for_image_cache.dart'; +import '../../painting/image_data.dart'; List selectedTabs; @@ -287,7 +289,7 @@ void main() { tabBar: CupertinoTabBar( items: List.generate( 10, - (int i) => BottomNavigationBarItem(icon: const ImageIcon(TestImageProvider(24, 23)), title: Text('$i')), + (int i) => BottomNavigationBarItem(icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), title: Text('$i')), ), ), tabBuilder: (BuildContext context, int index) => const Text('content'), @@ -322,14 +324,14 @@ void main() { CupertinoTabBar _buildTabBar({ int selectedTab = 0 }) { return CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 1'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 1'), ), BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 2'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 2'), ), ], currentIndex: selectedTab, diff --git a/packages/flutter/test/cupertino/scaffold_test.dart b/packages/flutter/test/cupertino/scaffold_test.dart index b005374fae..6ab1b127a4 100644 --- a/packages/flutter/test/cupertino/scaffold_test.dart +++ b/packages/flutter/test/cupertino/scaffold_test.dart @@ -4,10 +4,12 @@ // @dart = 2.8 +import 'dart:typed_data'; + import 'package:flutter/cupertino.dart'; import 'package:flutter_test/flutter_test.dart'; -import '../painting/mocks_for_image_cache.dart'; +import '../painting/image_data.dart'; import '../rendering/mock_canvas.dart'; /// Integration tests testing both [CupertinoPageScaffold] and [CupertinoTabScaffold]. @@ -208,14 +210,14 @@ void main() { home: CupertinoTabScaffold( tabBar: CupertinoTabBar( backgroundColor: CupertinoColors.white, - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 1'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 1'), ), BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 2'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 2'), ), ], ), @@ -248,14 +250,14 @@ void main() { ), child: CupertinoTabScaffold( tabBar: CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 1'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 1'), ), BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 2'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 2'), ), ], ), @@ -298,14 +300,14 @@ void main() { CupertinoApp( home: CupertinoTabScaffold( tabBar: CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 1'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 1'), ), BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 2'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 2'), ), ], ), diff --git a/packages/flutter/test/cupertino/tab_scaffold_test.dart b/packages/flutter/test/cupertino/tab_scaffold_test.dart index f7bdb25c99..65281a75f8 100644 --- a/packages/flutter/test/cupertino/tab_scaffold_test.dart +++ b/packages/flutter/test/cupertino/tab_scaffold_test.dart @@ -4,10 +4,12 @@ // @dart = 2.8 +import 'dart:typed_data'; + import 'package:flutter/cupertino.dart'; import 'package:flutter_test/flutter_test.dart'; -import '../painting/mocks_for_image_cache.dart'; +import '../painting/image_data.dart'; import '../rendering/rendering_tester.dart'; List selectedTabs; @@ -44,7 +46,7 @@ void main() { BottomNavigationBarItem tabGenerator(int index) { return BottomNavigationBarItem( - icon: const ImageIcon(TestImageProvider(24, 24)), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), title: Text('Tab ${index + 1}'), ); } @@ -1081,7 +1083,7 @@ void main() { tabBar: CupertinoTabBar( items: List.generate( 10, - (int i) => BottomNavigationBarItem(icon: const ImageIcon(TestImageProvider(24, 23)), title: Text('$i')), + (int i) => BottomNavigationBarItem(icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), title: Text('$i')), ), ), tabBuilder: (BuildContext context, int index) => const Text('content'), @@ -1116,14 +1118,14 @@ void main() { CupertinoTabBar _buildTabBar({ int selectedTab = 0 }) { return CupertinoTabBar( - items: const [ + items: [ BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 1'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 1'), ), BottomNavigationBarItem( - icon: ImageIcon(TestImageProvider(24, 24)), - title: Text('Tab 2'), + icon: ImageIcon(MemoryImage(Uint8List.fromList(kTransparentImage))), + title: const Text('Tab 2'), ), ], currentIndex: selectedTab, diff --git a/packages/flutter/test/painting/mocks_for_image_cache.dart b/packages/flutter/test/painting/mocks_for_image_cache.dart index 063bea282c..e6baec849d 100644 --- a/packages/flutter/test/painting/mocks_for_image_cache.dart +++ b/packages/flutter/test/painting/mocks_for_image_cache.dart @@ -31,7 +31,9 @@ class TestImageInfo implements ImageInfo { } class TestImageProvider extends ImageProvider { - const TestImageProvider(this.key, this.imageValue, { this.image }); + const TestImageProvider(this.key, this.imageValue, { this.image = const TestImage() }) + : assert(image != null); + final int key; final int imageValue; final ui.Image image;