diff --git a/.ci.yaml b/.ci.yaml index 8322c8c8b45d2..8d1b3c05ba48b 100644 --- a/.ci.yaml +++ b/.ci.yaml @@ -108,6 +108,25 @@ platform_properties: os: Mac-12 cpu: x86 device_os: N + mac_arm64_android: + properties: + caches: >- + [ + {"name":"builder_mac_devicelab","path":"builder"}, + {"name":"android_sdk","path":"android"}, + {"name":"flutter_sdk","path":"flutter sdk"}, + {"name":"gradle","path":"gradle"}, + {"name":"openjdk_11","path":"java"}, + {"name":"pub_cache","path":".pub-cache"} + ] + dependencies: >- + [ + {"dependency": "android_sdk", "version": "version:31v8"}, + {"dependency": "open_jdk", "version": "version:11"} + ] + os: Mac-12 + cpu: arm64 + device_os: N mac_ios: properties: caches: >- @@ -3110,6 +3129,17 @@ targets: task_name: hello_world_android__compile scheduler: luci + - name: Mac_arm64_android hello_world_android__compile + recipe: devicelab/devicelab_drone + presubmit: false + bringup: true # Flaky: https://github.com/flutter/flutter/issues/87508 + timeout: 60 + properties: + tags: > + ["devicelab","android","mac","arm64"] + task_name: hello_world_android__compile + scheduler: luci + - name: Mac_android hot_mode_dev_cycle__benchmark recipe: devicelab/devicelab_drone presubmit: false @@ -3130,6 +3160,17 @@ targets: task_name: integration_test_test scheduler: luci + - name: Mac_arm64_android integration_test_test + recipe: devicelab/devicelab_drone + presubmit: false + bringup: true # Flaky: https://github.com/flutter/flutter/issues/87508 + timeout: 60 + properties: + tags: > + ["devicelab","android","mac","arm64"] + task_name: integration_test_test + scheduler: luci + - name: Mac_android integration_ui_frame_number recipe: devicelab/devicelab_drone presubmit: false @@ -3161,6 +3202,19 @@ targets: task_name: run_release_test scheduler: luci + - name: Mac_arm64_android run_release_test + recipe: devicelab/devicelab_drone + presubmit: false + bringup: true # Flaky: https://github.com/flutter/flutter/issues/87508 + runIf: + - dev/** + timeout: 60 + properties: + tags: > + ["devicelab","android","mac","arm64"] + task_name: run_release_test + scheduler: luci + - name: Mac_android flutter_gallery_mac__start_up recipe: devicelab/devicelab_drone presubmit: false diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 0fd5076e42244..47dcf32d81d82 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -d5b381c2e56d76ff56f4fcd4d53c84325c186182 +8f7e55b130646e368e6a9aed2a63ca4ec41874c2 diff --git a/bin/internal/flutter_plugins.version b/bin/internal/flutter_plugins.version index 14e754218556d..26ab7f807b46c 100644 --- a/bin/internal/flutter_plugins.version +++ b/bin/internal/flutter_plugins.version @@ -1 +1 @@ -e55659835427fdc2b3c838548ce7e49267f100fd +3e43f590d4d0143972e702eb14f14658cdc2decb diff --git a/bin/internal/fuchsia-linux.version b/bin/internal/fuchsia-linux.version index 7099c48b4dcac..83894ac690d5e 100644 --- a/bin/internal/fuchsia-linux.version +++ b/bin/internal/fuchsia-linux.version @@ -1 +1 @@ -GPkj69-XiXEkbjYX9L7LD42YJVhQq51Tlt8Fjs3GXtsC +iisykXnbM-9g3DFfH6SEX7v1HeT9dckHjjgxXMogGR0C diff --git a/bin/internal/fuchsia-mac.version b/bin/internal/fuchsia-mac.version index 1bcedb32f599e..3f5efc7d997d6 100644 --- a/bin/internal/fuchsia-mac.version +++ b/bin/internal/fuchsia-mac.version @@ -1 +1 @@ -Jki3kG8_PI7MxcaiJMq3S_hlIs_wVuqBMOWOnuEHaw0C +0BdXJKVKfjhQxQo_1NG2ZN3gJx69Lo1HUYztIonf5zwC diff --git a/dev/automated_tests/flutter_test/flutter_gold_test.dart b/dev/automated_tests/flutter_test/flutter_gold_test.dart index fbd701b4737c9..b12ac4efd1695 100644 --- a/dev/automated_tests/flutter_test/flutter_gold_test.dart +++ b/dev/automated_tests/flutter_test/flutter_gold_test.dart @@ -13,10 +13,12 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:platform/platform.dart'; // 1x1 colored pixel -const List _kFailPngBytes = [137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, +const List _kFailPngBytes = [ + 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 1, 0, 0, 0, 1, 8, 6, 0, 0, 0, 31, 21, 196, 137, 0, 0, 0, 13, 73, 68, 65, 84, 120, 1, 99, 249, 207, 240, 255, 63, 0, 7, 18, 3, - 2, 164, 147, 160, 197, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130]; + 2, 164, 147, 160, 197, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130, +]; void main() { final MemoryFileSystem fs = MemoryFileSystem(); diff --git a/dev/benchmarks/macrobenchmarks/lib/src/animated_complex_opacity.dart b/dev/benchmarks/macrobenchmarks/lib/src/animated_complex_opacity.dart index 90b2276e343bc..90c3bcd104cd3 100644 --- a/dev/benchmarks/macrobenchmarks/lib/src/animated_complex_opacity.dart +++ b/dev/benchmarks/macrobenchmarks/lib/src/animated_complex_opacity.dart @@ -33,7 +33,7 @@ class _AnimatedComplexOpacityState extends State with Si for (int i = 0; i < 20; i++) FadeTransition(opacity: animation, child: Center( child: Transform.scale(scale: 1.01, child: const ModeratelyComplexWidget()), - )) + )), ], ), ), diff --git a/dev/benchmarks/macrobenchmarks/lib/src/opacity_peephole.dart b/dev/benchmarks/macrobenchmarks/lib/src/opacity_peephole.dart index c719ed50a0d48..c1ebc9249c24c 100644 --- a/dev/benchmarks/macrobenchmarks/lib/src/opacity_peephole.dart +++ b/dev/benchmarks/macrobenchmarks/lib/src/opacity_peephole.dart @@ -28,7 +28,7 @@ class OpacityPeepholePage extends StatelessWidget { onPressed: () { Navigator.pushNamed(context, variant.route); }, - ) + ), ], ), ); diff --git a/dev/benchmarks/macrobenchmarks/lib/src/picture_cache.dart b/dev/benchmarks/macrobenchmarks/lib/src/picture_cache.dart index 08063c75af2d3..caa20e127898d 100644 --- a/dev/benchmarks/macrobenchmarks/lib/src/picture_cache.dart +++ b/dev/benchmarks/macrobenchmarks/lib/src/picture_cache.dart @@ -62,7 +62,7 @@ class ListItem extends StatelessWidget { _buildUserInfo(), const SizedBox( height: 10, - ) + ), ]; if (index % 3 != 0) { contents.add(_buildImageContent()); @@ -140,7 +140,7 @@ class ListItem extends StatelessWidget { ), const SizedBox( width: 15, - ) + ), ], ); } diff --git a/dev/benchmarks/macrobenchmarks/lib/src/post_backdrop_filter.dart b/dev/benchmarks/macrobenchmarks/lib/src/post_backdrop_filter.dart index d95aed858dc3b..b17005c0bca73 100644 --- a/dev/benchmarks/macrobenchmarks/lib/src/post_backdrop_filter.dart +++ b/dev/benchmarks/macrobenchmarks/lib/src/post_backdrop_filter.dart @@ -93,7 +93,7 @@ class _PostBackdropFilterPageState extends State with Ti ], ), ), - ) + ), ], ), ], diff --git a/dev/benchmarks/macrobenchmarks/lib/src/stack_size.dart b/dev/benchmarks/macrobenchmarks/lib/src/stack_size.dart index 3f828c0a0f47e..a4012d8409663 100644 --- a/dev/benchmarks/macrobenchmarks/lib/src/stack_size.dart +++ b/dev/benchmarks/macrobenchmarks/lib/src/stack_size.dart @@ -67,7 +67,7 @@ final GetStackPointerCallback getStackPointer = () { // "mov r0, sp" in machine code: 0D00A0E1. 0x0d, 0x00, 0xa0, 0xe1, // "bx lr" in machine code: 1EFF2FE1. - 0x1e, 0xff, 0x2f, 0xe1 + 0x1e, 0xff, 0x2f, 0xe1, ] ); diff --git a/dev/benchmarks/macrobenchmarks/lib/src/web/bench_text_layout.dart b/dev/benchmarks/macrobenchmarks/lib/src/web/bench_text_layout.dart index b06d34aafe2df..7a1cf7363be08 100644 --- a/dev/benchmarks/macrobenchmarks/lib/src/web/bench_text_layout.dart +++ b/dev/benchmarks/macrobenchmarks/lib/src/web/bench_text_layout.dart @@ -393,7 +393,7 @@ class PaletteTabView extends StatelessWidget { 600, 700, 800, - 900 + 900, ]; static const List accentKeys = [100, 200, 400, 700]; diff --git a/dev/benchmarks/macrobenchmarks/test/frame_policy.dart b/dev/benchmarks/macrobenchmarks/test/frame_policy.dart index b40304a794928..95b80ef8a58da 100644 --- a/dev/benchmarks/macrobenchmarks/test/frame_policy.dart +++ b/dev/benchmarks/macrobenchmarks/test/frame_policy.dart @@ -45,8 +45,8 @@ void main() { position: location + movePerRun * t.toDouble(), pointer: 1, delta: movePerRun, - ) - ]) + ), + ]), ], PointerEventRecord(totalTime, [ PointerUpEvent( @@ -54,8 +54,8 @@ void main() { timeStamp: totalTime - const Duration(milliseconds: 1), position: location + movePerRun * moveEventNumber.toDouble(), pointer: 1, - ) - ]) + ), + ]), ]; binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.benchmarkLive; diff --git a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_col_of_rows_perf_e2e.dart b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_col_of_rows_perf_e2e.dart index cf9129ef88c00..9343e008bebbf 100644 --- a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_col_of_rows_perf_e2e.dart +++ b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_col_of_rows_perf_e2e.dart @@ -11,7 +11,7 @@ void main() { 'opacity_peephole_col_of_rows_perf', [ ScrollableButtonRoute(kScrollableName, kOpacityPeepholeRouteName), - ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeOpacityOfColOfRowsRouteName) + ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeOpacityOfColOfRowsRouteName), ], pageDelay: const Duration(seconds: 1), duration: const Duration(seconds: 10), diff --git a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_fade_transition_text_perf_e2e.dart b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_fade_transition_text_perf_e2e.dart index 269cfd1e8b858..232af02951f5f 100644 --- a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_fade_transition_text_perf_e2e.dart +++ b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_fade_transition_text_perf_e2e.dart @@ -11,7 +11,7 @@ void main() { 'opacity_peephole_fade_transition_text_perf', [ ScrollableButtonRoute(kScrollableName, kOpacityPeepholeRouteName), - ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeFadeTransitionTextRouteName) + ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeFadeTransitionTextRouteName), ], pageDelay: const Duration(seconds: 1), duration: const Duration(seconds: 10), diff --git a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_grid_of_opacity_perf_e2e.dart b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_grid_of_opacity_perf_e2e.dart index 068c21cce65d4..b188b4b286460 100644 --- a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_grid_of_opacity_perf_e2e.dart +++ b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_grid_of_opacity_perf_e2e.dart @@ -11,7 +11,7 @@ void main() { 'opacity_peephole_grid_of_opacity_perf', [ ScrollableButtonRoute(kScrollableName, kOpacityPeepholeRouteName), - ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeGridOfOpacityRouteName) + ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeGridOfOpacityRouteName), ], pageDelay: const Duration(seconds: 1), duration: const Duration(seconds: 10), diff --git a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_one_rect_perf_e2e.dart b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_one_rect_perf_e2e.dart index 63313da61861a..8986c216546e5 100644 --- a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_one_rect_perf_e2e.dart +++ b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_one_rect_perf_e2e.dart @@ -11,7 +11,7 @@ void main() { 'opacity_peephole_one_rect_perf', [ ScrollableButtonRoute(kScrollableName, kOpacityPeepholeRouteName), - ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeOneRectRouteName) + ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeOneRectRouteName), ], pageDelay: const Duration(seconds: 1), duration: const Duration(seconds: 10), diff --git a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_opacity_of_grid_perf_e2e.dart b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_opacity_of_grid_perf_e2e.dart index ca6082830bd40..991ed7b0be363 100644 --- a/dev/benchmarks/macrobenchmarks/test/opacity_peephole_opacity_of_grid_perf_e2e.dart +++ b/dev/benchmarks/macrobenchmarks/test/opacity_peephole_opacity_of_grid_perf_e2e.dart @@ -11,7 +11,7 @@ void main() { 'opacity_peephole_opacity_of_grid_perf', [ ScrollableButtonRoute(kScrollableName, kOpacityPeepholeRouteName), - ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeOpacityOfGridRouteName) + ScrollableButtonRoute(kOpacityScrollableName, kOpacityPeepholeOpacityOfGridRouteName), ], pageDelay: const Duration(seconds: 1), duration: const Duration(seconds: 10), diff --git a/dev/benchmarks/microbenchmarks/lib/foundation/standard_message_codec_bench.dart b/dev/benchmarks/microbenchmarks/lib/foundation/standard_message_codec_bench.dart index 0debebd5f8b3f..5be91076a7b31 100644 --- a/dev/benchmarks/microbenchmarks/lib/foundation/standard_message_codec_bench.dart +++ b/dev/benchmarks/microbenchmarks/lib/foundation/standard_message_codec_bench.dart @@ -78,7 +78,7 @@ void main() { 'integer': 1234, 'string': 'This is a performance test.', 'float': 1.25, - 'boolean': true + 'boolean': true, }); } watch.stop(); diff --git a/dev/benchmarks/microbenchmarks/lib/foundation/standard_method_codec_bench.dart b/dev/benchmarks/microbenchmarks/lib/foundation/standard_method_codec_bench.dart index 2cbb28564ceed..6731d57d1e9ea 100644 --- a/dev/benchmarks/microbenchmarks/lib/foundation/standard_method_codec_bench.dart +++ b/dev/benchmarks/microbenchmarks/lib/foundation/standard_method_codec_bench.dart @@ -81,7 +81,7 @@ void main() { 'integer': 1234, 'string': 'This is a performance test.', 'float': 1.25, - 'boolean': true + 'boolean': true, })); } watch.stop(); diff --git a/dev/benchmarks/multiple_flutters/module/lib/main.dart b/dev/benchmarks/multiple_flutters/module/lib/main.dart index 4a583b42dee02..0036703d84535 100644 --- a/dev/benchmarks/multiple_flutters/module/lib/main.dart +++ b/dev/benchmarks/multiple_flutters/module/lib/main.dart @@ -160,7 +160,7 @@ class _MyHomePageState extends State { 0.0), // 10% of the width, so there are ten blinds. colors: [ Color(0xffee0000), - Color(0xffeeee00) + Color(0xffeeee00), ], // red to yellow tileMode: TileMode .repeated, // repeats the gradient over the canvas @@ -172,7 +172,7 @@ class _MyHomePageState extends State { CustomPaint( painter: Sky(), size: const Size(200.0, 36.0), - ) + ), ], ), ), diff --git a/dev/benchmarks/test_apps/stocks/README.md b/dev/benchmarks/test_apps/stocks/README.md index f162b46469e44..3f1778aab8634 100644 --- a/dev/benchmarks/test_apps/stocks/README.md +++ b/dev/benchmarks/test_apps/stocks/README.md @@ -1,6 +1,6 @@ # Stocks -Demo app for the material design widgets and other features provided by Flutter. +Demo app for the Material Design widgets and other features provided by Flutter. ## Building diff --git a/dev/benchmarks/test_apps/stocks/lib/i18n/stock_strings.dart b/dev/benchmarks/test_apps/stocks/lib/i18n/stock_strings.dart index fc38e8f4b7c22..2af0dc28d5c02 100644 --- a/dev/benchmarks/test_apps/stocks/lib/i18n/stock_strings.dart +++ b/dev/benchmarks/test_apps/stocks/lib/i18n/stock_strings.dart @@ -97,7 +97,7 @@ abstract class StockStrings { static const List supportedLocales = [ Locale('en'), Locale('en', 'US'), - Locale('es') + Locale('es'), ]; /// Title for the Stocks application diff --git a/dev/bots/analyze.dart b/dev/bots/analyze.dart index 249a4a32d201b..f18b1a7f2ff8f 100644 --- a/dev/bots/analyze.dart +++ b/dev/bots/analyze.dart @@ -638,7 +638,7 @@ Future verifyNoBadImportsInFlutter(String workingDirectory) async { 'These are the exported packages:', ...packages.map((String path) => ' lib/$path.dart'), 'These are the directories:', - ...directories.map((String path) => ' lib/src/$path/') + ...directories.map((String path) => ' lib/src/$path/'), ].join('\n')); } // Verify that the imports are well-ordered. @@ -1585,7 +1585,7 @@ Future _checkConsumerDependencies() async { 'pub', 'deps', '--json', - '--directory=${path.join(flutterRoot, 'packages', package)}' + '--directory=${path.join(flutterRoot, 'packages', package)}', ]); if (result.exitCode != 0) { print(result.stdout as Object); diff --git a/dev/bots/service_worker_test.dart b/dev/bots/service_worker_test.dart index 10432c7a352aa..a40b7bc6c0645 100644 --- a/dev/bots/service_worker_test.dart +++ b/dev/bots/service_worker_test.dart @@ -239,7 +239,7 @@ Future runWebServiceWorkerTest({ ...{ 'manifest.json': 1, 'favicon.ico': 1, - } + }, }); expect(reportedVersion, '1'); reportedVersion = null; @@ -313,7 +313,7 @@ Future runWebServiceWorkerTest({ ...{ 'manifest.json': 1, 'favicon.ico': 1, - } + }, }); expect(reportedVersion, '3'); @@ -366,7 +366,7 @@ Future runWebServiceWorkerTest({ ...{ 'manifest.json': 1, 'favicon.ico': 1, - } + }, }); expect(reportedVersion, '4'); diff --git a/dev/bots/test.dart b/dev/bots/test.dart index a8532ae097f03..bc71ca06dc532 100644 --- a/dev/bots/test.dart +++ b/dev/bots/test.dart @@ -1268,7 +1268,7 @@ Future _runFlutterPluginsTests() async { 'core.longPaths=true', 'clone', 'https://github.com/flutter/plugins.git', - '.' + '.', ], workingDirectory: checkout.path, ); @@ -1329,7 +1329,7 @@ Future _runSkpGeneratorTests() async { 'core.longPaths=true', 'clone', 'https://github.com/flutter/tests.git', - '.' + '.', ], workingDirectory: checkout.path, ); diff --git a/dev/bots/test/prepare_package_test.dart b/dev/bots/test/prepare_package_test.dart index 3f7449ff3d52b..6f073243f4929 100644 --- a/dev/bots/test/prepare_package_test.dart +++ b/dev/bots/test/prepare_package_test.dart @@ -48,7 +48,7 @@ void main() { command: ['echo', 'test',], stdout: 'output', stderr: 'error', - ) + ), ]); final ProcessRunner processRunner = ProcessRunner( subprocessOutput: false, platform: platform, processManager: fakeProcessManager); @@ -62,7 +62,7 @@ void main() { stdout: 'output', stderr: 'error', exitCode: -1, - ) + ), ]); final ProcessRunner processRunner = ProcessRunner( subprocessOutput: false, platform: platform, processManager: fakeProcessManager); diff --git a/dev/conductor/core/lib/src/repository.dart b/dev/conductor/core/lib/src/repository.dart index 12854bfabcec8..71a382b2c35ab 100644 --- a/dev/conductor/core/lib/src/repository.dart +++ b/dev/conductor/core/lib/src/repository.dart @@ -151,7 +151,7 @@ abstract class Repository { upstreamRemote.name, '--', upstreamRemote.url, - checkoutDirectory.path + checkoutDirectory.path, ], 'Cloning $name repo', workingDirectory: parentDirectory.path, @@ -302,7 +302,7 @@ abstract class Repository { 'merge-base', '--is-ancestor', possibleDescendant, - possibleAncestor + possibleAncestor, ], 'verify $possibleAncestor is a direct ancestor of $possibleDescendant.', allowNonZeroExitCode: true, diff --git a/dev/conductor/core/lib/src/state.dart b/dev/conductor/core/lib/src/state.dart index d0bf99730dd5c..4d621764f84ed 100644 --- a/dev/conductor/core/lib/src/state.dart +++ b/dev/conductor/core/lib/src/state.dart @@ -171,7 +171,7 @@ String phaseInstructions(pb.ConductorState state) { ].join('\n'); } return [ - 'Either all cherrypicks have been auto-applied or there were none.' + 'Either all cherrypicks have been auto-applied or there were none.', ].join('\n'); case ReleasePhase.PUBLISH_VERSION: if (!requiresFrameworkPR(state)) { @@ -201,7 +201,7 @@ String phaseInstructions(pb.ConductorState state) { '\t 1. Post announcement to discord', '\t 2. Post announcement flutter release hotline chat room', '-----------------------------------------------------------------------', - 'This release has been completed.' + 'This release has been completed.', ].join('\n'); } return [ @@ -211,7 +211,7 @@ String phaseInstructions(pb.ConductorState state) { '\t 3. Post announcement to discord', '\t 4. Post announcement flutter release hotline chat room', '-----------------------------------------------------------------------', - 'This release has been completed.' + 'This release has been completed.', ].join('\n'); } // For analyzer diff --git a/dev/conductor/core/test/next_test.dart b/dev/conductor/core/test/next_test.dart index b4b8db10eeb9f..5f3662a2ea224 100644 --- a/dev/conductor/core/test/next_test.dart +++ b/dev/conductor/core/test/next_test.dart @@ -1124,7 +1124,7 @@ void main() { FakeCommand( command: const ['git', 'push', '', 'HEAD:refs/heads/'], exception: GitException(gitPushErrorMessage, ['git', 'push', '--force', '', 'HEAD:refs/heads/']), - ) + ), ]); final NextContext nextContext = NextContext( autoAccept: false, diff --git a/dev/customer_testing/test/customer_test_test.dart b/dev/customer_testing/test/customer_test_test.dart index e4d9c5d7646b8..129782c61d75a 100644 --- a/dev/customer_testing/test/customer_test_test.dart +++ b/dev/customer_testing/test/customer_test_test.dart @@ -32,11 +32,12 @@ test.windows=.\test_utilities\bin\flutter_test_runner.bat repo_dashboard ['git clone https://github.com/flutter/cocoon.git tests', 'git -C tests checkout abc123'])); if (Platform.isLinux || Platform.isMacOS) { expect( - test.tests, - containsAllInOrder([ - './test_utilities/bin/flutter_test_runner.sh app_flutter', - './test_utilities/bin/flutter_test_runner.sh repo_dashboard' - ])); + test.tests, + containsAllInOrder([ + './test_utilities/bin/flutter_test_runner.sh app_flutter', + './test_utilities/bin/flutter_test_runner.sh repo_dashboard', + ]), + ); } else if (Platform.isWindows) { expect(test.tests, containsAllInOrder(['.\test_utilities\bin\flutter_test_runner.bat repo_dashboard'])); } diff --git a/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart b/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart index ba76ec386a66f..1bb5a7866a774 100644 --- a/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart +++ b/dev/devicelab/bin/tasks/build_ios_framework_module_test.dart @@ -30,7 +30,7 @@ Future main() async { 'io.flutter.devicelab', '--template', 'module', - 'hello_module' + 'hello_module', ], ); @@ -410,7 +410,7 @@ Future _testBuildIosFramework(Directory projectDir, { bool isModule = fals 'ios-framework', '--cocoapods', '--force', // Allow podspec creation on master. - '--output=$cocoapodsOutputDirectoryName' + '--output=$cocoapodsOutputDirectoryName', ], ); }); diff --git a/dev/devicelab/bin/tasks/flutter_engine_group_performance.dart b/dev/devicelab/bin/tasks/flutter_engine_group_performance.dart index 63beff98617fb..f6ebee406bcc4 100644 --- a/dev/devicelab/bin/tasks/flutter_engine_group_performance.dart +++ b/dev/devicelab/bin/tasks/flutter_engine_group_performance.dart @@ -80,7 +80,7 @@ Future _doTest() async { 'am', 'start', '-n', - '$_bundleName/$_bundleName.$_activityName' + '$_bundleName/$_bundleName.$_activityName', ]); await Future.delayed(const Duration(seconds: 10)); final Map memoryStats = @@ -93,7 +93,7 @@ Future _doTest() async { ListStatistics(totalMemorySamples); final Map results = { - ...totalMemoryStatistics.asMap('totalMemory') + ...totalMemoryStatistics.asMap('totalMemory'), }; result = TaskResult.success(results, benchmarkScoreKeys: results.keys.toList()); diff --git a/dev/devicelab/bin/tasks/gradle_java8_compile_test.dart b/dev/devicelab/bin/tasks/gradle_java8_compile_test.dart index 64581e593c4cd..ec3dd6d9fdd5d 100644 --- a/dev/devicelab/bin/tasks/gradle_java8_compile_test.dart +++ b/dev/devicelab/bin/tasks/gradle_java8_compile_test.dart @@ -90,7 +90,7 @@ class AaaPlugin: FlutterPlugin, MethodCallHandler { options: [ 'apk', '--debug', - '--target-platform=android-arm' + '--target-platform=android-arm', ], ); }); diff --git a/dev/devicelab/bin/tasks/gradle_plugin_light_apk_test.dart b/dev/devicelab/bin/tasks/gradle_plugin_light_apk_test.dart index 54633719921a0..459b039ab745e 100644 --- a/dev/devicelab/bin/tasks/gradle_plugin_light_apk_test.dart +++ b/dev/devicelab/bin/tasks/gradle_plugin_light_apk_test.dart @@ -22,7 +22,7 @@ Future main() async { options: [ 'apk', '--debug', - '--target-platform=android-arm' + '--target-platform=android-arm', ], ); }); @@ -54,7 +54,7 @@ Future main() async { options: [ 'apk', '--debug', - '--target-platform=android-x86' + '--target-platform=android-x86', ], ); }); @@ -85,7 +85,7 @@ Future main() async { options: [ 'apk', '--debug', - '--target-platform=android-x64' + '--target-platform=android-x64', ], ); }); @@ -115,7 +115,7 @@ Future main() async { options: [ 'apk', '--release', - '--target-platform=android-arm' + '--target-platform=android-arm', ], ); }); @@ -143,7 +143,7 @@ Future main() async { options: [ 'apk', '--release', - '--target-platform=android-arm64' + '--target-platform=android-arm64', ], ); }); diff --git a/dev/devicelab/bin/tasks/module_custom_host_app_name_test.dart b/dev/devicelab/bin/tasks/module_custom_host_app_name_test.dart index 7f19d887e079a..203f32697fedb 100644 --- a/dev/devicelab/bin/tasks/module_custom_host_app_name_test.dart +++ b/dev/devicelab/bin/tasks/module_custom_host_app_name_test.dart @@ -55,7 +55,7 @@ Future main() async { if (!Platform.isWindows) { await exec('chmod', [ '444', - readonlyTxtAssetFile.path + readonlyTxtAssetFile.path, ]); } diff --git a/dev/devicelab/bin/tasks/module_test.dart b/dev/devicelab/bin/tasks/module_test.dart index 413f2abe81f71..8ef1c54574a7e 100644 --- a/dev/devicelab/bin/tasks/module_test.dart +++ b/dev/devicelab/bin/tasks/module_test.dart @@ -58,7 +58,7 @@ Future main() async { if (!Platform.isWindows) { await exec('chmod', [ '444', - readonlyTxtAssetFile.path + readonlyTxtAssetFile.path, ]); } diff --git a/dev/devicelab/bin/tasks/module_test_ios.dart b/dev/devicelab/bin/tasks/module_test_ios.dart index 996540989a10e..832647f440e48 100644 --- a/dev/devicelab/bin/tasks/module_test_ios.dart +++ b/dev/devicelab/bin/tasks/module_test_ios.dart @@ -425,7 +425,7 @@ end '-archivePath', objectiveCBuildArchiveDirectory.path, 'COMPILER_INDEX_STORE_ENABLE=NO', - 'archive' + 'archive', ], environment: { 'FLUTTER_ANALYTICS_LOG_FILE': objectiveCAnalyticsOutputFile.path, diff --git a/dev/devicelab/bin/tasks/plugin_lint_mac.dart b/dev/devicelab/bin/tasks/plugin_lint_mac.dart index 2ad085f8d1323..01f5209bc33ef 100644 --- a/dev/devicelab/bin/tasks/plugin_lint_mac.dart +++ b/dev/devicelab/bin/tasks/plugin_lint_mac.dart @@ -248,7 +248,7 @@ Future main() async { 'build', options: [ 'ios', - '--no-codesign' + '--no-codesign', ], // TODO(jmagman): Make Objective-C applications handle Swift libraries https://github.com/flutter/flutter/issues/16049 canFail: true @@ -272,7 +272,7 @@ Future main() async { 'build', options: [ 'ios', - '--no-codesign' + '--no-codesign', ], ); }); @@ -305,7 +305,7 @@ Future main() async { 'build', options: [ 'ios', - '--no-codesign' + '--no-codesign', ], ); }); @@ -326,7 +326,7 @@ Future main() async { 'build', options: [ 'ios', - '--no-codesign' + '--no-codesign', ], ); }); @@ -390,7 +390,7 @@ Future main() async { 'build', options: [ 'ios', - '--no-codesign' + '--no-codesign', ], ); }); diff --git a/dev/devicelab/lib/framework/ab.dart b/dev/devicelab/lib/framework/ab.dart index 4f214f9c88ebc..11dbaf00dfc75 100644 --- a/dev/devicelab/lib/framework/ab.dart +++ b/dev/devicelab/lib/framework/ab.dart @@ -50,7 +50,7 @@ class ABTest { final Map resultMap = results as Map; return > { for (String key in resultMap.keys) - key: (resultMap[key] as List).cast() + key: (resultMap[key] as List).cast(), }; } @@ -153,13 +153,13 @@ class ABTest { 'Score', 'Average A', '(noise)', 'Average B', '(noise)', - 'Speed-up' + 'Speed-up', ]; final List alignments = [ FieldJustification.LEFT, FieldJustification.RIGHT, FieldJustification.LEFT, FieldJustification.RIGHT, FieldJustification.LEFT, - FieldJustification.CENTER + FieldJustification.CENTER, ]; final List lengths = List.filled(6, 0); diff --git a/dev/devicelab/lib/tasks/gallery.dart b/dev/devicelab/lib/tasks/gallery.dart index bd7a49fee2b89..aadb1e59a5ab5 100644 --- a/dev/devicelab/lib/tasks/gallery.dart +++ b/dev/devicelab/lib/tasks/gallery.dart @@ -131,7 +131,7 @@ class GalleryTransitionTest { if (transitionDurationFile != null) '$testOutputDirectory/$transitionDurationFile.json', if (timelineTraceFile != null) - '$testOutputDirectory/$timelineTraceFile.json' + '$testOutputDirectory/$timelineTraceFile.json', ], benchmarkScoreKeys: [ if (transitionDurationFile != null) diff --git a/dev/devicelab/lib/tasks/platform_channels_benchmarks.dart b/dev/devicelab/lib/tasks/platform_channels_benchmarks.dart index 5a006e7e58833..48d233c402007 100644 --- a/dev/devicelab/lib/tasks/platform_channels_benchmarks.dart +++ b/dev/devicelab/lib/tasks/platform_channels_benchmarks.dart @@ -29,7 +29,7 @@ TaskFunction runTask(adb.DeviceOperatingSystem operatingSystem) { 'ios,android', '--no-overwrite', '-v', - '.' + '.', ]; print('\nExecuting: $flutterExe $createArgs $appDir'); await utils.eval(flutterExe, createArgs); diff --git a/dev/devicelab/test/metrics_center_test.dart b/dev/devicelab/test/metrics_center_test.dart index 8963d23b8c941..13dfff065ba29 100644 --- a/dev/devicelab/test/metrics_center_test.dart +++ b/dev/devicelab/test/metrics_center_test.dart @@ -82,7 +82,7 @@ void main() { 'device_type': 'Moto G Play', 'device_version': 'android-25', 'host_type': 'linux', - 'host_version': 'debian-10.11' + 'host_version': 'debian-10.11', }; final List metricPoints = parse(results, tags, 'task abc'); diff --git a/dev/integration_tests/flutter_gallery/web/index.html b/dev/integration_tests/flutter_gallery/web/index.html index 757134fa099dd..89b85fdc1cd78 100644 --- a/dev/integration_tests/flutter_gallery/web/index.html +++ b/dev/integration_tests/flutter_gallery/web/index.html @@ -6,7 +6,7 @@ - + diff --git a/dev/integration_tests/ios_add2app_life_cycle/flutterapp/lib/main.dart b/dev/integration_tests/ios_add2app_life_cycle/flutterapp/lib/main.dart index 09eb38291ba8c..358f8ef0d0f38 100644 --- a/dev/integration_tests/ios_add2app_life_cycle/flutterapp/lib/main.dart +++ b/dev/integration_tests/ios_add2app_life_cycle/flutterapp/lib/main.dart @@ -46,7 +46,7 @@ class _LifeCycleSpyState extends State with WidgetsBindingObserver super.initState(); WidgetsBinding.instance.addObserver(this); _actualLifeCycleSequence = [ - ServicesBinding.instance.lifecycleState + ServicesBinding.instance.lifecycleState, ]; } diff --git a/dev/integration_tests/ios_platform_view_tests/lib/main.dart b/dev/integration_tests/ios_platform_view_tests/lib/main.dart index aeb4f44f3188a..5cb467fdf1ccb 100644 --- a/dev/integration_tests/ios_platform_view_tests/lib/main.dart +++ b/dev/integration_tests/ios_platform_view_tests/lib/main.dart @@ -91,7 +91,7 @@ class PlatformViewPage extends StatelessWidget { key: button, child: const Text('button'), onPressed: (){}, - ) + ), ], ), ); diff --git a/dev/tools/update_icons.dart b/dev/tools/update_icons.dart index 073345bf752ee..1691b3d2d9a2e 100644 --- a/dev/tools/update_icons.dart +++ b/dev/tools/update_icons.dart @@ -474,7 +474,7 @@ class Icon { '_monoline_filled', '_outlined', '_rounded', - '_sharp' + '_sharp', ]; late String id; // e.g. 5g, 5g_outlined, 5g_rounded, 5g_sharp diff --git a/dev/tools/vitool/test/vitool_test.dart b/dev/tools/vitool/test/vitool_test.dart index b7bf1b391c6f8..c8458badb850a 100644 --- a/dev/tools/vitool/test/vitool_test.dart +++ b/dev/tools/vitool/test/vitool_test.dart @@ -274,7 +274,7 @@ void main() { [ PathCommandAnimation('M', >>[ >[Point(5.0, 6.0)], - ]) + ]), ], opacities: [1.0], )), diff --git a/dev/tracing_tests/test/image_cache_tracing_test.dart b/dev/tracing_tests/test/image_cache_tracing_test.dart index eb8dc94ccc2da..6cc366b46b5d7 100644 --- a/dev/tracing_tests/test/image_cache_tracing_test.dart +++ b/dev/tracing_tests/test/image_cache_tracing_test.dart @@ -34,11 +34,11 @@ void main() { >[ { 'name': 'ImageCache.putIfAbsent', - 'args': {'key': 'Test', 'isolateId': isolateId} + 'args': {'key': 'Test', 'isolateId': isolateId}, }, { 'name': 'listener', - 'args': {'isolateId': isolateId} + 'args': {'isolateId': isolateId}, }, { 'name': 'ImageCache.clear', @@ -48,15 +48,15 @@ void main() { 'liveImages': 1, 'currentSizeInBytes': 0, 'isolateId': isolateId, - } + }, }, { 'name': 'ImageCache.putIfAbsent', - 'args': {'key': 'Test2', 'isolateId': isolateId} + 'args': {'key': 'Test2', 'isolateId': isolateId}, }, { 'name': 'ImageCache.evict', - 'args': {'sizeInBytes': 4, 'isolateId': isolateId} + 'args': {'sizeInBytes': 4, 'isolateId': isolateId}, }, ], ); diff --git a/examples/api/lib/cupertino/dialog/cupertino_action_sheet.0.dart b/examples/api/lib/cupertino/dialog/cupertino_action_sheet.0.dart index 507feee8d24af..4f51d92e0363e 100644 --- a/examples/api/lib/cupertino/dialog/cupertino_action_sheet.0.dart +++ b/examples/api/lib/cupertino/dialog/cupertino_action_sheet.0.dart @@ -59,7 +59,7 @@ class ActionSheetSample extends StatelessWidget { Navigator.pop(context); }, child: const Text('Destructive Action'), - ) + ), ], ), ); diff --git a/examples/api/lib/cupertino/dialog/cupertino_alert_dialog.0.dart b/examples/api/lib/cupertino/dialog/cupertino_alert_dialog.0.dart index f6af0831984ad..cca1cf64f3bd4 100644 --- a/examples/api/lib/cupertino/dialog/cupertino_alert_dialog.0.dart +++ b/examples/api/lib/cupertino/dialog/cupertino_alert_dialog.0.dart @@ -53,7 +53,7 @@ class ActionSheetSample extends StatelessWidget { Navigator.pop(context); }, child: const Text('Yes'), - ) + ), ], ), ); diff --git a/examples/api/lib/cupertino/nav_bar/cupertino_sliver_nav_bar.0.dart b/examples/api/lib/cupertino/nav_bar/cupertino_sliver_nav_bar.0.dart index 864ba983ceb77..1db77aa4e9f25 100644 --- a/examples/api/lib/cupertino/nav_bar/cupertino_sliver_nav_bar.0.dart +++ b/examples/api/lib/cupertino/nav_bar/cupertino_sliver_nav_bar.0.dart @@ -54,7 +54,7 @@ class CupertinoNavBarSample extends StatelessWidget { })); }, child: const Text('Go to Next Page'), - ) + ), ], ), ), diff --git a/examples/api/lib/cupertino/refresh/cupertino_sliver_refresh_control.0.dart b/examples/api/lib/cupertino/refresh/cupertino_sliver_refresh_control.0.dart index ce63503d8bd80..4f129a15e57c7 100644 --- a/examples/api/lib/cupertino/refresh/cupertino_sliver_refresh_control.0.dart +++ b/examples/api/lib/cupertino/refresh/cupertino_sliver_refresh_control.0.dart @@ -33,7 +33,7 @@ class _MyStatefulWidgetState extends State { List colors = [ CupertinoColors.systemYellow, CupertinoColors.systemOrange, - CupertinoColors.systemPink + CupertinoColors.systemPink, ]; List items = [ Container(color: CupertinoColors.systemPink, height: 100.0), diff --git a/examples/api/lib/material/app_bar/app_bar.1.dart b/examples/api/lib/material/app_bar/app_bar.1.dart index 55223828398f7..c5ddf6e393d8e 100644 --- a/examples/api/lib/material/app_bar/app_bar.1.dart +++ b/examples/api/lib/material/app_bar/app_bar.1.dart @@ -41,7 +41,7 @@ class MyStatelessWidget extends StatelessWidget { style: style, onPressed: () {}, child: const Text('Action 2'), - ) + ), ], ), ); diff --git a/examples/api/lib/material/bottom_sheet/show_modal_bottom_sheet.0.dart b/examples/api/lib/material/bottom_sheet/show_modal_bottom_sheet.0.dart index ae6e4800e44bb..e7b770252188d 100644 --- a/examples/api/lib/material/bottom_sheet/show_modal_bottom_sheet.0.dart +++ b/examples/api/lib/material/bottom_sheet/show_modal_bottom_sheet.0.dart @@ -49,7 +49,7 @@ class MyStatelessWidget extends StatelessWidget { ElevatedButton( child: const Text('Close BottomSheet'), onPressed: () => Navigator.pop(context), - ) + ), ], ), ), diff --git a/examples/api/lib/material/icon_button/icon_button.0.dart b/examples/api/lib/material/icon_button/icon_button.0.dart index 9180f15ac789d..2c62fa10d4251 100644 --- a/examples/api/lib/material/icon_button/icon_button.0.dart +++ b/examples/api/lib/material/icon_button/icon_button.0.dart @@ -51,7 +51,7 @@ class _MyStatefulWidgetState extends State { }); }, ), - Text('Volume : $_volume') + Text('Volume : $_volume'), ], ); } diff --git a/examples/api/lib/material/list_tile/list_tile.5.dart b/examples/api/lib/material/list_tile/list_tile.5.dart index 15fd4b168543b..4aff57a23cba2 100644 --- a/examples/api/lib/material/list_tile/list_tile.5.dart +++ b/examples/api/lib/material/list_tile/list_tile.5.dart @@ -140,7 +140,7 @@ class CustomListItemTwo extends StatelessWidget { readDuration: readDuration, ), ), - ) + ), ], ), ), diff --git a/examples/api/lib/material/navigation_bar/navigation_bar.0.dart b/examples/api/lib/material/navigation_bar/navigation_bar.0.dart index d06244f4a860b..4ca40385e2e59 100644 --- a/examples/api/lib/material/navigation_bar/navigation_bar.0.dart +++ b/examples/api/lib/material/navigation_bar/navigation_bar.0.dart @@ -267,7 +267,7 @@ class _HomeState extends State with TickerProviderStateMixin { Destination(0, 'Teal', Icons.home, Colors.teal), Destination(1, 'Cyan', Icons.business, Colors.cyan), Destination(2, 'Orange', Icons.school, Colors.orange), - Destination(3, 'Blue', Icons.flight, Colors.blue) + Destination(3, 'Blue', Icons.flight, Colors.blue), ]; late final List> navigatorKeys; diff --git a/examples/api/lib/material/navigation_rail/navigation_rail.extended_animation.0.dart b/examples/api/lib/material/navigation_rail/navigation_rail.extended_animation.0.dart index 6197e944f6900..e0583df488812 100644 --- a/examples/api/lib/material/navigation_rail/navigation_rail.extended_animation.0.dart +++ b/examples/api/lib/material/navigation_rail/navigation_rail.extended_animation.0.dart @@ -83,7 +83,7 @@ class _MyNavigationRailState extends State { ], ), ), - ) + ), ], ); } diff --git a/examples/api/lib/material/platform_menu_bar/platform_menu_bar.0.dart b/examples/api/lib/material/platform_menu_bar/platform_menu_bar.0.dart index 8b27bad853e3f..88a7308456b0f 100644 --- a/examples/api/lib/material/platform_menu_bar/platform_menu_bar.0.dart +++ b/examples/api/lib/material/platform_menu_bar/platform_menu_bar.0.dart @@ -84,7 +84,7 @@ class _MyMenuBarAppState extends State { onSelected: () { _handleMenuSelection(MenuSelection.about); }, - ) + ), ], ), PlatformMenuItemGroup( @@ -118,7 +118,7 @@ class _MyMenuBarAppState extends State { }, ), ], - ) + ), ], ), if (PlatformProvidedMenuItem.hasMenu(PlatformProvidedMenuItemType.quit)) diff --git a/examples/api/lib/material/popupmenu/popupmenu.0.dart b/examples/api/lib/material/popupmenu/popupmenu.0.dart index 8e9709f3dba1c..76323dfb5bd73 100644 --- a/examples/api/lib/material/popupmenu/popupmenu.0.dart +++ b/examples/api/lib/material/popupmenu/popupmenu.0.dart @@ -65,7 +65,7 @@ class _MyStatefulWidgetState extends State { value: Menu.itemFour, child: Text('Item 4'), ), - ]) + ]), ], ), body: Center( diff --git a/examples/api/lib/material/scaffold/scaffold.of.0.dart b/examples/api/lib/material/scaffold/scaffold.of.0.dart index 48e7cebf20014..85c9046ab7bca 100644 --- a/examples/api/lib/material/scaffold/scaffold.of.0.dart +++ b/examples/api/lib/material/scaffold/scaffold.of.0.dart @@ -53,7 +53,7 @@ class MyScaffoldBody extends StatelessWidget { onPressed: () { Navigator.pop(context); }, - ) + ), ], ), ), diff --git a/examples/api/lib/material/scaffold/scaffold.of.1.dart b/examples/api/lib/material/scaffold/scaffold.of.1.dart index c2a73a2839cb3..b1ee37af70c3d 100644 --- a/examples/api/lib/material/scaffold/scaffold.of.1.dart +++ b/examples/api/lib/material/scaffold/scaffold.of.1.dart @@ -53,7 +53,7 @@ class MyStatelessWidget extends StatelessWidget { onPressed: () { Navigator.pop(context); }, - ) + ), ], ), ), diff --git a/examples/api/lib/material/scaffold/scaffold_state.show_bottom_sheet.0.dart b/examples/api/lib/material/scaffold/scaffold_state.show_bottom_sheet.0.dart index d3e6993b904d8..cdd742cf7da16 100644 --- a/examples/api/lib/material/scaffold/scaffold_state.show_bottom_sheet.0.dart +++ b/examples/api/lib/material/scaffold/scaffold_state.show_bottom_sheet.0.dart @@ -46,10 +46,11 @@ class MyStatelessWidget extends StatelessWidget { children: [ const Text('BottomSheet'), ElevatedButton( - child: const Text('Close BottomSheet'), - onPressed: () { - Navigator.pop(context); - }) + child: const Text('Close BottomSheet'), + onPressed: () { + Navigator.pop(context); + }, + ), ], ), ), diff --git a/examples/api/lib/ui/text/font_feature.font_feature_historical_ligatures.0.dart b/examples/api/lib/ui/text/font_feature.font_feature_historical_ligatures.0.dart index 459f1ca7f22ca..b95b954b51a8a 100644 --- a/examples/api/lib/ui/text/font_feature.font_feature_historical_ligatures.0.dart +++ b/examples/api/lib/ui/text/font_feature.font_feature_historical_ligatures.0.dart @@ -34,7 +34,7 @@ class ExampleWidget extends StatelessWidget { fontFamily: 'Sorts Mill Goudy', fontFeatures: [ FontFeature.historicalForms(), // Enables "hist". - FontFeature.historicalLigatures() // Enables "hlig". + FontFeature.historicalLigatures(), // Enables "hlig". ], ), ); diff --git a/examples/api/lib/widgets/async/future_builder.0.dart b/examples/api/lib/widgets/async/future_builder.0.dart index 20ff39576a8d2..512a10825c166 100644 --- a/examples/api/lib/widgets/async/future_builder.0.dart +++ b/examples/api/lib/widgets/async/future_builder.0.dart @@ -54,7 +54,7 @@ class _MyStatefulWidgetState extends State { Padding( padding: const EdgeInsets.only(top: 16), child: Text('Result: ${snapshot.data}'), - ) + ), ]; } else if (snapshot.hasError) { children = [ @@ -66,7 +66,7 @@ class _MyStatefulWidgetState extends State { Padding( padding: const EdgeInsets.only(top: 16), child: Text('Error: ${snapshot.error}'), - ) + ), ]; } else { children = const [ @@ -78,7 +78,7 @@ class _MyStatefulWidgetState extends State { Padding( padding: EdgeInsets.only(top: 16), child: Text('Awaiting result...'), - ) + ), ]; } return Center( diff --git a/examples/api/lib/widgets/async/stream_builder.0.dart b/examples/api/lib/widgets/async/stream_builder.0.dart index c7e313f0b8aa3..906f676a9726d 100644 --- a/examples/api/lib/widgets/async/stream_builder.0.dart +++ b/examples/api/lib/widgets/async/stream_builder.0.dart @@ -85,7 +85,7 @@ class _MyStatefulWidgetState extends State { Padding( padding: EdgeInsets.only(top: 16), child: Text('Select a lot'), - ) + ), ]; break; case ConnectionState.waiting: @@ -98,7 +98,7 @@ class _MyStatefulWidgetState extends State { Padding( padding: EdgeInsets.only(top: 16), child: Text('Awaiting bids...'), - ) + ), ]; break; case ConnectionState.active: @@ -111,7 +111,7 @@ class _MyStatefulWidgetState extends State { Padding( padding: const EdgeInsets.only(top: 16), child: Text('\$${snapshot.data}'), - ) + ), ]; break; case ConnectionState.done: @@ -124,7 +124,7 @@ class _MyStatefulWidgetState extends State { Padding( padding: const EdgeInsets.only(top: 16), child: Text('\$${snapshot.data} (closed)'), - ) + ), ]; break; } diff --git a/examples/api/lib/widgets/autofill/autofill_group.0.dart b/examples/api/lib/widgets/autofill/autofill_group.0.dart index d63badaceb718..dea0e1ae27308 100644 --- a/examples/api/lib/widgets/autofill/autofill_group.0.dart +++ b/examples/api/lib/widgets/autofill/autofill_group.0.dart @@ -84,13 +84,13 @@ class _MyStatefulWidgetState extends State { TextField( controller: billingAddress1, autofillHints: const [ - AutofillHints.streetAddressLine1 + AutofillHints.streetAddressLine1, ], ), TextField( controller: billingAddress2, autofillHints: const [ - AutofillHints.streetAddressLine2 + AutofillHints.streetAddressLine2, ], ), ], @@ -109,7 +109,7 @@ class _MyStatefulWidgetState extends State { TextField( controller: creditCardSecurityCode, autofillHints: const [ - AutofillHints.creditCardSecurityCode + AutofillHints.creditCardSecurityCode, ], ), ], diff --git a/examples/api/lib/widgets/interactive_viewer/interactive_viewer.builder.0.dart b/examples/api/lib/widgets/interactive_viewer/interactive_viewer.builder.0.dart index 3b99f87434d43..3fad51b78055b 100644 --- a/examples/api/lib/widgets/interactive_viewer/interactive_viewer.builder.0.dart +++ b/examples/api/lib/widgets/interactive_viewer/interactive_viewer.builder.0.dart @@ -43,7 +43,7 @@ class _IVBuilderExampleState extends State<_IVBuilderExample> { for (final Vector3 point in [ quad.point1, quad.point2, - quad.point3 + quad.point3, ]) { if (point.x < xMin) { xMin = point.x; diff --git a/examples/api/lib/widgets/nested_scroll_view/nested_scroll_view.2.dart b/examples/api/lib/widgets/nested_scroll_view/nested_scroll_view.2.dart index f858793ccf9f3..bc6dd2f1f792d 100644 --- a/examples/api/lib/widgets/nested_scroll_view/nested_scroll_view.2.dart +++ b/examples/api/lib/widgets/nested_scroll_view/nested_scroll_view.2.dart @@ -40,7 +40,7 @@ class MyStatelessWidget extends StatelessWidget { expandedHeight: 200.0, forceElevated: innerBoxIsScrolled, ), - ) + ), ]; }, body: Builder(builder: (BuildContext context) { return CustomScrollView( diff --git a/examples/api/lib/widgets/page_storage/page_storage.0.dart b/examples/api/lib/widgets/page_storage/page_storage.0.dart index 5bce2dfcdd428..bb7147d927354 100644 --- a/examples/api/lib/widgets/page_storage/page_storage.0.dart +++ b/examples/api/lib/widgets/page_storage/page_storage.0.dart @@ -33,7 +33,7 @@ class _MyHomePageState extends State { ), ColorBoxPage( key: PageStorageKey('pageTwo'), - ) + ), ]; int currentTab = 0; final PageStorageBucket _bucket = PageStorageBucket(); diff --git a/examples/api/lib/widgets/page_view/page_view.0.dart b/examples/api/lib/widgets/page_view/page_view.0.dart index e18fe940fa3fb..798dbad3e6b6e 100644 --- a/examples/api/lib/widgets/page_view/page_view.0.dart +++ b/examples/api/lib/widgets/page_view/page_view.0.dart @@ -44,7 +44,7 @@ class MyStatelessWidget extends StatelessWidget { ), Center( child: Text('Third Page'), - ) + ), ], ); } diff --git a/examples/api/lib/widgets/transitions/decorated_box_transition.0.dart b/examples/api/lib/widgets/transitions/decorated_box_transition.0.dart index 86fac6523a10b..5aa8641882a83 100644 --- a/examples/api/lib/widgets/transitions/decorated_box_transition.0.dart +++ b/examples/api/lib/widgets/transitions/decorated_box_transition.0.dart @@ -43,7 +43,7 @@ class _MyStatefulWidgetState extends State blurRadius: 10.0, spreadRadius: 3.0, offset: Offset(0, 6.0), - ) + ), ], ), end: BoxDecoration( diff --git a/examples/api/lib/widgets/transitions/sliver_fade_transition.0.dart b/examples/api/lib/widgets/transitions/sliver_fade_transition.0.dart index 2440e70ad7a51..9d35ea32f55be 100644 --- a/examples/api/lib/widgets/transitions/sliver_fade_transition.0.dart +++ b/examples/api/lib/widgets/transitions/sliver_fade_transition.0.dart @@ -80,7 +80,7 @@ class _MyStatefulWidgetState extends State childCount: 5, ), ), - ) + ), ]); } } diff --git a/packages/flutter/lib/src/animation/listener_helpers.dart b/packages/flutter/lib/src/animation/listener_helpers.dart index ebf2943bd99a5..55cbd048e467b 100644 --- a/packages/flutter/lib/src/animation/listener_helpers.dart +++ b/packages/flutter/lib/src/animation/listener_helpers.dart @@ -137,7 +137,7 @@ mixin AnimationLocalListenersMixin { @protected @pragma('vm:notify-debugger-on-exception') void notifyListeners() { - final List localListeners = List.of(_listeners); + final List localListeners = _listeners.toList(growable: false); for (final VoidCallback listener in localListeners) { InformationCollector? collector; assert(() { @@ -226,7 +226,7 @@ mixin AnimationLocalStatusListenersMixin { @protected @pragma('vm:notify-debugger-on-exception') void notifyStatusListeners(AnimationStatus status) { - final List localListeners = List.of(_statusListeners); + final List localListeners = _statusListeners.toList(growable: false); for (final AnimationStatusListener listener in localListeners) { try { if (_statusListeners.contains(listener)) diff --git a/packages/flutter/lib/src/cupertino/colors.dart b/packages/flutter/lib/src/cupertino/colors.dart index 5a7f8e214989a..6b78589da24bd 100644 --- a/packages/flutter/lib/src/cupertino/colors.dart +++ b/packages/flutter/lib/src/cupertino/colors.dart @@ -46,7 +46,7 @@ class CupertinoColors { /// /// See also: /// - /// * [material.Colors.white], the same color, in the material design palette. + /// * [material.Colors.white], the same color, in the Material Design palette. /// * [black], opaque black in the [CupertinoColors] palette. static const Color white = Color(0xFFFFFFFF); @@ -56,7 +56,7 @@ class CupertinoColors { /// /// See also: /// - /// * [material.Colors.black], the same color, in the material design palette. + /// * [material.Colors.black], the same color, in the Material Design palette. /// * [white], opaque white in the [CupertinoColors] palette. static const Color black = Color(0xFF000000); diff --git a/packages/flutter/lib/src/cupertino/switch.dart b/packages/flutter/lib/src/cupertino/switch.dart index a781a977038a3..c243f479063d3 100644 --- a/packages/flutter/lib/src/cupertino/switch.dart +++ b/packages/flutter/lib/src/cupertino/switch.dart @@ -48,7 +48,7 @@ import 'thumb_painter.dart'; /// /// See also: /// -/// * [Switch], the material design equivalent. +/// * [Switch], the Material Design equivalent. /// * class CupertinoSwitch extends StatefulWidget { /// Creates an iOS-style switch. diff --git a/packages/flutter/lib/src/foundation/_isolates_io.dart b/packages/flutter/lib/src/foundation/_isolates_io.dart index 14eda2be0feb8..ab0b0ce1ca7c2 100644 --- a/packages/flutter/lib/src/foundation/_isolates_io.dart +++ b/packages/flutter/lib/src/foundation/_isolates_io.dart @@ -19,7 +19,7 @@ Future compute(isolates.ComputeCallback callback, Q message, { St final RawReceivePort port = RawReceivePort(); Timeline.finishSync(); - void _timeEndAndCleanup() { + void timeEndAndCleanup() { Timeline.startSync('$debugLabel: end', flow: Flow.end(flow.id)); port.close(); Timeline.finishSync(); @@ -27,7 +27,7 @@ Future compute(isolates.ComputeCallback callback, Q message, { St final Completer completer = Completer(); port.handler = (dynamic msg) { - _timeEndAndCleanup(); + timeEndAndCleanup(); completer.complete(msg); }; @@ -47,7 +47,7 @@ Future compute(isolates.ComputeCallback callback, Q message, { St debugName: debugLabel, ); } on Object { - _timeEndAndCleanup(); + timeEndAndCleanup(); rethrow; } diff --git a/packages/flutter/lib/src/foundation/observer_list.dart b/packages/flutter/lib/src/foundation/observer_list.dart index c4683a09ed466..22c2389cebeb3 100644 --- a/packages/flutter/lib/src/foundation/observer_list.dart +++ b/packages/flutter/lib/src/foundation/observer_list.dart @@ -76,6 +76,11 @@ class ObserverList extends Iterable { @override bool get isNotEmpty => _list.isNotEmpty; + + @override + List toList({bool growable = true}) { + return _list.toList(growable: growable); + } } /// A list optimized for the observer pattern, but for larger numbers of observers. diff --git a/packages/flutter/lib/src/material/animated_icons/animated_icons_data.dart b/packages/flutter/lib/src/material/animated_icons/animated_icons_data.dart index f6de42b710e6f..7a348a720ab95 100644 --- a/packages/flutter/lib/src/material/animated_icons/animated_icons_data.dart +++ b/packages/flutter/lib/src/material/animated_icons/animated_icons_data.dart @@ -10,51 +10,51 @@ part of material_animated_icons; -/// Identifier for the supported material design animated icons. +/// Identifier for the supported Material Design animated icons. /// /// Use with [AnimatedIcon] class to show specific animated icons. abstract class AnimatedIcons { - /// The material design add to event icon animation. + /// The Material Design add to event icon animation. static const AnimatedIconData add_event = _$add_event; - /// The material design arrow to menu icon animation. + /// The Material Design arrow to menu icon animation. static const AnimatedIconData arrow_menu = _$arrow_menu; - /// The material design close to menu icon animation. + /// The Material Design close to menu icon animation. static const AnimatedIconData close_menu = _$close_menu; - /// The material design ellipsis to search icon animation. + /// The Material Design ellipsis to search icon animation. static const AnimatedIconData ellipsis_search = _$ellipsis_search; - /// The material design event to add icon animation. + /// The Material Design event to add icon animation. static const AnimatedIconData event_add = _$event_add; - /// The material design home to menu icon animation. + /// The Material Design home to menu icon animation. static const AnimatedIconData home_menu = _$home_menu; - /// The material design list to view icon animation. + /// The Material Design list to view icon animation. static const AnimatedIconData list_view = _$list_view; - /// The material design menu to arrow icon animation. + /// The Material Design menu to arrow icon animation. static const AnimatedIconData menu_arrow = _$menu_arrow; - /// The material design menu to close icon animation. + /// The Material Design menu to close icon animation. static const AnimatedIconData menu_close = _$menu_close; - /// The material design menu to home icon animation. + /// The Material Design menu to home icon animation. static const AnimatedIconData menu_home = _$menu_home; - /// The material design pause to play icon animation. + /// The Material Design pause to play icon animation. static const AnimatedIconData pause_play = _$pause_play; - /// The material design play to pause icon animation. + /// The Material Design play to pause icon animation. static const AnimatedIconData play_pause = _$play_pause; - /// The material design search to ellipsis icon animation. + /// The Material Design search to ellipsis icon animation. static const AnimatedIconData search_ellipsis = _$search_ellipsis; - /// The material design view to list icon animation. + /// The Material Design view to list icon animation. static const AnimatedIconData view_list = _$view_list; } diff --git a/packages/flutter/lib/src/material/app.dart b/packages/flutter/lib/src/material/app.dart index f02533fe62d16..454ff695b9e31 100644 --- a/packages/flutter/lib/src/material/app.dart +++ b/packages/flutter/lib/src/material/app.dart @@ -50,10 +50,10 @@ enum ThemeMode { dark, } -/// An application that uses material design. +/// An application that uses Material Design. /// /// A convenience widget that wraps a number of widgets that are commonly -/// required for material design applications. It builds upon a [WidgetsApp] by +/// required for Material Design applications. It builds upon a [WidgetsApp] by /// adding material-design specific functionality, such as [AnimatedTheme] and /// [GridPaper]. /// diff --git a/packages/flutter/lib/src/material/app_bar.dart b/packages/flutter/lib/src/material/app_bar.dart index 045d9d8325ac4..d3fc244a35215 100644 --- a/packages/flutter/lib/src/material/app_bar.dart +++ b/packages/flutter/lib/src/material/app_bar.dart @@ -62,7 +62,7 @@ class _PreferredAppBarSize extends Size { final double? bottomHeight; } -/// A material design app bar. +/// A Material Design app bar. /// /// An app bar consists of a toolbar and potentially other widgets, such as a /// [TabBar] and a [FlexibleSpaceBar]. App bars typically expose one or more @@ -144,7 +144,7 @@ class _PreferredAppBarSize extends Size { /// * /// * Cookbook: [Place a floating app bar above a list](https://flutter.dev/docs/cookbook/lists/floating-app-bar) class AppBar extends StatefulWidget implements PreferredSizeWidget { - /// Creates a material design app bar. + /// Creates a Material Design app bar. /// /// The arguments [primary], [toolbarOpacity], [bottomOpacity], /// [backwardsCompatibility], and [automaticallyImplyLeading] must @@ -767,33 +767,17 @@ class _AppBarState extends State { } void _handleScrollNotification(ScrollNotification notification) { - final bool oldScrolledUnder = _scrolledUnder; - final ScrollMetrics metrics = notification.metrics; - - if (notification.depth != 0) { - _scrolledUnder = false; - } else { - switch (metrics.axisDirection) { - case AxisDirection.up: - // Scroll view is reversed - _scrolledUnder = metrics.extentAfter > 0; - break; - case AxisDirection.down: - _scrolledUnder = metrics.extentBefore > 0; - break; - case AxisDirection.right: - case AxisDirection.left: - // Scrolled under is only supported in the vertical axis. - _scrolledUnder = false; - break; + if (notification is ScrollUpdateNotification) { + final bool oldScrolledUnder = _scrolledUnder; + _scrolledUnder = notification.depth == 0 + && notification.metrics.extentBefore > 0 + && notification.metrics.axis == Axis.vertical; + if (_scrolledUnder != oldScrolledUnder) { + setState(() { + // React to a change in MaterialState.scrolledUnder + }); } } - - if (_scrolledUnder != oldScrolledUnder) { - setState(() { - // React to a change in MaterialState.scrolledUnder - }); - } } Color _resolveColor(Set states, Color? widgetColor, Color? themeColor, Color defaultColor) { @@ -1285,7 +1269,7 @@ class _SliverAppBarDelegate extends SliverPersistentHeaderDelegate { } } -/// A material design app bar that integrates with a [CustomScrollView]. +/// A Material Design app bar that integrates with a [CustomScrollView]. /// /// An app bar consists of a toolbar and potentially other widgets, such as a /// [TabBar] and a [FlexibleSpaceBar]. App bars typically expose one or more @@ -1371,7 +1355,7 @@ class _SliverAppBarDelegate extends SliverPersistentHeaderDelegate { /// can expand and collapse. /// * class SliverAppBar extends StatefulWidget { - /// Creates a material design app bar that can be placed in a [CustomScrollView]. + /// Creates a Material Design app bar that can be placed in a [CustomScrollView]. /// /// The arguments [forceElevated], [primary], [floating], [pinned], [snap] /// and [automaticallyImplyLeading] must not be null. diff --git a/packages/flutter/lib/src/material/arc.dart b/packages/flutter/lib/src/material/arc.dart index 390ca77434572..c76d933f96bba 100644 --- a/packages/flutter/lib/src/material/arc.dart +++ b/packages/flutter/lib/src/material/arc.dart @@ -17,7 +17,7 @@ const double _kOnAxisDelta = 2.0; /// /// This class specializes the interpolation of [Tween] so that instead /// of a straight line, the intermediate points follow the arc of a circle in a -/// manner consistent with material design principles. +/// manner consistent with Material Design principles. /// /// The arc's radius is related to the bounding box that contains the [begin] /// and [end] points. If the bounding box is taller than it is wide, then the @@ -218,7 +218,7 @@ T _maxBy(Iterable input, _KeyFunc keyFunc) { /// /// This class specializes the interpolation of [Tween] so that instead of /// growing or shrinking linearly, opposite corners of the rectangle follow arcs -/// in a manner consistent with material design principles. +/// in a manner consistent with Material Design principles. /// /// Specifically, the rectangle corners whose diagonals are closest to the overall /// direction of the animation follow arcs defined with [MaterialPointArcTween]. diff --git a/packages/flutter/lib/src/material/back_button.dart b/packages/flutter/lib/src/material/back_button.dart index 2fd7adb9f8f4c..4d1f1c874cc71 100644 --- a/packages/flutter/lib/src/material/back_button.dart +++ b/packages/flutter/lib/src/material/back_button.dart @@ -20,7 +20,7 @@ import 'theme.dart'; /// [Navigator.maybePop] to return to the previous route. /// * [IconButton], which is a more general widget for creating buttons /// with icons. -/// * [Icon], a material design icon. +/// * [Icon], a Material Design icon. /// * [ThemeData.platform], which specifies the current platform. class BackButtonIcon extends StatelessWidget { /// Creates an icon that shows the appropriate "back" image for @@ -45,7 +45,7 @@ class BackButtonIcon extends StatelessWidget { Widget build(BuildContext context) => Icon(_getIconData(Theme.of(context).platform)); } -/// A material design back button. +/// A Material Design back button. /// /// A [BackButton] is an [IconButton] with a "back" icon appropriate for the /// current [TargetPlatform]. When pressed, the back button calls @@ -110,7 +110,7 @@ class BackButton extends StatelessWidget { } } -/// A material design close button. +/// A Material Design close button. /// /// A [CloseButton] is an [IconButton] with a "close" icon. When pressed, the /// close button calls [Navigator.maybePop] to return to the previous route. @@ -125,7 +125,7 @@ class BackButton extends StatelessWidget { /// * [BackButton], which is more appropriate for middle nodes in the /// navigation tree or where pages can be popped instantaneously with /// no user data consequence. -/// * [IconButton], to create other material design icon buttons. +/// * [IconButton], to create other Material Design icon buttons. class CloseButton extends StatelessWidget { /// Creates a Material Design close button. const CloseButton({ super.key, this.color, this.onPressed }); diff --git a/packages/flutter/lib/src/material/banner.dart b/packages/flutter/lib/src/material/banner.dart index 2a623dc3089ef..c1741b4d15321 100644 --- a/packages/flutter/lib/src/material/banner.dart +++ b/packages/flutter/lib/src/material/banner.dart @@ -18,7 +18,7 @@ const Curve _materialBannerHeightCurve = Curves.fastOutSlowIn; /// The [ScaffoldMessengerState.showMaterialBanner] function returns a /// [ScaffoldFeatureController]. The value of the controller's closed property /// is a Future that resolves to a MaterialBannerClosedReason. Applications that need -/// to know how a material banner was closed can use this value. +/// to know how a [MaterialBanner] was closed can use this value. /// /// Example: /// @@ -183,7 +183,7 @@ class MaterialBanner extends StatefulWidget { // API for ScaffoldMessengerState.showMaterialBanner(): - /// Creates an animation controller useful for driving a material banner's entrance and exit animation. + /// Creates an animation controller useful for driving a [MaterialBanner]'s entrance and exit animation. static AnimationController createAnimationController({ required TickerProvider vsync }) { return AnimationController( duration: _materialBannerTransitionDuration, diff --git a/packages/flutter/lib/src/material/bottom_sheet.dart b/packages/flutter/lib/src/material/bottom_sheet.dart index 74916057c455c..33c72093d4728 100644 --- a/packages/flutter/lib/src/material/bottom_sheet.dart +++ b/packages/flutter/lib/src/material/bottom_sheet.dart @@ -35,9 +35,9 @@ typedef BottomSheetDragEndHandler = void Function( required bool isClosing, }); -/// A material design bottom sheet. +/// A Material Design bottom sheet. /// -/// There are two kinds of bottom sheets in material design: +/// There are two kinds of bottom sheets in Material Design: /// /// * _Persistent_. A persistent bottom sheet shows information that /// supplements the primary content of the app. A persistent bottom sheet @@ -600,7 +600,7 @@ class _BottomSheetSuspendedCurve extends ParametricCurve { } } -/// Shows a modal material design bottom sheet. +/// Shows a modal Material Design bottom sheet. /// /// A modal bottom sheet is an alternative to a menu or a dialog and prevents /// the user from interacting with the rest of the app. @@ -718,7 +718,7 @@ Future showModalBottomSheet({ )); } -/// Shows a material design bottom sheet in the nearest [Scaffold] ancestor. If +/// Shows a Material Design bottom sheet in the nearest [Scaffold] ancestor. If /// you wish to show a persistent bottom sheet, use [Scaffold.bottomSheet]. /// /// Returns a controller that can be used to close and otherwise manipulate the diff --git a/packages/flutter/lib/src/material/button_theme.dart b/packages/flutter/lib/src/material/button_theme.dart index 1c20a209f8cae..6e90139e47880 100644 --- a/packages/flutter/lib/src/material/button_theme.dart +++ b/packages/flutter/lib/src/material/button_theme.dart @@ -33,7 +33,7 @@ enum ButtonBarLayoutBehavior { /// Button bars will be constrained to a minimum height of 52. /// /// This setting is require to create button bars which conform to the - /// material specification. + /// Material Design specification. constrained, /// Button bars will calculate their padding from the button theme padding. diff --git a/packages/flutter/lib/src/material/calendar_date_picker.dart b/packages/flutter/lib/src/material/calendar_date_picker.dart index 66f4926263a87..64f86040c2865 100644 --- a/packages/flutter/lib/src/material/calendar_date_picker.dart +++ b/packages/flutter/lib/src/material/calendar_date_picker.dart @@ -52,7 +52,7 @@ const double _monthNavButtonsWidth = 108.0; /// * [showDatePicker], which creates a Dialog that contains a /// [CalendarDatePicker] and provides an optional compact view where the /// user can enter a date as a line of text. -/// * [showTimePicker], which shows a dialog that contains a material design +/// * [showTimePicker], which shows a dialog that contains a Material Design /// time picker. /// class CalendarDatePicker extends StatefulWidget { diff --git a/packages/flutter/lib/src/material/card.dart b/packages/flutter/lib/src/material/card.dart index 074a3d36c1879..ae4cea828c2bd 100644 --- a/packages/flutter/lib/src/material/card.dart +++ b/packages/flutter/lib/src/material/card.dart @@ -8,7 +8,7 @@ import 'card_theme.dart'; import 'material.dart'; import 'theme.dart'; -/// A material design card: a panel with slightly rounded corners and an +/// A Material Design card: a panel with slightly rounded corners and an /// elevation shadow. /// /// A card is a sheet of [Material] used to represent some related information, @@ -54,7 +54,7 @@ import 'theme.dart'; /// * [showDialog], to display a modal card. /// * class Card extends StatelessWidget { - /// Creates a material design card. + /// Creates a Material Design card. /// /// The [elevation] must be null or non-negative. The [borderOnForeground] /// must not be null. diff --git a/packages/flutter/lib/src/material/checkbox.dart b/packages/flutter/lib/src/material/checkbox.dart index d15a9574bf93b..05442f2ec81fd 100644 --- a/packages/flutter/lib/src/material/checkbox.dart +++ b/packages/flutter/lib/src/material/checkbox.dart @@ -12,7 +12,7 @@ import 'theme.dart'; import 'theme_data.dart'; import 'toggleable.dart'; -/// A material design checkbox. +/// A Material Design checkbox. /// /// The checkbox itself does not maintain any state. Instead, when the state of /// the checkbox changes, the widget calls the [onChanged] callback. Most @@ -46,7 +46,7 @@ import 'toggleable.dart'; /// * /// * class Checkbox extends StatefulWidget { - /// Creates a material design checkbox. + /// Creates a Material Design checkbox. /// /// The checkbox itself does not maintain any state. Instead, when the state of /// the checkbox changes, the widget calls the [onChanged] callback. Most diff --git a/packages/flutter/lib/src/material/chip.dart b/packages/flutter/lib/src/material/chip.dart index f12d1202c9443..4887f0a711e2a 100644 --- a/packages/flutter/lib/src/material/chip.dart +++ b/packages/flutter/lib/src/material/chip.dart @@ -39,7 +39,7 @@ const Duration _kDisableDuration = Duration(milliseconds: 75); const Color _kSelectScrimColor = Color(0x60191919); const Icon _kDefaultDeleteIcon = Icon(Icons.cancel, size: _kDeleteIconSize); -/// An interface defining the base attributes for a material design chip. +/// An interface defining the base attributes for a Material Design chip. /// /// Chips are compact elements that represent an attribute, text, entity, or /// action. @@ -187,7 +187,7 @@ abstract class ChipAttributes { Color? get shadowColor; } -/// An interface for material design chips that can be deleted. +/// An interface for Material Design chips that can be deleted. /// /// The defaults mentioned in the documentation for each attribute are what /// the implementing classes typically use for defaults (but this class doesn't @@ -257,7 +257,7 @@ abstract class DeletableChipAttributes { bool get useDeleteButtonTooltip; } -/// An interface for material design chips that can have check marks. +/// An interface for Material Design chips that can have check marks. /// /// The defaults mentioned in the documentation for each attribute are what /// the implementing classes typically use for defaults (but this class doesn't @@ -290,7 +290,7 @@ abstract class CheckmarkableChipAttributes { Color? get checkmarkColor; } -/// An interface for material design chips that can be selected. +/// An interface for Material Design chips that can be selected. /// /// The defaults mentioned in the documentation for each attribute are what /// the implementing classes typically use for defaults (but this class doesn't @@ -400,7 +400,7 @@ abstract class SelectableChipAttributes { ShapeBorder get avatarBorder; } -/// An interface for material design chips that can be enabled and disabled. +/// An interface for Material Design chips that can be enabled and disabled. /// /// The defaults mentioned in the documentation for each attribute are what /// the implementing classes typically use for defaults (but this class doesn't @@ -447,7 +447,7 @@ abstract class DisabledChipAttributes { Color? get disabledColor; } -/// An interface for material design chips that can be tapped. +/// An interface for Material Design chips that can be tapped. /// /// The defaults mentioned in the documentation for each attribute are what /// the implementing classes typically use for defaults (but this class doesn't @@ -509,7 +509,7 @@ abstract class TappableChipAttributes { String? get tooltip; } -/// A material design chip. +/// A Material Design chip. /// /// Chips are compact elements that represent an attribute, text, entity, or /// action. @@ -549,7 +549,7 @@ abstract class TappableChipAttributes { /// vertical runs. /// * class Chip extends StatelessWidget implements ChipAttributes, DeletableChipAttributes { - /// Creates a material design chip. + /// Creates a Material Design chip. /// /// The [label], [autofocus], and [clipBehavior] arguments must not be null. /// The [elevation] must be null or non-negative. @@ -658,7 +658,7 @@ class Chip extends StatelessWidget implements ChipAttributes, DeletableChipAttri } } -/// A raw material design chip. +/// A raw Material Design chip. /// /// This serves as the basis for all of the chip widget types to aggregate. /// It is typically not created directly, one of the other chip types diff --git a/packages/flutter/lib/src/material/chip_action.dart b/packages/flutter/lib/src/material/chip_action.dart index 4971ff70112ad..c3e86852948b8 100644 --- a/packages/flutter/lib/src/material/chip_action.dart +++ b/packages/flutter/lib/src/material/chip_action.dart @@ -8,7 +8,7 @@ import 'chip.dart'; import 'debug.dart'; import 'theme_data.dart'; -/// A material design action chip. +/// A Material Design action chip. /// /// Action chips are a set of options which trigger an action related to primary /// content. Action chips should appear dynamically and contextually in a UI. diff --git a/packages/flutter/lib/src/material/chip_choice.dart b/packages/flutter/lib/src/material/chip_choice.dart index ba32346cc9ea1..da2f7be0b144c 100644 --- a/packages/flutter/lib/src/material/chip_choice.dart +++ b/packages/flutter/lib/src/material/chip_choice.dart @@ -9,7 +9,7 @@ import 'chip_theme.dart'; import 'debug.dart'; import 'theme_data.dart'; -/// A material design choice chip. +/// A Material Design choice chip. /// /// [ChoiceChip]s represent a single choice from a set. Choice chips contain /// related descriptive text or categories. diff --git a/packages/flutter/lib/src/material/chip_filter.dart b/packages/flutter/lib/src/material/chip_filter.dart index cff1946213414..f266ebc6e8087 100644 --- a/packages/flutter/lib/src/material/chip_filter.dart +++ b/packages/flutter/lib/src/material/chip_filter.dart @@ -8,7 +8,7 @@ import 'chip.dart'; import 'debug.dart'; import 'theme_data.dart'; -/// A material design filter chip. +/// A Material Design filter chip. /// /// Filter chips use tags or descriptive words as a way to filter content. /// diff --git a/packages/flutter/lib/src/material/chip_input.dart b/packages/flutter/lib/src/material/chip_input.dart index 3394b01166d4b..bc37fa03f6dd3 100644 --- a/packages/flutter/lib/src/material/chip_input.dart +++ b/packages/flutter/lib/src/material/chip_input.dart @@ -8,7 +8,7 @@ import 'chip.dart'; import 'debug.dart'; import 'theme_data.dart'; -/// A material design input chip. +/// A Material Design input chip. /// /// Input chips represent a complex piece of information, such as an entity /// (person, place, or thing) or conversational text, in a compact form. diff --git a/packages/flutter/lib/src/material/chip_theme.dart b/packages/flutter/lib/src/material/chip_theme.dart index d31fbebddfed9..8a11b3b7bc6e6 100644 --- a/packages/flutter/lib/src/material/chip_theme.dart +++ b/packages/flutter/lib/src/material/chip_theme.dart @@ -98,7 +98,7 @@ class ChipTheme extends InheritedTheme { bool updateShouldNotify(ChipTheme oldWidget) => data != oldWidget.data; } -/// Holds the color, shape, and text styles for a material design chip theme. +/// Holds the color, shape, and text styles for a Material Design chip theme. /// /// Use this class to configure a [ChipTheme] widget, or to set the /// [ThemeData.chipTheme] for a [Theme] widget. diff --git a/packages/flutter/lib/src/material/colors.dart b/packages/flutter/lib/src/material/colors.dart index f15b00e806ec8..35cdc6f7699f2 100644 --- a/packages/flutter/lib/src/material/colors.dart +++ b/packages/flutter/lib/src/material/colors.dart @@ -1885,7 +1885,7 @@ class Colors { ); static const int _blueGreyPrimaryValue = 0xFF607D8B; - /// The material design primary color swatches, excluding grey. + /// The Material Design primary color swatches, excluding grey. static const List primaries = [ red, pink, @@ -1910,7 +1910,7 @@ class Colors { blueGrey, ]; - /// The material design accent color swatches. + /// The Material Design accent color swatches. static const List accents = [ redAccent, pinkAccent, diff --git a/packages/flutter/lib/src/material/data_table.dart b/packages/flutter/lib/src/material/data_table.dart index 8d936f5c78dcc..11c8ea330d61d 100644 --- a/packages/flutter/lib/src/material/data_table.dart +++ b/packages/flutter/lib/src/material/data_table.dart @@ -304,7 +304,7 @@ class DataCell { onTapCancel != null; } -/// A material design data table. +/// A Material Design data table. /// /// {@youtube 560 315 https://www.youtube.com/watch?v=ktTajqbhIcY} /// diff --git a/packages/flutter/lib/src/material/date.dart b/packages/flutter/lib/src/material/date.dart index 124a3ac294de1..2efd2c490e713 100644 --- a/packages/flutter/lib/src/material/date.dart +++ b/packages/flutter/lib/src/material/date.dart @@ -182,9 +182,9 @@ enum DatePickerEntryMode { /// /// See also: /// -/// * [showDatePicker], which shows a dialog that contains a material design +/// * [showDatePicker], which shows a dialog that contains a Material Design /// date picker. -/// * [CalendarDatePicker], widget which implements the material design date picker. +/// * [CalendarDatePicker], widget which implements the Material Design date picker. enum DatePickerMode { /// Choosing a month and day. day, diff --git a/packages/flutter/lib/src/material/date_picker.dart b/packages/flutter/lib/src/material/date_picker.dart index b428868ee117f..b8264148172fa 100644 --- a/packages/flutter/lib/src/material/date_picker.dart +++ b/packages/flutter/lib/src/material/date_picker.dart @@ -126,13 +126,13 @@ const double _inputFormLandscapeHeight = 108.0; /// /// See also: /// -/// * [showDateRangePicker], which shows a material design date range picker +/// * [showDateRangePicker], which shows a Material Design date range picker /// used to select a range of dates. /// * [CalendarDatePicker], which provides the calendar grid used by the date picker dialog. /// * [InputDatePickerFormField], which provides a text input field for entering dates. /// * [DisplayFeatureSubScreen], which documents the specifics of how /// [DisplayFeature]s can split the screen into sub-screens. -/// * [showTimePicker], which shows a dialog that contains a material design time picker. +/// * [showTimePicker], which shows a dialog that contains a Material Design time picker. /// Future showDatePicker({ required BuildContext context, @@ -925,7 +925,7 @@ class _DatePickerHeader extends StatelessWidget { /// /// See also: /// -/// * [showDatePicker], which shows a material design date picker used to +/// * [showDatePicker], which shows a Material Design date picker used to /// select a single date. /// * [DateTimeRange], which is used to describe a date range. /// * [DisplayFeatureSubScreen], which documents the specifics of how diff --git a/packages/flutter/lib/src/material/debug.dart b/packages/flutter/lib/src/material/debug.dart index ef61d8014ebc3..8f2e97f5f6946 100644 --- a/packages/flutter/lib/src/material/debug.dart +++ b/packages/flutter/lib/src/material/debug.dart @@ -10,7 +10,7 @@ import 'scaffold.dart' show Scaffold, ScaffoldMessenger; /// Asserts that the given context has a [Material] ancestor. /// -/// Used by many material design widgets to make sure that they are +/// Used by many Material Design widgets to make sure that they are /// only used in contexts where they can print ink onto some material. /// /// To call this function, use the following pattern, typically in the @@ -31,7 +31,7 @@ bool debugCheckHasMaterial(BuildContext context) { ErrorDescription( '${context.widget.runtimeType} widgets require a Material ' 'widget ancestor.\n' - 'In material design, most widgets are conceptually "printed" on ' + 'In Material Design, most widgets are conceptually "printed" on ' "a sheet of material. In Flutter's material library, that " 'material is represented by the Material widget. It is the ' 'Material widget that renders ink splashes, for instance. ' @@ -54,7 +54,7 @@ bool debugCheckHasMaterial(BuildContext context) { /// Asserts that the given context has a [Localizations] ancestor that contains /// a [MaterialLocalizations] delegate. /// -/// Used by many material design widgets to make sure that they are +/// Used by many Material Design widgets to make sure that they are /// only used in contexts where they have access to localizations. /// /// To call this function, use the following pattern, typically in the diff --git a/packages/flutter/lib/src/material/dialog.dart b/packages/flutter/lib/src/material/dialog.dart index 1a26d32dadd2e..fcc519d7d8aa4 100644 --- a/packages/flutter/lib/src/material/dialog.dart +++ b/packages/flutter/lib/src/material/dialog.dart @@ -24,11 +24,11 @@ import 'theme_data.dart'; const EdgeInsets _defaultInsetPadding = EdgeInsets.symmetric(horizontal: 40.0, vertical: 24.0); -/// A material design dialog. +/// A Material Design dialog. /// /// This dialog widget does not have any opinion about the contents of the /// dialog. Rather than using this widget directly, consider using [AlertDialog] -/// or [SimpleDialog], which implement specific kinds of material design +/// or [SimpleDialog], which implement specific kinds of Material Design /// dialogs. /// /// See also: @@ -166,7 +166,7 @@ class Dialog extends StatelessWidget { } } -/// A material design alert dialog. +/// A Material Design alert dialog. /// /// An alert dialog informs the user about situations that require /// acknowledgement. An alert dialog has an optional title and an optional list @@ -700,7 +700,7 @@ class SimpleDialogOption extends StatelessWidget { } } -/// A simple material design dialog. +/// A simple Material Design dialog. /// /// A simple dialog offers the user a choice between several options. A simple /// dialog has an optional title that is displayed above the choices. diff --git a/packages/flutter/lib/src/material/dialog_theme.dart b/packages/flutter/lib/src/material/dialog_theme.dart index f3718fdd2ad3f..9621050a9f875 100644 --- a/packages/flutter/lib/src/material/dialog_theme.dart +++ b/packages/flutter/lib/src/material/dialog_theme.dart @@ -24,7 +24,7 @@ import 'theme.dart'; /// /// See also: /// -/// * [Dialog], a material dialog that can be customized using this [DialogTheme]. +/// * [Dialog], a Material Design dialog that can be customized using this [DialogTheme]. /// * [ThemeData], which describes the overall theme information for the /// application. @immutable diff --git a/packages/flutter/lib/src/material/divider.dart b/packages/flutter/lib/src/material/divider.dart index 341b10f5ae6be..44b3f6649b827 100644 --- a/packages/flutter/lib/src/material/divider.dart +++ b/packages/flutter/lib/src/material/divider.dart @@ -12,7 +12,7 @@ import 'theme.dart'; /// A thin horizontal line, with padding on either side. /// -/// In the material design language, this represents a divider. Dividers can be +/// In the Material Design language, this represents a divider. Dividers can be /// used in lists, [Drawer]s, and elsewhere to separate content. /// /// To create a divider between [ListTile] items, consider using @@ -41,7 +41,7 @@ import 'theme.dart'; /// * [VerticalDivider], which is the vertical analog of this widget. /// * class Divider extends StatelessWidget { - /// Creates a material design divider. + /// Creates a Material Design divider. /// /// The [height], [thickness], [indent], and [endIndent] must be null or /// non-negative. @@ -179,7 +179,7 @@ class Divider extends StatelessWidget { /// A thin vertical line, with padding on either side. /// -/// In the material design language, this represents a divider. Vertical +/// In the Material Design language, this represents a divider. Vertical /// dividers can be used in horizontally scrolling lists, such as a /// [ListView] with [ListView.scrollDirection] set to [Axis.horizontal]. /// @@ -201,7 +201,7 @@ class Divider extends StatelessWidget { /// * [Divider], which is the horizontal analog of this widget. /// * class VerticalDivider extends StatelessWidget { - /// Creates a material design vertical divider. + /// Creates a Material Design vertical divider. /// /// The [width], [thickness], [indent], and [endIndent] must be null or /// non-negative. diff --git a/packages/flutter/lib/src/material/drawer.dart b/packages/flutter/lib/src/material/drawer.dart index 667566279e974..6542de82dc7e6 100644 --- a/packages/flutter/lib/src/material/drawer.dart +++ b/packages/flutter/lib/src/material/drawer.dart @@ -47,7 +47,7 @@ const double _kEdgeDragWidth = 20.0; const double _kMinFlingVelocity = 365.0; const Duration _kBaseSettleDuration = Duration(milliseconds: 246); -/// A material design panel that slides in horizontally from the edge of a +/// A Material Design panel that slides in horizontally from the edge of a /// [Scaffold] to show navigation links in an application. /// /// {@youtube 560 315 https://www.youtube.com/watch?v=WRj86iHihgY} @@ -134,7 +134,7 @@ const Duration _kBaseSettleDuration = Duration(milliseconds: 246); /// * [ScaffoldState.openDrawer], which displays its [Drawer], if any. /// * class Drawer extends StatelessWidget { - /// Creates a material design drawer. + /// Creates a Material Design drawer. /// /// Typically used in the [Scaffold.drawer] property. /// diff --git a/packages/flutter/lib/src/material/drawer_header.dart b/packages/flutter/lib/src/material/drawer_header.dart index 1a7e91c17b3e8..4b5a2df6f9f78 100644 --- a/packages/flutter/lib/src/material/drawer_header.dart +++ b/packages/flutter/lib/src/material/drawer_header.dart @@ -10,11 +10,11 @@ import 'theme.dart'; const double _kDrawerHeaderHeight = 160.0 + 1.0; // bottom edge -/// The top-most region of a material design drawer. The header's [child] +/// The top-most region of a Material Design drawer. The header's [child] /// widget, if any, is placed inside a [Container] whose [decoration] can be /// passed as an argument, inset by the given [padding]. /// -/// Part of the material design [Drawer]. +/// Part of the Material Design [Drawer]. /// /// Requires one of its ancestors to be a [Material] widget. This condition is /// satisfied by putting the [DrawerHeader] in a [Drawer]. @@ -25,7 +25,7 @@ const double _kDrawerHeaderHeight = 160.0 + 1.0; // bottom edge /// specialized for showing user accounts. /// * class DrawerHeader extends StatelessWidget { - /// Creates a material design drawer header. + /// Creates a Material Design drawer header. /// /// Requires one of its ancestors to be a [Material] widget. const DrawerHeader({ diff --git a/packages/flutter/lib/src/material/dropdown.dart b/packages/flutter/lib/src/material/dropdown.dart index 9b186ca28b56d..1fad88a9735ad 100644 --- a/packages/flutter/lib/src/material/dropdown.dart +++ b/packages/flutter/lib/src/material/dropdown.dart @@ -759,7 +759,7 @@ class DropdownMenuItem extends _DropdownMenuItemContainer { /// /// This is used by [DataTable] to remove the underline from any /// [DropdownButton] widgets placed within material data tables, as -/// required by the material design specification. +/// required by the Material Design specification. class DropdownButtonHideUnderline extends InheritedWidget { /// Creates a [DropdownButtonHideUnderline]. A non-null [child] must /// be given. @@ -778,7 +778,7 @@ class DropdownButtonHideUnderline extends InheritedWidget { bool updateShouldNotify(DropdownButtonHideUnderline oldWidget) => false; } -/// A material design button for selecting from a list of items. +/// A Material Design button for selecting from a list of items. /// /// A dropdown button lets the user select from a number of items. The button /// shows the currently selected item as well as an arrow that opens a menu for diff --git a/packages/flutter/lib/src/material/flexible_space_bar.dart b/packages/flutter/lib/src/material/flexible_space_bar.dart index 58c841c1539a5..58ec0cb05a3ac 100644 --- a/packages/flutter/lib/src/material/flexible_space_bar.dart +++ b/packages/flutter/lib/src/material/flexible_space_bar.dart @@ -35,7 +35,7 @@ enum StretchMode { fadeTitle, } -/// The part of a material design [AppBar] that expands, collapses, and +/// The part of a Material Design [AppBar] that expands, collapses, and /// stretches. /// /// {@youtube 560 315 https://www.youtube.com/watch?v=mSc7qFzxHDw} diff --git a/packages/flutter/lib/src/material/floating_action_button.dart b/packages/flutter/lib/src/material/floating_action_button.dart index 2ca2e7ace9dcf..021e7c5809102 100644 --- a/packages/flutter/lib/src/material/floating_action_button.dart +++ b/packages/flutter/lib/src/material/floating_action_button.dart @@ -30,7 +30,7 @@ enum _FloatingActionButtonType { extended, } -/// A material design floating action button. +/// A Material Design floating action button. /// /// A floating action button is a circular icon button that hovers over content /// to promote a primary action in the application. Floating action buttons are @@ -331,7 +331,7 @@ class FloatingActionButton extends StatelessWidget { /// If this is not explicitly set, then there can only be one /// [FloatingActionButton] per route (that is, per screen), since otherwise /// there would be a tag conflict (multiple heroes on one route can't have the - /// same tag). The material design specification recommends only using one + /// same tag). The Material Design specification recommends only using one /// floating action button per screen. final Object? heroTag; diff --git a/packages/flutter/lib/src/material/grid_tile.dart b/packages/flutter/lib/src/material/grid_tile.dart index 59f703d95d65e..e6bd778765dac 100644 --- a/packages/flutter/lib/src/material/grid_tile.dart +++ b/packages/flutter/lib/src/material/grid_tile.dart @@ -4,7 +4,7 @@ import 'package:flutter/widgets.dart'; -/// A tile in a material design grid list. +/// A tile in a Material Design grid list. /// /// A grid list is a [GridView] of tiles in a vertical and horizontal /// array. Each tile typically contains some visually rich content (e.g., an diff --git a/packages/flutter/lib/src/material/grid_tile_bar.dart b/packages/flutter/lib/src/material/grid_tile_bar.dart index c4782a9824b63..70d158128e566 100644 --- a/packages/flutter/lib/src/material/grid_tile_bar.dart +++ b/packages/flutter/lib/src/material/grid_tile_bar.dart @@ -7,7 +7,7 @@ import 'package:flutter/widgets.dart'; import 'colors.dart'; import 'theme.dart'; -/// A header used in a material design [GridTile]. +/// A header used in a Material Design [GridTile]. /// /// Typically used to add a one or two line header or footer on a [GridTile]. /// diff --git a/packages/flutter/lib/src/material/icon_button.dart b/packages/flutter/lib/src/material/icon_button.dart index 1677b2d137a59..267b9dcecd43e 100644 --- a/packages/flutter/lib/src/material/icon_button.dart +++ b/packages/flutter/lib/src/material/icon_button.dart @@ -21,7 +21,7 @@ import 'tooltip.dart'; // See: . const double _kMinButtonSize = kMinInteractiveDimension; -/// A material design icon button. +/// A Material Design icon button. /// /// An icon button is a picture printed on a [Material] widget that reacts to /// touches by filling with color (ink). @@ -94,7 +94,7 @@ const double _kMinButtonSize = kMinInteractiveDimension; /// /// See also: /// -/// * [Icons], a library of predefined icons. +/// * [Icons], the library of Material Icons. /// * [BackButton], an icon button for a "back" affordance which adapts to the /// current platform's conventions. /// * [CloseButton], an icon button for closing pages. diff --git a/packages/flutter/lib/src/material/icons.dart b/packages/flutter/lib/src/material/icons.dart index 5b19c625b1b0c..fd2ae28a3b4dc 100644 --- a/packages/flutter/lib/src/material/icons.dart +++ b/packages/flutter/lib/src/material/icons.dart @@ -7,7 +7,7 @@ import 'package:flutter/widgets.dart'; // ignore_for_file: non_constant_identifier_names -/// A set of platform-adaptive material design icons. +/// A set of platform-adaptive Material Design icons. /// /// Use [Icons.adaptive] to access a static instance of this class. class PlatformAdaptiveIcons implements Icons { @@ -93,7 +93,7 @@ class PlatformAdaptiveIcons implements Icons { // END GENERATED PLATFORM ADAPTIVE ICONS } -/// Identifiers for the supported material design icons. +/// Identifiers for the supported Material Design icons. /// /// Use with the [Icon] class to show specific icons. /// @@ -152,7 +152,7 @@ class Icons { // prevents instantiation and extension. Icons._(); - /// A set of platform-adaptive material design icons. + /// A set of platform-adaptive Material Design icons. /// /// Provides a convenient way to show a certain set of platform-appropriate /// icons on Apple platforms. diff --git a/packages/flutter/lib/src/material/ink_well.dart b/packages/flutter/lib/src/material/ink_well.dart index 6192ec59b005f..f8faa5dd1b44c 100644 --- a/packages/flutter/lib/src/material/ink_well.dart +++ b/packages/flutter/lib/src/material/ink_well.dart @@ -247,7 +247,7 @@ typedef _CheckContext = bool Function(BuildContext context); /// /// The [InkResponse] widget must have a [Material] widget as an ancestor. The /// [Material] widget is where the ink reactions are actually painted. This -/// matches the material design premise wherein the [Material] is what is +/// matches the Material Design premise wherein the [Material] is what is /// actually reacting to touches by spreading ink. /// /// If a Widget uses this class directly, it should include the following line @@ -280,7 +280,7 @@ typedef _CheckContext = bool Function(BuildContext context); /// See also: /// /// * [GestureDetector], for listening for gestures without ink splashes. -/// * [ElevatedButton] and [TextButton], two kinds of buttons in material design. +/// * [ElevatedButton] and [TextButton], two kinds of buttons in Material Design. /// * [IconButton], which combines [InkResponse] with an [Icon]. class InkResponse extends StatelessWidget { /// Creates an area of a [Material] that responds to touch. @@ -1147,7 +1147,7 @@ class _InkResponseState extends State<_InkResponseStateWidget> /// /// The [InkWell] widget must have a [Material] widget as an ancestor. The /// [Material] widget is where the ink reactions are actually painted. This -/// matches the material design premise wherein the [Material] is what is +/// matches the Material Design premise wherein the [Material] is what is /// actually reacting to touches by spreading ink. /// /// If a Widget uses this class directly, it should include the following line @@ -1211,7 +1211,7 @@ class _InkResponseState extends State<_InkResponseStateWidget> /// See also: /// /// * [GestureDetector], for listening for gestures without ink splashes. -/// * [ElevatedButton] and [TextButton], two kinds of buttons in material design. +/// * [ElevatedButton] and [TextButton], two kinds of buttons in Material Design. /// * [InkResponse], a variant of [InkWell] that doesn't force a rectangular /// shape on the ink reaction. class InkWell extends InkResponse { diff --git a/packages/flutter/lib/src/material/input_date_picker_form_field.dart b/packages/flutter/lib/src/material/input_date_picker_form_field.dart index c0b27573a7d7c..3fcec07161001 100644 --- a/packages/flutter/lib/src/material/input_date_picker_form_field.dart +++ b/packages/flutter/lib/src/material/input_date_picker_form_field.dart @@ -25,7 +25,7 @@ import 'theme.dart'; /// /// See also: /// -/// * [showDatePicker], which shows a dialog that contains a material design +/// * [showDatePicker], which shows a dialog that contains a Material Design /// date picker which includes support for text entry of dates. /// * [MaterialLocalizations.parseCompactDate], which is used to parse the text /// input into a [DateTime]. diff --git a/packages/flutter/lib/src/material/input_decorator.dart b/packages/flutter/lib/src/material/input_decorator.dart index cbc7bcf0fade3..2ff89d206686f 100644 --- a/packages/flutter/lib/src/material/input_decorator.dart +++ b/packages/flutter/lib/src/material/input_decorator.dart @@ -1955,7 +1955,7 @@ class _InputDecoratorState extends State with TickerProviderStat } Color _getIconColor(ThemeData themeData) { - Color _resolveIconColor(Set states) { + Color resolveIconColor(Set states) { if (states.contains(MaterialState.disabled) && !states.contains(MaterialState.focused)) return themeData.disabledColor; @@ -1970,7 +1970,7 @@ class _InputDecoratorState extends State with TickerProviderStat } } return MaterialStateProperty.resolveAs(themeData.inputDecorationTheme.iconColor, materialState) - ?? MaterialStateProperty.resolveWith(_resolveIconColor).resolve(materialState); + ?? MaterialStateProperty.resolveWith(resolveIconColor).resolve(materialState); } Color _getPrefixIconColor(ThemeData themeData) { @@ -2844,10 +2844,10 @@ class InputDecoration { /// /// The prefix icon is constrained with a minimum size of 48px by 48px, but /// can be expanded beyond that. Anything larger than 24px will require - /// additional padding to ensure it matches the material spec of 12px padding - /// between the left edge of the input and leading edge of the prefix icon. - /// The following snippet shows how to pad the leading edge of the prefix - /// icon: + /// additional padding to ensure it matches the Material Design spec of 12px + /// padding between the left edge of the input and leading edge of the prefix + /// icon. The following snippet shows how to pad the leading edge of the + /// prefix icon: /// /// ```dart /// prefixIcon: Padding( @@ -2966,10 +2966,10 @@ class InputDecoration { /// /// The suffix icon is constrained with a minimum size of 48px by 48px, but /// can be expanded beyond that. Anything larger than 24px will require - /// additional padding to ensure it matches the material spec of 12px padding - /// between the right edge of the input and trailing edge of the prefix icon. - /// The following snippet shows how to pad the trailing edge of the suffix - /// icon: + /// additional padding to ensure it matches the Material Design spec of 12px + /// padding between the right edge of the input and trailing edge of the + /// prefix icon. The following snippet shows how to pad the trailing edge of + /// the suffix icon: /// /// ```dart /// suffixIcon: Padding( diff --git a/packages/flutter/lib/src/material/list_tile.dart b/packages/flutter/lib/src/material/list_tile.dart index 5dd7aec93cd9a..3dd93577239f3 100644 --- a/packages/flutter/lib/src/material/list_tile.dart +++ b/packages/flutter/lib/src/material/list_tile.dart @@ -95,7 +95,7 @@ enum ListTileControlAffinity { /// widget, like `Container(color: Colors.white)`, is included in /// between the [ListTile] and its [Material] ancestor, then the /// opaque widget will obscure the material widget and its background -/// [tileColor], etc. If this a problem, one can wrap a material +/// [tileColor], etc. If this a problem, one can wrap a [Material] /// widget around the list tile, e.g.: /// /// ```dart diff --git a/packages/flutter/lib/src/material/material.dart b/packages/flutter/lib/src/material/material.dart index dc2aecff251e3..a8fddca7025ed 100644 --- a/packages/flutter/lib/src/material/material.dart +++ b/packages/flutter/lib/src/material/material.dart @@ -15,7 +15,7 @@ import 'theme.dart'; /// Used by [InkHighlight] and [InkSplash], for example. typedef RectCallback = Rect Function(); -/// The various kinds of material in material design. Used to +/// The various kinds of material in Material Design. Used to /// configure the default behavior of [Material] widgets. /// /// See also: @@ -48,7 +48,7 @@ enum MaterialType { transparency } -/// The border radii used by the various kinds of material in material design. +/// The border radii used by the various kinds of material in Material Design. /// /// See also: /// @@ -62,7 +62,7 @@ const Map kMaterialEdges = class OutlinedButton extends ButtonStyleButton { /// Create an OutlinedButton. diff --git a/packages/flutter/lib/src/material/paginated_data_table.dart b/packages/flutter/lib/src/material/paginated_data_table.dart index 5669eb0485020..f79abdbab4e6d 100644 --- a/packages/flutter/lib/src/material/paginated_data_table.dart +++ b/packages/flutter/lib/src/material/paginated_data_table.dart @@ -20,7 +20,7 @@ import 'material_localizations.dart'; import 'progress_indicator.dart'; import 'theme.dart'; -/// A material design data table that shows data using multiple pages. +/// A Material Design data table that shows data using multiple pages. /// /// A paginated data table shows [rowsPerPage] rows of data per page and /// provides controls for showing other pages. diff --git a/packages/flutter/lib/src/material/popup_menu.dart b/packages/flutter/lib/src/material/popup_menu.dart index 1fc280ad18fbf..aaefd3da6ad7e 100644 --- a/packages/flutter/lib/src/material/popup_menu.dart +++ b/packages/flutter/lib/src/material/popup_menu.dart @@ -47,7 +47,7 @@ enum PopupMenuPosition { under, } -/// A base class for entries in a material design popup menu. +/// A base class for entries in a Material Design popup menu. /// /// The popup menu widget uses this interface to interact with the menu items. /// To show a popup menu, use the [showMenu] function. To create a button that @@ -96,7 +96,7 @@ abstract class PopupMenuEntry extends StatefulWidget { bool represents(T? value); } -/// A horizontal divider in a material design popup menu. +/// A horizontal divider in a Material Design popup menu. /// /// This widget adapts the [Divider] for use in popup menus. /// @@ -180,7 +180,7 @@ class _RenderMenuItem extends RenderShiftedBox { } } -/// An item in a material design popup menu. +/// An item in a Material Design popup menu. /// /// To show a popup menu, use the [showMenu] function. To create a button that /// shows a popup menu, consider using [PopupMenuButton]. @@ -384,7 +384,7 @@ class PopupMenuItemState> extends State { } } -/// An item with a checkmark in a material design popup menu. +/// An item with a checkmark in a Material Design popup menu. /// /// To show a popup menu, use the [showMenu] function. To create a button that /// shows a popup menu, consider using [PopupMenuButton]. @@ -1123,7 +1123,7 @@ class PopupMenuButton extends StatefulWidget { /// ``` /// /// The default constraints ensure that the menu width matches maximum width - /// recommended by the material design guidelines. + /// recommended by the Material Design guidelines. /// Specifying this parameter enables creation of menu wider than /// the default maximum width. final BoxConstraints? constraints; diff --git a/packages/flutter/lib/src/material/progress_indicator.dart b/packages/flutter/lib/src/material/progress_indicator.dart index 3a5fbbad475d6..afc387d49c21f 100644 --- a/packages/flutter/lib/src/material/progress_indicator.dart +++ b/packages/flutter/lib/src/material/progress_indicator.dart @@ -18,7 +18,7 @@ const int _kIndeterminateCircularDuration = 1333 * 2222; enum _ActivityIndicatorType { material, adaptive } -/// A base class for material design progress indicators. +/// A base class for Material Design progress indicators. /// /// This widget cannot be instantiated directly. For a linear progress /// indicator, see [LinearProgressIndicator]. For a circular progress indicator, @@ -225,7 +225,7 @@ class _LinearProgressIndicatorPainter extends CustomPainter { } } -/// A material design linear progress indicator, also known as a progress bar. +/// A Material Design linear progress indicator, also known as a progress bar. /// /// {@youtube 560 315 https://www.youtube.com/watch?v=O-rhXZLtpv0} /// @@ -438,7 +438,7 @@ class _CircularProgressIndicatorPainter extends CustomPainter { } } -/// A material design circular progress indicator, which spins to indicate that +/// A Material Design circular progress indicator, which spins to indicate that /// the application is busy. /// /// {@youtube 560 315 https://www.youtube.com/watch?v=O-rhXZLtpv0} diff --git a/packages/flutter/lib/src/material/radio.dart b/packages/flutter/lib/src/material/radio.dart index 9d5ed4ac1c03f..79714204f0b35 100644 --- a/packages/flutter/lib/src/material/radio.dart +++ b/packages/flutter/lib/src/material/radio.dart @@ -15,7 +15,7 @@ import 'toggleable.dart'; const double _kOuterRadius = 8.0; const double _kInnerRadius = 4.5; -/// A material design radio button. +/// A Material Design radio button. /// /// Used to select between a number of mutually exclusive values. When one radio /// button in a group is selected, the other radio buttons in the group cease to @@ -55,7 +55,7 @@ const double _kInnerRadius = 4.5; /// * [Checkbox] and [Switch], for toggling a particular value on or off. /// * class Radio extends StatefulWidget { - /// Creates a material design radio button. + /// Creates a Material Design radio button. /// /// The radio button itself does not maintain any state. Instead, when the /// radio button is selected, the widget calls the [onChanged] callback. Most diff --git a/packages/flutter/lib/src/material/range_slider.dart b/packages/flutter/lib/src/material/range_slider.dart index bb86fde4859cf..fdd10e1e79e5b 100644 --- a/packages/flutter/lib/src/material/range_slider.dart +++ b/packages/flutter/lib/src/material/range_slider.dart @@ -614,7 +614,7 @@ class _RangeSliderState extends State with TickerProviderStateMixin // This size is used as the max bounds for the painting of the value // indicators. It must be kept in sync with the function with the same name // in slider.dart. - Size _screenSize() => MediaQuery.of(context).size; + Size screenSize() => MediaQuery.of(context).size; return CompositedTransformTarget( link: _layerLink, @@ -624,7 +624,7 @@ class _RangeSliderState extends State with TickerProviderStateMixin labels: widget.labels, sliderTheme: sliderTheme, textScaleFactor: MediaQuery.of(context).textScaleFactor, - screenSize: _screenSize(), + screenSize: screenSize(), onChanged: (widget.onChanged != null) && (widget.max > widget.min) ? _handleChanged : null, onChangeStart: widget.onChangeStart != null ? _handleDragStart : null, onChangeEnd: widget.onChangeEnd != null ? _handleDragEnd : null, diff --git a/packages/flutter/lib/src/material/scaffold.dart b/packages/flutter/lib/src/material/scaffold.dart index 3eef5e3e71285..1bde8e9190908 100644 --- a/packages/flutter/lib/src/material/scaffold.dart +++ b/packages/flutter/lib/src/material/scaffold.dart @@ -474,8 +474,8 @@ class ScaffoldMessengerState extends State with TickerProvide } } - /// Removes all the materialBanners currently in queue by clearing the queue - /// and running normal exit animation on the current materialBanner. + /// Removes all the [MaterialBanner]s currently in queue by clearing the queue + /// and running normal exit animation on the current [MaterialBanner]. void clearMaterialBanners() { if (_materialBanners.isEmpty || _materialBannerController!.status == AnimationStatus.dismissed) return; @@ -1333,7 +1333,7 @@ class _FloatingActionButtonTransitionState extends State<_FloatingActionButtonTr } } -/// Implements the basic material design visual layout structure. +/// Implements the basic Material Design visual layout structure. /// /// This class provides APIs for showing drawers and bottom sheets. /// @@ -1454,7 +1454,7 @@ class _FloatingActionButtonTransitionState extends State<_FloatingActionButtonTr /// * /// * Cookbook: [Add a Drawer to a screen](https://flutter.dev/docs/cookbook/design/drawer) class Scaffold extends StatefulWidget { - /// Creates a visual scaffold for material design widgets. + /// Creates a visual scaffold for Material Design widgets. const Scaffold({ super.key, this.appBar, @@ -2064,7 +2064,7 @@ class ScaffoldState extends State with TickerProviderStateMixin, Resto // support drag or swipe to dismiss. final AnimationController animationController = BottomSheet.createAnimationController(this)..value = 1.0; LocalHistoryEntry? persistentSheetHistoryEntry; - bool _persistentBottomSheetExtentChanged(DraggableScrollableNotification notification) { + bool persistentBottomSheetExtentChanged(DraggableScrollableNotification notification) { if (notification.extent > notification.initialExtent) { if (persistentSheetHistoryEntry == null) { persistentSheetHistoryEntry = LocalHistoryEntry(onRemove: () { @@ -2086,7 +2086,7 @@ class ScaffoldState extends State with TickerProviderStateMixin, Resto _currentBottomSheet = _buildBottomSheet( (BuildContext context) { return NotificationListener( - onNotification: _persistentBottomSheetExtentChanged, + onNotification: persistentBottomSheetExtentChanged, child: DraggableScrollableActuator( child: StatefulBuilder( key: _currentBottomSheetKey, @@ -2166,7 +2166,7 @@ class ScaffoldState extends State with TickerProviderStateMixin, Resto bool removedEntry = false; bool doingDispose = false; - void _removeCurrentBottomSheet() { + void removeCurrentBottomSheet() { removedEntry = true; if (_currentBottomSheet == null) { return; @@ -2190,11 +2190,11 @@ class ScaffoldState extends State with TickerProviderStateMixin, Resto ? null : LocalHistoryEntry(onRemove: () { if (!removedEntry && _currentBottomSheet?._widget == bottomSheet && !doingDispose) { - _removeCurrentBottomSheet(); + removeCurrentBottomSheet(); } }); - void _removeEntryIfNeeded() { + void removeEntryIfNeeded() { if (!isPersistent && !removedEntry) { assert(entry != null); entry!.remove(); @@ -2211,7 +2211,7 @@ class ScaffoldState extends State with TickerProviderStateMixin, Resto return; } assert(_currentBottomSheet!._widget == bottomSheet); - _removeEntryIfNeeded(); + removeEntryIfNeeded(); }, onDismissed: () { if (_dismissedBottomSheets.contains(bottomSheet)) { @@ -2222,7 +2222,7 @@ class ScaffoldState extends State with TickerProviderStateMixin, Resto }, onDispose: () { doingDispose = true; - _removeEntryIfNeeded(); + removeEntryIfNeeded(); if (shouldDisposeAnimationController) { animationController.dispose(); } @@ -2244,13 +2244,13 @@ class ScaffoldState extends State with TickerProviderStateMixin, Resto completer, entry != null ? entry.remove - : _removeCurrentBottomSheet, + : removeCurrentBottomSheet, (VoidCallback fn) { bottomSheetKey.currentState?.setState(fn); }, !isPersistent, ); } - /// Shows a material design bottom sheet in the nearest [Scaffold]. To show + /// Shows a Material Design bottom sheet in the nearest [Scaffold]. To show /// a persistent bottom sheet, use the [Scaffold.bottomSheet]. /// /// Returns a controller that can be used to close and otherwise manipulate the diff --git a/packages/flutter/lib/src/material/scrollbar.dart b/packages/flutter/lib/src/material/scrollbar.dart index 3d0e0823643df..2d62f967a8cb3 100644 --- a/packages/flutter/lib/src/material/scrollbar.dart +++ b/packages/flutter/lib/src/material/scrollbar.dart @@ -70,7 +70,7 @@ const Duration _kScrollbarTimeToFade = Duration(milliseconds: 600); /// * [ListView], which displays a linear, scrollable list of children. /// * [GridView], which displays a 2 dimensional, scrollable array of children. class Scrollbar extends StatelessWidget { - /// Creates a material design scrollbar that by default will connect to the + /// Creates a Material Design scrollbar that by default will connect to the /// closest Scrollable descendant of [child]. /// /// The [child] should be a source of [ScrollNotification] notifications, diff --git a/packages/flutter/lib/src/material/shadows.dart b/packages/flutter/lib/src/material/shadows.dart index 523dfb6eb6d25..35947a61b842d 100644 --- a/packages/flutter/lib/src/material/shadows.dart +++ b/packages/flutter/lib/src/material/shadows.dart @@ -8,7 +8,7 @@ import 'package:flutter/painting.dart'; // Currently, only the elevation values that are bound to one or more widgets are // defined here. -/// Map of elevation offsets used by material design to [BoxShadow] definitions. +/// Map of elevation offsets used by Material Design to [BoxShadow] definitions. /// /// The following elevations have defined shadows: 1, 2, 3, 4, 6, 8, 9, 12, 16, 24. /// diff --git a/packages/flutter/lib/src/material/slider.dart b/packages/flutter/lib/src/material/slider.dart index 5cb0ee675dc42..449bc4a2508ce 100644 --- a/packages/flutter/lib/src/material/slider.dart +++ b/packages/flutter/lib/src/material/slider.dart @@ -715,7 +715,7 @@ class _SliderState extends State with TickerProviderStateMixin { // This size is used as the max bounds for the painting of the value // indicators It must be kept in sync with the function with the same name // in range_slider.dart. - Size _screenSize() => MediaQuery.of(context).size; + Size screenSize() => MediaQuery.of(context).size; VoidCallback? handleDidGainAccessibilityFocus; switch (theme.platform) { @@ -757,7 +757,7 @@ class _SliderState extends State with TickerProviderStateMixin { label: widget.label, sliderTheme: sliderTheme, textScaleFactor: MediaQuery.of(context).textScaleFactor, - screenSize: _screenSize(), + screenSize: screenSize(), onChanged: (widget.onChanged != null) && (widget.max > widget.min) ? _handleChanged : null, onChangeStart: _handleDragStart, onChangeEnd: _handleDragEnd, diff --git a/packages/flutter/lib/src/material/slider_theme.dart b/packages/flutter/lib/src/material/slider_theme.dart index f485f4badc525..96efbbd0b0922 100644 --- a/packages/flutter/lib/src/material/slider_theme.dart +++ b/packages/flutter/lib/src/material/slider_theme.dart @@ -150,7 +150,7 @@ enum Thumb { end, } -/// Holds the color, shape, and typography values for a material design slider +/// Holds the color, shape, and typography values for a Material Design slider /// theme. /// /// Use this class to configure a [SliderTheme] widget, or to set the @@ -2286,7 +2286,7 @@ class RoundSliderThumbShape extends SliderComponentShape { /// The preferred radius of the round thumb shape when the slider is enabled. /// - /// If it is not provided, then the material default of 10 is used. + /// If it is not provided, then the Material Design default of 10 is used. final double enabledThumbRadius; /// The preferred radius of the round thumb shape when the slider is disabled. @@ -2394,7 +2394,7 @@ class RoundRangeSliderThumbShape extends RangeSliderThumbShape { /// The preferred radius of the round thumb shape when the slider is enabled. /// - /// If it is not provided, then the material default of 10 is used. + /// If it is not provided, then the Material Design default of 10 is used. final double enabledThumbRadius; /// The preferred radius of the round thumb shape when the slider is disabled. diff --git a/packages/flutter/lib/src/material/switch.dart b/packages/flutter/lib/src/material/switch.dart index f9474184f8f0d..9d5c04248b43a 100644 --- a/packages/flutter/lib/src/material/switch.dart +++ b/packages/flutter/lib/src/material/switch.dart @@ -28,7 +28,7 @@ const double _kSwitchHeightCollapsed = _kSwitchMinSize; enum _SwitchType { material, adaptive } -/// A material design switch. +/// A Material Design switch. /// /// Used to toggle the on/off state of a single setting. /// @@ -53,7 +53,7 @@ enum _SwitchType { material, adaptive } /// * [Slider], for selecting a value in a range. /// * class Switch extends StatelessWidget { - /// Creates a material design switch. + /// Creates a Material Design switch. /// /// The switch itself does not maintain any state. Instead, when the state of /// the switch changes, the widget calls the [onChanged] callback. Most widgets diff --git a/packages/flutter/lib/src/material/tabs.dart b/packages/flutter/lib/src/material/tabs.dart index f24f4344a758e..a8ab3c2090e31 100644 --- a/packages/flutter/lib/src/material/tabs.dart +++ b/packages/flutter/lib/src/material/tabs.dart @@ -47,7 +47,7 @@ enum TabBarIndicatorSize { label, } -/// A material design [TabBar] tab. +/// A Material Design [TabBar] tab. /// /// If both [icon] and [text] are provided, the text is displayed below /// the icon. @@ -59,7 +59,7 @@ enum TabBarIndicatorSize { /// * [TabController], which coordinates tab selection between a [TabBar] and a [TabBarView]. /// * class Tab extends StatelessWidget implements PreferredSizeWidget { - /// Creates a material design [TabBar] tab. + /// Creates a Material Design [TabBar] tab. /// /// At least one of [text], [icon], and [child] must be non-null. The [text] /// and [child] arguments must not be used at the same time. The @@ -552,7 +552,7 @@ class _TabBarScrollController extends ScrollController { } } -/// A material design widget that displays a horizontal row of tabs. +/// A Material Design widget that displays a horizontal row of tabs. /// /// Typically created as the [AppBar.bottom] part of an [AppBar] and in /// conjunction with a [TabBarView]. @@ -588,7 +588,7 @@ class _TabBarScrollController extends ScrollController { /// * [TabBarView], which displays page views that correspond to each tab. /// * [TabBar], which is used to display the [Tab] that corresponds to each page of the [TabBarView]. class TabBar extends StatefulWidget implements PreferredSizeWidget { - /// Creates a material design tab bar. + /// Creates a Material Design tab bar. /// /// The [tabs] argument must not be null and its length must match the [controller]'s /// [TabController.length]. diff --git a/packages/flutter/lib/src/material/text_field.dart b/packages/flutter/lib/src/material/text_field.dart index 74e5585c90bf4..c7caa46b07238 100644 --- a/packages/flutter/lib/src/material/text_field.dart +++ b/packages/flutter/lib/src/material/text_field.dart @@ -113,7 +113,7 @@ class _TextFieldSelectionGestureDetectorBuilder extends TextSelectionGestureDete } } -/// A material design text field. +/// A Material Design text field. /// /// A text field lets the user enter text, either with hardware keyboard or with /// an onscreen keyboard. diff --git a/packages/flutter/lib/src/material/text_theme.dart b/packages/flutter/lib/src/material/text_theme.dart index 24f8ace1b416c..8c26fdc7247c1 100644 --- a/packages/flutter/lib/src/material/text_theme.dart +++ b/packages/flutter/lib/src/material/text_theme.dart @@ -66,7 +66,7 @@ import 'typography.dart'; /// See also: /// /// * [Typography], the class that generates [TextTheme]s appropriate for a platform. -/// * [Theme], for other aspects of a material design application that can be +/// * [Theme], for other aspects of a Material Design application that can be /// globally adjusted, such as the color scheme. /// * @immutable @@ -75,7 +75,7 @@ class TextTheme with Diagnosticable { /// /// Rather than creating a new text theme, consider using [Typography.black] /// or [Typography.white], which implement the typography styles in the - /// material design specification: + /// Material Design specification: /// /// /// @@ -280,7 +280,7 @@ class TextTheme with Diagnosticable { /// the new values. /// /// Consider using [Typography.black] or [Typography.white], which implement - /// the typography styles in the material design specification, as a starting + /// the typography styles in the Material Design specification, as a starting /// point. /// /// {@tool snippet} @@ -455,7 +455,7 @@ class TextTheme with Diagnosticable { /// `bodyColor` is applied to the remaining text styles. /// /// Consider using [Typography.black] or [Typography.white], which implement - /// the typography styles in the material design specification, as a starting + /// the typography styles in the Material Design specification, as a starting /// point. TextTheme apply({ String? fontFamily, diff --git a/packages/flutter/lib/src/material/theme_data.dart b/packages/flutter/lib/src/material/theme_data.dart index 6ba18ba581f54..b9e7202e4efd7 100644 --- a/packages/flutter/lib/src/material/theme_data.dart +++ b/packages/flutter/lib/src/material/theme_data.dart @@ -994,7 +994,7 @@ class ThemeData with Diagnosticable { /// /// See also: /// - /// * [StretchingOverscrollIndicator], a material design edge effect + /// * [StretchingOverscrollIndicator], a Material Design edge effect /// that transforms the contents of a scrollable when overscrolled. /// * [GlowingOverscrollIndicator], an edge effect that paints a glow /// over the contents of a scrollable when overscrolled. @@ -1867,7 +1867,7 @@ class ThemeData with Diagnosticable { /// [Brightness.dark]. /// /// This compares the luminosity of the given color to a threshold value that - /// matches the material design specification. + /// matches the Material Design specification. static Brightness estimateBrightnessForColor(Color color) { final double relativeLuminance = color.computeLuminance(); @@ -1907,7 +1907,7 @@ class ThemeData with Diagnosticable { static Map> _themeExtensionIterableToMap(Iterable> extensionsIterable) { return Map>.unmodifiable(>{ // Strangely, the cast is necessary for tests to run. - for (final ThemeExtension extension in extensionsIterable) extension.type: extension as ThemeExtension> + for (final ThemeExtension extension in extensionsIterable) extension.type: extension as ThemeExtension>, }); } @@ -2624,7 +2624,7 @@ class VisualDensity with Diagnosticable { /// The base adjustment in logical pixels of the visual density of UI components. /// /// The input density values are multiplied by a constant to arrive at a base - /// size adjustment that fits material design guidelines. + /// size adjustment that fits Material Design guidelines. /// /// Individual components may adjust this value based upon their own /// individual interpretation of density. diff --git a/packages/flutter/lib/src/material/time.dart b/packages/flutter/lib/src/material/time.dart index aa96ee5256b65..246877f03a81f 100644 --- a/packages/flutter/lib/src/material/time.dart +++ b/packages/flutter/lib/src/material/time.dart @@ -124,14 +124,14 @@ class TimeOfDay { @override String toString() { - String _addLeadingZeroIfNeeded(int value) { + String addLeadingZeroIfNeeded(int value) { if (value < 10) return '0$value'; return value.toString(); } - final String hourLabel = _addLeadingZeroIfNeeded(hour); - final String minuteLabel = _addLeadingZeroIfNeeded(minute); + final String hourLabel = addLeadingZeroIfNeeded(hour); + final String minuteLabel = addLeadingZeroIfNeeded(minute); return '$TimeOfDay($hourLabel:$minuteLabel)'; } diff --git a/packages/flutter/lib/src/material/time_picker.dart b/packages/flutter/lib/src/material/time_picker.dart index 62c0d780c7f2a..450fdaa39dc2e 100644 --- a/packages/flutter/lib/src/material/time_picker.dart +++ b/packages/flutter/lib/src/material/time_picker.dart @@ -1782,14 +1782,14 @@ class _HourMinuteTextFieldState extends State<_HourMinuteTextField> with Restora /// Signature for when the time picker entry mode is changed. typedef EntryModeChangeCallback = void Function(TimePickerEntryMode); -/// A material design time picker designed to appear inside a popup dialog. +/// A Material Design time picker designed to appear inside a popup dialog. /// /// Pass this widget to [showDialog]. The value returned by [showDialog] is the /// selected [TimeOfDay] if the user taps the "OK" button, or null if the user /// taps the "CANCEL" button. The selected time is reported by calling /// [Navigator.pop]. class TimePickerDialog extends StatefulWidget { - /// Creates a material time picker. + /// Creates a Material Design time picker. /// /// [initialTime] must not be null. const TimePickerDialog({ @@ -2327,7 +2327,7 @@ class _TimePickerDialogState extends State with RestorationMix } } -/// Shows a dialog containing a material design time picker. +/// Shows a dialog containing a Material Design time picker. /// /// The returned Future resolves to the time selected by the user when the user /// closes the dialog. If the user cancels the dialog, null is returned. @@ -2400,7 +2400,7 @@ class _TimePickerDialogState extends State with RestorationMix /// /// See also: /// -/// * [showDatePicker], which shows a dialog that contains a material design +/// * [showDatePicker], which shows a dialog that contains a Material Design /// date picker. /// * [TimePickerThemeData], which allows you to customize the colors, /// typography, and shape of the time picker. diff --git a/packages/flutter/lib/src/material/tooltip.dart b/packages/flutter/lib/src/material/tooltip.dart index fd70a6b5eec2d..2ba01e05a6299 100644 --- a/packages/flutter/lib/src/material/tooltip.dart +++ b/packages/flutter/lib/src/material/tooltip.dart @@ -16,7 +16,7 @@ import 'theme.dart'; import 'tooltip_theme.dart'; import 'tooltip_visibility.dart'; -/// A material design tooltip. +/// A Material Design tooltip. /// /// Tooltips provide text labels which help explain the function of a button or /// other user interface action. Wrap the button in a [Tooltip] widget and provide diff --git a/packages/flutter/lib/src/material/typography.dart b/packages/flutter/lib/src/material/typography.dart index 5b1fffd3bd5a9..79ef493687dff 100644 --- a/packages/flutter/lib/src/material/typography.dart +++ b/packages/flutter/lib/src/material/typography.dart @@ -91,7 +91,7 @@ class Typography with Diagnosticable { TextTheme? tall, }) = Typography.material2018; - /// Creates a typography instance using material design's 2014 defaults. + /// Creates a typography instance using Material Design's 2014 defaults. /// /// If [platform] is [TargetPlatform.iOS] or [TargetPlatform.macOS], the /// default values for [black] and [white] are [blackCupertino] and @@ -119,7 +119,7 @@ class Typography with Diagnosticable { ); } - /// Creates a typography instance using material design's 2018 defaults. + /// Creates a typography instance using Material Design's 2018 defaults. /// /// If [platform] is [TargetPlatform.iOS] or [TargetPlatform.macOS], the /// default values for [black] and [white] are [blackCupertino] and @@ -222,7 +222,7 @@ class Typography with Diagnosticable { assert(dense != null), assert(tall != null); - /// A material design text theme with dark glyphs. + /// A Material Design text theme with dark glyphs. /// /// This [TextTheme] should provide color but not geometry (font size, /// weight, etc). A text theme's geometry depends on the locale. To look @@ -233,7 +233,7 @@ class Typography with Diagnosticable { /// geometry. final TextTheme black; - /// A material design text theme with light glyphs. + /// A Material Design text theme with light glyphs. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). /// A text theme's geometry depends on the locale. To look up a localized @@ -354,7 +354,7 @@ class Typography with Diagnosticable { properties.add(DiagnosticsProperty('tall', tall, defaultValue: defaultTypography.tall)); } - /// A material design text theme with dark glyphs based on Roboto. + /// A Material Design text theme with dark glyphs based on Roboto. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). static const TextTheme blackMountainView = TextTheme( @@ -375,7 +375,7 @@ class Typography with Diagnosticable { labelSmall: TextStyle(debugLabel: 'blackMountainView labelSmall', fontFamily: 'Roboto', color: Colors.black, decoration: TextDecoration.none), ); - /// A material design text theme with light glyphs based on Roboto. + /// A Material Design text theme with light glyphs based on Roboto. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). static const TextTheme whiteMountainView = TextTheme( @@ -396,7 +396,7 @@ class Typography with Diagnosticable { labelSmall: TextStyle(debugLabel: 'whiteMountainView labelSmall', fontFamily: 'Roboto', color: Colors.white, decoration: TextDecoration.none), ); - /// A material design text theme with dark glyphs based on Segoe UI. + /// A Material Design text theme with dark glyphs based on Segoe UI. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). static const TextTheme blackRedmond = TextTheme( @@ -417,7 +417,7 @@ class Typography with Diagnosticable { labelSmall: TextStyle(debugLabel: 'blackRedmond labelSmall', fontFamily: 'Segoe UI', color: Colors.black, decoration: TextDecoration.none), ); - /// A material design text theme with light glyphs based on Segoe UI. + /// A Material Design text theme with light glyphs based on Segoe UI. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). static const TextTheme whiteRedmond = TextTheme( @@ -439,7 +439,7 @@ class Typography with Diagnosticable { ); static const List _helsinkiFontFallbacks = ['Ubuntu', 'Cantarell', 'DejaVu Sans', 'Liberation Sans', 'Arial']; - /// A material design text theme with dark glyphs based on Roboto, with + /// A Material Design text theme with dark glyphs based on Roboto, with /// fallback fonts that are likely (but not guaranteed) to be installed on /// Linux. /// @@ -462,7 +462,7 @@ class Typography with Diagnosticable { labelSmall: TextStyle(debugLabel: 'blackHelsinki labelSmall', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.black, decoration: TextDecoration.none), ); - /// A material design text theme with light glyphs based on Roboto, with fallbacks of DejaVu Sans, Liberation Sans and Arial. + /// A Material Design text theme with light glyphs based on Roboto, with fallbacks of DejaVu Sans, Liberation Sans and Arial. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). static const TextTheme whiteHelsinki = TextTheme( @@ -483,7 +483,7 @@ class Typography with Diagnosticable { labelSmall: TextStyle(debugLabel: 'whiteHelsinki labelSmall', fontFamily: 'Roboto', fontFamilyFallback: _helsinkiFontFallbacks, color: Colors.white, decoration: TextDecoration.none), ); - /// A material design text theme with dark glyphs based on San Francisco. + /// A Material Design text theme with dark glyphs based on San Francisco. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). /// @@ -506,7 +506,7 @@ class Typography with Diagnosticable { labelSmall: TextStyle(debugLabel: 'blackCupertino labelSmall', fontFamily: '.SF UI Text', color: Colors.black, decoration: TextDecoration.none), ); - /// A material design text theme with light glyphs based on San Francisco. + /// A Material Design text theme with light glyphs based on San Francisco. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). /// @@ -529,7 +529,7 @@ class Typography with Diagnosticable { labelSmall: TextStyle(debugLabel: 'whiteCupertino labelSmall', fontFamily: '.SF UI Text', color: Colors.white, decoration: TextDecoration.none), ); - /// A material design text theme with dark glyphs based on San Francisco. + /// A Material Design text theme with dark glyphs based on San Francisco. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). /// @@ -552,7 +552,7 @@ class Typography with Diagnosticable { labelSmall: TextStyle(debugLabel: 'blackRedwoodCity labelSmall', fontFamily: '.AppleSystemUIFont', color: Colors.black, decoration: TextDecoration.none), ); - /// A material design text theme with light glyphs based on San Francisco. + /// A Material Design text theme with light glyphs based on San Francisco. /// /// This [TextTheme] provides color but not geometry (font size, weight, etc). /// diff --git a/packages/flutter/lib/src/material/user_accounts_drawer_header.dart b/packages/flutter/lib/src/material/user_accounts_drawer_header.dart index f53b220bed595..a49f8da2bf80d 100644 --- a/packages/flutter/lib/src/material/user_accounts_drawer_header.dart +++ b/packages/flutter/lib/src/material/user_accounts_drawer_header.dart @@ -282,7 +282,7 @@ class _AccountDetailsLayout extends MultiChildLayoutDelegate { } } -/// A material design [Drawer] header that identifies the app's user. +/// A Material Design [Drawer] header that identifies the app's user. /// /// Requires one of its ancestors to be a [Material] widget. /// @@ -291,7 +291,7 @@ class _AccountDetailsLayout extends MultiChildLayoutDelegate { /// * [DrawerHeader], for a drawer header that doesn't show user accounts. /// * class UserAccountsDrawerHeader extends StatefulWidget { - /// Creates a material design drawer header. + /// Creates a Material Design drawer header. /// /// Requires one of its ancestors to be a [Material] widget. const UserAccountsDrawerHeader({ diff --git a/packages/flutter/lib/src/painting/box_border.dart b/packages/flutter/lib/src/painting/box_border.dart index 930f81459ddb0..9819e1d65891f 100644 --- a/packages/flutter/lib/src/painting/box_border.dart +++ b/packages/flutter/lib/src/painting/box_border.dart @@ -253,7 +253,7 @@ abstract class BoxBorder extends ShapeBorder { /// {@end-tool} /// {@tool snippet} /// -/// The border for a material design divider: +/// The border for a Material Design divider: /// /// ```dart /// Border(bottom: BorderSide(color: Theme.of(context).dividerColor)) @@ -299,7 +299,7 @@ abstract class BoxBorder extends ShapeBorder { /// * [BoxDecoration], which uses this class to describe its edge decoration. /// * [BorderSide], which is used to describe each side of the box. /// * [Theme], from the material layer, which can be queried to obtain appropriate colors -/// to use for borders in a material app, as shown in the "divider" sample above. +/// to use for borders in a [MaterialApp], as shown in the "divider" sample above. class Border extends BoxBorder { /// Creates a border. /// @@ -594,7 +594,7 @@ class Border extends BoxBorder { /// * [BoxDecoration], which uses this class to describe its edge decoration. /// * [BorderSide], which is used to describe each side of the box. /// * [Theme], from the material layer, which can be queried to obtain appropriate colors -/// to use for borders in a material app, as shown in the "divider" sample above. +/// to use for borders in a [MaterialApp], as shown in the "divider" sample above. class BorderDirectional extends BoxBorder { /// Creates a border. /// diff --git a/packages/flutter/lib/src/painting/colors.dart b/packages/flutter/lib/src/painting/colors.dart index f8b1462214ece..4acde694c947e 100644 --- a/packages/flutter/lib/src/painting/colors.dart +++ b/packages/flutter/lib/src/painting/colors.dart @@ -421,9 +421,9 @@ class HSLColor { /// /// See also: /// -/// * [MaterialColor] and [MaterialAccentColor], which define material design +/// * [MaterialColor] and [MaterialAccentColor], which define Material Design /// primary and accent color swatches. -/// * [material.Colors], which defines all of the standard material design +/// * [material.Colors], which defines all of the standard Material Design /// colors. @immutable class ColorSwatch extends Color { diff --git a/packages/flutter/lib/src/rendering/flex.dart b/packages/flutter/lib/src/rendering/flex.dart index 99107df196b26..04043d0d11b74 100644 --- a/packages/flutter/lib/src/rendering/flex.dart +++ b/packages/flutter/lib/src/rendering/flex.dart @@ -1083,20 +1083,14 @@ class RenderFlex extends RenderBox with ContainerRenderObjectMixin _clipRectLayer = LayerHandle(); diff --git a/packages/flutter/lib/src/rendering/layer.dart b/packages/flutter/lib/src/rendering/layer.dart index 4644180ddfbc3..b7f468acfaf14 100644 --- a/packages/flutter/lib/src/rendering/layer.dart +++ b/packages/flutter/lib/src/rendering/layer.dart @@ -1972,12 +1972,20 @@ class BackdropFilterLayer extends ContainerLayer { /// When debugging, setting [debugDisablePhysicalShapeLayers] to true will cause this /// layer to be skipped (directly replaced by its children). This can be helpful /// to track down the cause of performance problems. +@Deprecated( + 'Use a clip and canvas operations directly (See RenderPhysicalModel). ' + 'This feature was deprecated after v2.13.0-0.0.pre.', +) class PhysicalModelLayer extends ContainerLayer { /// Creates a composited layer that uses a physical model to producing /// lighting effects. /// /// The [clipPath], [clipBehavior], [elevation], [color], and [shadowColor] /// arguments must be non-null before the compositing phase of the pipeline. + @Deprecated( + 'Use a clip and canvas operations directly (See RenderPhysicalModel). ' + 'This feature was deprecated after v2.13.0-0.0.pre.', + ) PhysicalModelLayer({ Path? clipPath, Clip clipBehavior = Clip.none, diff --git a/packages/flutter/lib/src/rendering/object.dart b/packages/flutter/lib/src/rendering/object.dart index c517ae1a64c61..73648a23de8c4 100644 --- a/packages/flutter/lib/src/rendering/object.dart +++ b/packages/flutter/lib/src/rendering/object.dart @@ -491,6 +491,10 @@ class PaintingContext extends ClipContext { /// (e.g. from opacity layer to a clip rect layer). /// {@endtemplate} ClipRectLayer? pushClipRect(bool needsCompositing, Offset offset, Rect clipRect, PaintingContextCallback painter, { Clip clipBehavior = Clip.hardEdge, ClipRectLayer? oldLayer }) { + if (clipBehavior == Clip.none) { + painter(this, offset); + return null; + } final Rect offsetClipRect = clipRect.shift(offset); if (needsCompositing) { final ClipRectLayer layer = oldLayer ?? ClipRectLayer(); @@ -526,6 +530,10 @@ class PaintingContext extends ClipContext { /// {@macro flutter.rendering.PaintingContext.pushClipRect.oldLayer} ClipRRectLayer? pushClipRRect(bool needsCompositing, Offset offset, Rect bounds, RRect clipRRect, PaintingContextCallback painter, { Clip clipBehavior = Clip.antiAlias, ClipRRectLayer? oldLayer }) { assert(clipBehavior != null); + if (clipBehavior == Clip.none) { + painter(this, offset); + return null; + } final Rect offsetBounds = bounds.shift(offset); final RRect offsetClipRRect = clipRRect.shift(offset); if (needsCompositing) { @@ -562,6 +570,10 @@ class PaintingContext extends ClipContext { /// {@macro flutter.rendering.PaintingContext.pushClipRect.oldLayer} ClipPathLayer? pushClipPath(bool needsCompositing, Offset offset, Rect bounds, Path clipPath, PaintingContextCallback painter, { Clip clipBehavior = Clip.antiAlias, ClipPathLayer? oldLayer }) { assert(clipBehavior != null); + if (clipBehavior == Clip.none) { + painter(this, offset); + return null; + } final Rect offsetBounds = bounds.shift(offset); final Path offsetClipPath = clipPath.shift(offset); if (needsCompositing) { diff --git a/packages/flutter/lib/src/rendering/proxy_box.dart b/packages/flutter/lib/src/rendering/proxy_box.dart index 7e45a9d82d606..28b5990eff91b 100644 --- a/packages/flutter/lib/src/rendering/proxy_box.dart +++ b/packages/flutter/lib/src/rendering/proxy_box.dart @@ -1827,9 +1827,6 @@ abstract class _RenderPhysicalModelBase extends _RenderCustomClip { markNeedsPaint(); } - @override - bool get alwaysNeedsCompositing => true; - @override void describeSemanticsConfiguration(SemanticsConfiguration config) { super.describeSemanticsConfiguration(config); @@ -1845,6 +1842,8 @@ abstract class _RenderPhysicalModelBase extends _RenderCustomClip { } } +final Paint _transparentPaint = Paint()..color = const Color(0x00000000); + /// Creates a physical model layer that clips its child to a rounded /// rectangle. /// @@ -1873,9 +1872,6 @@ class RenderPhysicalModel extends _RenderPhysicalModelBase { _shape = shape, _borderRadius = borderRadius; - @override - PhysicalModelLayer? get layer => super.layer as PhysicalModelLayer?; - /// The shape of the layer. /// /// Defaults to [BoxShape.rectangle]. The [borderRadius] affects the corners @@ -1933,42 +1929,79 @@ class RenderPhysicalModel extends _RenderPhysicalModelBase { @override void paint(PaintingContext context, Offset offset) { - if (child != null) { - _updateClip(); - final RRect offsetRRect = _clip!.shift(offset); - final Rect offsetBounds = offsetRRect.outerRect; - final Path offsetRRectAsPath = Path()..addRRect(offsetRRect); - bool paintShadows = true; - assert(() { - if (debugDisableShadows) { - if (elevation > 0.0) { - context.canvas.drawRRect( - offsetRRect, - Paint() - ..color = shadowColor - ..style = PaintingStyle.stroke - ..strokeWidth = elevation * 2.0, - ); - } - paintShadows = false; - } - return true; - }()); - layer ??= PhysicalModelLayer(); - layer! - ..clipPath = offsetRRectAsPath - ..clipBehavior = clipBehavior - ..elevation = paintShadows ? elevation : 0.0 - ..color = color - ..shadowColor = shadowColor; - context.pushLayer(layer!, super.paint, offset, childPaintBounds: offsetBounds); - assert(() { - layer!.debugCreator = debugCreator; - return true; - }()); - } else { + if (child == null) { layer = null; + return; } + + _updateClip(); + final RRect offsetRRect = _clip!.shift(offset); + final Rect offsetBounds = offsetRRect.outerRect; + final Path offsetRRectAsPath = Path()..addRRect(offsetRRect); + bool paintShadows = true; + assert(() { + if (debugDisableShadows) { + if (elevation > 0.0) { + context.canvas.drawRRect( + offsetRRect, + Paint() + ..color = shadowColor + ..style = PaintingStyle.stroke + ..strokeWidth = elevation * 2.0, + ); + } + paintShadows = false; + } + return true; + }()); + + final Canvas canvas = context.canvas; + if (elevation != 0.0 && paintShadows) { + // The drawShadow call doesn't add the region of the shadow to the + // picture's bounds, so we draw a hardcoded amount of extra space to + // account for the maximum potential area of the shadow. + // TODO(jsimmons): remove this when Skia does it for us. + canvas.drawRect( + offsetBounds.inflate(20.0), + _transparentPaint, + ); + canvas.drawShadow( + offsetRRectAsPath, + shadowColor, + elevation, + color.alpha != 0xFF, + ); + } + final bool usesSaveLayer = clipBehavior == Clip.antiAliasWithSaveLayer; + if (!usesSaveLayer) { + canvas.drawRRect( + offsetRRect, + Paint()..color = color + ); + } + layer = context.pushClipRRect( + needsCompositing, + offset, + Offset.zero & size, + _clip!, + (PaintingContext context, Offset offset) { + if (usesSaveLayer) { + // If we want to avoid the bleeding edge artifact + // (https://github.com/flutter/flutter/issues/18057#issue-328003931) + // using saveLayer, we have to call drawPaint instead of drawPath as + // anti-aliased drawPath will always have such artifacts. + context.canvas.drawPaint( Paint()..color = color); + } + super.paint(context, offset); + }, + oldLayer: layer as ClipRRectLayer?, + clipBehavior: clipBehavior, + ); + + assert(() { + layer?.debugCreator = debugCreator; + return true; + }()); } @override @@ -2006,9 +2039,6 @@ class RenderPhysicalShape extends _RenderPhysicalModelBase { assert(color != null), assert(shadowColor != null); - @override - PhysicalModelLayer? get layer => super.layer as PhysicalModelLayer?; - @override Path get _defaultClip => Path()..addRect(Offset.zero & size); @@ -2025,41 +2055,78 @@ class RenderPhysicalShape extends _RenderPhysicalModelBase { @override void paint(PaintingContext context, Offset offset) { - if (child != null) { - _updateClip(); - final Rect offsetBounds = offset & size; - final Path offsetPath = _clip!.shift(offset); - bool paintShadows = true; - assert(() { - if (debugDisableShadows) { - if (elevation > 0.0) { - context.canvas.drawPath( - offsetPath, - Paint() - ..color = shadowColor - ..style = PaintingStyle.stroke - ..strokeWidth = elevation * 2.0, - ); - } - paintShadows = false; - } - return true; - }()); - layer ??= PhysicalModelLayer(); - layer! - ..clipPath = offsetPath - ..clipBehavior = clipBehavior - ..elevation = paintShadows ? elevation : 0.0 - ..color = color - ..shadowColor = shadowColor; - context.pushLayer(layer!, super.paint, offset, childPaintBounds: offsetBounds); - assert(() { - layer!.debugCreator = debugCreator; - return true; - }()); - } else { + if (child == null) { layer = null; + return; } + + _updateClip(); + final Rect offsetBounds = offset & size; + final Path offsetPath = _clip!.shift(offset); + bool paintShadows = true; + assert(() { + if (debugDisableShadows) { + if (elevation > 0.0) { + context.canvas.drawPath( + offsetPath, + Paint() + ..color = shadowColor + ..style = PaintingStyle.stroke + ..strokeWidth = elevation * 2.0, + ); + } + paintShadows = false; + } + return true; + }()); + + final Canvas canvas = context.canvas; + if (elevation != 0.0 && paintShadows) { + // The drawShadow call doesn't add the region of the shadow to the + // picture's bounds, so we draw a hardcoded amount of extra space to + // account for the maximum potential area of the shadow. + // TODO(jsimmons): remove this when Skia does it for us. + canvas.drawRect( + offsetBounds.inflate(20.0), + _transparentPaint, + ); + canvas.drawShadow( + offsetPath, + shadowColor, + elevation, + color.alpha != 0xFF, + ); + } + final bool usesSaveLayer = clipBehavior == Clip.antiAliasWithSaveLayer; + if (!usesSaveLayer) { + canvas.drawPath( + offsetPath, + Paint()..color = color + ); + } + layer = context.pushClipPath( + needsCompositing, + offset, + Offset.zero & size, + _clip!, + (PaintingContext context, Offset offset) { + if (usesSaveLayer) { + // If we want to avoid the bleeding edge artifact + // (https://github.com/flutter/flutter/issues/18057#issue-328003931) + // using saveLayer, we have to call drawPaint instead of drawPath as + // anti-aliased drawPath will always have such artifacts. + context.canvas.drawPaint( Paint()..color = color); + } + super.paint(context, offset); + }, + oldLayer: layer as ClipPathLayer?, + clipBehavior: clipBehavior, + ); + + assert(() { + layer?.debugCreator = debugCreator; + return true; + }()); } @override diff --git a/packages/flutter/lib/src/rendering/shifted_box.dart b/packages/flutter/lib/src/rendering/shifted_box.dart index 7ecdbb2b21ac3..1d989ad322eb2 100644 --- a/packages/flutter/lib/src/rendering/shifted_box.dart +++ b/packages/flutter/lib/src/rendering/shifted_box.dart @@ -799,20 +799,15 @@ class RenderConstraintsTransformBox extends RenderAligningShiftedBox with DebugO return; } - if (clipBehavior == Clip.none) { - _clipRectLayer.layer = null; - super.paint(context, offset); - } else { - // We have overflow and the clipBehavior isn't none. Clip it. - _clipRectLayer.layer = context.pushClipRect( - needsCompositing, - offset, - Offset.zero & size, - super.paint, - clipBehavior: clipBehavior, - oldLayer: _clipRectLayer.layer, - ); - } + // We have overflow and the clipBehavior isn't none. Clip it. + _clipRectLayer.layer = context.pushClipRect( + needsCompositing, + offset, + Offset.zero & size, + super.paint, + clipBehavior: clipBehavior, + oldLayer: _clipRectLayer.layer, + ); // Display the overflow indicator. assert(() { diff --git a/packages/flutter/lib/src/services/raw_keyboard.dart b/packages/flutter/lib/src/services/raw_keyboard.dart index 8753e7a3811fc..415ea7f1f24b8 100644 --- a/packages/flutter/lib/src/services/raw_keyboard.dart +++ b/packages/flutter/lib/src/services/raw_keyboard.dart @@ -288,7 +288,7 @@ abstract class RawKeyEvent with Diagnosticable { /// instead of using the message information. factory RawKeyEvent.fromMessage(Map message) { String? character; - RawKeyEventData _dataFromWeb() { + RawKeyEventData dataFromWeb() { final String? key = message['key'] as String?; if (key != null && key.isNotEmpty && key.length == 1) { character = key; @@ -304,7 +304,7 @@ abstract class RawKeyEvent with Diagnosticable { final RawKeyEventData data; if (kIsWeb) { - data = _dataFromWeb(); + data = dataFromWeb(); } else { final String keymap = message['keymap']! as String; switch (keymap) { @@ -382,7 +382,7 @@ abstract class RawKeyEvent with Diagnosticable { } break; case 'web': - data = _dataFromWeb(); + data = dataFromWeb(); break; default: /// This exception would only be hit on platforms that haven't yet diff --git a/packages/flutter/lib/src/widgets/app.dart b/packages/flutter/lib/src/widgets/app.dart index 8af3de9de8a44..214aa58d85bee 100644 --- a/packages/flutter/lib/src/widgets/app.dart +++ b/packages/flutter/lib/src/widgets/app.dart @@ -973,8 +973,8 @@ class WidgetsApp extends StatefulWidget { /// Builds the widget the [WidgetInspector] uses to switch between view and /// inspect modes. /// - /// This lets [MaterialApp] to use a material button to toggle the inspector - /// select mode without requiring [WidgetInspector] to depend on the + /// This lets [MaterialApp] to use a Material Design button to toggle the + /// inspector select mode without requiring [WidgetInspector] to depend on the /// material package. final InspectorSelectButtonBuilder? inspectorSelectButtonBuilder; diff --git a/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart b/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart index a53437444a3ca..c73296b386fdf 100644 --- a/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart +++ b/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart @@ -896,7 +896,7 @@ class _DraggableScrollableSheetScrollPosition // See: [beginActivity]. _ballisticCancelCallback = ballisticController.stop; double lastPosition = extent.currentPixels; - void _tick() { + void tick() { final double delta = ballisticController.value - lastPosition; lastPosition = ballisticController.value; extent.addPixelDelta(delta, context.notificationContext!); @@ -913,7 +913,7 @@ class _DraggableScrollableSheetScrollPosition } ballisticController - ..addListener(_tick) + ..addListener(tick) ..animateWith(simulation).whenCompleteOrCancel( () { _ballisticCancelCallback = null; diff --git a/packages/flutter/lib/src/widgets/editable_text.dart b/packages/flutter/lib/src/widgets/editable_text.dart index be622d5ba3bda..c09ded58f6b96 100644 --- a/packages/flutter/lib/src/widgets/editable_text.dart +++ b/packages/flutter/lib/src/widgets/editable_text.dart @@ -4097,7 +4097,7 @@ class _UpdateTextSelectionAction exten final bool collapseSelection = intent.collapseSelection || !state.widget.selectionEnabled; // Collapse to the logical start/end. - TextSelection _collapse(TextSelection selection) { + TextSelection collapse(TextSelection selection) { assert(selection.isValid); assert(!selection.isCollapsed); return selection.copyWith( @@ -4109,7 +4109,7 @@ class _UpdateTextSelectionAction exten if (!selection.isCollapsed && !ignoreNonCollapsedSelection && collapseSelection) { return Actions.invoke( context!, - UpdateSelectionIntent(state._value, _collapse(selection), SelectionChangedCause.keyboard), + UpdateSelectionIntent(state._value, collapse(selection), SelectionChangedCause.keyboard), ); } @@ -4121,7 +4121,7 @@ class _UpdateTextSelectionAction exten if (!textBoundarySelection.isCollapsed && !ignoreNonCollapsedSelection && collapseSelection) { return Actions.invoke( context!, - UpdateSelectionIntent(state._value, _collapse(textBoundarySelection), SelectionChangedCause.keyboard), + UpdateSelectionIntent(state._value, collapse(textBoundarySelection), SelectionChangedCause.keyboard), ); } diff --git a/packages/flutter/lib/src/widgets/icon.dart b/packages/flutter/lib/src/widgets/icon.dart index be704ce37df1b..cd3fb4c9b086a 100644 --- a/packages/flutter/lib/src/widgets/icon.dart +++ b/packages/flutter/lib/src/widgets/icon.dart @@ -61,7 +61,7 @@ import 'icon_theme_data.dart'; /// See also: /// /// * [IconButton], for interactive icons. -/// * [Icons], for the list of available icons for use with this class. +/// * [Icons], the library of Material Icons available for use with this class. /// * [IconTheme], which provides ambient configuration for icons. /// * [ImageIcon], for showing icons from [AssetImage]s or other [ImageProvider]s. class Icon extends StatelessWidget { diff --git a/packages/flutter/lib/src/widgets/image_icon.dart b/packages/flutter/lib/src/widgets/image_icon.dart index 66210e287e8be..548fb4e0d8ea5 100644 --- a/packages/flutter/lib/src/widgets/image_icon.dart +++ b/packages/flutter/lib/src/widgets/image_icon.dart @@ -18,7 +18,7 @@ import 'image.dart'; /// * [IconButton], for interactive icons. /// * [IconTheme], which provides ambient configuration for icons. /// * [Icon], for icons based on glyphs from fonts instead of images. -/// * [Icons], a predefined font based set of icons from the material design library. +/// * [Icons], the library of Material Icons. class ImageIcon extends StatelessWidget { /// Creates an image icon. /// diff --git a/packages/flutter/lib/src/widgets/navigator.dart b/packages/flutter/lib/src/widgets/navigator.dart index 93d0bc5f21839..c64eac58cc678 100644 --- a/packages/flutter/lib/src/widgets/navigator.dart +++ b/packages/flutter/lib/src/widgets/navigator.dart @@ -1531,15 +1531,17 @@ class Navigator extends StatefulWidget { /// Ongoing gestures within the current route are canceled when a new route is /// pushed. /// - /// Returns a [Future] that completes to the `result` value passed to [pop] - /// when the pushed route is popped off the navigator. - /// /// The `T` type argument is the type of the return value of the route. /// /// To use [pushNamed], an [Navigator.onGenerateRoute] callback must be /// provided, /// {@endtemplate} /// + /// {@template flutter.widgets.navigator.pushNamed.returnValue} + /// Returns a [Future] that completes to the `result` value passed to [pop] + /// when the pushed route is popped off the navigator. + /// {@endtemplate} + /// /// {@template flutter.widgets.Navigator.pushNamed} /// The provided `arguments` are passed to the pushed route via /// [RouteSettings.arguments]. Any object can be passed as `arguments` (e.g. a @@ -1699,9 +1701,6 @@ class Navigator extends StatefulWidget { /// Ongoing gestures within the current route are canceled when a new route is /// pushed. /// - /// Returns a [Future] that completes to the `result` value passed to [pop] - /// when the pushed route is popped off the navigator. - /// /// The `T` type argument is the type of the return value of the new route, /// and `TO` is the type of the return value of the old route. /// @@ -1709,6 +1708,8 @@ class Navigator extends StatefulWidget { /// be provided. /// {@endtemplate} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@macro flutter.widgets.Navigator.pushNamed} /// /// {@tool snippet} @@ -1793,16 +1794,14 @@ class Navigator extends StatefulWidget { /// Ongoing gestures within the current route are canceled when a new route is /// pushed. /// - /// Returns a [Future] that completes to the `result` value passed to [pop] - /// when the pushed route is popped off the navigator. - /// /// The `T` type argument is the type of the return value of the new route, /// and `TO` is the return value type of the old route. /// /// To use [popAndPushNamed], a [Navigator.onGenerateRoute] callback must be provided. - /// /// {@endtemplate} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@macro flutter.widgets.Navigator.pushNamed} /// /// {@tool snippet} @@ -1898,15 +1897,14 @@ class Navigator extends StatefulWidget { /// Ongoing gestures within the current route are canceled when a new route is /// pushed. /// - /// Returns a [Future] that completes to the `result` value passed to [pop] - /// when the pushed route is popped off the navigator. - /// /// The `T` type argument is the type of the return value of the new route. /// /// To use [pushNamedAndRemoveUntil], an [Navigator.onGenerateRoute] callback /// must be provided. /// {@endtemplate} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@macro flutter.widgets.Navigator.pushNamed} /// /// {@tool snippet} @@ -1982,12 +1980,11 @@ class Navigator extends StatefulWidget { /// Ongoing gestures within the current route are canceled when a new route is /// pushed. /// - /// Returns a [Future] that completes to the `result` value passed to [pop] - /// when the pushed route is popped off the navigator. - /// /// The `T` type argument is the type of the return value of the route. /// {@endtemplate} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@tool snippet} /// /// Typical usage is as follows: @@ -2068,13 +2065,12 @@ class Navigator extends StatefulWidget { /// Ongoing gestures within the current route are canceled when a new route is /// pushed. /// - /// Returns a [Future] that completes to the `result` value passed to [pop] - /// when the pushed route is popped off the navigator. - /// /// The `T` type argument is the type of the return value of the new route, /// and `TO` is the type of the return value of the old route. /// {@endtemplate} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@tool snippet} /// /// Typical usage is as follows: @@ -2155,12 +2151,11 @@ class Navigator extends StatefulWidget { /// Ongoing gestures within the current route are canceled when a new route is /// pushed. /// - /// Returns a [Future] that completes to the `result` value passed to [pop] - /// when the pushed route is popped off the navigator. - /// /// The `T` type argument is the type of the return value of the new route. /// {@endtemplate} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@tool snippet} /// /// Typical usage is as follows: @@ -4078,6 +4073,8 @@ class NavigatorState extends State with TickerProviderStateMixin, Res /// /// {@macro flutter.widgets.navigator.pushNamed} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@macro flutter.widgets.Navigator.pushNamed} /// /// {@tool snippet} @@ -4145,6 +4142,8 @@ class NavigatorState extends State with TickerProviderStateMixin, Res /// /// {@macro flutter.widgets.navigator.pushReplacementNamed} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@macro flutter.widgets.Navigator.pushNamed} /// /// {@tool snippet} @@ -4215,6 +4214,8 @@ class NavigatorState extends State with TickerProviderStateMixin, Res /// /// {@macro flutter.widgets.navigator.popAndPushNamed} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@macro flutter.widgets.Navigator.pushNamed} /// /// {@tool snippet} @@ -4278,6 +4279,8 @@ class NavigatorState extends State with TickerProviderStateMixin, Res /// /// {@macro flutter.widgets.navigator.pushNamedAndRemoveUntil} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@macro flutter.widgets.Navigator.pushNamed} /// /// {@tool snippet} @@ -4346,6 +4349,8 @@ class NavigatorState extends State with TickerProviderStateMixin, Res /// /// {@macro flutter.widgets.navigator.push} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@tool snippet} /// /// Typical usage is as follows: @@ -4493,6 +4498,8 @@ class NavigatorState extends State with TickerProviderStateMixin, Res /// /// {@macro flutter.widgets.navigator.pushReplacement} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@tool snippet} /// /// Typical usage is as follows: @@ -4578,6 +4585,8 @@ class NavigatorState extends State with TickerProviderStateMixin, Res /// /// {@macro flutter.widgets.navigator.pushAndRemoveUntil} /// + /// {@macro flutter.widgets.navigator.pushNamed.returnValue} + /// /// {@tool snippet} /// /// Typical usage is as follows: diff --git a/packages/flutter/lib/src/widgets/reorderable_list.dart b/packages/flutter/lib/src/widgets/reorderable_list.dart index 7e18c9b1e349a..b20bf7116b7d9 100644 --- a/packages/flutter/lib/src/widgets/reorderable_list.dart +++ b/packages/flutter/lib/src/widgets/reorderable_list.dart @@ -60,7 +60,7 @@ import 'transitions.dart'; /// its items. /// * [SliverReorderableList], a sliver list that allows the user to reorder /// its items. -/// * [ReorderableListView], a material design list that allows the user to +/// * [ReorderableListView], a Material Design list that allows the user to /// reorder its items. typedef ReorderCallback = void Function(int oldIndex, int newIndex); @@ -102,7 +102,7 @@ typedef ReorderItemProxyDecorator = Widget Function(Widget child, int index, Ani /// /// * [SliverReorderableList], a sliver list that allows the user to reorder /// its items. -/// * [ReorderableListView], a material design list that allows the user to +/// * [ReorderableListView], a Material Design list that allows the user to /// reorder its items. class ReorderableList extends StatefulWidget { /// Creates a scrolling container that allows the user to interactively @@ -419,7 +419,7 @@ class ReorderableListState extends State { /// /// * [ReorderableList], a regular widget list that allows the user to reorder /// its items. -/// * [ReorderableListView], a material design list that allows the user to +/// * [ReorderableListView], a Material Design list that allows the user to /// reorder its items. class SliverReorderableList extends StatefulWidget { /// Creates a sliver list that allows the user to interactively reorder its @@ -1223,7 +1223,7 @@ class _ReorderableItemState extends State<_ReorderableItem> { /// its items. /// * [SliverReorderableList], a sliver list that allows the user to reorder /// its items. -/// * [ReorderableListView], a material design list that allows the user to +/// * [ReorderableListView], a Material Design list that allows the user to /// reorder its items. class ReorderableDragStartListener extends StatelessWidget { /// Creates a listener for a drag immediately following a pointer down @@ -1291,7 +1291,7 @@ class ReorderableDragStartListener extends StatelessWidget { /// its items. /// * [SliverReorderableList], a sliver list that allows the user to reorder /// its items. -/// * [ReorderableListView], a material design list that allows the user to +/// * [ReorderableListView], a Material Design list that allows the user to /// reorder its items. class ReorderableDelayedDragStartListener extends ReorderableDragStartListener { /// Creates a listener for an drag following a long press event over the diff --git a/packages/flutter/lib/src/widgets/routes.dart b/packages/flutter/lib/src/widgets/routes.dart index 5731297f13d5a..53cf94283e8cc 100644 --- a/packages/flutter/lib/src/widgets/routes.dart +++ b/packages/flutter/lib/src/widgets/routes.dart @@ -316,7 +316,7 @@ abstract class TransitionRoute extends OverlayRoute { // finishes. We leave a listener remover for the next call to // properly clean up the existing train hopping. TrainHoppingAnimation? newAnimation; - void _jumpOnAnimationEnd(AnimationStatus status) { + void jumpOnAnimationEnd(AnimationStatus status) { switch (status) { case AnimationStatus.completed: case AnimationStatus.dismissed: @@ -335,10 +335,10 @@ abstract class TransitionRoute extends OverlayRoute { } } _trainHoppingListenerRemover = () { - nextTrain.removeStatusListener(_jumpOnAnimationEnd); + nextTrain.removeStatusListener(jumpOnAnimationEnd); newAnimation?.dispose(); }; - nextTrain.addStatusListener(_jumpOnAnimationEnd); + nextTrain.addStatusListener(jumpOnAnimationEnd); newAnimation = TrainHoppingAnimation( currentTrain, nextTrain, diff --git a/packages/flutter/lib/src/widgets/scroll_notification_observer.dart b/packages/flutter/lib/src/widgets/scroll_notification_observer.dart index 6fa7ffaa15b7c..bc151190f1d5d 100644 --- a/packages/flutter/lib/src/widgets/scroll_notification_observer.dart +++ b/packages/flutter/lib/src/widgets/scroll_notification_observer.dart @@ -9,7 +9,6 @@ import 'package:flutter/foundation.dart'; import 'framework.dart'; import 'notification_listener.dart'; import 'scroll_notification.dart'; -import 'scroll_position.dart'; /// A [ScrollNotification] listener for [ScrollNotificationObserver]. /// @@ -152,26 +151,14 @@ class ScrollNotificationObserverState extends State @override Widget build(BuildContext context) { - // A ScrollMetricsNotification allows listeners to be notified for an - // initial state, as well as if the content dimensions change without - // scrolling. - return NotificationListener( - onNotification: (ScrollMetricsNotification notification) { - _notifyListeners(_ConvertedScrollMetricsNotification( - metrics: notification.metrics, - context: notification.context, - )); + return NotificationListener( + onNotification: (ScrollNotification notification) { + _notifyListeners(notification); return false; }, - child: NotificationListener( - onNotification: (ScrollNotification notification) { - _notifyListeners(notification); - return false; - }, - child: _ScrollNotificationObserverScope( - scrollNotificationObserverState: this, - child: widget.child, - ), + child: _ScrollNotificationObserverScope( + scrollNotificationObserverState: this, + child: widget.child, ), ); } @@ -183,10 +170,3 @@ class ScrollNotificationObserverState extends State super.dispose(); } } - -class _ConvertedScrollMetricsNotification extends ScrollNotification { - _ConvertedScrollMetricsNotification({ - required super.metrics, - required super.context, - }); -} diff --git a/packages/flutter/lib/src/widgets/scrollbar.dart b/packages/flutter/lib/src/widgets/scrollbar.dart index b3db9a57cc15f..ebd9e5fe27139 100644 --- a/packages/flutter/lib/src/widgets/scrollbar.dart +++ b/packages/flutter/lib/src/widgets/scrollbar.dart @@ -409,8 +409,8 @@ class ScrollbarPainter extends ChangeNotifier implements CustomPainter { _lastMetrics = metrics; _lastAxisDirection = axisDirection; - bool _needPaint(ScrollMetrics? metrics) => metrics != null && metrics.maxScrollExtent > metrics.minScrollExtent; - if (!_needPaint(oldMetrics) && !_needPaint(metrics)) + bool needPaint(ScrollMetrics? metrics) => metrics != null && metrics.maxScrollExtent > metrics.minScrollExtent; + if (!needPaint(oldMetrics) && !needPaint(metrics)) return; notifyListeners(); diff --git a/packages/flutter/lib/src/widgets/text.dart b/packages/flutter/lib/src/widgets/text.dart index a5f060e1e666a..b56a880c2a538 100644 --- a/packages/flutter/lib/src/widgets/text.dart +++ b/packages/flutter/lib/src/widgets/text.dart @@ -334,7 +334,7 @@ class DefaultTextHeightBehavior extends InheritedTheme { /// To make [Text] react to touch events, wrap it in a [GestureDetector] widget /// with a [GestureDetector.onTap] handler. /// -/// In a material design application, consider using a [TextButton] instead, or +/// In a Material Design application, consider using a [TextButton] instead, or /// if that isn't appropriate, at least using an [InkWell] instead of /// [GestureDetector]. /// diff --git a/packages/flutter/lib/src/widgets/widget_inspector.dart b/packages/flutter/lib/src/widgets/widget_inspector.dart index 12a54be23c569..690d3f8ae5b1f 100644 --- a/packages/flutter/lib/src/widgets/widget_inspector.dart +++ b/packages/flutter/lib/src/widgets/widget_inspector.dart @@ -2328,11 +2328,11 @@ class _WidgetInspectorState extends State _hitTestHelper(regularHits, edgeHits, position, root, root.getTransformTo(null)); // Order matches by the size of the hit area. - double _area(RenderObject object) { + double area(RenderObject object) { final Size size = object.semanticBounds.size; return size.width * size.height; } - regularHits.sort((RenderObject a, RenderObject b) => _area(a).compareTo(_area(b))); + regularHits.sort((RenderObject a, RenderObject b) => area(a).compareTo(area(b))); final Set hits = { ...edgeHits, ...regularHits, diff --git a/packages/flutter/test/cupertino/context_menu_action_test.dart b/packages/flutter/test/cupertino/context_menu_action_test.dart index 0b110605558a2..6f83ad75c2d2f 100644 --- a/packages/flutter/test/cupertino/context_menu_action_test.dart +++ b/packages/flutter/test/cupertino/context_menu_action_test.dart @@ -23,7 +23,7 @@ void main() { const Color kDestructiveActionColor = CupertinoColors.destructiveRed; const FontWeight kDefaultActionWeight = FontWeight.w600; - Widget _getApp({ + Widget getApp({ VoidCallback? onPressed, bool isDestructiveAction = false, bool isDefaultAction = false, @@ -51,7 +51,7 @@ void main() { ); } - TextStyle _getTextStyle(WidgetTester tester) { + TextStyle getTextStyle(WidgetTester tester) { final Finder finder = find.descendant( of: find.byType(CupertinoContextMenuAction), matching: find.byType(DefaultTextStyle), @@ -61,7 +61,7 @@ void main() { return defaultStyle.style; } - Icon _getIcon(WidgetTester tester) { + Icon getIcon(WidgetTester tester) { final Finder finder = find.descendant( of: find.byType(CupertinoContextMenuAction), matching: find.byType(Icon), @@ -73,7 +73,7 @@ void main() { testWidgets('responds to taps', (WidgetTester tester) async { bool wasPressed = false; - await tester.pumpWidget(_getApp(onPressed: () { + await tester.pumpWidget(getApp(onPressed: () { wasPressed = true; })); @@ -83,7 +83,7 @@ void main() { }); testWidgets('turns grey when pressed and held', (WidgetTester tester) async { - await tester.pumpWidget(_getApp()); + await tester.pumpWidget(getApp()); expect(find.byType(CupertinoContextMenuAction), paints..rect(color: kBackgroundColor.color)); final Offset actionCenterLight = tester.getCenter(find.byType(CupertinoContextMenuAction)); @@ -95,7 +95,7 @@ void main() { await tester.pump(); expect(find.byType(CupertinoContextMenuAction), paints..rect(color: kBackgroundColor.color)); - await tester.pumpWidget(_getApp(brightness: Brightness.dark)); + await tester.pumpWidget(getApp(brightness: Brightness.dark)); expect(find.byType(CupertinoContextMenuAction), paints..rect(color: kBackgroundColor.darkColor)); final Offset actionCenterDark = tester.getCenter(find.byType(CupertinoContextMenuAction)); @@ -109,27 +109,27 @@ void main() { }); testWidgets('icon and textStyle colors are correct out of the box', (WidgetTester tester) async { - await tester.pumpWidget(_getApp()); - expect(_getTextStyle(tester).color, CupertinoColors.label); - expect(_getIcon(tester).color, CupertinoColors.label); + await tester.pumpWidget(getApp()); + expect(getTextStyle(tester).color, CupertinoColors.label); + expect(getIcon(tester).color, CupertinoColors.label); }); testWidgets('icon and textStyle colors are correct for destructive actions', (WidgetTester tester) async { - await tester.pumpWidget(_getApp(isDestructiveAction: true)); - expect(_getTextStyle(tester).color, kDestructiveActionColor); - expect(_getIcon(tester).color, kDestructiveActionColor); + await tester.pumpWidget(getApp(isDestructiveAction: true)); + expect(getTextStyle(tester).color, kDestructiveActionColor); + expect(getIcon(tester).color, kDestructiveActionColor); }); testWidgets('textStyle is correct for defaultAction', (WidgetTester tester) async { - await tester.pumpWidget(_getApp(isDefaultAction: true)); - expect(_getTextStyle(tester).fontWeight, kDefaultActionWeight); + await tester.pumpWidget(getApp(isDefaultAction: true)); + expect(getTextStyle(tester).fontWeight, kDefaultActionWeight); }); testWidgets( 'Hovering over Cupertino context menu action updates cursor to clickable on Web', (WidgetTester tester) async { /// Cupertino context menu action without "onPressed" callback. - await tester.pumpWidget(_getApp()); + await tester.pumpWidget(getApp()); final Offset contextMenuAction = tester.getCenter(find.text('I am a CupertinoContextMenuAction')); final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse, pointer: 1); await gesture.addPointer(location: contextMenuAction); @@ -137,7 +137,7 @@ void main() { expect(RendererBinding.instance.mouseTracker.debugDeviceActiveCursor(1), SystemMouseCursors.basic); // / Cupertino context menu action with "onPressed" callback. - await tester.pumpWidget(_getApp(onPressed: (){})); + await tester.pumpWidget(getApp(onPressed: (){})); await gesture.moveTo(const Offset(10, 10)); await tester.pumpAndSettle(); expect(RendererBinding.instance.mouseTracker.debugDeviceActiveCursor(1), SystemMouseCursors.basic); diff --git a/packages/flutter/test/cupertino/context_menu_test.dart b/packages/flutter/test/cupertino/context_menu_test.dart index 2cf6878937827..902a11411e213 100644 --- a/packages/flutter/test/cupertino/context_menu_test.dart +++ b/packages/flutter/test/cupertino/context_menu_test.dart @@ -12,7 +12,7 @@ void main() { final TestWidgetsFlutterBinding binding = TestWidgetsFlutterBinding.ensureInitialized(); const double kOpenScale = 1.1; - Widget _getChild() { + Widget getChild() { return Container( width: 300.0, height: 100.0, @@ -20,7 +20,7 @@ void main() { ); } - Widget _getContextMenu({ + Widget getContextMenu({ Alignment alignment = Alignment.center, Size screenSize = const Size(800.0, 600.0), Widget? child, @@ -37,7 +37,7 @@ void main() { child: Text('CupertinoContextMenuAction $alignment'), ), ], - child: child ?? _getChild(), + child: child ?? getChild(), ), ), ), @@ -46,7 +46,7 @@ void main() { } // Finds the child widget that is rendered inside of _DecoyChild. - Finder _findDecoyChild(Widget child) { + Finder findDecoyChild(Widget child) { return find.descendant( of: find.byType(ShaderMask), matching: find.byWidget(child), @@ -54,23 +54,23 @@ void main() { } // Finds the child widget rendered inside of _ContextMenuRouteStatic. - Finder _findStatic() { + Finder findStatic() { return find.descendant( of: find.byType(CupertinoApp), matching: find.byWidgetPredicate((Widget w) => '${w.runtimeType}' == '_ContextMenuRouteStatic'), ); } - Finder _findStaticChild(Widget child) { + Finder findStaticChild(Widget child) { return find.descendant( - of: _findStatic(), + of: findStatic(), matching: find.byWidget(child), ); } - Finder _findStaticChildDecoration(WidgetTester tester) { + Finder findStaticChildDecoration(WidgetTester tester) { return find.descendant( - of: _findStatic(), + of: findStatic(), matching: find.byType(DecoratedBox), ); } @@ -78,7 +78,7 @@ void main() { group('CupertinoContextMenu before and during opening', () { testWidgets('An unopened CupertinoContextMenu renders child in the same place as without', (WidgetTester tester) async { // Measure the child in the scene with no CupertinoContextMenu. - final Widget child = _getChild(); + final Widget child = getChild(); await tester.pumpWidget( CupertinoApp( home: CupertinoPageScaffold( @@ -91,14 +91,14 @@ void main() { final Rect childRect = tester.getRect(find.byWidget(child)); // When wrapped in a CupertinoContextMenu, the child is rendered in the same Rect. - await tester.pumpWidget(_getContextMenu(child: child)); + await tester.pumpWidget(getContextMenu(child: child)); expect(find.byWidget(child), findsOneWidget); expect(tester.getRect(find.byWidget(child)), childRect); }); testWidgets('Can open CupertinoContextMenu by tap and hold', (WidgetTester tester) async { - final Widget child = _getChild(); - await tester.pumpWidget(_getContextMenu(child: child)); + final Widget child = getChild(); + await tester.pumpWidget(getContextMenu(child: child)); expect(find.byWidget(child), findsOneWidget); final Rect childRect = tester.getRect(find.byWidget(child)); expect(find.byType(ShaderMask), findsNothing); @@ -108,20 +108,20 @@ void main() { await tester.pump(); // The _DecoyChild is showing directly on top of the child. - expect(_findDecoyChild(child), findsOneWidget); - Rect decoyChildRect = tester.getRect(_findDecoyChild(child)); + expect(findDecoyChild(child), findsOneWidget); + Rect decoyChildRect = tester.getRect(findDecoyChild(child)); expect(childRect, equals(decoyChildRect)); expect(find.byType(ShaderMask), findsOneWidget); // After a small delay, the _DecoyChild has begun to animate. await tester.pump(const Duration(milliseconds: 100)); - decoyChildRect = tester.getRect(_findDecoyChild(child)); + decoyChildRect = tester.getRect(findDecoyChild(child)); expect(childRect, isNot(equals(decoyChildRect))); // Eventually the decoy fully scales by _kOpenSize. await tester.pump(const Duration(milliseconds: 500)); - decoyChildRect = tester.getRect(_findDecoyChild(child)); + decoyChildRect = tester.getRect(findDecoyChild(child)); expect(childRect, isNot(equals(decoyChildRect))); expect(decoyChildRect.width, childRect.width * kOpenScale); @@ -129,11 +129,11 @@ void main() { await tester.pumpAndSettle(); await gesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsOneWidget); + expect(findStatic(), findsOneWidget); }); testWidgets('CupertinoContextMenu is in the correct position when within a nested navigator', (WidgetTester tester) async { - final Widget child = _getChild(); + final Widget child = getChild(); await tester.pumpWidget(CupertinoApp( home: CupertinoPageScaffold( child: MediaQuery( @@ -173,20 +173,20 @@ void main() { await tester.pump(); // The _DecoyChild is showing directly on top of the child. - expect(_findDecoyChild(child), findsOneWidget); - Rect decoyChildRect = tester.getRect(_findDecoyChild(child)); + expect(findDecoyChild(child), findsOneWidget); + Rect decoyChildRect = tester.getRect(findDecoyChild(child)); expect(childRect, equals(decoyChildRect)); expect(find.byType(ShaderMask), findsOneWidget); // After a small delay, the _DecoyChild has begun to animate. await tester.pump(const Duration(milliseconds: 100)); - decoyChildRect = tester.getRect(_findDecoyChild(child)); + decoyChildRect = tester.getRect(findDecoyChild(child)); expect(childRect, isNot(equals(decoyChildRect))); // Eventually the decoy fully scales by _kOpenSize. await tester.pump(const Duration(milliseconds: 500)); - decoyChildRect = tester.getRect(_findDecoyChild(child)); + decoyChildRect = tester.getRect(findDecoyChild(child)); expect(childRect, isNot(equals(decoyChildRect))); expect(decoyChildRect.width, childRect.width * kOpenScale); @@ -194,11 +194,11 @@ void main() { await tester.pumpAndSettle(); await gesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsOneWidget); + expect(findStatic(), findsOneWidget); }); testWidgets('Hovering over Cupertino context menu updates cursor to clickable on Web', (WidgetTester tester) async { - final Widget child = _getChild(); + final Widget child = getChild(); await tester.pumpWidget(CupertinoApp( home: CupertinoPageScaffold( child: Center( @@ -232,7 +232,7 @@ void main() { group('CupertinoContextMenu when open', () { testWidgets('Last action does not have border', (WidgetTester tester) async { - final Widget child = _getChild(); + final Widget child = getChild(); await tester.pumpWidget(CupertinoApp( home: CupertinoPageScaffold( child: Center( @@ -253,14 +253,14 @@ void main() { await tester.pumpAndSettle(); await firstGesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsOneWidget); + expect(findStatic(), findsOneWidget); - expect(_findStaticChildDecoration(tester), findsNWidgets(1)); + expect(findStaticChildDecoration(tester), findsNWidgets(1)); // Close the CupertinoContextMenu. await tester.tapAt(const Offset(1.0, 1.0)); await tester.pumpAndSettle(); - expect(_findStatic(), findsNothing); + expect(findStatic(), findsNothing); await tester.pumpWidget(CupertinoApp( home: CupertinoPageScaffold( @@ -285,14 +285,14 @@ void main() { await tester.pumpAndSettle(); await secondGesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsOneWidget); + expect(findStatic(), findsOneWidget); - expect(_findStaticChildDecoration(tester), findsNWidgets(3)); + expect(findStaticChildDecoration(tester), findsNWidgets(3)); }); testWidgets('Can close CupertinoContextMenu by background tap', (WidgetTester tester) async { - final Widget child = _getChild(); - await tester.pumpWidget(_getContextMenu(child: child)); + final Widget child = getChild(); + await tester.pumpWidget(getContextMenu(child: child)); // Open the CupertinoContextMenu final Rect childRect = tester.getRect(find.byWidget(child)); @@ -300,17 +300,17 @@ void main() { await tester.pumpAndSettle(); await gesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsOneWidget); + expect(findStatic(), findsOneWidget); // Tap and ensure that the CupertinoContextMenu is closed. await tester.tapAt(const Offset(1.0, 1.0)); await tester.pumpAndSettle(); - expect(_findStatic(), findsNothing); + expect(findStatic(), findsNothing); }); testWidgets('Can close CupertinoContextMenu by dragging down', (WidgetTester tester) async { - final Widget child = _getChild(); - await tester.pumpWidget(_getContextMenu(child: child)); + final Widget child = getChild(); + await tester.pumpWidget(getContextMenu(child: child)); // Open the CupertinoContextMenu final Rect childRect = tester.getRect(find.byWidget(child)); @@ -318,11 +318,11 @@ void main() { await tester.pumpAndSettle(); await gesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsOneWidget); + expect(findStatic(), findsOneWidget); // Drag down not far enough and it bounces back and doesn't close. - expect(_findStaticChild(child), findsOneWidget); - Offset staticChildCenter = tester.getCenter(_findStaticChild(child)); + expect(findStaticChild(child), findsOneWidget); + Offset staticChildCenter = tester.getCenter(findStaticChild(child)); TestGesture swipeGesture = await tester.startGesture(staticChildCenter); await swipeGesture.moveBy( const Offset(0.0, 100.0), @@ -331,14 +331,14 @@ void main() { await tester.pump(); await swipeGesture.up(); await tester.pump(); - expect(tester.getCenter(_findStaticChild(child)).dy, greaterThan(staticChildCenter.dy)); + expect(tester.getCenter(findStaticChild(child)).dy, greaterThan(staticChildCenter.dy)); await tester.pumpAndSettle(); - expect(tester.getCenter(_findStaticChild(child)), equals(staticChildCenter)); - expect(_findStatic(), findsOneWidget); + expect(tester.getCenter(findStaticChild(child)), equals(staticChildCenter)); + expect(findStatic(), findsOneWidget); // Drag down far enough and it does close. - expect(_findStaticChild(child), findsOneWidget); - staticChildCenter = tester.getCenter(_findStaticChild(child)); + expect(findStaticChild(child), findsOneWidget); + staticChildCenter = tester.getCenter(findStaticChild(child)); swipeGesture = await tester.startGesture(staticChildCenter); await swipeGesture.moveBy( const Offset(0.0, 200.0), @@ -347,12 +347,12 @@ void main() { await tester.pump(); await swipeGesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsNothing); + expect(findStatic(), findsNothing); }); testWidgets('Can close CupertinoContextMenu by flinging down', (WidgetTester tester) async { - final Widget child = _getChild(); - await tester.pumpWidget(_getContextMenu(child: child)); + final Widget child = getChild(); + await tester.pumpWidget(getContextMenu(child: child)); // Open the CupertinoContextMenu final Rect childRect = tester.getRect(find.byWidget(child)); @@ -360,24 +360,24 @@ void main() { await tester.pumpAndSettle(); await gesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsOneWidget); + expect(findStatic(), findsOneWidget); // Fling up and nothing happens. - expect(_findStaticChild(child), findsOneWidget); - await tester.fling(_findStaticChild(child), const Offset(0.0, -100.0), 1000.0); + expect(findStaticChild(child), findsOneWidget); + await tester.fling(findStaticChild(child), const Offset(0.0, -100.0), 1000.0); await tester.pumpAndSettle(); - expect(_findStaticChild(child), findsOneWidget); + expect(findStaticChild(child), findsOneWidget); // Fling down to close the menu. - expect(_findStaticChild(child), findsOneWidget); - await tester.fling(_findStaticChild(child), const Offset(0.0, 100.0), 1000.0); + expect(findStaticChild(child), findsOneWidget); + await tester.fling(findStaticChild(child), const Offset(0.0, 100.0), 1000.0); await tester.pumpAndSettle(); - expect(_findStatic(), findsNothing); + expect(findStatic(), findsNothing); }); testWidgets("Backdrop is added using ModalRoute's filter parameter", (WidgetTester tester) async { - final Widget child = _getChild(); - await tester.pumpWidget(_getContextMenu(child: child)); + final Widget child = getChild(); + await tester.pumpWidget(getContextMenu(child: child)); expect(find.byType(BackdropFilter), findsNothing); // Open the CupertinoContextMenu @@ -386,7 +386,7 @@ void main() { await tester.pumpAndSettle(); await gesture.up(); await tester.pumpAndSettle(); - expect(_findStatic(), findsOneWidget); + expect(findStatic(), findsOneWidget); expect(find.byType(BackdropFilter), findsOneWidget); }); }); @@ -397,8 +397,8 @@ void main() { await binding.setSurfaceSize(portraitScreenSize); // Pump a CupertinoContextMenu in the center of the screen and open it. - final Widget child = _getChild(); - await tester.pumpWidget(_getContextMenu( + final Widget child = getChild(); + await tester.pumpWidget(getContextMenu( screenSize: portraitScreenSize, child: child, )); @@ -416,10 +416,10 @@ void main() { // Close the CupertinoContextMenu. await tester.tapAt(const Offset(1.0, 1.0)); await tester.pumpAndSettle(); - expect(_findStatic(), findsNothing); + expect(findStatic(), findsNothing); // Pump a CupertinoContextMenu on the left of the screen and open it. - await tester.pumpWidget(_getContextMenu( + await tester.pumpWidget(getContextMenu( alignment: Alignment.centerLeft, screenSize: portraitScreenSize, child: child, @@ -440,10 +440,10 @@ void main() { // Close the CupertinoContextMenu. await tester.tapAt(const Offset(1.0, 1.0)); await tester.pumpAndSettle(); - expect(_findStatic(), findsNothing); + expect(findStatic(), findsNothing); // Pump a CupertinoContextMenu on the right of the screen and open it. - await tester.pumpWidget(_getContextMenu( + await tester.pumpWidget(getContextMenu( alignment: Alignment.centerRight, screenSize: portraitScreenSize, child: child, @@ -466,8 +466,8 @@ void main() { testWidgets('Landscape', (WidgetTester tester) async { // Pump a CupertinoContextMenu in the center of the screen and open it. - final Widget child = _getChild(); - await tester.pumpWidget(_getContextMenu( + final Widget child = getChild(); + await tester.pumpWidget(getContextMenu( child: child, )); expect(find.byType(CupertinoContextMenuAction), findsNothing); @@ -485,10 +485,10 @@ void main() { // Close the CupertinoContextMenu. await tester.tapAt(const Offset(1.0, 1.0)); await tester.pumpAndSettle(); - expect(_findStatic(), findsNothing); + expect(findStatic(), findsNothing); // Pump a CupertinoContextMenu on the left of the screen and open it. - await tester.pumpWidget(_getContextMenu( + await tester.pumpWidget(getContextMenu( alignment: Alignment.centerLeft, child: child, )); @@ -508,10 +508,10 @@ void main() { // Close the CupertinoContextMenu. await tester.tapAt(const Offset(1.0, 1.0)); await tester.pumpAndSettle(); - expect(_findStatic(), findsNothing); + expect(findStatic(), findsNothing); // Pump a CupertinoContextMenu on the right of the screen and open it. - await tester.pumpWidget(_getContextMenu( + await tester.pumpWidget(getContextMenu( alignment: Alignment.centerRight, child: child, )); diff --git a/packages/flutter/test/cupertino/date_picker_test.dart b/packages/flutter/test/cupertino/date_picker_test.dart index 2822e7d575e46..4c2808389f073 100644 --- a/packages/flutter/test/cupertino/date_picker_test.dart +++ b/packages/flutter/test/cupertino/date_picker_test.dart @@ -1173,7 +1173,7 @@ void main() { }); testWidgets('DatePicker golden tests', (WidgetTester tester) async { - Widget _buildApp(CupertinoDatePickerMode mode) { + Widget buildApp(CupertinoDatePickerMode mode) { return CupertinoApp( home: Center( child: SizedBox( @@ -1192,19 +1192,19 @@ void main() { ); } - await tester.pumpWidget(_buildApp(CupertinoDatePickerMode.time)); + await tester.pumpWidget(buildApp(CupertinoDatePickerMode.time)); await expectLater( find.byType(CupertinoDatePicker), matchesGoldenFile('date_picker_test.time.initial.png'), ); - await tester.pumpWidget(_buildApp(CupertinoDatePickerMode.date)); + await tester.pumpWidget(buildApp(CupertinoDatePickerMode.date)); await expectLater( find.byType(CupertinoDatePicker), matchesGoldenFile('date_picker_test.date.initial.png'), ); - await tester.pumpWidget(_buildApp(CupertinoDatePickerMode.dateAndTime)); + await tester.pumpWidget(buildApp(CupertinoDatePickerMode.dateAndTime)); await expectLater( find.byType(CupertinoDatePicker), matchesGoldenFile('date_picker_test.datetime.initial.png'), diff --git a/packages/flutter/test/cupertino/slider_test.dart b/packages/flutter/test/cupertino/slider_test.dart index 6b763fc0e2256..ef24940eb3ab3 100644 --- a/packages/flutter/test/cupertino/slider_test.dart +++ b/packages/flutter/test/cupertino/slider_test.dart @@ -24,7 +24,7 @@ const CupertinoDynamicColor _kSystemFill = CupertinoDynamicColor( void main() { - Future _dragSlider(WidgetTester tester, Key sliderKey) { + Future dragSlider(WidgetTester tester, Key sliderKey) { final Offset topLeft = tester.getTopLeft(find.byKey(sliderKey)); const double unit = CupertinoThumbPainter.radius; const double delta = 3.0 * unit; @@ -134,7 +134,7 @@ void main() { ), ); - await _dragSlider(tester, sliderKey); + await dragSlider(tester, sliderKey); expect(numberOfTimesOnChangeStartIsCalled, equals(1)); @@ -175,7 +175,7 @@ void main() { ), ); - await _dragSlider(tester, sliderKey); + await dragSlider(tester, sliderKey); expect(numberOfTimesOnChangeEndIsCalled, equals(1)); diff --git a/packages/flutter/test/cupertino/text_selection_toolbar_test.dart b/packages/flutter/test/cupertino/text_selection_toolbar_test.dart index 9cc000e3f166c..82f30e241e9fa 100644 --- a/packages/flutter/test/cupertino/text_selection_toolbar_test.dart +++ b/packages/flutter/test/cupertino/text_selection_toolbar_test.dart @@ -65,7 +65,7 @@ void main() { TestWidgetsFlutterBinding.ensureInitialized(); // Find by a runtimeType String, including private types. - Finder _findPrivate(String type) { + Finder findPrivate(String type) { return find.descendant( of: find.byType(CupertinoApp), matching: find.byWidgetPredicate((Widget w) => '${w.runtimeType}' == type), @@ -75,10 +75,10 @@ void main() { // Finding CupertinoTextSelectionToolbar won't give you the position as the user sees // it because it's a full-sized Stack at the top level. This method finds the // visible part of the toolbar for use in measurements. - Finder _findToolbar() => _findPrivate('_CupertinoTextSelectionToolbarContent'); + Finder findToolbar() => findPrivate('_CupertinoTextSelectionToolbarContent'); - Finder _findOverflowNextButton() => find.text('▶'); - Finder _findOverflowBackButton() => find.text('◀'); + Finder findOverflowNextButton() => find.text('▶'); + Finder findOverflowBackButton() => find.text('◀'); testWidgets('paginates children if they overflow', (WidgetTester tester) async { late StateSetter setState; @@ -102,8 +102,8 @@ void main() { // All children fit on the screen, so they are all rendered. expect(find.byType(TestBox), findsNWidgets(children.length)); - expect(_findOverflowNextButton(), findsNothing); - expect(_findOverflowBackButton(), findsNothing); + expect(findOverflowNextButton(), findsNothing); + expect(findOverflowBackButton(), findsNothing); // Adding one more child makes the children overflow. setState(() { @@ -113,30 +113,30 @@ void main() { }); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(children.length - 1)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsNothing); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsNothing); // Tap the overflow next button to show the next page of children. - await tester.tap(_findOverflowNextButton()); + await tester.tap(findOverflowNextButton()); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(1)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsOneWidget); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsOneWidget); // Tapping the overflow next button again does nothing because it is // disabled and there are no more children to display. - await tester.tap(_findOverflowNextButton()); + await tester.tap(findOverflowNextButton()); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(1)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsOneWidget); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsOneWidget); // Tap the overflow back button to go back to the first page. - await tester.tap(_findOverflowBackButton()); + await tester.tap(findOverflowBackButton()); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(7)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsNothing); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsNothing); // Adding 7 more children overflows onto a third page. setState(() { @@ -149,37 +149,37 @@ void main() { }); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(7)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsNothing); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsNothing); // Tap the overflow next button to show the second page of children. - await tester.tap(_findOverflowNextButton()); + await tester.tap(findOverflowNextButton()); await tester.pumpAndSettle(); // With the back button, only six children fit on this page. expect(find.byType(TestBox), findsNWidgets(6)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsOneWidget); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsOneWidget); // Tap the overflow next button again to show the third page of children. - await tester.tap(_findOverflowNextButton()); + await tester.tap(findOverflowNextButton()); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(1)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsOneWidget); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsOneWidget); // Tap the overflow back button to go back to the second page. - await tester.tap(_findOverflowBackButton()); + await tester.tap(findOverflowBackButton()); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(6)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsOneWidget); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsOneWidget); // Tap the overflow back button to go back to the first page. - await tester.tap(_findOverflowBackButton()); + await tester.tap(findOverflowBackButton()); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(7)); - expect(_findOverflowNextButton(), findsOneWidget); - expect(_findOverflowBackButton(), findsNothing); + expect(findOverflowNextButton(), findsOneWidget); + expect(findOverflowBackButton(), findsNothing); }, skip: kIsWeb); // [intended] We do not use Flutter-rendered context menu on the Web. testWidgets('positions itself at anchorAbove if it fits', (WidgetTester tester) async { @@ -211,7 +211,7 @@ void main() { // When the toolbar doesn't fit above aboveAnchor, it positions itself below // belowAnchor. - double toolbarY = tester.getTopLeft(_findToolbar()).dy; + double toolbarY = tester.getTopLeft(findToolbar()).dy; expect(toolbarY, equals(anchorBelowY + _kToolbarContentDistance)); // Even when it barely doesn't fit. @@ -219,7 +219,7 @@ void main() { anchorAboveY = 50.0; }); await tester.pump(); - toolbarY = tester.getTopLeft(_findToolbar()).dy; + toolbarY = tester.getTopLeft(findToolbar()).dy; expect(toolbarY, equals(anchorBelowY + _kToolbarContentDistance)); // When it does fit above aboveAnchor, it positions itself there. @@ -227,7 +227,7 @@ void main() { anchorAboveY = 60.0; }); await tester.pump(); - toolbarY = tester.getTopLeft(_findToolbar()).dy; + toolbarY = tester.getTopLeft(findToolbar()).dy; expect(toolbarY, equals(anchorAboveY - height - _kToolbarContentDistance)); }, skip: kIsWeb); // [intended] We do not use Flutter-rendered context menu on the Web. diff --git a/packages/flutter/test/gestures/resampler_test.dart b/packages/flutter/test/gestures/resampler_test.dart index 673b34291e03f..c138d121e75ad 100644 --- a/packages/flutter/test/gestures/resampler_test.dart +++ b/packages/flutter/test/gestures/resampler_test.dart @@ -6,7 +6,7 @@ import 'package:flutter/gestures.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { - PointerEvent _createSimulatedPointerAddedEvent( + PointerEvent createSimulatedPointerAddedEvent( int timeStampUs, double x, double y, @@ -17,7 +17,7 @@ void main() { ); } - PointerEvent _createSimulatedPointerRemovedEvent( + PointerEvent createSimulatedPointerRemovedEvent( int timeStampUs, double x, double y, @@ -28,7 +28,7 @@ void main() { ); } - PointerEvent _createSimulatedPointerDownEvent( + PointerEvent createSimulatedPointerDownEvent( int timeStampUs, double x, double y, @@ -39,7 +39,7 @@ void main() { ); } - PointerEvent _createSimulatedPointerMoveEvent( + PointerEvent createSimulatedPointerMoveEvent( int timeStampUs, double x, double y, @@ -53,7 +53,7 @@ void main() { ); } - PointerEvent _createSimulatedPointerHoverEvent( + PointerEvent createSimulatedPointerHoverEvent( int timeStampUs, double x, double y, @@ -67,7 +67,7 @@ void main() { ); } - PointerEvent _createSimulatedPointerUpEvent( + PointerEvent createSimulatedPointerUpEvent( int timeStampUs, double x, double y, @@ -80,15 +80,15 @@ void main() { test('basic', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 50.0); - final PointerEvent event1 = _createSimulatedPointerHoverEvent(2000, 10.0, 40.0, 10.0, -10.0); - final PointerEvent event2 = _createSimulatedPointerDownEvent(2000, 10.0, 40.0); - final PointerEvent event3 = _createSimulatedPointerMoveEvent(3000, 20.0, 30.0, 10.0, -10.0); - final PointerEvent event4 = _createSimulatedPointerMoveEvent(4000, 30.0, 20.0, 10.0, -10.0); - final PointerEvent event5 = _createSimulatedPointerUpEvent(4000, 30.0, 20.0); - final PointerEvent event6 = _createSimulatedPointerHoverEvent(5000, 40.0, 10.0, 10.0, -10.0); - final PointerEvent event7 = _createSimulatedPointerHoverEvent(6000, 50.0, 0.0, 10.0, -10.0); - final PointerEvent event8 = _createSimulatedPointerRemovedEvent(6000, 50.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 50.0); + final PointerEvent event1 = createSimulatedPointerHoverEvent(2000, 10.0, 40.0, 10.0, -10.0); + final PointerEvent event2 = createSimulatedPointerDownEvent(2000, 10.0, 40.0); + final PointerEvent event3 = createSimulatedPointerMoveEvent(3000, 20.0, 30.0, 10.0, -10.0); + final PointerEvent event4 = createSimulatedPointerMoveEvent(4000, 30.0, 20.0, 10.0, -10.0); + final PointerEvent event5 = createSimulatedPointerUpEvent(4000, 30.0, 20.0); + final PointerEvent event6 = createSimulatedPointerHoverEvent(5000, 40.0, 10.0, 10.0, -10.0); + final PointerEvent event7 = createSimulatedPointerHoverEvent(6000, 50.0, 0.0, 10.0, -10.0); + final PointerEvent event8 = createSimulatedPointerRemovedEvent(6000, 50.0, 0.0); resampler ..addEvent(event0) @@ -194,15 +194,15 @@ void main() { test('stream', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 50.0); - final PointerEvent event1 = _createSimulatedPointerHoverEvent(2000, 10.0, 40.0, 10.0, -10.0); - final PointerEvent event2 = _createSimulatedPointerDownEvent(2000, 10.0, 40.0); - final PointerEvent event3 = _createSimulatedPointerMoveEvent(3000, 20.0, 30.0, 10.0, -10.0); - final PointerEvent event4 = _createSimulatedPointerMoveEvent(4000, 30.0, 20.0, 10.0, -10.0); - final PointerEvent event5 = _createSimulatedPointerUpEvent(4000, 30.0, 20.0); - final PointerEvent event6 = _createSimulatedPointerHoverEvent(5000, 40.0, 10.0, 10.0, -10.0); - final PointerEvent event7 = _createSimulatedPointerHoverEvent(6000, 50.0, 0.0, 10.0, -10.0); - final PointerEvent event8 = _createSimulatedPointerRemovedEvent(6000, 50.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 50.0); + final PointerEvent event1 = createSimulatedPointerHoverEvent(2000, 10.0, 40.0, 10.0, -10.0); + final PointerEvent event2 = createSimulatedPointerDownEvent(2000, 10.0, 40.0); + final PointerEvent event3 = createSimulatedPointerMoveEvent(3000, 20.0, 30.0, 10.0, -10.0); + final PointerEvent event4 = createSimulatedPointerMoveEvent(4000, 30.0, 20.0, 10.0, -10.0); + final PointerEvent event5 = createSimulatedPointerUpEvent(4000, 30.0, 20.0); + final PointerEvent event6 = createSimulatedPointerHoverEvent(5000, 40.0, 10.0, 10.0, -10.0); + final PointerEvent event7 = createSimulatedPointerHoverEvent(6000, 50.0, 0.0, 10.0, -10.0); + final PointerEvent event8 = createSimulatedPointerRemovedEvent(6000, 50.0, 0.0); resampler.addEvent(event0); @@ -370,10 +370,10 @@ void main() { test('quick tap', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 0.0); - final PointerEvent event1 = _createSimulatedPointerDownEvent(1000, 0.0, 0.0); - final PointerEvent event2 = _createSimulatedPointerUpEvent(1000, 0.0, 0.0); - final PointerEvent event3 = _createSimulatedPointerRemovedEvent(1000, 0.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 0.0); + final PointerEvent event1 = createSimulatedPointerDownEvent(1000, 0.0, 0.0); + final PointerEvent event2 = createSimulatedPointerUpEvent(1000, 0.0, 0.0); + final PointerEvent event3 = createSimulatedPointerRemovedEvent(1000, 0.0, 0.0); resampler ..addEvent(event0) @@ -407,12 +407,12 @@ void main() { test('advance slowly', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 0.0); - final PointerEvent event1 = _createSimulatedPointerDownEvent(1000, 0.0, 0.0); - final PointerEvent event2 = _createSimulatedPointerMoveEvent(2000, 10.0, 0.0, 10.0, 0.0); - final PointerEvent event3 = _createSimulatedPointerMoveEvent(3000, 20.0, 0.0, 10.0, 0.0); - final PointerEvent event4 = _createSimulatedPointerUpEvent(3000, 20.0, 0.0); - final PointerEvent event5 = _createSimulatedPointerRemovedEvent(3000, 20.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 0.0); + final PointerEvent event1 = createSimulatedPointerDownEvent(1000, 0.0, 0.0); + final PointerEvent event2 = createSimulatedPointerMoveEvent(2000, 10.0, 0.0, 10.0, 0.0); + final PointerEvent event3 = createSimulatedPointerMoveEvent(3000, 20.0, 0.0, 10.0, 0.0); + final PointerEvent event4 = createSimulatedPointerUpEvent(3000, 20.0, 0.0); + final PointerEvent event5 = createSimulatedPointerRemovedEvent(3000, 20.0, 0.0); resampler ..addEvent(event0) @@ -486,12 +486,12 @@ void main() { test('advance fast', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 0.0); - final PointerEvent event1 = _createSimulatedPointerDownEvent(1000, 0.0, 0.0); - final PointerEvent event2 = _createSimulatedPointerMoveEvent(2000, 5.0, 0.0, 5.0, 0.0); - final PointerEvent event3 = _createSimulatedPointerMoveEvent(3000, 20.0, 0.0, 15.0, 0.0); - final PointerEvent event4 = _createSimulatedPointerUpEvent(4000, 30.0, 0.0); - final PointerEvent event5 = _createSimulatedPointerRemovedEvent(4000, 30.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 0.0); + final PointerEvent event1 = createSimulatedPointerDownEvent(1000, 0.0, 0.0); + final PointerEvent event2 = createSimulatedPointerMoveEvent(2000, 5.0, 0.0, 5.0, 0.0); + final PointerEvent event3 = createSimulatedPointerMoveEvent(3000, 20.0, 0.0, 15.0, 0.0); + final PointerEvent event4 = createSimulatedPointerUpEvent(4000, 30.0, 0.0); + final PointerEvent event5 = createSimulatedPointerRemovedEvent(4000, 30.0, 0.0); resampler ..addEvent(event0) @@ -543,15 +543,15 @@ void main() { test('skip', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 0.0); - final PointerEvent event1 = _createSimulatedPointerDownEvent(1000, 0.0, 0.0); - final PointerEvent event2 = _createSimulatedPointerMoveEvent(2000, 10.0, 0.0, 10.0, 0.0); - final PointerEvent event3 = _createSimulatedPointerUpEvent(3000, 10.0, 0.0); - final PointerEvent event4 = _createSimulatedPointerHoverEvent(4000, 20.0, 0.0, 10.0, 0.0); - final PointerEvent event5 = _createSimulatedPointerDownEvent(4000, 20.0, 0.0); - final PointerEvent event6 = _createSimulatedPointerMoveEvent(5000, 30.0, 0.0, 10.0, 0.0); - final PointerEvent event7 = _createSimulatedPointerUpEvent(5000, 30.0, 0.0); - final PointerEvent event8 = _createSimulatedPointerRemovedEvent(5000, 30.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 0.0); + final PointerEvent event1 = createSimulatedPointerDownEvent(1000, 0.0, 0.0); + final PointerEvent event2 = createSimulatedPointerMoveEvent(2000, 10.0, 0.0, 10.0, 0.0); + final PointerEvent event3 = createSimulatedPointerUpEvent(3000, 10.0, 0.0); + final PointerEvent event4 = createSimulatedPointerHoverEvent(4000, 20.0, 0.0, 10.0, 0.0); + final PointerEvent event5 = createSimulatedPointerDownEvent(4000, 20.0, 0.0); + final PointerEvent event6 = createSimulatedPointerMoveEvent(5000, 30.0, 0.0, 10.0, 0.0); + final PointerEvent event7 = createSimulatedPointerUpEvent(5000, 30.0, 0.0); + final PointerEvent event8 = createSimulatedPointerRemovedEvent(5000, 30.0, 0.0); resampler ..addEvent(event0) @@ -614,11 +614,11 @@ void main() { test('skip all', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 0.0); - final PointerEvent event1 = _createSimulatedPointerDownEvent(1000, 0.0, 0.0); - final PointerEvent event2 = _createSimulatedPointerMoveEvent(4000, 30.0, 0.0, 30.0, 0.0); - final PointerEvent event3 = _createSimulatedPointerUpEvent(4000, 30.0, 0.0); - final PointerEvent event4 = _createSimulatedPointerRemovedEvent(4000, 30.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 0.0); + final PointerEvent event1 = createSimulatedPointerDownEvent(1000, 0.0, 0.0); + final PointerEvent event2 = createSimulatedPointerMoveEvent(4000, 30.0, 0.0, 30.0, 0.0); + final PointerEvent event3 = createSimulatedPointerUpEvent(4000, 30.0, 0.0); + final PointerEvent event4 = createSimulatedPointerRemovedEvent(4000, 30.0, 0.0); resampler ..addEvent(event0) @@ -663,12 +663,12 @@ void main() { test('stop', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 0.0); - final PointerEvent event1 = _createSimulatedPointerDownEvent(2000, 0.0, 0.0); - final PointerEvent event2 = _createSimulatedPointerMoveEvent(3000, 10.0, 0.0, 10.0, 0.0); - final PointerEvent event3 = _createSimulatedPointerMoveEvent(4000, 20.0, 0.0, 10.0, 0.0); - final PointerEvent event4 = _createSimulatedPointerUpEvent(4000, 20.0, 0.0); - final PointerEvent event5 = _createSimulatedPointerRemovedEvent(5000, 20.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 0.0); + final PointerEvent event1 = createSimulatedPointerDownEvent(2000, 0.0, 0.0); + final PointerEvent event2 = createSimulatedPointerMoveEvent(3000, 10.0, 0.0, 10.0, 0.0); + final PointerEvent event3 = createSimulatedPointerMoveEvent(4000, 20.0, 0.0, 10.0, 0.0); + final PointerEvent event4 = createSimulatedPointerUpEvent(4000, 20.0, 0.0); + final PointerEvent event5 = createSimulatedPointerRemovedEvent(5000, 20.0, 0.0); resampler ..addEvent(event0) @@ -727,11 +727,11 @@ void main() { test('synthetic move', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 0.0); - final PointerEvent event1 = _createSimulatedPointerDownEvent(2000, 0.0, 0.0); - final PointerEvent event2 = _createSimulatedPointerMoveEvent(3000, 10.0, 0.0, 10.0, 0.0); - final PointerEvent event3 = _createSimulatedPointerUpEvent(4000, 10.0, 0.0); - final PointerEvent event4 = _createSimulatedPointerRemovedEvent(5000, 10.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 0.0); + final PointerEvent event1 = createSimulatedPointerDownEvent(2000, 0.0, 0.0); + final PointerEvent event2 = createSimulatedPointerMoveEvent(3000, 10.0, 0.0, 10.0, 0.0); + final PointerEvent event3 = createSimulatedPointerUpEvent(4000, 10.0, 0.0); + final PointerEvent event4 = createSimulatedPointerRemovedEvent(5000, 10.0, 0.0); resampler ..addEvent(event0) @@ -788,13 +788,13 @@ void main() { test('next sample time', () { final PointerEventResampler resampler = PointerEventResampler(); - final PointerEvent event0 = _createSimulatedPointerAddedEvent(1000, 0.0, 0.0); - final PointerEvent event1 = _createSimulatedPointerDownEvent(1000, 0.0, 0.0); - final PointerEvent event2 = _createSimulatedPointerMoveEvent(2000, 10.0, 0.0, 10.0, 0.0); - final PointerEvent event3 = _createSimulatedPointerMoveEvent(3000, 20.0, 0.0, 10.0, 0.0); - final PointerEvent event4 = _createSimulatedPointerUpEvent(3000, 20.0, 0.0); - final PointerEvent event5 = _createSimulatedPointerHoverEvent(4000, 30.0, 0.0, 10.0, 0.0); - final PointerEvent event6 = _createSimulatedPointerRemovedEvent(4000, 30.0, 0.0); + final PointerEvent event0 = createSimulatedPointerAddedEvent(1000, 0.0, 0.0); + final PointerEvent event1 = createSimulatedPointerDownEvent(1000, 0.0, 0.0); + final PointerEvent event2 = createSimulatedPointerMoveEvent(2000, 10.0, 0.0, 10.0, 0.0); + final PointerEvent event3 = createSimulatedPointerMoveEvent(3000, 20.0, 0.0, 10.0, 0.0); + final PointerEvent event4 = createSimulatedPointerUpEvent(3000, 20.0, 0.0); + final PointerEvent event5 = createSimulatedPointerHoverEvent(4000, 30.0, 0.0, 10.0, 0.0); + final PointerEvent event6 = createSimulatedPointerRemovedEvent(4000, 30.0, 0.0); resampler ..addEvent(event0) diff --git a/packages/flutter/test/material/app_bar_test.dart b/packages/flutter/test/material/app_bar_test.dart index 1b08520ea620f..88b6963f68aab 100644 --- a/packages/flutter/test/material/app_bar_test.dart +++ b/packages/flutter/test/material/app_bar_test.dart @@ -2567,457 +2567,311 @@ void main() { expect(actionIconTheme.color, foregroundColor); }); - group('MaterialStateColor scrolledUnder', () { + testWidgets('SliverAppBar.backgroundColor MaterialStateColor scrolledUnder', (WidgetTester tester) async { const double collapsedHeight = kToolbarHeight; const double expandedHeight = 200.0; const Color scrolledColor = Color(0xff00ff00); const Color defaultColor = Color(0xff0000ff); + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + body: CustomScrollView( + slivers: [ + SliverAppBar( + elevation: 0, + backgroundColor: MaterialStateColor.resolveWith((Set states) { + return states.contains(MaterialState.scrolledUnder) ? scrolledColor : defaultColor; + }), + expandedHeight: expandedHeight, + pinned: true, + ), + SliverList( + delegate: SliverChildListDelegate( + [ + Container(height: 1200.0, color: Colors.teal), + ], + ), + ), + ], + ), + ), + ), + ); + Finder findAppBarMaterial() { - return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)).first; + return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)); } - Color? getAppBarBackgroundColor(WidgetTester tester) { + Color? getAppBarBackgroundColor() { return tester.widget(findAppBarMaterial()).color; } - group('SliverAppBar', () { - Widget _buildSliverApp({ - required double contentHeight, - bool reverse = false, - bool includeFlexibleSpace = false, - }) { - return MaterialApp( - home: Scaffold( - body: CustomScrollView( - reverse: reverse, - slivers: [ - SliverAppBar( - elevation: 0, - backgroundColor: MaterialStateColor.resolveWith((Set states) { - return states.contains(MaterialState.scrolledUnder) - ? scrolledColor - : defaultColor; - }), - expandedHeight: expandedHeight, - pinned: true, - flexibleSpace: includeFlexibleSpace - ? const FlexibleSpaceBar(title: Text('SliverAppBar')) - : null, + expect(getAppBarBackgroundColor(), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, -expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); + + gesture = await tester.startGesture(const Offset(50.0, 300.0)); + await gesture.moveBy(const Offset(0.0, expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + }); + + testWidgets('SliverAppBar.backgroundColor with FlexibleSpace MaterialStateColor scrolledUnder', (WidgetTester tester) async { + const double collapsedHeight = kToolbarHeight; + const double expandedHeight = 200.0; + const Color scrolledColor = Color(0xff00ff00); + const Color defaultColor = Color(0xff0000ff); + + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + body: CustomScrollView( + slivers: [ + SliverAppBar( + elevation: 0, + backgroundColor: MaterialStateColor.resolveWith((Set states) { + return states.contains(MaterialState.scrolledUnder) ? scrolledColor : defaultColor; + }), + expandedHeight: expandedHeight, + pinned: true, + flexibleSpace: const FlexibleSpaceBar( + title: Text('SliverAppBar'), ), - SliverList( - delegate: SliverChildListDelegate( + ), + SliverList( + delegate: SliverChildListDelegate( [ - Container(height: contentHeight, color: Colors.teal), + Container(height: 1200.0, color: Colors.teal), ], - ), ), - ], - ), + ), + ], ), - ); - } - - testWidgets('backgroundColor', (WidgetTester tester) async { - await tester.pumpWidget( - _buildSliverApp(contentHeight: 1200.0) - ); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, -expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - }); - - testWidgets('backgroundColor with FlexibleSpace', (WidgetTester tester) async { - await tester.pumpWidget( - _buildSliverApp(contentHeight: 1200.0, includeFlexibleSpace: true) - ); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, -expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - }); - - testWidgets('backgroundColor - reverse', (WidgetTester tester) async { - await tester.pumpWidget( - _buildSliverApp(contentHeight: 1200.0, reverse: true) - ); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, -expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - }); - - testWidgets('backgroundColor with FlexibleSpace - reverse', (WidgetTester tester) async { - await tester.pumpWidget( - _buildSliverApp( - contentHeight: 1200.0, - reverse: true, - includeFlexibleSpace: true, - ) - ); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, -expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - }); - - testWidgets('backgroundColor - not triggered in reverse for short content', (WidgetTester tester) async { - await tester.pumpWidget( - _buildSliverApp(contentHeight: 200, reverse: true) - ); - - // In reverse, the content here is not long enough to scroll under the app - // bar. - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - - final TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - }); - - testWidgets('backgroundColor with FlexibleSpace - not triggered in reverse for short content', (WidgetTester tester) async { - await tester.pumpWidget( - _buildSliverApp( - contentHeight: 200, - reverse: true, - includeFlexibleSpace: true, - ) - ); - - // In reverse, the content here is not long enough to scroll under the app - // bar. - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - - final TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, expandedHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); - }); - }); + ), + ), + ); - group('AppBar', () { - Widget _buildAppBar({ - required double contentHeight, - bool reverse = false, - bool includeFlexibleSpace = false - }) { - return MaterialApp( - home: Scaffold( - appBar: AppBar( - elevation: 0, - backgroundColor: MaterialStateColor.resolveWith((Set states) { - return states.contains(MaterialState.scrolledUnder) - ? scrolledColor - : defaultColor; - }), - title: const Text('AppBar'), - flexibleSpace: includeFlexibleSpace - ? const FlexibleSpaceBar(title: Text('FlexibleSpace')) - : null, + Finder findAppBarMaterial() { + // There are 2 Material widgets below AppBar. The second is only added if + // flexibleSpace is non-null. + return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)).first; + } + + Color? getAppBarBackgroundColor() { + return tester.widget(findAppBarMaterial()).color; + } + + expect(getAppBarBackgroundColor(), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, -expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, collapsedHeight); + + gesture = await tester.startGesture(const Offset(50.0, 300.0)); + await gesture.moveBy(const Offset(0.0, expandedHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, expandedHeight); + }); + + testWidgets('AppBar.backgroundColor MaterialStateColor scrolledUnder', (WidgetTester tester) async { + const Color scrolledColor = Color(0xff00ff00); + const Color defaultColor = Color(0xff0000ff); + + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + appBar: AppBar( + elevation: 0, + backgroundColor: MaterialStateColor.resolveWith((Set states) { + return states.contains(MaterialState.scrolledUnder) ? scrolledColor : defaultColor; + }), + title: const Text('AppBar'), + ), + body: ListView( + children: [ + Container(height: 1200.0, color: Colors.teal), + ], + ), + ), + ), + ); + + Finder findAppBarMaterial() { + return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)); + } + + Color? getAppBarBackgroundColor() { + return tester.widget(findAppBarMaterial()).color; + } + + expect(getAppBarBackgroundColor(), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + gesture = await tester.startGesture(const Offset(50.0, 300.0)); + await gesture.moveBy(const Offset(0.0, kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + }); + + testWidgets('AppBar.backgroundColor with FlexibleSpace MaterialStateColor scrolledUnder', (WidgetTester tester) async { + const Color scrolledColor = Color(0xff00ff00); + const Color defaultColor = Color(0xff0000ff); + + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + appBar: AppBar( + elevation: 0, + backgroundColor: MaterialStateColor.resolveWith((Set states) { + return states.contains(MaterialState.scrolledUnder) ? scrolledColor : defaultColor; + }), + title: const Text('AppBar'), + flexibleSpace: const FlexibleSpaceBar( + title: Text('FlexibleSpace'), ), - body: ListView( - reverse: reverse, + ), + body: ListView( + children: [ + Container(height: 1200.0, color: Colors.teal), + ], + ), + ), + ), + ); + + Finder findAppBarMaterial() { + // There are 2 Material widgets below AppBar. The second is only added if + // flexibleSpace is non-null. + return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)).first; + } + + Color? getAppBarBackgroundColor() { + return tester.widget(findAppBarMaterial()).color; + } + + expect(getAppBarBackgroundColor(), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), scrolledColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + + gesture = await tester.startGesture(const Offset(50.0, 300.0)); + await gesture.moveBy(const Offset(0.0, kToolbarHeight)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), defaultColor); + expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); + }); + + testWidgets('AppBar._handleScrollNotification safely calls setState()', (WidgetTester tester) async { + // Regression test for failures found in Google internal issue b/185192049. + final ScrollController controller = ScrollController(initialScrollOffset: 400); + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + appBar: AppBar( + title: const Text('AppBar'), + ), + body: Scrollbar( + isAlwaysShown: true, + controller: controller, + child: ListView( + controller: controller, children: [ - Container(height: contentHeight, color: Colors.teal), + Container(height: 1200.0, color: Colors.teal), ], ), ), - ); - } - - testWidgets('backgroundColor', (WidgetTester tester) async { - await tester.pumpWidget( - _buildAppBar(contentHeight: 1200.0) - ); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - }); - - testWidgets('backgroundColor with FlexibleSpace', (WidgetTester tester) async { - await tester.pumpWidget( - _buildAppBar(contentHeight: 1200.0, includeFlexibleSpace: true) - ); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - }); - - testWidgets('backgroundColor - reverse', (WidgetTester tester) async { - await tester.pumpWidget( - _buildAppBar(contentHeight: 1200.0, reverse: true) - ); - await tester.pump(); - - // In this test case, the content always extends under the AppBar, so it - // should always be the scrolledColor. - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - }); - - testWidgets('backgroundColor with FlexibleSpace - reverse', (WidgetTester tester) async { - await tester.pumpWidget( - _buildAppBar( - contentHeight: 1200.0, - reverse: true, - includeFlexibleSpace: true, - ) - ); - await tester.pump(); - - // In this test case, the content always extends under the AppBar, so it - // should always be the scrolledColor. - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - gesture = await tester.startGesture(const Offset(50.0, 300.0)); - await gesture.moveBy(const Offset(0.0, -kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), scrolledColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - }); - - testWidgets('_handleScrollNotification safely calls setState()', (WidgetTester tester) async { - // Regression test for failures found in Google internal issue b/185192049. - final ScrollController controller = ScrollController(initialScrollOffset: 400); - await tester.pumpWidget( - MaterialApp( - home: Scaffold( - appBar: AppBar( - title: const Text('AppBar'), - ), - body: Scrollbar( - isAlwaysShown: true, - controller: controller, - child: ListView( - controller: controller, - children: [ - Container(height: 1200.0, color: Colors.teal), - ], - ), - ), - ), - ), - ); + ), + ), + ); - expect(tester.takeException(), isNull); - }); + expect(tester.takeException(), isNull); + }); - testWidgets('does not trigger on horizontal scroll', (WidgetTester tester) async { - await tester.pumpWidget( - MaterialApp( - home: Scaffold( - appBar: AppBar( - elevation: 0, - backgroundColor: MaterialStateColor.resolveWith((Set states) { - return states.contains(MaterialState.scrolledUnder) - ? scrolledColor - : defaultColor; - }), - title: const Text('AppBar'), - ), - body: ListView( - scrollDirection: Axis.horizontal, - children: [ - Container(height: 600.0, width: 1200.0, color: Colors.teal), - ], - ), - ), + testWidgets('AppBar scrolledUnder does not trigger on horizontal scroll', (WidgetTester tester) async { + const Color scrolledColor = Color(0xff00ff00); + const Color defaultColor = Color(0xff0000ff); + + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + appBar: AppBar( + elevation: 0, + backgroundColor: MaterialStateColor.resolveWith((Set states) { + return states.contains(MaterialState.scrolledUnder) ? scrolledColor : defaultColor; + }), + title: const Text('AppBar'), ), - ); - - expect(getAppBarBackgroundColor(tester), defaultColor); - - TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(-100.0, 0.0)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - - gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(100.0, 0.0)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - }); - - testWidgets('backgroundColor - not triggered in reverse for short content', (WidgetTester tester) async { - await tester.pumpWidget( - _buildAppBar( - contentHeight: 200.0, - reverse: true, - ) - ); - await tester.pump(); - - // In reverse, the content here is not long enough to scroll under the app - // bar. - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - final TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - }); - - testWidgets('backgroundColor with FlexibleSpace - not triggered in reverse for short content', (WidgetTester tester) async { - await tester.pumpWidget( - _buildAppBar( - contentHeight: 200.0, - reverse: true, - includeFlexibleSpace: true, - ) - ); - await tester.pump(); - - // In reverse, the content here is not long enough to scroll under the app - // bar. - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - - final TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); - await gesture.moveBy(const Offset(0.0, kToolbarHeight)); - await gesture.up(); - await tester.pumpAndSettle(); - - expect(getAppBarBackgroundColor(tester), defaultColor); - expect(tester.getSize(findAppBarMaterial()).height, kToolbarHeight); - }); - }); + body: ListView( + scrollDirection: Axis.horizontal, + children: [ + Container(height: 600.0, width: 1200.0, color: Colors.teal), + ], + ), + ), + ), + ); + + Finder findAppBarMaterial() { + return find.descendant(of: find.byType(AppBar), matching: find.byType(Material)); + } + + Color? getAppBarBackgroundColor() { + return tester.widget(findAppBarMaterial()).color; + } + + expect(getAppBarBackgroundColor(), defaultColor); + + TestGesture gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(-100.0, 0.0)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), defaultColor); + + gesture = await tester.startGesture(const Offset(50.0, 400.0)); + await gesture.moveBy(const Offset(100.0, 0.0)); + await gesture.up(); + await tester.pumpAndSettle(); + + expect(getAppBarBackgroundColor(), defaultColor); }); testWidgets('AppBar.preferredHeightFor', (WidgetTester tester) async { diff --git a/packages/flutter/test/material/app_bar_theme_test.dart b/packages/flutter/test/material/app_bar_theme_test.dart index 171dbe5594136..58c8519ccdb18 100644 --- a/packages/flutter/test/material/app_bar_theme_test.dart +++ b/packages/flutter/test/material/app_bar_theme_test.dart @@ -90,7 +90,7 @@ void main() { foregroundColor: Colors.black, ); - Widget _buildWithBackwardsCompatibility([bool? enabled]) => MaterialApp( + Widget buildWithBackwardsCompatibility([bool? enabled]) => MaterialApp( theme: ThemeData(appBarTheme: appBarTheme), home: Scaffold(body: CustomScrollView( slivers: [ @@ -106,17 +106,17 @@ void main() { ); // Backwards compatibility enabled, AppBar should be built with true. - await tester.pumpWidget(_buildWithBackwardsCompatibility(true)); + await tester.pumpWidget(buildWithBackwardsCompatibility(true)); AppBar appBar = tester.widget(find.byType(AppBar)); expect(appBar.backwardsCompatibility, true); // Backwards compatibility disabled, AppBar should be built with false. - await tester.pumpWidget(_buildWithBackwardsCompatibility(false)); + await tester.pumpWidget(buildWithBackwardsCompatibility(false)); appBar = tester.widget(find.byType(AppBar)); expect(appBar.backwardsCompatibility, false); // Backwards compatibility unspecified, AppBar should be built with null. - await tester.pumpWidget(_buildWithBackwardsCompatibility()); + await tester.pumpWidget(buildWithBackwardsCompatibility()); appBar = tester.widget(find.byType(AppBar)); expect(appBar.backwardsCompatibility, null); diff --git a/packages/flutter/test/material/app_test.dart b/packages/flutter/test/material/app_test.dart index 6279e9a60fed2..505c40b3ec220 100644 --- a/packages/flutter/test/material/app_test.dart +++ b/packages/flutter/test/material/app_test.dart @@ -1076,9 +1076,9 @@ void main() { height: 1000.0, width: 1000.0, child: Text('Test'), - ) - ] - ) + ), + ], + ), )); expect(find.byType(StretchingOverscrollIndicator), findsNothing); @@ -1094,9 +1094,9 @@ void main() { height: 1000.0, width: 1000.0, child: Text('Test'), - ) - ] - ) + ), + ], + ), )); expect(find.byType(StretchingOverscrollIndicator), findsOneWidget); @@ -1106,15 +1106,15 @@ void main() { testWidgets('ScrollBehavior stretch android overscroll indicator via useMaterial3 flag', (WidgetTester tester) async { await tester.pumpWidget(MaterialApp( theme: ThemeData(useMaterial3: true), - home: ListView( - children: const [ - SizedBox( - height: 1000.0, - width: 1000.0, - child: Text('Test'), - ) - ] - ) + home: ListView( + children: const [ + SizedBox( + height: 1000.0, + width: 1000.0, + child: Text('Test'), + ), + ], + ), )); expect(find.byType(StretchingOverscrollIndicator), findsOneWidget); @@ -1131,9 +1131,9 @@ void main() { height: 1000.0, width: 1000.0, child: Text('Test'), - ) - ] - ) + ), + ], + ), )); expect(find.byType(StretchingOverscrollIndicator), findsOneWidget); @@ -1151,9 +1151,9 @@ void main() { height: 1000.0, width: 1000.0, child: Text('Test'), - ) - ] - ) + ), + ], + ), )); expect(find.byType(StretchingOverscrollIndicator), findsOneWidget); diff --git a/packages/flutter/test/material/autocomplete_test.dart b/packages/flutter/test/material/autocomplete_test.dart index 641befef4016d..ab77b522ec67e 100644 --- a/packages/flutter/test/material/autocomplete_test.dart +++ b/packages/flutter/test/material/autocomplete_test.dart @@ -310,7 +310,7 @@ void main() { testWidgets('The height of options shrinks to height of resulting items, if less than maxHeight', (WidgetTester tester) async { // Returns a Future with the height of the default [Autocomplete] options widget // after the provided text had been entered into the [Autocomplete] field. - Future _getDefaultOptionsHeight( + Future getDefaultOptionsHeight( WidgetTester tester, String enteredText) async { final Finder listFinder = find.byType(ListView); final Finder inputFinder = find.byType(TextFormField); @@ -341,17 +341,17 @@ void main() { // Entering `a` returns 9 items(height > `maxOptionsHeight`) from the kOptions // so height gets restricted to `maxOptionsHeight =250`. - final double nineItemsHeight = await _getDefaultOptionsHeight(tester, 'a'); + final double nineItemsHeight = await getDefaultOptionsHeight(tester, 'a'); expect(nineItemsHeight, equals(maxOptionsHeight)); // Returns 2 Items (height < `maxOptionsHeight`) // so options height shrinks to 2 Items combined height. - final double twoItemsHeight = await _getDefaultOptionsHeight(tester, 'el'); + final double twoItemsHeight = await getDefaultOptionsHeight(tester, 'el'); expect(twoItemsHeight, lessThan(maxOptionsHeight)); // Returns 1 item (height < `maxOptionsHeight`) from `kOptions` // so options height shrinks to 1 items height. - final double oneItemsHeight = await _getDefaultOptionsHeight(tester, 'elep'); + final double oneItemsHeight = await getDefaultOptionsHeight(tester, 'elep'); expect(oneItemsHeight, lessThan(twoItemsHeight)); }); diff --git a/packages/flutter/test/material/bottom_sheet_test.dart b/packages/flutter/test/material/bottom_sheet_test.dart index 53011dd979e6c..5b2bd8fcac412 100644 --- a/packages/flutter/test/material/bottom_sheet_test.dart +++ b/packages/flutter/test/material/bottom_sheet_test.dart @@ -12,7 +12,7 @@ import '../widgets/semantics_tester.dart'; void main() { // Pumps and ensures that the BottomSheet animates non-linearly. - Future _checkNonLinearAnimation(WidgetTester tester) async { + Future checkNonLinearAnimation(WidgetTester tester) async { final Offset firstPosition = tester.getCenter(find.text('BottomSheet')); await tester.pump(const Duration(milliseconds: 30)); final Offset secondPosition = tester.getCenter(find.text('BottomSheet')); @@ -360,13 +360,13 @@ void main() { ); await tester.pump(); - await _checkNonLinearAnimation(tester); + await checkNonLinearAnimation(tester); await tester.pumpAndSettle(); // Tap above the bottom sheet to dismiss it. await tester.tapAt(const Offset(20.0, 20.0)); await tester.pump(); - await _checkNonLinearAnimation(tester); + await checkNonLinearAnimation(tester); await tester.pumpAndSettle(); // Bottom sheet dismiss animation. expect(find.text('BottomSheet'), findsNothing); }); diff --git a/packages/flutter/test/material/card_test.dart b/packages/flutter/test/material/card_test.dart index 6eb4823d2b1de..aec9a5a99c031 100644 --- a/packages/flutter/test/material/card_test.dart +++ b/packages/flutter/test/material/card_test.dart @@ -187,7 +187,7 @@ void main() { }); testWidgets('Card shadowColor', (WidgetTester tester) async { - Material _getCardMaterial(WidgetTester tester) { + Material getCardMaterial(WidgetTester tester) { return tester.widget( find.descendant( of: find.byType(Card), @@ -196,7 +196,7 @@ void main() { ); } - Card _getCard(WidgetTester tester) { + Card getCard(WidgetTester tester) { return tester.widget( find.byType(Card), ); @@ -206,8 +206,8 @@ void main() { const Card(), ); - expect(_getCard(tester).shadowColor, null); - expect(_getCardMaterial(tester).shadowColor, const Color(0xFF000000)); + expect(getCard(tester).shadowColor, null); + expect(getCardMaterial(tester).shadowColor, const Color(0xFF000000)); await tester.pumpWidget( const Card( @@ -215,7 +215,7 @@ void main() { ), ); - expect(_getCardMaterial(tester).shadowColor, _getCard(tester).shadowColor); - expect(_getCardMaterial(tester).shadowColor, Colors.red); + expect(getCardMaterial(tester).shadowColor, getCard(tester).shadowColor); + expect(getCardMaterial(tester).shadowColor, Colors.red); }); } diff --git a/packages/flutter/test/material/chip_filter_test.dart b/packages/flutter/test/material/chip_filter_test.dart index 3405f3b6fc262..773aadae18770 100644 --- a/packages/flutter/test/material/chip_filter_test.dart +++ b/packages/flutter/test/material/chip_filter_test.dart @@ -64,6 +64,8 @@ void expectCheckmarkColor(Finder finder, Color color) { expect( finder, paints + // Physical model path + ..path() // The first path that is painted is the selection overlay. We do not care // how it is painted but it has to be added it to this pattern so that the // check mark can be checked next. diff --git a/packages/flutter/test/material/chip_input_test.dart b/packages/flutter/test/material/chip_input_test.dart index 84929d3eaeb9e..6c6ca97bf0bb2 100644 --- a/packages/flutter/test/material/chip_input_test.dart +++ b/packages/flutter/test/material/chip_input_test.dart @@ -64,6 +64,8 @@ void expectCheckmarkColor(Finder finder, Color color) { expect( finder, paints + // Physical model layer path + ..path() // The first path that is painted is the selection overlay. We do not care // how it is painted but it has to be added it to this pattern so that the // check mark can be checked next. diff --git a/packages/flutter/test/material/date_picker_test.dart b/packages/flutter/test/material/date_picker_test.dart index 525148fb82cf7..c508efb60ba4b 100644 --- a/packages/flutter/test/material/date_picker_test.dart +++ b/packages/flutter/test/material/date_picker_test.dart @@ -1086,7 +1086,7 @@ void main() { const Size kSmallScreenSizePortrait = Size(320, 521); const Size kSmallScreenSizeLandscape = Size(521, 320); - Future _showPicker(WidgetTester tester, Size size, [double textScaleFactor = 1.0]) async { + Future showPicker(WidgetTester tester, Size size, [double textScaleFactor = 1.0]) async { tester.binding.window.physicalSizeTestValue = size; addTearDown(tester.binding.window.clearPhysicalSizeTestValue); tester.binding.window.devicePixelRatioTestValue = 1.0; @@ -1098,42 +1098,42 @@ void main() { } testWidgets('common screen size - portrait', (WidgetTester tester) async { - await _showPicker(tester, kCommonScreenSizePortrait); + await showPicker(tester, kCommonScreenSizePortrait); expect(tester.takeException(), isNull); }); testWidgets('common screen size - landscape', (WidgetTester tester) async { - await _showPicker(tester, kCommonScreenSizeLandscape); + await showPicker(tester, kCommonScreenSizeLandscape); expect(tester.takeException(), isNull); }); testWidgets('common screen size - portrait - textScale 1.3', (WidgetTester tester) async { - await _showPicker(tester, kCommonScreenSizePortrait, 1.3); + await showPicker(tester, kCommonScreenSizePortrait, 1.3); expect(tester.takeException(), isNull); }); testWidgets('common screen size - landscape - textScale 1.3', (WidgetTester tester) async { - await _showPicker(tester, kCommonScreenSizeLandscape, 1.3); + await showPicker(tester, kCommonScreenSizeLandscape, 1.3); expect(tester.takeException(), isNull); }); testWidgets('small screen size - portrait', (WidgetTester tester) async { - await _showPicker(tester, kSmallScreenSizePortrait); + await showPicker(tester, kSmallScreenSizePortrait); expect(tester.takeException(), isNull); }); testWidgets('small screen size - landscape', (WidgetTester tester) async { - await _showPicker(tester, kSmallScreenSizeLandscape); + await showPicker(tester, kSmallScreenSizeLandscape); expect(tester.takeException(), isNull); }); testWidgets('small screen size - portrait -textScale 1.3', (WidgetTester tester) async { - await _showPicker(tester, kSmallScreenSizePortrait, 1.3); + await showPicker(tester, kSmallScreenSizePortrait, 1.3); expect(tester.takeException(), isNull); }); testWidgets('small screen size - landscape - textScale 1.3', (WidgetTester tester) async { - await _showPicker(tester, kSmallScreenSizeLandscape, 1.3); + await showPicker(tester, kSmallScreenSizeLandscape, 1.3); expect(tester.takeException(), isNull); }); }); diff --git a/packages/flutter/test/material/date_range_picker_test.dart b/packages/flutter/test/material/date_range_picker_test.dart index be7c138e8e34a..6eed83e280228 100644 --- a/packages/flutter/test/material/date_range_picker_test.dart +++ b/packages/flutter/test/material/date_range_picker_test.dart @@ -796,7 +796,7 @@ void main() { // Given a custom paint for an input decoration, extract the border and // fill color and test them against the expected values. - void _testInputDecorator(CustomPaint decoratorPaint, InputBorder expectedBorder, Color expectedContainerColor) { + void testInputDecorator(CustomPaint decoratorPaint, InputBorder expectedBorder, Color expectedContainerColor) { final dynamic/*_InputBorderPainter*/ inputBorderPainter = decoratorPaint.foregroundPainter; // ignore: avoid_dynamic_calls final dynamic/*_InputBorderTween*/ inputBorderTween = inputBorderPainter.border; @@ -851,10 +851,10 @@ void main() { ); // Test the start date text field - _testInputDecorator(tester.widget(borderContainers.first), border, Colors.transparent); + testInputDecorator(tester.widget(borderContainers.first), border, Colors.transparent); // Test the end date text field - _testInputDecorator(tester.widget(borderContainers.last), border, Colors.transparent); + testInputDecorator(tester.widget(borderContainers.last), border, Colors.transparent); }); }); diff --git a/packages/flutter/test/material/debug_test.dart b/packages/flutter/test/material/debug_test.dart index 21492e972bc01..59474c5acc714 100644 --- a/packages/flutter/test/material/debug_test.dart +++ b/packages/flutter/test/material/debug_test.dart @@ -29,7 +29,7 @@ void main() { 'FlutterError\n' ' No Material widget found.\n' ' Chip widgets require a Material widget ancestor.\n' - ' In material design, most widgets are conceptually "printed" on a\n' + ' In Material Design, most widgets are conceptually "printed" on a\n' " sheet of material. In Flutter's material library, that material\n" ' is represented by the Material widget. It is the Material widget\n' ' that renders ink splashes, for instance. Because of this, many\n' @@ -349,7 +349,6 @@ void main() { ' Material\n' ' _ScrollNotificationObserverScope\n' ' NotificationListener\n' - ' NotificationListener\n' ' ScrollNotificationObserver\n' ' _ScaffoldScope\n' ' Scaffold-[LabeledGlobalKey#00000]\n' diff --git a/packages/flutter/test/material/dropdown_test.dart b/packages/flutter/test/material/dropdown_test.dart index 2fcdaa4d6de28..4a0dae1266809 100644 --- a/packages/flutter/test/material/dropdown_test.dart +++ b/packages/flutter/test/material/dropdown_test.dart @@ -3322,7 +3322,7 @@ void main() { alignment: buttonAlignment ?? AlignmentDirectional.centerStart, value: 'enabled', child: const Text('enabled'), - ) + ), ], ), ), @@ -3573,7 +3573,7 @@ void main() { value, 'Two', 'Free', - 'Four' + 'Four', ].map>((String value) { return DropdownMenuItem( value: value, diff --git a/packages/flutter/test/material/floating_action_button_location_test.dart b/packages/flutter/test/material/floating_action_button_location_test.dart index 8cbf3f1a79712..b1ffb854af4d4 100644 --- a/packages/flutter/test/material/floating_action_button_location_test.dart +++ b/packages/flutter/test/material/floating_action_button_location_test.dart @@ -610,7 +610,7 @@ void main() { }); group('Locations account for safe interactive areas', () { - Widget _buildTest( + Widget buildTest( FloatingActionButtonLocation location, MediaQueryData data, Key key, { @@ -672,7 +672,7 @@ void main() { // - with BottomSheet // - with BottomSheet and resizeToAvoidBottomInset: false // - with SnackBar - Future _runFloatTests( + Future runFloatTests( WidgetTester tester, FloatingActionButtonLocation location, { required Rect defaultRect, @@ -686,7 +686,7 @@ void main() { final Key floatingActionButton = UniqueKey(); const double bottomNavHeight = 106.0; // Default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData(viewPadding: EdgeInsets.only(bottom: viewPadding)), floatingActionButton, @@ -697,7 +697,7 @@ void main() { rectMoreOrLessEquals(defaultRect), ); // Present keyboard and check position, should change - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( viewPadding: EdgeInsets.only(bottom: viewPadding), @@ -716,7 +716,7 @@ void main() { // With resizeToAvoidBottomInset: false // With keyboard presented, should maintain default position - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( viewPadding: EdgeInsets.only(bottom: viewPadding), @@ -732,7 +732,7 @@ void main() { ); // BottomNavigationBar default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -747,7 +747,7 @@ void main() { rectMoreOrLessEquals(bottomNavigationBarRect), ); // Present keyboard and check position, FAB position changes - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -768,7 +768,7 @@ void main() { // BottomNavigationBar with resizeToAvoidBottomInset: false // With keyboard presented, should maintain default position - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -786,7 +786,7 @@ void main() { ); // BottomNavigationBar + BottomSheet default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -805,7 +805,7 @@ void main() { )), ); // Present keyboard and check position, FAB position changes - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -827,7 +827,7 @@ void main() { // BottomNavigationBar + BottomSheet with resizeToAvoidBottomInset: false // With keyboard presented, should maintain default position - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -849,7 +849,7 @@ void main() { ); // BottomSheet default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData(viewPadding: EdgeInsets.only(bottom: viewPadding)), floatingActionButton, @@ -861,7 +861,7 @@ void main() { rectMoreOrLessEquals(bottomSheetRect), ); // Present keyboard and check position, bottomSheet and FAB both resize - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( viewPadding: EdgeInsets.only(bottom: viewPadding), @@ -878,7 +878,7 @@ void main() { // bottomSheet with resizeToAvoidBottomInset: false // With keyboard presented, should maintain default bottomSheet position - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( viewPadding: EdgeInsets.only(bottom: viewPadding), @@ -895,7 +895,7 @@ void main() { ); // SnackBar default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData(viewPadding: EdgeInsets.only(bottom: viewPadding)), floatingActionButton, @@ -909,7 +909,7 @@ void main() { ); // SnackBar when resized for presented keyboard - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( viewPadding: EdgeInsets.only(bottom: viewPadding), @@ -934,7 +934,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(16.0, 472.0, 72.0, 528.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(16.0, 478.0, 72.0, 534.0); - await _runFloatTests( + await runFloatTests( tester, FloatingActionButtonLocation.startFloat, defaultRect: defaultRect, @@ -952,7 +952,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(12.0, 480.0, 60.0, 528.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(12.0, 490.0, 60.0, 538.0); - await _runFloatTests( + await runFloatTests( tester, FloatingActionButtonLocation.miniStartFloat, defaultRect: defaultRect, @@ -971,7 +971,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(372.0, 472.0, 428.0, 528.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(372.0, 478.0, 428.0, 534.0); - await _runFloatTests( + await runFloatTests( tester, FloatingActionButtonLocation.centerFloat, defaultRect: defaultRect, @@ -989,7 +989,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(376.0, 480.0, 424.0, 528.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(376.0, 490.0, 424.0, 538.0); - await _runFloatTests( + await runFloatTests( tester, FloatingActionButtonLocation.miniCenterFloat, defaultRect: defaultRect, @@ -1008,7 +1008,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(728.0, 472.0, 784.0, 528.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(728.0, 478.0, 784.0, 534.0); - await _runFloatTests( + await runFloatTests( tester, FloatingActionButtonLocation.endFloat, defaultRect: defaultRect, @@ -1026,7 +1026,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(740.0, 480.0, 788.0, 528.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(740.0, 490.0, 788.0, 538.0); - await _runFloatTests( + await runFloatTests( tester, FloatingActionButtonLocation.miniEndFloat, defaultRect: defaultRect, @@ -1047,7 +1047,7 @@ void main() { // - docked with BottomNavigationBar & BottomSheet // - docked with BottomNavigationBar & BottomSheet, resizeToAvoidBottomInset: false // - with SnackBar - Future _runDockedTests( + Future runDockedTests( WidgetTester tester, FloatingActionButtonLocation location, { required Rect defaultRect, @@ -1063,7 +1063,7 @@ void main() { final Key floatingActionButton = UniqueKey(); final double fabHeight = mini ? 48.0 : 56.0; // Default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData(viewPadding: EdgeInsets.only(bottom: viewPadding)), floatingActionButton, @@ -1074,7 +1074,7 @@ void main() { rectMoreOrLessEquals(defaultRect), ); // Present keyboard and check position, should change - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( viewPadding: EdgeInsets.only(bottom: viewPadding), @@ -1098,7 +1098,7 @@ void main() { // With resizeToAvoidBottomInset: false // With keyboard presented, should maintain default position - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( viewPadding: EdgeInsets.only(bottom: viewPadding), @@ -1114,7 +1114,7 @@ void main() { ); // BottomNavigationBar default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -1129,7 +1129,7 @@ void main() { rectMoreOrLessEquals(bottomNavigationBarRect), ); // Present keyboard and check position, FAB position changes - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -1155,7 +1155,7 @@ void main() { // BottomNavigationBar with resizeToAvoidBottomInset: false // With keyboard presented, should maintain default position - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -1173,7 +1173,7 @@ void main() { ); // BottomNavigationBar + BottomSheet default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -1189,7 +1189,7 @@ void main() { rectMoreOrLessEquals(bottomSheetRect), ); // Present keyboard and check position, FAB position changes - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -1216,7 +1216,7 @@ void main() { // BottomNavigationBar + BottomSheet with resizeToAvoidBottomInset: false // With keyboard presented, should maintain default position - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -1235,7 +1235,7 @@ void main() { ); // SnackBar default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData(viewPadding: EdgeInsets.only(bottom: viewPadding)), floatingActionButton, @@ -1249,7 +1249,7 @@ void main() { ); // SnackBar with BottomNavigationBar - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( padding: EdgeInsets.only(bottom: viewPadding), @@ -1267,7 +1267,7 @@ void main() { ); // SnackBar when resized for presented keyboard - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData( viewPadding: EdgeInsets.only(bottom: viewPadding), @@ -1297,7 +1297,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(16.0, 366.0, 72.0, 422.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(16.0, 486.0, 72.0, 542.0); - await _runDockedTests( + await runDockedTests( tester, FloatingActionButtonLocation.startDocked, defaultRect: defaultRect, @@ -1315,7 +1315,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(12.0, 370.0, 60.0, 418.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(12.0, 494.0, 60.0, 542.0); - await _runDockedTests( + await runDockedTests( tester, FloatingActionButtonLocation.miniStartDocked, defaultRect: defaultRect, @@ -1334,7 +1334,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(372.0, 366.0, 428.0, 422.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(372.0, 486.0, 428.0, 542.0); - await _runDockedTests( + await runDockedTests( tester, FloatingActionButtonLocation.centerDocked, defaultRect: defaultRect, @@ -1352,7 +1352,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(376.0, 370.0, 424.0, 418.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(376.0, 494.0, 424.0, 542.0); - await _runDockedTests( + await runDockedTests( tester, FloatingActionButtonLocation.miniCenterDocked, defaultRect: defaultRect, @@ -1371,7 +1371,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(728.0, 366.0, 784.0, 422.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(728.0, 486.0, 784.0, 542.0); - await _runDockedTests( + await runDockedTests( tester, FloatingActionButtonLocation.endDocked, defaultRect: defaultRect, @@ -1389,7 +1389,7 @@ void main() { const Rect bottomSheetRect = Rect.fromLTRB(740.0, 370.0, 788.0, 418.0); // Positioned relative to SnackBar const Rect snackBarRect = Rect.fromLTRB(740.0, 494.0, 788.0, 542.0); - await _runDockedTests( + await runDockedTests( tester, FloatingActionButtonLocation.miniEndDocked, defaultRect: defaultRect, @@ -1403,7 +1403,7 @@ void main() { // Test top locations, for each (6): // - Default // - with an AppBar - Future _runTopTests( + Future runTopTests( WidgetTester tester, FloatingActionButtonLocation location, { required Rect defaultRect, @@ -1413,7 +1413,7 @@ void main() { const double viewPadding = 50.0; final Key floatingActionButton = UniqueKey(); // Default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData(viewPadding: EdgeInsets.only(top: viewPadding)), floatingActionButton, @@ -1425,7 +1425,7 @@ void main() { ); // AppBar default - await tester.pumpWidget(_buildTest( + await tester.pumpWidget(buildTest( location, const MediaQueryData(viewPadding: EdgeInsets.only(top: viewPadding)), floatingActionButton, @@ -1442,7 +1442,7 @@ void main() { const Rect defaultRect = Rect.fromLTRB(16.0, 50.0, 72.0, 106.0); // Positioned relative to AppBar const Rect appBarRect = Rect.fromLTRB(16.0, 28.0, 72.0, 84.0); - await _runTopTests( + await runTopTests( tester, FloatingActionButtonLocation.startTop, defaultRect: defaultRect, @@ -1454,7 +1454,7 @@ void main() { const Rect defaultRect = Rect.fromLTRB(12.0, 50.0, 60.0, 98.0); // Positioned relative to AppBar const Rect appBarRect = Rect.fromLTRB(12.0, 32.0, 60.0, 80.0); - await _runTopTests( + await runTopTests( tester, FloatingActionButtonLocation.miniStartTop, defaultRect: defaultRect, @@ -1467,7 +1467,7 @@ void main() { const Rect defaultRect = Rect.fromLTRB(372.0, 50.0, 428.0, 106.0); // Positioned relative to AppBar const Rect appBarRect = Rect.fromLTRB(372.0, 28.0, 428.0, 84.0); - await _runTopTests( + await runTopTests( tester, FloatingActionButtonLocation.centerTop, defaultRect: defaultRect, @@ -1479,7 +1479,7 @@ void main() { const Rect defaultRect = Rect.fromLTRB(376.0, 50.0, 424.0, 98.0); // Positioned relative to AppBar const Rect appBarRect = Rect.fromLTRB(376.0, 32.0, 424.0, 80.0); - await _runTopTests( + await runTopTests( tester, FloatingActionButtonLocation.miniCenterTop, defaultRect: defaultRect, @@ -1492,7 +1492,7 @@ void main() { const Rect defaultRect = Rect.fromLTRB(728.0, 50.0, 784.0, 106.0); // Positioned relative to AppBar const Rect appBarRect = Rect.fromLTRB(728.0, 28.0, 784.0, 84.0); - await _runTopTests( + await runTopTests( tester, FloatingActionButtonLocation.endTop, defaultRect: defaultRect, @@ -1504,7 +1504,7 @@ void main() { const Rect defaultRect = Rect.fromLTRB(740.0, 50.0, 788.0, 98.0); // Positioned relative to AppBar const Rect appBarRect = Rect.fromLTRB(740.0, 32.0, 788.0, 80.0); - await _runTopTests( + await runTopTests( tester, FloatingActionButtonLocation.miniEndTop, defaultRect: defaultRect, diff --git a/packages/flutter/test/material/input_date_picker_form_field_test.dart b/packages/flutter/test/material/input_date_picker_form_field_test.dart index a440bd0aa987b..d1432d4eb656c 100644 --- a/packages/flutter/test/material/input_date_picker_form_field_test.dart +++ b/packages/flutter/test/material/input_date_picker_form_field_test.dart @@ -12,7 +12,7 @@ void main() { TestWidgetsFlutterBinding.ensureInitialized(); final MockClipboard mockClipboard = MockClipboard(); - Widget _inputDatePickerField({ + Widget inputDatePickerField({ Key? key, DateTime? initialDate, DateTime? firstDate, @@ -52,15 +52,15 @@ void main() { ); } - TextField _textField(WidgetTester tester) { + TextField textField(WidgetTester tester) { return tester.widget(find.byType(TextField)); } - TextEditingController _textFieldController(WidgetTester tester) { - return _textField(tester).controller!; + TextEditingController textFieldController(WidgetTester tester) { + return textField(tester).controller!; } - double _textOpacity(WidgetTester tester, String textValue) { + double textOpacity(WidgetTester tester, String textValue) { final FadeTransition opacityWidget = tester.widget( find.ancestor( of: find.text(textValue), @@ -76,12 +76,12 @@ void main() { final GlobalKey formKey = GlobalKey(); final DateTime initialDate = DateTime(2016, DateTime.february, 21); DateTime? inputDate; - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( initialDate: initialDate, onDateSaved: (DateTime date) => inputDate = date, formKey: formKey, )); - expect(_textFieldController(tester).value.text, equals('02/21/2016')); + expect(textFieldController(tester).value.text, equals('02/21/2016')); formKey.currentState!.save(); expect(inputDate, equals(initialDate)); }); @@ -89,27 +89,27 @@ void main() { testWidgets('Changing initial date is reflected in text value', (WidgetTester tester) async { final DateTime initialDate = DateTime(2016, DateTime.february, 21); final DateTime updatedInitialDate = DateTime(2016, DateTime.february, 23); - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( initialDate: initialDate, )); - expect(_textFieldController(tester).value.text, equals('02/21/2016')); + expect(textFieldController(tester).value.text, equals('02/21/2016')); - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( initialDate: updatedInitialDate, )); await tester.pumpAndSettle(); - expect(_textFieldController(tester).value.text, equals('02/23/2016')); + expect(textFieldController(tester).value.text, equals('02/23/2016')); }); testWidgets('Valid date entry', (WidgetTester tester) async { final GlobalKey formKey = GlobalKey(); DateTime? inputDate; - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( onDateSaved: (DateTime date) => inputDate = date, formKey: formKey, )); - _textFieldController(tester).text = '02/21/2016'; + textFieldController(tester).text = '02/21/2016'; formKey.currentState!.save(); expect(inputDate, equals(DateTime(2016, DateTime.february, 21))); }); @@ -117,7 +117,7 @@ void main() { testWidgets('Invalid text entry shows errorFormat text', (WidgetTester tester) async { final GlobalKey formKey = GlobalKey(); DateTime? inputDate; - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( onDateSaved: (DateTime date) => inputDate = date, formKey: formKey, )); @@ -130,7 +130,7 @@ void main() { expect(find.text('Invalid format.'), findsOneWidget); // Change to a custom errorFormat text - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( onDateSaved: (DateTime date) => inputDate = date, errorFormatText: 'That is not a date.', formKey: formKey, @@ -144,7 +144,7 @@ void main() { testWidgets('Valid text entry, but date outside first or last date shows bounds shows errorInvalid text', (WidgetTester tester) async { final GlobalKey formKey = GlobalKey(); DateTime? inputDate; - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( firstDate: DateTime(1966, DateTime.february, 21), lastDate: DateTime(2040, DateTime.february, 23), onDateSaved: (DateTime date) => inputDate = date, @@ -165,7 +165,7 @@ void main() { expect(inputDate, isNull); expect(find.text('Out of range.'), findsOneWidget); - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( onDateSaved: (DateTime date) => inputDate = date, errorInvalidText: 'Not in given range.', formKey: formKey, @@ -179,7 +179,7 @@ void main() { testWidgets('selectableDatePredicate will be used to show errorInvalid if date is not selectable', (WidgetTester tester) async { final GlobalKey formKey = GlobalKey(); DateTime? inputDate; - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( initialDate: DateTime(2016, DateTime.january, 16), onDateSaved: (DateTime date) => inputDate = date, selectableDayPredicate: (DateTime date) => date.day.isEven, @@ -203,34 +203,34 @@ void main() { }); testWidgets('Empty field shows hint text when focused', (WidgetTester tester) async { - await tester.pumpWidget(_inputDatePickerField()); + await tester.pumpWidget(inputDatePickerField()); // Focus on it await tester.tap(find.byType(TextField)); await tester.pumpAndSettle(); // Hint text should be invisible - expect(_textOpacity(tester, 'mm/dd/yyyy'), equals(0.0)); - _textFieldController(tester).clear(); + expect(textOpacity(tester, 'mm/dd/yyyy'), equals(0.0)); + textFieldController(tester).clear(); await tester.pumpAndSettle(); // Hint text should be visible - expect(_textOpacity(tester, 'mm/dd/yyyy'), equals(1.0)); + expect(textOpacity(tester, 'mm/dd/yyyy'), equals(1.0)); // Change to a different hint text - await tester.pumpWidget(_inputDatePickerField(fieldHintText: 'Enter some date')); + await tester.pumpWidget(inputDatePickerField(fieldHintText: 'Enter some date')); await tester.pumpAndSettle(); expect(find.text('mm/dd/yyyy'), findsNothing); - expect(_textOpacity(tester, 'Enter some date'), equals(1.0)); + expect(textOpacity(tester, 'Enter some date'), equals(1.0)); await tester.enterText(find.byType(TextField), 'foobar'); await tester.pumpAndSettle(); - expect(_textOpacity(tester, 'Enter some date'), equals(0.0)); + expect(textOpacity(tester, 'Enter some date'), equals(0.0)); }); testWidgets('Label text', (WidgetTester tester) async { - await tester.pumpWidget(_inputDatePickerField()); + await tester.pumpWidget(inputDatePickerField()); // Default label expect(find.text('Enter Date'), findsOneWidget); - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( fieldLabelText: 'Give me a date!', )); expect(find.text('Enter Date'), findsNothing); @@ -247,7 +247,7 @@ void main() { await Clipboard.setData(const ClipboardData(text: 'Clipboard data')); addTearDown(() => tester.binding.defaultBinaryMessenger.setMockMethodCallHandler(SystemChannels.platform, null)); - await tester.pumpWidget(_inputDatePickerField(autofocus: true)); + await tester.pumpWidget(inputDatePickerField(autofocus: true)); await tester.pumpAndSettle(); expect(tester.getSemantics(find.byType(EditableText)), matchesSemantics( @@ -268,7 +268,7 @@ void main() { testWidgets('InputDecorationTheme is honored', (WidgetTester tester) async { const InputBorder border = InputBorder.none; - await tester.pumpWidget(_inputDatePickerField( + await tester.pumpWidget(inputDatePickerField( theme: ThemeData.from(colorScheme: const ColorScheme.light()).copyWith( inputDecorationTheme: const InputDecorationTheme( border: border, diff --git a/packages/flutter/test/material/material_state_mixin_test.dart b/packages/flutter/test/material/material_state_mixin_test.dart index 9b59dc78208c9..a5e9a56a73dd0 100644 --- a/packages/flutter/test/material/material_state_mixin_test.dart +++ b/packages/flutter/test/material/material_state_mixin_test.dart @@ -71,7 +71,7 @@ class _MyWidgetState extends State<_MyWidget> with MaterialStateMixin { void main() { - Future _verify(WidgetTester tester, Widget widget, StreamController controller,) async { + Future verify(WidgetTester tester, Widget widget, StreamController controller,) async { await tester.pumpWidget(MaterialApp(home: Scaffold(body: widget))); // Set the value to True controller.sink.add(true); @@ -91,7 +91,7 @@ void main() { evaluator: (_MyWidgetState state) => state.isPressed, materialState: MaterialState.pressed, ); - await _verify(tester, widget, controller); + await verify(tester, widget, controller); }); testWidgets('MaterialState.focused is tracked', (WidgetTester tester) async { @@ -101,7 +101,7 @@ void main() { evaluator: (_MyWidgetState state) => state.isFocused, materialState: MaterialState.focused, ); - await _verify(tester, widget, controller); + await verify(tester, widget, controller); }); testWidgets('MaterialState.hovered is tracked', (WidgetTester tester) async { @@ -111,7 +111,7 @@ void main() { evaluator: (_MyWidgetState state) => state.isHovered, materialState: MaterialState.hovered, ); - await _verify(tester, widget, controller); + await verify(tester, widget, controller); }); testWidgets('MaterialState.disabled is tracked', (WidgetTester tester) async { @@ -121,7 +121,7 @@ void main() { evaluator: (_MyWidgetState state) => state.isDisabled, materialState: MaterialState.disabled, ); - await _verify(tester, widget, controller); + await verify(tester, widget, controller); }); testWidgets('MaterialState.selected is tracked', (WidgetTester tester) async { @@ -131,7 +131,7 @@ void main() { evaluator: (_MyWidgetState state) => state.isSelected, materialState: MaterialState.selected, ); - await _verify(tester, widget, controller); + await verify(tester, widget, controller); }); testWidgets('MaterialState.scrolledUnder is tracked', (WidgetTester tester) async { @@ -141,7 +141,7 @@ void main() { evaluator: (_MyWidgetState state) => state.isScrolledUnder, materialState: MaterialState.scrolledUnder, ); - await _verify(tester, widget, controller); + await verify(tester, widget, controller); }); testWidgets('MaterialState.dragged is tracked', (WidgetTester tester) async { @@ -151,7 +151,7 @@ void main() { evaluator: (_MyWidgetState state) => state.isDragged, materialState: MaterialState.dragged, ); - await _verify(tester, widget, controller); + await verify(tester, widget, controller); }); testWidgets('MaterialState.error is tracked', (WidgetTester tester) async { @@ -161,6 +161,6 @@ void main() { evaluator: (_MyWidgetState state) => state.isErrored, materialState: MaterialState.error, ); - await _verify(tester, widget, controller); + await verify(tester, widget, controller); }); } diff --git a/packages/flutter/test/material/navigation_bar_test.dart b/packages/flutter/test/material/navigation_bar_test.dart index d8fb87c57f0fa..14276a2f8bebf 100644 --- a/packages/flutter/test/material/navigation_bar_test.dart +++ b/packages/flutter/test/material/navigation_bar_test.dart @@ -292,7 +292,7 @@ void main() { testWidgets('Navigation bar semantics', (WidgetTester tester) async { - Widget _widget({int selectedIndex = 0}) { + Widget widget({int selectedIndex = 0}) { return _buildWidget( NavigationBar( selectedIndex: selectedIndex, @@ -310,7 +310,7 @@ void main() { ); } - await tester.pumpWidget(_widget()); + await tester.pumpWidget(widget()); expect( tester.getSemantics(find.text('AC')), @@ -332,7 +332,7 @@ void main() { ), ); - await tester.pumpWidget(_widget(selectedIndex: 1)); + await tester.pumpWidget(widget(selectedIndex: 1)); expect( tester.getSemantics(find.text('AC')), @@ -356,7 +356,7 @@ void main() { }); testWidgets('Navigation bar semantics with some labels hidden', (WidgetTester tester) async { - Widget _widget({int selectedIndex = 0}) { + Widget widget({int selectedIndex = 0}) { return _buildWidget( NavigationBar( labelBehavior: NavigationDestinationLabelBehavior.onlyShowSelected, @@ -375,7 +375,7 @@ void main() { ); } - await tester.pumpWidget(_widget()); + await tester.pumpWidget(widget()); expect( tester.getSemantics(find.text('AC')), @@ -397,7 +397,7 @@ void main() { ), ); - await tester.pumpWidget(_widget(selectedIndex: 1)); + await tester.pumpWidget(widget(selectedIndex: 1)); expect( tester.getSemantics(find.text('AC')), @@ -423,7 +423,7 @@ void main() { testWidgets('Navigation bar does not grow with text scale factor', (WidgetTester tester) async { const int animationMilliseconds = 800; - Widget _widget({double textScaleFactor = 1}) { + Widget widget({double textScaleFactor = 1}) { return _buildWidget( MediaQuery( data: MediaQueryData(textScaleFactor: textScaleFactor), @@ -444,10 +444,10 @@ void main() { ); } - await tester.pumpWidget(_widget()); + await tester.pumpWidget(widget()); final double initialHeight = tester.getSize(find.byType(NavigationBar)).height; - await tester.pumpWidget(_widget(textScaleFactor: 2)); + await tester.pumpWidget(widget(textScaleFactor: 2)); final double newHeight = tester.getSize(find.byType(NavigationBar)).height; expect(newHeight, equals(initialHeight)); diff --git a/packages/flutter/test/material/outlined_button_test.dart b/packages/flutter/test/material/outlined_button_test.dart index ecbf00c3cd514..d899247065c99 100644 --- a/packages/flutter/test/material/outlined_button_test.dart +++ b/packages/flutter/test/material/outlined_button_test.dart @@ -852,10 +852,6 @@ void main() { ), ); } - - // 116 = 16 + 'button'.length * 14 + 16, horizontal padding = 16 - const Rect clipRect = Rect.fromLTRB(0.0, 0.0, 116.0, 36.0); - final Path clipPath = Path()..addRect(clipRect); final Finder outlinedButton = find.byType(OutlinedButton); BorderSide getBorderSide() { @@ -873,12 +869,6 @@ void main() { // Expect that the button is disabled and painted with the disabled border color. expect(tester.widget(outlinedButton).enabled, false); expect(getBorderSide(), disabledBorderSide); - _checkPhysicalLayer( - tester.element(outlinedButton), - fillColor, - clipPath: clipPath, - clipRect: clipRect, - ); // Pump a new button with a no-op onPressed callback to make it enabled. await tester.pumpWidget( @@ -896,23 +886,11 @@ void main() { // Wait for the border's color to change to pressed await tester.pump(const Duration(milliseconds: 200)); expect(getBorderSide(), pressedBorderSide); - _checkPhysicalLayer( - tester.element(outlinedButton), - fillColor, - clipPath: clipPath, - clipRect: clipRect, - ); // Tap gesture completes, button returns to its initial configuration. await gesture.up(); await tester.pumpAndSettle(); expect(getBorderSide(), enabledBorderSide); - _checkPhysicalLayer( - tester.element(outlinedButton), - fillColor, - clipPath: clipPath, - clipRect: clipRect, - ); }); testWidgets('OutlinedButton has no clip by default', (WidgetTester tester) async { @@ -1748,29 +1726,6 @@ void main() { }); } -PhysicalModelLayer _findPhysicalLayer(Element element) { - expect(element, isNotNull); - RenderObject? object = element.renderObject; - while (object != null && object is! RenderRepaintBoundary && object is! RenderView) { - object = object.parent as RenderObject?; - } - expect(object!.debugLayer, isNotNull); - expect(object.debugLayer!.firstChild, isA()); - final PhysicalModelLayer layer = object.debugLayer!.firstChild! as PhysicalModelLayer; - final Layer child = layer.firstChild!; - return child is PhysicalModelLayer ? child : layer; -} - -void _checkPhysicalLayer(Element element, Color expectedColor, { Path? clipPath, Rect? clipRect }) { - final PhysicalModelLayer expectedLayer = _findPhysicalLayer(element); - expect(expectedLayer.elevation, 0.0); - expect(expectedLayer.color, expectedColor); - if (clipPath != null) { - expect(clipRect, isNotNull); - expect(expectedLayer.clipPath, coversSameAreaAs(clipPath, areaToCompare: clipRect!.inflate(10.0))); - } -} - TextStyle _iconStyle(WidgetTester tester, IconData icon) { final RichText iconRichText = tester.widget( find.descendant(of: find.byIcon(icon), matching: find.byType(RichText)), diff --git a/packages/flutter/test/material/page_test.dart b/packages/flutter/test/material/page_test.dart index dd69a5479bcb8..42b63de600b8d 100644 --- a/packages/flutter/test/material/page_test.dart +++ b/packages/flutter/test/material/page_test.dart @@ -156,20 +156,20 @@ void main() { }, variant: const TargetPlatformVariant({ TargetPlatform.iOS, TargetPlatform.macOS })); testWidgets('test page transition (_ZoomPageTransition)', (WidgetTester tester) async { - Iterable _findWidgets(Finder of) { + Iterable findWidgets(Finder of) { return tester.widgetList( find.ancestor(of: of, matching: find.byType(T)), ); } - FadeTransition _findForwardFadeTransition(Finder of) { - return _findWidgets(of).where( + FadeTransition findForwardFadeTransition(Finder of) { + return findWidgets(of).where( (FadeTransition t) => t.opacity.status == AnimationStatus.forward, ).first; } - ScaleTransition _findForwardScaleTransition(Finder of) { - return _findWidgets(of).where( + ScaleTransition findForwardScaleTransition(Finder of) { + return findWidgets(of).where( (ScaleTransition t) => t.scale.status == AnimationStatus.forward, ).first; } @@ -189,9 +189,9 @@ void main() { await tester.pump(); await tester.pump(const Duration(milliseconds: 50)); - ScaleTransition widget1Scale = _findForwardScaleTransition(find.text('Page 1')); - ScaleTransition widget2Scale = _findForwardScaleTransition(find.text('Page 2')); - FadeTransition widget2Opacity = _findForwardFadeTransition(find.text('Page 2')); + ScaleTransition widget1Scale = findForwardScaleTransition(find.text('Page 1')); + ScaleTransition widget2Scale = findForwardScaleTransition(find.text('Page 2')); + FadeTransition widget2Opacity = findForwardFadeTransition(find.text('Page 2')); // Page 1 is enlarging, starts from 1.0. expect(widget1Scale.scale.value, greaterThan(1.0)); @@ -211,9 +211,9 @@ void main() { await tester.pump(); await tester.pump(const Duration(milliseconds: 100)); - widget1Scale = _findForwardScaleTransition(find.text('Page 1')); - widget2Scale = _findForwardScaleTransition(find.text('Page 2')); - widget2Opacity = _findForwardFadeTransition(find.text('Page 2')); + widget1Scale = findForwardScaleTransition(find.text('Page 1')); + widget2Scale = findForwardScaleTransition(find.text('Page 2')); + widget2Opacity = findForwardFadeTransition(find.text('Page 2')); // Page 1 is narrowing down, but still larger than 1.0. expect(widget1Scale.scale.value, greaterThan(1.0)); diff --git a/packages/flutter/test/material/persistent_bottom_sheet_test.dart b/packages/flutter/test/material/persistent_bottom_sheet_test.dart index 5ef26fd914643..dada826f03dea 100644 --- a/packages/flutter/test/material/persistent_bottom_sheet_test.dart +++ b/packages/flutter/test/material/persistent_bottom_sheet_test.dart @@ -8,7 +8,7 @@ import 'package:flutter_test/flutter_test.dart'; void main() { // Pumps and ensures that the BottomSheet animates non-linearly. - Future _checkNonLinearAnimation(WidgetTester tester) async { + Future checkNonLinearAnimation(WidgetTester tester) async { final Offset firstPosition = tester.getCenter(find.text('One')); await tester.pump(const Duration(milliseconds: 30)); final Offset secondPosition = tester.getCenter(find.text('One')); @@ -134,14 +134,14 @@ void main() { ); }); await tester.pump(); - await _checkNonLinearAnimation(tester); + await checkNonLinearAnimation(tester); await tester.pumpAndSettle(); expect(find.text('Two'), findsOneWidget); await tester.drag(find.text('Two'), const Offset(0.0, 200.0)); - await _checkNonLinearAnimation(tester); + await checkNonLinearAnimation(tester); await tester.pumpAndSettle(); expect(find.text('Two'), findsNothing); diff --git a/packages/flutter/test/material/popup_menu_test.dart b/packages/flutter/test/material/popup_menu_test.dart index 91b8e617ac268..86138aedfaa2b 100644 --- a/packages/flutter/test/material/popup_menu_test.dart +++ b/packages/flutter/test/material/popup_menu_test.dart @@ -869,8 +869,8 @@ void main() { bounds: Rect.fromLTRB(390, 0, 410, 600), type: DisplayFeatureType.cutout, state: DisplayFeatureState.unknown, - ) - ] + ), + ], ), child: Scaffold( body: Navigator( @@ -2215,20 +2215,22 @@ void main() { home: Scaffold( appBar: AppBar( title: const Text('PopupMenu Test'), - actions: [PopupMenuButton( - child: SizedBox( - key: buttonKey, - height: height, - width: width, - child: const ColoredBox( - color: Colors.pink, + actions: [ + PopupMenuButton( + child: SizedBox( + key: buttonKey, + height: height, + width: width, + child: const ColoredBox( + color: Colors.pink, + ), ), + itemBuilder: (BuildContext context) => >[ + const PopupMenuItem(value: 1, child: Text('-1-')), + const PopupMenuItem(value: 2, child: Text('-2-')), + ], ), - itemBuilder: (BuildContext context) => >[ - const PopupMenuItem(value: 1, child: Text('-1-')), - const PopupMenuItem(value: 2, child: Text('-2-')), - ], - )], + ], ), body: Container(), ), @@ -2269,30 +2271,32 @@ void main() { home: Scaffold( appBar: AppBar( title: const Text('PopupMenu Test'), - actions: [PopupMenuButton( - child: SizedBox( - key: buttonKey, - height: height, - width: width, - child: const ColoredBox( - color: Colors.pink, + actions: [ + PopupMenuButton( + child: SizedBox( + key: buttonKey, + height: height, + width: width, + child: const ColoredBox( + color: Colors.pink, + ), ), - ), - itemBuilder: (BuildContext context) { - return >[ - PopupMenuItem( - value: 1, - child: Builder( - builder: (BuildContext context) { - mediaQueryPadding = MediaQuery.of(context).padding; - return Text('-1-' * 500); // A long long text string. - }, + itemBuilder: (BuildContext context) { + return >[ + PopupMenuItem( + value: 1, + child: Builder( + builder: (BuildContext context) { + mediaQueryPadding = MediaQuery.of(context).padding; + return Text('-1-' * 500); // A long long text string. + }, + ), ), - ), - const PopupMenuItem(value: 2, child: Text('-2-')), - ]; - }, - )], + const PopupMenuItem(value: 2, child: Text('-2-')), + ]; + }, + ), + ], ), body: const SizedBox.shrink(), ), @@ -2570,7 +2574,7 @@ void main() { splashRadius: splashRadius, child: const Text('An item'), itemBuilder: (_) => >[ - const PopupMenuDivider() + const PopupMenuDivider(), ], ), ), @@ -2760,7 +2764,7 @@ void main() { }); testWidgets("PopupMenuButton icon inherits IconTheme's size", (WidgetTester tester) async { - Widget _buildPopupMenu({double? themeIconSize, double? iconSize}) { + Widget buildPopupMenu({double? themeIconSize, double? iconSize}) { return MaterialApp( theme: ThemeData( iconTheme: IconThemeData( @@ -2784,20 +2788,20 @@ void main() { } // Popup menu with default icon size. - await tester.pumpWidget(_buildPopupMenu()); + await tester.pumpWidget(buildPopupMenu()); IconButton iconButton = tester.widget(find.widgetWithIcon(IconButton, Icons.more_vert)); // Default PopupMenuButton icon size is 24.0. expect(iconButton.iconSize, 24.0); // Popup menu with custom theme icon size. - await tester.pumpWidget(_buildPopupMenu(themeIconSize: 30.0)); + await tester.pumpWidget(buildPopupMenu(themeIconSize: 30.0)); await tester.pumpAndSettle(); iconButton = tester.widget(find.widgetWithIcon(IconButton, Icons.more_vert)); // PopupMenuButton icon inherits IconTheme's size. expect(iconButton.iconSize, 30.0); // Popup menu with custom icon size. - await tester.pumpWidget(_buildPopupMenu(themeIconSize: 30.0, iconSize: 50.0)); + await tester.pumpWidget(buildPopupMenu(themeIconSize: 30.0, iconSize: 50.0)); await tester.pumpAndSettle(); iconButton = tester.widget(find.widgetWithIcon(IconButton, Icons.more_vert)); // PopupMenuButton icon size overrides IconTheme's size. diff --git a/packages/flutter/test/material/radio_test.dart b/packages/flutter/test/material/radio_test.dart index af74c36f73d74..6f90f622ab2b9 100644 --- a/packages/flutter/test/material/radio_test.dart +++ b/packages/flutter/test/material/radio_test.dart @@ -980,12 +980,12 @@ void main() { } const double splashRadius = 24.0; - Finder _findRadio() { + Finder findRadio() { return find.byWidgetPredicate((Widget widget) => widget is Radio); } - MaterialInkController? _getRadioMaterial(WidgetTester tester) { - return Material.of(tester.element(_findRadio())); + MaterialInkController? getRadioMaterial(WidgetTester tester) { + return Material.of(tester.element(findRadio())); } Widget buildRadio({bool active = false, bool focused = false, bool useOverlay = true}) { @@ -1008,11 +1008,11 @@ void main() { } await tester.pumpWidget(buildRadio(useOverlay: false)); - await tester.press(_findRadio()); + await tester.press(findRadio()); await tester.pumpAndSettle(); expect( - _getRadioMaterial(tester), + getRadioMaterial(tester), paints ..circle( color: fillColor.withAlpha(kRadialReactionAlpha), @@ -1022,11 +1022,11 @@ void main() { ); await tester.pumpWidget(buildRadio(active: true, useOverlay: false)); - await tester.press(_findRadio()); + await tester.press(findRadio()); await tester.pumpAndSettle(); expect( - _getRadioMaterial(tester), + getRadioMaterial(tester), paints ..circle( color: fillColor.withAlpha(kRadialReactionAlpha), @@ -1036,11 +1036,11 @@ void main() { ); await tester.pumpWidget(buildRadio()); - await tester.press(_findRadio()); + await tester.press(findRadio()); await tester.pumpAndSettle(); expect( - _getRadioMaterial(tester), + getRadioMaterial(tester), paints ..circle( color: inactivePressedOverlayColor, @@ -1050,11 +1050,11 @@ void main() { ); await tester.pumpWidget(buildRadio(active: true)); - await tester.press(_findRadio()); + await tester.press(findRadio()); await tester.pumpAndSettle(); expect( - _getRadioMaterial(tester), + getRadioMaterial(tester), paints ..circle( color: activePressedOverlayColor, @@ -1068,7 +1068,7 @@ void main() { expect(focusNode.hasPrimaryFocus, isTrue); expect( - _getRadioMaterial(tester), + getRadioMaterial(tester), paints ..circle( color: focusOverlayColor, @@ -1081,11 +1081,11 @@ void main() { final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse); await gesture.addPointer(); addTearDown(gesture.removePointer); - await gesture.moveTo(tester.getCenter(_findRadio())); + await gesture.moveTo(tester.getCenter(findRadio())); await tester.pumpAndSettle(); expect( - _getRadioMaterial(tester), + getRadioMaterial(tester), paints ..circle( color: hoverOverlayColor, diff --git a/packages/flutter/test/material/range_slider_test.dart b/packages/flutter/test/material/range_slider_test.dart index 6e8595bf0d87e..8e1f3f8107cdf 100644 --- a/packages/flutter/test/material/range_slider_test.dart +++ b/packages/flutter/test/material/range_slider_test.dart @@ -939,7 +939,7 @@ void main() { expect(endValues.end, moreOrLessEquals(90, epsilon: 1)); }); - ThemeData _buildTheme() { + ThemeData buildTheme() { return ThemeData( platform: TargetPlatform.android, primarySwatch: Colors.blue, @@ -960,7 +960,7 @@ void main() { ); } - Widget _buildThemedApp({ + Widget buildThemedApp({ required ThemeData theme, Color? activeColor, Color? inactiveColor, @@ -994,10 +994,10 @@ void main() { } testWidgets('Range Slider uses the right theme colors for the right shapes for a default enabled slider', (WidgetTester tester) async { - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; - await tester.pumpWidget(_buildThemedApp(theme: theme)); + await tester.pumpWidget(buildThemedApp(theme: theme)); final RenderBox sliderBox = tester.firstRenderObject(find.byType(RangeSlider)); @@ -1024,10 +1024,10 @@ void main() { testWidgets('Range Slider uses the right theme colors for the right shapes when setting the active color', (WidgetTester tester) async { const Color activeColor = Color(0xcafefeed); - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; - await tester.pumpWidget(_buildThemedApp(theme: theme, activeColor: activeColor)); + await tester.pumpWidget(buildThemedApp(theme: theme, activeColor: activeColor)); final RenderBox sliderBox = tester.firstRenderObject(find.byType(RangeSlider)); @@ -1052,10 +1052,10 @@ void main() { testWidgets('Range Slider uses the right theme colors for the right shapes when setting the inactive color', (WidgetTester tester) async { const Color inactiveColor = Color(0xdeadbeef); - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; - await tester.pumpWidget(_buildThemedApp(theme: theme, inactiveColor: inactiveColor)); + await tester.pumpWidget(buildThemedApp(theme: theme, inactiveColor: inactiveColor)); final RenderBox sliderBox = tester.firstRenderObject(find.byType(RangeSlider)); @@ -1080,10 +1080,10 @@ void main() { testWidgets('Range Slider uses the right theme colors for the right shapes with active and inactive colors', (WidgetTester tester) async { const Color activeColor = Color(0xcafefeed); const Color inactiveColor = Color(0xdeadbeef); - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; - await tester.pumpWidget(_buildThemedApp( + await tester.pumpWidget(buildThemedApp( theme: theme, activeColor: activeColor, inactiveColor: inactiveColor, @@ -1111,10 +1111,10 @@ void main() { }); testWidgets('Range Slider uses the right theme colors for the right shapes for a discrete slider', (WidgetTester tester) async { - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; - await tester.pumpWidget(_buildThemedApp(theme: theme, divisions: 3)); + await tester.pumpWidget(buildThemedApp(theme: theme, divisions: 3)); final RenderBox sliderBox = tester.firstRenderObject(find.byType(RangeSlider)); @@ -1143,11 +1143,11 @@ void main() { testWidgets('Range Slider uses the right theme colors for the right shapes for a discrete slider with active and inactive colors', (WidgetTester tester) async { const Color activeColor = Color(0xcafefeed); const Color inactiveColor = Color(0xdeadbeef); - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; - await tester.pumpWidget(_buildThemedApp( + await tester.pumpWidget(buildThemedApp( theme: theme, activeColor: activeColor, inactiveColor: inactiveColor, @@ -1182,10 +1182,10 @@ void main() { }); testWidgets('Range Slider uses the right theme colors for the right shapes for a default disabled slider', (WidgetTester tester) async { - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; - await tester.pumpWidget(_buildThemedApp(theme: theme, enabled: false)); + await tester.pumpWidget(buildThemedApp(theme: theme, enabled: false)); final RenderBox sliderBox = tester.firstRenderObject(find.byType(RangeSlider)); @@ -1204,10 +1204,10 @@ void main() { testWidgets('Range Slider uses the right theme colors for the right shapes for a disabled slider with active and inactive colors', (WidgetTester tester) async { const Color activeColor = Color(0xcafefeed); const Color inactiveColor = Color(0xdeadbeef); - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; - await tester.pumpWidget(_buildThemedApp( + await tester.pumpWidget(buildThemedApp( theme: theme, activeColor: activeColor, inactiveColor: inactiveColor, @@ -1229,7 +1229,7 @@ void main() { }); testWidgets('Range Slider uses the right theme colors for the right shapes when the value indicators are showing', (WidgetTester tester) async { - final ThemeData theme = _buildTheme(); + final ThemeData theme = buildTheme(); final SliderThemeData sliderTheme = theme.sliderTheme; RangeValues values = const RangeValues(0.5, 0.75); @@ -1360,7 +1360,7 @@ void main() { ); // Represents the Raised Button and Range Slider. - expect(valueIndicatorBox, paintsExactlyCountTimes(#drawPath, 3)); + expect(valueIndicatorBox, paintsExactlyCountTimes(#drawPath, 4)); expect(valueIndicatorBox, paintsExactlyCountTimes(#drawParagraph, 3)); await tester.tap(find.text('Next')); @@ -1379,7 +1379,7 @@ void main() { ); // Represents the raised button with inner page text. - expect(valueIndicatorBox, paintsExactlyCountTimes(#drawPath, 1)); + expect(valueIndicatorBox, paintsExactlyCountTimes(#drawPath, 2)); expect(valueIndicatorBox, paintsExactlyCountTimes(#drawParagraph, 1)); // Don't stop holding the value indicator. diff --git a/packages/flutter/test/material/scaffold_test.dart b/packages/flutter/test/material/scaffold_test.dart index 7aeee33dc42ec..d1775cf5ba180 100644 --- a/packages/flutter/test/material/scaffold_test.dart +++ b/packages/flutter/test/material/scaffold_test.dart @@ -355,7 +355,7 @@ void main() { expect(renderBox.size.height, equals(appBarHeight)); }); - Widget _buildStatusBarTestApp(TargetPlatform? platform) { + Widget buildStatusBarTestApp(TargetPlatform? platform) { return MaterialApp( theme: ThemeData(platform: platform), home: MediaQuery( @@ -380,7 +380,7 @@ void main() { } testWidgets('Tapping the status bar scrolls to top', (WidgetTester tester) async { - await tester.pumpWidget(_buildStatusBarTestApp(debugDefaultTargetPlatformOverride)); + await tester.pumpWidget(buildStatusBarTestApp(debugDefaultTargetPlatformOverride)); final ScrollableState scrollable = tester.state(find.byType(Scrollable)); scrollable.position.jumpTo(500.0); expect(scrollable.position.pixels, equals(500.0)); @@ -394,7 +394,7 @@ void main() { final List stops = [0.842, 0.959, 0.993, 1.0]; const double scrollOffset = 1000; - await tester.pumpWidget(_buildStatusBarTestApp(debugDefaultTargetPlatformOverride)); + await tester.pumpWidget(buildStatusBarTestApp(debugDefaultTargetPlatformOverride)); final ScrollableState scrollable = tester.state(find.byType(Scrollable)); scrollable.position.jumpTo(scrollOffset); await tester.tapAt(const Offset(100.0, 10.0)); @@ -419,7 +419,7 @@ void main() { }, variant: const TargetPlatformVariant({ TargetPlatform.iOS, TargetPlatform.macOS })); testWidgets('Tapping the status bar does not scroll to top', (WidgetTester tester) async { - await tester.pumpWidget(_buildStatusBarTestApp(TargetPlatform.android)); + await tester.pumpWidget(buildStatusBarTestApp(TargetPlatform.android)); final ScrollableState scrollable = tester.state(find.byType(Scrollable)); scrollable.position.jumpTo(500.0); expect(scrollable.position.pixels, equals(500.0)); @@ -2339,7 +2339,6 @@ void main() { ' Material\n' ' _ScrollNotificationObserverScope\n' ' NotificationListener\n' - ' NotificationListener\n' ' ScrollNotificationObserver\n' ' _ScaffoldScope\n' ' Scaffold\n' diff --git a/packages/flutter/test/material/scrollbar_test.dart b/packages/flutter/test/material/scrollbar_test.dart index c12b499a66787..249e83f760ff8 100644 --- a/packages/flutter/test/material/scrollbar_test.dart +++ b/packages/flutter/test/material/scrollbar_test.dart @@ -1713,7 +1713,7 @@ void main() { }); testWidgets('Scrollbar.isAlwaysShown triggers assertion when multiple ScrollPositions are attached.', (WidgetTester tester) async { - Widget _getTabContent({ ScrollController? scrollController }) { + Widget getTabContent({ ScrollController? scrollController }) { return Scrollbar( isAlwaysShown: true, controller: scrollController, @@ -1725,7 +1725,7 @@ void main() { ); } - Widget _buildApp({ + Widget buildApp({ required String id, ScrollController? scrollController, }) { @@ -1736,8 +1736,8 @@ void main() { child: Scaffold( body: TabBarView( children: [ - _getTabContent(scrollController: scrollController), - _getTabContent(scrollController: scrollController), + getTabContent(scrollController: scrollController), + getTabContent(scrollController: scrollController), ], ), ), @@ -1746,7 +1746,7 @@ void main() { } // Asserts when using the PrimaryScrollController. - await tester.pumpWidget(_buildApp(id: 'PrimaryScrollController')); + await tester.pumpWidget(buildApp(id: 'PrimaryScrollController')); // Swipe to the second tab, resulting in two attached ScrollPositions during // the transition. @@ -1762,7 +1762,7 @@ void main() { // Asserts when using the ScrollController provided by the user. final ScrollController scrollController = ScrollController(); await tester.pumpWidget( - _buildApp( + buildApp( id: 'Provided ScrollController', scrollController: scrollController, ), @@ -1782,7 +1782,7 @@ void main() { testWidgets('Scrollbar scrollOrientation works correctly', (WidgetTester tester) async { final ScrollController scrollController = ScrollController(); - Widget _buildScrollWithOrientation(ScrollbarOrientation orientation) { + Widget buildScrollWithOrientation(ScrollbarOrientation orientation) { return _buildBoilerplate( child: Theme( data: ThemeData( @@ -1804,7 +1804,7 @@ void main() { ); } - await tester.pumpWidget(_buildScrollWithOrientation(ScrollbarOrientation.left)); + await tester.pumpWidget(buildScrollWithOrientation(ScrollbarOrientation.left)); await tester.pumpAndSettle(); expect( diff --git a/packages/flutter/test/material/scrollbar_theme_test.dart b/packages/flutter/test/material/scrollbar_theme_test.dart index 1a876dafe894f..2be9348c24f8c 100644 --- a/packages/flutter/test/material/scrollbar_theme_test.dart +++ b/packages/flutter/test/material/scrollbar_theme_test.dart @@ -576,14 +576,14 @@ void main() { testWidgets('ScrollbarThemeData.trackVisibility test', (WidgetTester tester) async { final ScrollController scrollController = ScrollController(); - bool? _getTrackVisibility(Set states) { + bool? getTrackVisibility(Set states) { return true; } await tester.pumpWidget( MaterialApp( theme: ThemeData().copyWith( scrollbarTheme: _scrollbarTheme( - trackVisibility: MaterialStateProperty.resolveWith(_getTrackVisibility), + trackVisibility: MaterialStateProperty.resolveWith(getTrackVisibility), ), ), home: ScrollConfiguration( @@ -662,7 +662,7 @@ void main() { "trackBorderColor: Instance of '_MaterialStatePropertyWith'", 'crossAxisMargin: 3.0', 'mainAxisMargin: 6.0', - 'minThumbLength: 120.0' + 'minThumbLength: 120.0', ]); // On the web, Dart doubles and ints are backed by the same kind of object because diff --git a/packages/flutter/test/material/slider_test.dart b/packages/flutter/test/material/slider_test.dart index 543831055c32f..c2c8b6d4a5af0 100644 --- a/packages/flutter/test/material/slider_test.dart +++ b/packages/flutter/test/material/slider_test.dart @@ -784,6 +784,7 @@ void main() { expect( valueIndicatorBox, paints + ..rrect(color: const Color(0xfffafafa)) ..rrect(color: customColor1) // active track ..rrect(color: customColor2) // inactive track ..circle(color: customColor1.withOpacity(0.12)) // overlay @@ -2415,7 +2416,7 @@ void main() { ..paragraph(), ); - expect(valueIndicatorBox, paintsExactlyCountTimes(#drawPath, 2)); + expect(valueIndicatorBox, paintsExactlyCountTimes(#drawPath, 3)); expect(valueIndicatorBox, paintsExactlyCountTimes(#drawParagraph, 2)); await tester.tap(find.text('Next')); @@ -2432,7 +2433,7 @@ void main() { ); // Represents the ElevatedButton with inner Text, inner page. - expect(valueIndicatorBox, paintsExactlyCountTimes(#drawPath, 1)); + expect(valueIndicatorBox, paintsExactlyCountTimes(#drawPath, 2)); expect(valueIndicatorBox, paintsExactlyCountTimes(#drawParagraph, 1)); // Don't stop holding the value indicator. diff --git a/packages/flutter/test/material/slider_theme_test.dart b/packages/flutter/test/material/slider_theme_test.dart index 93e607ca6e10d..0a51d8406e1a2 100644 --- a/packages/flutter/test/material/slider_theme_test.dart +++ b/packages/flutter/test/material/slider_theme_test.dart @@ -90,7 +90,7 @@ void main() { "rangeValueIndicatorShape: Instance of 'PaddleRangeSliderValueIndicatorShape'", 'showValueIndicator: always', 'valueIndicatorTextStyle: TextStyle(inherit: true, color: Color(0xff000000))', - 'mouseCursor: MaterialStateMouseCursor(clickable)' + 'mouseCursor: MaterialStateMouseCursor(clickable)', ]); }); @@ -1134,6 +1134,8 @@ void main() { expect( valueIndicatorBox, paints + // physical model + ..rrect() ..rrect(rrect: RRect.fromLTRBAndCorners( 24.0, 298.0, 24.0, 302.0, topLeft: const Radius.circular(2.0), diff --git a/packages/flutter/test/material/snack_bar_test.dart b/packages/flutter/test/material/snack_bar_test.dart index 7ea6014418bb2..2372baae49cde 100644 --- a/packages/flutter/test/material/snack_bar_test.dart +++ b/packages/flutter/test/material/snack_bar_test.dart @@ -1733,7 +1733,7 @@ void main() { const Key snackTarget = Key('snack-target'); const Key transitionTarget = Key('transition-target'); - Widget _buildApp() { + Widget buildApp() { return MaterialApp( routes: { '/': (BuildContext context) { @@ -1765,7 +1765,7 @@ void main() { }, ); } - await tester.pumpWidget(_buildApp()); + await tester.pumpWidget(buildApp()); expect(find.text(snackBarText), findsNothing); expect(find.text(firstHeader), findsOneWidget); @@ -1959,7 +1959,7 @@ void main() { expect(find.text(snackBars[2]), findsNothing); }); - Widget _buildApp({ + Widget doBuildApp({ required SnackBarBehavior? behavior, EdgeInsetsGeometry? margin, double? width, @@ -1993,7 +1993,7 @@ void main() { testWidgets('Setting SnackBarBehavior.fixed will still assert for margin', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/84935 - await tester.pumpWidget(_buildApp( + await tester.pumpWidget(doBuildApp( behavior: SnackBarBehavior.fixed, margin: const EdgeInsets.all(8.0), )); @@ -2010,7 +2010,7 @@ void main() { testWidgets('Default SnackBarBehavior will still assert for margin', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/84935 - await tester.pumpWidget(_buildApp( + await tester.pumpWidget(doBuildApp( behavior: null, margin: const EdgeInsets.all(8.0), )); @@ -2027,7 +2027,7 @@ void main() { testWidgets('Setting SnackBarBehavior.fixed will still assert for width', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/84935 - await tester.pumpWidget(_buildApp( + await tester.pumpWidget(doBuildApp( behavior: SnackBarBehavior.fixed, width: 5.0, )); @@ -2044,7 +2044,7 @@ void main() { testWidgets('Default SnackBarBehavior will still assert for width', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/84935 - await tester.pumpWidget(_buildApp( + await tester.pumpWidget(doBuildApp( behavior: null, width: 5.0, )); diff --git a/packages/flutter/test/material/snack_bar_theme_test.dart b/packages/flutter/test/material/snack_bar_theme_test.dart index 830d200fc5d22..cd82a63d9da9e 100644 --- a/packages/flutter/test/material/snack_bar_theme_test.dart +++ b/packages/flutter/test/material/snack_bar_theme_test.dart @@ -272,7 +272,7 @@ void main() { expect(snackBarTopCenter.dy > floatingActionButtonBottomCenter.dy, true); }); - Widget _buildApp({ + Widget buildApp({ required SnackBarBehavior themedBehavior, EdgeInsetsGeometry? margin, double? width, @@ -309,7 +309,7 @@ void main() { testWidgets('SnackBar theme behavior will assert properly for margin use', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/84935 // SnackBarBehavior.floating set in theme does not assert with margin - await tester.pumpWidget(_buildApp( + await tester.pumpWidget(buildApp( themedBehavior: SnackBarBehavior.floating, margin: const EdgeInsets.all(8.0), )); @@ -320,7 +320,7 @@ void main() { expect(exception, isNull); // SnackBarBehavior.fixed set in theme will still assert with margin - await tester.pumpWidget(_buildApp( + await tester.pumpWidget(buildApp( themedBehavior: SnackBarBehavior.fixed, margin: const EdgeInsets.all(8.0), )); @@ -337,7 +337,7 @@ void main() { testWidgets('SnackBar theme behavior will assert properly for width use', (WidgetTester tester) async { // SnackBarBehavior.floating set in theme does not assert with width - await tester.pumpWidget(_buildApp( + await tester.pumpWidget(buildApp( themedBehavior: SnackBarBehavior.floating, width: 5.0, )); @@ -348,7 +348,7 @@ void main() { expect(exception, isNull); // SnackBarBehavior.fixed set in theme will still assert with width - await tester.pumpWidget(_buildApp( + await tester.pumpWidget(buildApp( themedBehavior: SnackBarBehavior.fixed, width: 5.0, )); diff --git a/packages/flutter/test/material/tabs_test.dart b/packages/flutter/test/material/tabs_test.dart index 3e784fb00079c..238cdca3c29f7 100644 --- a/packages/flutter/test/material/tabs_test.dart +++ b/packages/flutter/test/material/tabs_test.dart @@ -3582,13 +3582,13 @@ void main() { // Regression test for https://github.com/flutter/flutter/issues/94504. final List tabTitles = []; - void _onTabAdd(StateSetter setState) { + void onTabAdd(StateSetter setState) { setState(() { tabTitles.add('Tab ${tabTitles.length + 1}'); }); } - void _onTabRemove(StateSetter setState) { + void onTabRemove(StateSetter setState) { setState(() { tabTitles.removeLast(); }); @@ -3606,12 +3606,12 @@ void main() { TextButton( key: const Key('Add tab'), child: const Text('Add tab'), - onPressed: () => _onTabAdd(setState), + onPressed: () => onTabAdd(setState), ), TextButton( key: const Key('Remove tab'), child: const Text('Remove tab'), - onPressed: () => _onTabRemove(setState), + onPressed: () => onTabRemove(setState), ), ], bottom: PreferredSize( @@ -3657,14 +3657,14 @@ void main() { final List tabTitles = []; TabController tabController = TabController(length: tabTitles.length, vsync: const TestVSync()); - void _onTabAdd(StateSetter setState) { + void onTabAdd(StateSetter setState) { setState(() { tabTitles.add('Tab ${tabTitles.length + 1}'); tabController = TabController(length: tabTitles.length, vsync: const TestVSync()); }); } - void _onTabRemove(StateSetter setState) { + void onTabRemove(StateSetter setState) { setState(() { tabTitles.removeLast(); tabController = TabController(length: tabTitles.length, vsync: const TestVSync()); @@ -3681,12 +3681,12 @@ void main() { TextButton( key: const Key('Add tab'), child: const Text('Add tab'), - onPressed: () => _onTabAdd(setState), + onPressed: () => onTabAdd(setState), ), TextButton( key: const Key('Remove tab'), child: const Text('Remove tab'), - onPressed: () => _onTabRemove(setState), + onPressed: () => onTabRemove(setState), ), ], bottom: PreferredSize( diff --git a/packages/flutter/test/material/text_field_test.dart b/packages/flutter/test/material/text_field_test.dart index 116c8b19f5931..aba32230212b1 100644 --- a/packages/flutter/test/material/text_field_test.dart +++ b/packages/flutter/test/material/text_field_test.dart @@ -2318,7 +2318,7 @@ void main() { // Show the selection menu at the given index into the text by tapping to // place the cursor and then tapping on the handle. - Future _showSelectionMenuAt(WidgetTester tester, TextEditingController controller, int index) async { + Future showSelectionMenuAt(WidgetTester tester, TextEditingController controller, int index) async { await tester.tapAt(tester.getCenter(find.byType(EditableText))); await tester.pump(); await tester.pump(const Duration(milliseconds: 200)); // skip past the frame where the opacity is zero @@ -2365,7 +2365,7 @@ void main() { await tester.enterText(find.byType(TextField), testValue); await skipPastScrollingAnimation(tester); - await _showSelectionMenuAt(tester, controller, testValue.indexOf('e')); + await showSelectionMenuAt(tester, controller, testValue.indexOf('e')); // Verify the selection toolbar position is below the text. Offset toolbarTopLeft = tester.getTopLeft(find.text('Select all')); @@ -2386,7 +2386,7 @@ void main() { await tester.enterText(find.byType(TextField), testValue); await skipPastScrollingAnimation(tester); - await _showSelectionMenuAt(tester, controller, testValue.indexOf('e')); + await showSelectionMenuAt(tester, controller, testValue.indexOf('e')); // Verify the selection toolbar position toolbarTopLeft = tester.getTopLeft(find.text('Select all')); @@ -2432,7 +2432,7 @@ void main() { await tester.enterText(find.byType(TextField), testValue); await skipPastScrollingAnimation(tester); - await _showSelectionMenuAt(tester, controller, testValue.indexOf('e')); + await showSelectionMenuAt(tester, controller, testValue.indexOf('e')); // Verify the selection toolbar position is above the text. expect(find.text('Select all'), findsOneWidget); @@ -2493,7 +2493,7 @@ void main() { // Show the selection menu on the first line and verify the selection // toolbar position is below the first line. - await _showSelectionMenuAt(tester, controller, testValue.indexOf('c')); + await showSelectionMenuAt(tester, controller, testValue.indexOf('c')); expect(find.text('Select all'), findsOneWidget); final Offset firstLineToolbarTopLeft = tester.getTopLeft(find.text('Select all')); final Offset firstLineTopLeft = textOffsetToPosition(tester, testValue.indexOf('a')); @@ -2502,7 +2502,7 @@ void main() { // Show the selection menu on the second to last line and verify the // selection toolbar position is above that line and above the first // line's toolbar. - await _showSelectionMenuAt(tester, controller, testValue.indexOf('o')); + await showSelectionMenuAt(tester, controller, testValue.indexOf('o')); expect(find.text('Select all'), findsOneWidget); final Offset penultimateLineToolbarTopLeft = tester.getTopLeft(find.text('Select all')); final Offset penultimateLineTopLeft = textOffsetToPosition(tester, testValue.indexOf('p')); @@ -2512,7 +2512,7 @@ void main() { // Show the selection menu on the last line and verify the selection // toolbar position is above that line and below the position of the // second to last line's toolbar. - await _showSelectionMenuAt(tester, controller, testValue.indexOf('r')); + await showSelectionMenuAt(tester, controller, testValue.indexOf('r')); expect(find.text('Select all'), findsOneWidget); final Offset lastLineToolbarTopLeft = tester.getTopLeft(find.text('Select all')); final Offset lastLineTopLeft = textOffsetToPosition(tester, testValue.indexOf('p')); @@ -9827,7 +9827,7 @@ void main() { }); group('intrinsics', () { - Widget _buildTest({ required bool isDense }) { + Widget buildTest({ required bool isDense }) { return MaterialApp( home: Scaffold( body: CustomScrollView( @@ -9857,14 +9857,14 @@ void main() { // Regression test for https://github.com/flutter/flutter/issues/54729 // If the intrinsic height does not match that of the height after // performLayout, this will fail. - await tester.pumpWidget(_buildTest(isDense: false)); + await tester.pumpWidget(buildTest(isDense: false)); }); testWidgets('When isDense, intrinsic height can go below kMinInteractiveDimension height', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/54729 // If the intrinsic height does not match that of the height after // performLayout, this will fail. - await tester.pumpWidget(_buildTest(isDense: true)); + await tester.pumpWidget(buildTest(isDense: true)); }); }); }); @@ -10058,7 +10058,7 @@ void main() { ), )); - await _showSelectionMenuAt(tester, controller, controller.text.indexOf('test')); + await showSelectionMenuAt(tester, controller, controller.text.indexOf('test')); await tester.pumpAndSettle(); expect(tester.takeException(), isNull); }, diff --git a/packages/flutter/test/material/text_selection_toolbar_test.dart b/packages/flutter/test/material/text_selection_toolbar_test.dart index c6daa2ee28930..4208c46e2a643 100644 --- a/packages/flutter/test/material/text_selection_toolbar_test.dart +++ b/packages/flutter/test/material/text_selection_toolbar_test.dart @@ -63,7 +63,7 @@ void main() { TestWidgetsFlutterBinding.ensureInitialized(); // Find by a runtimeType String, including private types. - Finder _findPrivate(String type) { + Finder findPrivate(String type) { return find.descendant( of: find.byType(MaterialApp), matching: find.byWidgetPredicate((Widget w) => '${w.runtimeType}' == type), @@ -73,9 +73,9 @@ void main() { // Finding TextSelectionToolbar won't give you the position as the user sees // it because it's a full-sized Stack at the top level. This method finds the // visible part of the toolbar for use in measurements. - Finder _findToolbar() => _findPrivate('_TextSelectionToolbarOverflowable'); + Finder findToolbar() => findPrivate('_TextSelectionToolbarOverflowable'); - Finder _findOverflowButton() => _findPrivate('_TextSelectionToolbarOverflowButton'); + Finder findOverflowButton() => findPrivate('_TextSelectionToolbarOverflowButton'); testWidgets('puts children in an overflow menu if they overflow', (WidgetTester tester) async { late StateSetter setState; @@ -100,7 +100,7 @@ void main() { // All children fit on the screen, so they are all rendered. expect(find.byType(TestBox), findsNWidgets(children.length)); - expect(_findOverflowButton(), findsNothing); + expect(findOverflowButton(), findsNothing); // Adding one more child makes the children overflow. setState(() { @@ -110,19 +110,19 @@ void main() { }); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(children.length - 1)); - expect(_findOverflowButton(), findsOneWidget); + expect(findOverflowButton(), findsOneWidget); // Tap the overflow button to show the overflow menu. - await tester.tap(_findOverflowButton()); + await tester.tap(findOverflowButton()); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(1)); - expect(_findOverflowButton(), findsOneWidget); + expect(findOverflowButton(), findsOneWidget); // Tap the overflow button again to hide the overflow menu. - await tester.tap(_findOverflowButton()); + await tester.tap(findOverflowButton()); await tester.pumpAndSettle(); expect(find.byType(TestBox), findsNWidgets(children.length - 1)); - expect(_findOverflowButton(), findsOneWidget); + expect(findOverflowButton(), findsOneWidget); }); testWidgets('positions itself at anchorAbove if it fits', (WidgetTester tester) async { @@ -154,7 +154,7 @@ void main() { // When the toolbar doesn't fit above aboveAnchor, it positions itself below // belowAnchor. - double toolbarY = tester.getTopLeft(_findToolbar()).dy; + double toolbarY = tester.getTopLeft(findToolbar()).dy; expect(toolbarY, equals(anchorBelowY)); // Even when it barely doesn't fit. @@ -162,7 +162,7 @@ void main() { anchorAboveY = 50.0; }); await tester.pump(); - toolbarY = tester.getTopLeft(_findToolbar()).dy; + toolbarY = tester.getTopLeft(findToolbar()).dy; expect(toolbarY, equals(anchorBelowY)); // When it does fit above aboveAnchor, it positions itself there. @@ -170,7 +170,7 @@ void main() { anchorAboveY = 60.0; }); await tester.pump(); - toolbarY = tester.getTopLeft(_findToolbar()).dy; + toolbarY = tester.getTopLeft(findToolbar()).dy; expect(toolbarY, equals(anchorAboveY - height)); }); diff --git a/packages/flutter/test/material/theme_data_test.dart b/packages/flutter/test/material/theme_data_test.dart index d44e5039d8675..2bedf53a3f1f4 100644 --- a/packages/flutter/test/material/theme_data_test.dart +++ b/packages/flutter/test/material/theme_data_test.dart @@ -447,7 +447,7 @@ void main() { ), MyThemeExtensionB( textStyle: TextStyle(fontSize: 50), - ) + ), }, ), home: Container(key: containerKey), diff --git a/packages/flutter/test/material/toggle_buttons_test.dart b/packages/flutter/test/material/toggle_buttons_test.dart index 7937117d917a9..55ddfa378f67d 100644 --- a/packages/flutter/test/material/toggle_buttons_test.dart +++ b/packages/flutter/test/material/toggle_buttons_test.dart @@ -1015,6 +1015,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model + ..path() ..path( style: PaintingStyle.stroke, color: theme.colorScheme.onSurface.withOpacity(0.12), @@ -1042,6 +1044,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model + ..path() ..path( style: PaintingStyle.stroke, color: theme.colorScheme.onSurface.withOpacity(0.12), @@ -1068,6 +1072,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model + ..path() ..path( style: PaintingStyle.stroke, color: theme.colorScheme.onSurface.withOpacity(0.12), @@ -1108,6 +1114,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model + ..path() ..path( style: PaintingStyle.stroke, color: borderColor, @@ -1137,6 +1145,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model + ..path() ..path( style: PaintingStyle.stroke, color: selectedBorderColor, @@ -1165,6 +1175,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model + ..path() ..path( style: PaintingStyle.stroke, color: disabledBorderColor, @@ -1432,6 +1444,8 @@ void main() { expect( toggleButtonRenderObject[0], paints + // physical model + ..path() // leading side, top and bottom - enabled ..path( style: PaintingStyle.stroke, @@ -1445,6 +1459,8 @@ void main() { expect( toggleButtonRenderObject[1], paints + // physical model + ..path() // leading side - selected ..path( style: PaintingStyle.stroke, @@ -1464,6 +1480,8 @@ void main() { expect( toggleButtonRenderObject[2], paints + // physical model + ..path() // leading side - selected, since previous button is selected ..path( style: PaintingStyle.stroke, @@ -1515,6 +1533,8 @@ void main() { expect( toggleButtonRenderObject[0], paints + // physical model + ..path() // left side, top and right - enabled. ..path( style: PaintingStyle.stroke, @@ -1528,6 +1548,8 @@ void main() { expect( toggleButtonRenderObject[1], paints + // physical model + ..path() // top side - selected. ..path( style: PaintingStyle.stroke, @@ -1547,6 +1569,8 @@ void main() { expect( toggleButtonRenderObject[2], paints + // physical model + ..path() // top side - selected, since previous button is selected. ..path( style: PaintingStyle.stroke, @@ -1712,6 +1736,8 @@ void main() { expect( toggleButtonRenderObject[0], paints + // physical model paints + ..path() // left side, top and right - enabled. ..path( style: PaintingStyle.stroke, diff --git a/packages/flutter/test/material/toggle_buttons_theme_test.dart b/packages/flutter/test/material/toggle_buttons_theme_test.dart index cd8246ec5ddf7..5d26f85065166 100644 --- a/packages/flutter/test/material/toggle_buttons_theme_test.dart +++ b/packages/flutter/test/material/toggle_buttons_theme_test.dart @@ -543,6 +543,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model layer paint + ..path() ..path( style: PaintingStyle.stroke, color: borderColor, @@ -576,6 +578,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model layer paint + ..path() ..path( style: PaintingStyle.stroke, color: selectedBorderColor, @@ -608,6 +612,8 @@ void main() { expect( toggleButtonRenderObject, paints + // physical model layer paint + ..path() ..path( style: PaintingStyle.stroke, color: disabledBorderColor, diff --git a/packages/flutter/test/material/tooltip_test.dart b/packages/flutter/test/material/tooltip_test.dart index 2d25385bc6dc9..fcd72b1590fbd 100644 --- a/packages/flutter/test/material/tooltip_test.dart +++ b/packages/flutter/test/material/tooltip_test.dart @@ -1144,7 +1144,7 @@ void main() { waitDuration: waitDuration, showDuration: Duration(days: 1), child: Text('tooltip2'), - ) + ), ], ), ), diff --git a/packages/flutter/test/material/will_pop_test.dart b/packages/flutter/test/material/will_pop_test.dart index 6a8d0903585c2..b99e473d65b97 100644 --- a/packages/flutter/test/material/will_pop_test.dart +++ b/packages/flutter/test/material/will_pop_test.dart @@ -410,10 +410,10 @@ void main() { child: const Text('anchor'), ); }, - ) + ), ]; - Widget _buildNavigator(Key? key, List> pages) { + Widget buildNavigator(Key? key, List> pages) { return Navigator( key: key, pages: pages, @@ -430,9 +430,9 @@ void main() { builder: (BuildContext context, StateSetter setState) { contentsSetState = setState; if (moveToAnotherNavigator) { - return _buildNavigator(const ValueKey(1), pages); + return buildNavigator(const ValueKey(1), pages); } - return _buildNavigator(const ValueKey(2), pages); + return buildNavigator(const ValueKey(2), pages); }, ), ), diff --git a/packages/flutter/test/painting/_network_image_test_web.dart b/packages/flutter/test/painting/_network_image_test_web.dart index ff50f10e00d7c..bd1769309f12c 100644 --- a/packages/flutter/test/painting/_network_image_test_web.dart +++ b/packages/flutter/test/painting/_network_image_test_web.dart @@ -33,7 +33,7 @@ void runTests() { const Map headers = { 'flutter': 'flutter', - 'second': 'second' + 'second': 'second', }; final Image image = Image.network( @@ -60,7 +60,7 @@ void runTests() { const Map headers = { 'flutter': 'flutter', - 'second': 'second' + 'second': 'second', }; final Image image = Image.network( @@ -87,7 +87,7 @@ void runTests() { const Map headers = { 'flutter': 'flutter', - 'second': 'second' + 'second': 'second', }; final Image image = Image.network( diff --git a/packages/flutter/test/painting/decoration_test.dart b/packages/flutter/test/painting/decoration_test.dart index d5726cfc1a2a6..deeb6638da7d9 100644 --- a/packages/flutter/test/painting/decoration_test.dart +++ b/packages/flutter/test/painting/decoration_test.dart @@ -697,11 +697,11 @@ void main() { final ImageStream stream = provider.resolve(ImageConfiguration.empty); final Completer infoCompleter = Completer(); - void _listener(ImageInfo image, bool syncCall) { + void listener(ImageInfo image, bool syncCall) { assert(!infoCompleter.isCompleted); infoCompleter.complete(image); } - stream.addListener(ImageStreamListener(_listener)); + stream.addListener(ImageStreamListener(listener)); final ImageInfo info = await infoCompleter.future; final int baselineRefCount = info.image.debugGetOpenHandleStackTraces()!.length; diff --git a/packages/flutter/test/painting/image_cache_test.dart b/packages/flutter/test/painting/image_cache_test.dart index effa7261fd117..13449fa197970 100644 --- a/packages/flutter/test/painting/image_cache_test.dart +++ b/packages/flutter/test/painting/image_cache_test.dart @@ -136,15 +136,15 @@ void main() { }); test('Returns null if an error is caught resolving an image', () { - Future _basicDecoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) { + Future basicDecoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) { return PaintingBinding.instance.instantiateImageCodec(bytes, cacheWidth: cacheWidth, cacheHeight: cacheHeight, allowUpscaling: allowUpscaling ?? false); } final ErrorImageProvider errorImage = ErrorImageProvider(); - expect(() => imageCache.putIfAbsent(errorImage, () => errorImage.load(errorImage, _basicDecoder)), throwsA(isA())); + expect(() => imageCache.putIfAbsent(errorImage, () => errorImage.load(errorImage, basicDecoder)), throwsA(isA())); bool caughtError = false; final ImageStreamCompleter? result = imageCache.putIfAbsent( errorImage, - () => errorImage.load(errorImage, _basicDecoder), + () => errorImage.load(errorImage, basicDecoder), onError: (dynamic error, StackTrace? stackTrace) { caughtError = true; }, diff --git a/packages/flutter/test/painting/image_provider_and_image_cache_test.dart b/packages/flutter/test/painting/image_provider_and_image_cache_test.dart index 1481a7ad5debd..d1121e56fec82 100644 --- a/packages/flutter/test/painting/image_provider_and_image_cache_test.dart +++ b/packages/flutter/test/painting/image_provider_and_image_cache_test.dart @@ -17,7 +17,7 @@ import 'mocks_for_image_cache.dart'; void main() { TestRenderingFlutterBinding.ensureInitialized(); - Future _basicDecoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) { + Future basicDecoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) { return PaintingBinding.instance.instantiateImageCodec(bytes, cacheWidth: cacheWidth, cacheHeight: cacheHeight, allowUpscaling: allowUpscaling ?? false); } @@ -76,7 +76,7 @@ void main() { final Uint8List bytes = Uint8List.fromList(kTransparentImage); final MemoryImage imageProvider = MemoryImage(bytes); final ImageStreamCompleter cacheStream = otherCache.putIfAbsent( - imageProvider, () => imageProvider.load(imageProvider, _basicDecoder), + imageProvider, () => imageProvider.load(imageProvider, basicDecoder), )!; final ImageStream stream = imageProvider.resolve(ImageConfiguration.empty); final Completer completer = Completer(); diff --git a/packages/flutter/test/painting/image_provider_network_image_test.dart b/packages/flutter/test/painting/image_provider_network_image_test.dart index c465685f112bf..807e6b0568f9d 100644 --- a/packages/flutter/test/painting/image_provider_network_image_test.dart +++ b/packages/flutter/test/painting/image_provider_network_image_test.dart @@ -18,7 +18,7 @@ import '../rendering/rendering_tester.dart'; void main() { TestRenderingFlutterBinding.ensureInitialized(); - Future _basicDecoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) { + Future basicDecoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) { return PaintingBinding.instance.instantiateImageCodec(bytes, cacheWidth: cacheWidth, cacheHeight: cacheHeight, allowUpscaling: allowUpscaling ?? false); } @@ -77,7 +77,7 @@ void main() { Future loadNetworkImage() async { final NetworkImage networkImage = NetworkImage(nonconst('foo')); - final ImageStreamCompleter completer = networkImage.load(networkImage, _basicDecoder); + final ImageStreamCompleter completer = networkImage.load(networkImage, basicDecoder); completer.addListener(ImageStreamListener( (ImageInfo image, bool synchronousCall) { }, onError: (dynamic error, StackTrace? stackTrace) { @@ -189,7 +189,7 @@ void main() { debugNetworkImageHttpClientProvider = null; }, skip: isBrowser); // [intended] Browser does not resolve images this way. - Future _decoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) async { + Future decoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) async { return FakeCodec(); } @@ -207,7 +207,7 @@ void main() { const NetworkImage provider = NetworkImage(url); - final MultiFrameImageStreamCompleter completer = provider.load(provider, _decoder) as MultiFrameImageStreamCompleter; + final MultiFrameImageStreamCompleter completer = provider.load(provider, decoder) as MultiFrameImageStreamCompleter; expect(completer.debugLabel, url); }); diff --git a/packages/flutter/test/painting/image_provider_test.dart b/packages/flutter/test/painting/image_provider_test.dart index d00a7506545de..4e195778551ee 100644 --- a/packages/flutter/test/painting/image_provider_test.dart +++ b/packages/flutter/test/painting/image_provider_test.dart @@ -95,7 +95,7 @@ void main() { expect(await error.future, isStateError); }); - Future _decoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) async { + Future decoder(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) async { return FakeCodec(); } @@ -104,7 +104,7 @@ void main() { final File file = fs.file('/blue.png')..createSync(recursive: true)..writeAsBytesSync(kBlueSquarePng); final FileImage provider = FileImage(file); - final MultiFrameImageStreamCompleter completer = provider.load(provider, _decoder) as MultiFrameImageStreamCompleter; + final MultiFrameImageStreamCompleter completer = provider.load(provider, decoder) as MultiFrameImageStreamCompleter; expect(completer.debugLabel, file.path); }); @@ -113,7 +113,7 @@ void main() { final Uint8List bytes = Uint8List.fromList(kBlueSquarePng); final MemoryImage provider = MemoryImage(bytes); - final MultiFrameImageStreamCompleter completer = provider.load(provider, _decoder) as MultiFrameImageStreamCompleter; + final MultiFrameImageStreamCompleter completer = provider.load(provider, decoder) as MultiFrameImageStreamCompleter; expect(completer.debugLabel, 'MemoryImage(${describeIdentity(bytes)})'); }); @@ -122,7 +122,7 @@ void main() { const String asset = 'images/blue.png'; final ExactAssetImage provider = ExactAssetImage(asset, bundle: _TestAssetBundle()); final AssetBundleImageKey key = await provider.obtainKey(ImageConfiguration.empty); - final MultiFrameImageStreamCompleter completer = provider.load(key, _decoder) as MultiFrameImageStreamCompleter; + final MultiFrameImageStreamCompleter completer = provider.load(key, decoder) as MultiFrameImageStreamCompleter; expect(completer.debugLabel, asset); }); @@ -132,7 +132,7 @@ void main() { final ResizeImage provider = ResizeImage(MemoryImage(bytes), width: 40, height: 40); final MultiFrameImageStreamCompleter completer = provider.load( await provider.obtainKey(ImageConfiguration.empty), - _decoder, + decoder, ) as MultiFrameImageStreamCompleter; expect(completer.debugLabel, 'MemoryImage(${describeIdentity(bytes)}) - Resized(40×40)'); diff --git a/packages/flutter/test/painting/image_resolution_test.dart b/packages/flutter/test/painting/image_resolution_test.dart index df80f773fa824..b03580c9217a4 100644 --- a/packages/flutter/test/painting/image_resolution_test.dart +++ b/packages/flutter/test/painting/image_resolution_test.dart @@ -36,7 +36,7 @@ class TestAssetBundle extends CachingAssetBundle { void main() { group('1.0 scale device tests', () { - void _buildAndTestWithOneAsset(String mainAssetPath) { + void buildAndTestWithOneAsset(String mainAssetPath) { final Map> assetBundleMap = >{}; assetBundleMap[mainAssetPath] = []; @@ -55,27 +55,27 @@ void main() { } test('When asset is main variant check scale is 1.0', () { - _buildAndTestWithOneAsset('assets/normalFolder/normalFile.png'); + buildAndTestWithOneAsset('assets/normalFolder/normalFile.png'); }); test('When asset path and key are the same string even though it could be took as a 3.0x variant', () async { - _buildAndTestWithOneAsset('assets/parentFolder/3.0x/normalFile.png'); + buildAndTestWithOneAsset('assets/parentFolder/3.0x/normalFile.png'); }); test('When asset path contains variant identifier as part of parent folder name scale is 1.0', () { - _buildAndTestWithOneAsset('assets/parentFolder/__3.0x__/leafFolder/normalFile.png'); + buildAndTestWithOneAsset('assets/parentFolder/__3.0x__/leafFolder/normalFile.png'); }); test('When asset path contains variant identifier as part of leaf folder name scale is 1.0', () { - _buildAndTestWithOneAsset('assets/parentFolder/__3.0x_leaf_folder_/normalFile.png'); + buildAndTestWithOneAsset('assets/parentFolder/__3.0x_leaf_folder_/normalFile.png'); }); test('When asset path contains variant identifier as part of parent folder name scale is 1.0', () { - _buildAndTestWithOneAsset('assets/parentFolder/__3.0x__/leafFolder/normalFile.png'); + buildAndTestWithOneAsset('assets/parentFolder/__3.0x__/leafFolder/normalFile.png'); }); test('When asset path contains variant identifier in parent folder scale is 1.0', () { - _buildAndTestWithOneAsset('assets/parentFolder/3.0x/leafFolder/normalFile.png'); + buildAndTestWithOneAsset('assets/parentFolder/3.0x/leafFolder/normalFile.png'); }); }); @@ -151,7 +151,7 @@ void main() { const String variantPath = 'assets/normalFolder/3.0x/normalFile.png'; - void _buildBundleAndTestVariantLogic( + void buildBundleAndTestVariantLogic( double deviceRatio, double chosenAssetRatio, String expectedAssetPath, @@ -179,26 +179,26 @@ void main() { } test('Obvious case 1.0 - we have exact asset', () { - _buildBundleAndTestVariantLogic(1.0, 1.0, mainAssetPath); + buildBundleAndTestVariantLogic(1.0, 1.0, mainAssetPath); }); test('Obvious case 3.0 - we have exact asset', () { - _buildBundleAndTestVariantLogic(3.0, 3.0, variantPath); + buildBundleAndTestVariantLogic(3.0, 3.0, variantPath); }); test('Typical case 2.0', () { - _buildBundleAndTestVariantLogic(2.0, 1.0, mainAssetPath); + buildBundleAndTestVariantLogic(2.0, 1.0, mainAssetPath); }); test('Borderline case 2.01', () { - _buildBundleAndTestVariantLogic(2.01, 3.0, variantPath); + buildBundleAndTestVariantLogic(2.01, 3.0, variantPath); }); test('Borderline case 2.9', () { - _buildBundleAndTestVariantLogic(2.9, 3.0, variantPath); + buildBundleAndTestVariantLogic(2.9, 3.0, variantPath); }); test('Typical case 4.0', () { - _buildBundleAndTestVariantLogic(4.0, 3.0, variantPath); + buildBundleAndTestVariantLogic(4.0, 3.0, variantPath); }); }); diff --git a/packages/flutter/test/rendering/debug_test.dart b/packages/flutter/test/rendering/debug_test.dart index b31703e6c5e0f..74d80e4436cad 100644 --- a/packages/flutter/test/rendering/debug_test.dart +++ b/packages/flutter/test/rendering/debug_test.dart @@ -222,7 +222,7 @@ void main() { ); final RenderOpacity root = RenderOpacity( opacity: .5, - child: blackBox, + child: RenderRepaintBoundary(child: blackBox), ); layout(root, phase: EnginePhase.compositingBits); diff --git a/packages/flutter/test/rendering/layers_test.dart b/packages/flutter/test/rendering/layers_test.dart index f263c3fb58824..cc39cf44402ba 100644 --- a/packages/flutter/test/rendering/layers_test.dart +++ b/packages/flutter/test/rendering/layers_test.dart @@ -333,7 +333,7 @@ void main() { expect(layer.debugSubtreeNeedsAddToScene, true); } - List _getDebugInfo(Layer layer) { + List getDebugInfo(Layer layer) { final DiagnosticPropertiesBuilder builder = DiagnosticPropertiesBuilder(); layer.debugFillProperties(builder); return builder.properties @@ -342,25 +342,25 @@ void main() { } test('ClipRectLayer prints clipBehavior in debug info', () { - expect(_getDebugInfo(ClipRectLayer()), contains('clipBehavior: Clip.hardEdge')); + expect(getDebugInfo(ClipRectLayer()), contains('clipBehavior: Clip.hardEdge')); expect( - _getDebugInfo(ClipRectLayer(clipBehavior: Clip.antiAliasWithSaveLayer)), + getDebugInfo(ClipRectLayer(clipBehavior: Clip.antiAliasWithSaveLayer)), contains('clipBehavior: Clip.antiAliasWithSaveLayer'), ); }); test('ClipRRectLayer prints clipBehavior in debug info', () { - expect(_getDebugInfo(ClipRRectLayer()), contains('clipBehavior: Clip.antiAlias')); + expect(getDebugInfo(ClipRRectLayer()), contains('clipBehavior: Clip.antiAlias')); expect( - _getDebugInfo(ClipRRectLayer(clipBehavior: Clip.antiAliasWithSaveLayer)), + getDebugInfo(ClipRRectLayer(clipBehavior: Clip.antiAliasWithSaveLayer)), contains('clipBehavior: Clip.antiAliasWithSaveLayer'), ); }); test('ClipPathLayer prints clipBehavior in debug info', () { - expect(_getDebugInfo(ClipPathLayer()), contains('clipBehavior: Clip.antiAlias')); + expect(getDebugInfo(ClipPathLayer()), contains('clipBehavior: Clip.antiAlias')); expect( - _getDebugInfo(ClipPathLayer(clipBehavior: Clip.antiAliasWithSaveLayer)), + getDebugInfo(ClipPathLayer(clipBehavior: Clip.antiAliasWithSaveLayer)), contains('clipBehavior: Clip.antiAliasWithSaveLayer'), ); }); @@ -368,7 +368,7 @@ void main() { test('BackdropFilterLayer prints filter and blendMode in debug info', () { final ImageFilter filter = ImageFilter.blur(sigmaX: 1.0, sigmaY: 1.0, tileMode: TileMode.repeated); final BackdropFilterLayer layer = BackdropFilterLayer(filter: filter, blendMode: BlendMode.clear); - final List info = _getDebugInfo(layer); + final List info = getDebugInfo(layer); expect(info, contains(isBrowser ? 'filter: ImageFilter.blur(1, 1, TileMode.repeated)' : 'filter: ImageFilter.blur(1.0, 1.0, repeated)')); expect(info, contains('blendMode: clear')); }); @@ -382,7 +382,7 @@ void main() { layer.picture = picture; layer.isComplexHint = true; layer.willChangeHint = false; - final List info = _getDebugInfo(layer); + final List info = getDebugInfo(layer); expect(info, contains('picture: ${describeIdentity(picture)}')); expect(info, isNot(contains('engine layer: ${describeIdentity(null)}'))); expect(info, contains('raster cache hints: isComplex = true, willChange = false')); @@ -390,11 +390,11 @@ void main() { test('Layer prints engineLayer if it is not null in debug info', () { final ConcreteLayer layer = ConcreteLayer(); - List info = _getDebugInfo(layer); + List info = getDebugInfo(layer); expect(info, isNot(contains('engine layer: ${describeIdentity(null)}'))); layer.engineLayer = FakeEngineLayer(); - info = _getDebugInfo(layer); + info = getDebugInfo(layer); expect(info, contains('engine layer: ${describeIdentity(layer.engineLayer)}')); }); diff --git a/packages/flutter/test/rendering/mouse_tracker_cursor_test.dart b/packages/flutter/test/rendering/mouse_tracker_cursor_test.dart index e983df30e8bb5..a6216c0f12180 100644 --- a/packages/flutter/test/rendering/mouse_tracker_cursor_test.dart +++ b/packages/flutter/test/rendering/mouse_tracker_cursor_test.dart @@ -20,7 +20,7 @@ void main() { MethodCallHandler? methodCallHandler; // Only one of `logCursors` and `cursorHandler` should be specified. - void _setUpMouseTracker({ + void setUpMouseTracker({ required SimpleAnnotationFinder annotationFinder, List<_CursorUpdateDetails>? logCursors, MethodCallHandler? cursorHandler, @@ -71,7 +71,7 @@ void main() { test('Should work on platforms that does not support mouse cursor', () async { const TestAnnotationTarget annotation = TestAnnotationTarget(cursor: SystemMouseCursors.grabbing); - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) => [annotation], cursorHandler: (MethodCall call) async { return null; @@ -89,7 +89,7 @@ void main() { test('pointer is added and removed out of any annotations', () { final List<_CursorUpdateDetails> logCursors = <_CursorUpdateDetails>[]; TestAnnotationTarget? annotation; - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) => [if (annotation != null) annotation], logCursors: logCursors, ); @@ -146,7 +146,7 @@ void main() { test('pointer is added and removed in an annotation', () { final List<_CursorUpdateDetails> logCursors = <_CursorUpdateDetails>[]; TestAnnotationTarget? annotation; - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) => [if (annotation != null) annotation], logCursors: logCursors, ); @@ -204,7 +204,7 @@ void main() { test('pointer change caused by new frames', () { final List<_CursorUpdateDetails> logCursors = <_CursorUpdateDetails>[]; TestAnnotationTarget? annotation; - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) => [if (annotation != null) annotation], logCursors: logCursors, ); @@ -247,7 +247,7 @@ void main() { test('The first annotation with non-deferring cursor is used', () { final List<_CursorUpdateDetails> logCursors = <_CursorUpdateDetails>[]; late List annotations; - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) sync* { yield* annotations; }, logCursors: logCursors, ); @@ -275,7 +275,7 @@ void main() { test('Annotations with deferring cursors are ignored', () { final List<_CursorUpdateDetails> logCursors = <_CursorUpdateDetails>[]; late List annotations; - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) sync* { yield* annotations; }, logCursors: logCursors, ); @@ -303,7 +303,7 @@ void main() { test('Finding no annotation is equivalent to specifying default cursor', () { final List<_CursorUpdateDetails> logCursors = <_CursorUpdateDetails>[]; TestAnnotationTarget? annotation; - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) => [if (annotation != null) annotation], logCursors: logCursors, ); @@ -345,7 +345,7 @@ void main() { test('Removing a pointer resets it back to the default cursor', () { final List<_CursorUpdateDetails> logCursors = <_CursorUpdateDetails>[]; TestAnnotationTarget? annotation; - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) => [if (annotation != null) annotation], logCursors: logCursors, ); @@ -375,7 +375,7 @@ void main() { test('Pointing devices display cursors separately', () { final List<_CursorUpdateDetails> logCursors = <_CursorUpdateDetails>[]; - _setUpMouseTracker( + setUpMouseTracker( annotationFinder: (Offset position) sync* { if (position.dx > 200) { yield const TestAnnotationTarget(cursor: SystemMouseCursors.forbidden); diff --git a/packages/flutter/test/rendering/mouse_tracker_test.dart b/packages/flutter/test/rendering/mouse_tracker_test.dart index e50516c301cdc..9ddae1e9505da 100644 --- a/packages/flutter/test/rendering/mouse_tracker_test.dart +++ b/packages/flutter/test/rendering/mouse_tracker_test.dart @@ -17,7 +17,7 @@ typedef SimpleAnnotationFinder = Iterable Function(Offset o void main() { final TestMouseTrackerFlutterBinding binding = TestMouseTrackerFlutterBinding(); - void _setUpMouseAnnotationFinder(SimpleAnnotationFinder annotationFinder) { + void setUpMouseAnnotationFinder(SimpleAnnotationFinder annotationFinder) { binding.setHitTest((BoxHitTestResult result, Offset position) { for (final TestAnnotationEntry entry in annotationFinder(position)) { result.addWithRawTransform( @@ -38,7 +38,7 @@ void main() { // `logEvents`. // This annotation also contains a cursor with a value of `testCursor`. // The mouse tracker records the cursor requests it receives to `logCursors`. - TestAnnotationTarget _setUpWithOneAnnotation({ + TestAnnotationTarget setUpWithOneAnnotation({ required List logEvents, }) { final TestAnnotationTarget oneAnnotation = TestAnnotationTarget( @@ -55,7 +55,7 @@ void main() { logEvents.add(event); }, ); - _setUpMouseAnnotationFinder( + setUpMouseAnnotationFinder( (Offset position) sync* { yield TestAnnotationEntry(oneAnnotation); }, @@ -77,7 +77,7 @@ void main() { test('should detect enter, hover, and exit from Added, Hover, and Removed events', () { final List events = []; - _setUpWithOneAnnotation(logEvents: events); + setUpWithOneAnnotation(logEvents: events); final List listenerLogs = []; _mouseTracker.addListener(() { @@ -135,7 +135,7 @@ void main() { test('should correctly handle multiple devices', () { final List events = []; - _setUpWithOneAnnotation(logEvents: events); + setUpWithOneAnnotation(logEvents: events); expect(_mouseTracker.mouseIsConnected, isFalse); @@ -216,7 +216,7 @@ void main() { test('should not handle non-hover events', () { final List events = []; - _setUpWithOneAnnotation(logEvents: events); + setUpWithOneAnnotation(logEvents: events); RendererBinding.instance.platformDispatcher.onPointerDataPacket!(ui.PointerDataPacket(data: [ _pointerData(PointerChange.add, const Offset(0.0, 101.0)), @@ -251,7 +251,7 @@ void main() { onHover: (PointerHoverEvent event) => events.add(event), onExit: (PointerExitEvent event) => events.add(event), ); - _setUpMouseAnnotationFinder((Offset position) sync* { + setUpMouseAnnotationFinder((Offset position) sync* { if (isInHitRegion) { yield TestAnnotationEntry(annotation, Matrix4.translationValues(10, 20, 0)); } @@ -299,7 +299,7 @@ void main() { onHover: (PointerHoverEvent event) => events.add(event), onExit: (PointerExitEvent event) => events.add(event), ); - _setUpMouseAnnotationFinder((Offset position) sync* { + setUpMouseAnnotationFinder((Offset position) sync* { if (isInHitRegion) { yield TestAnnotationEntry(annotation, Matrix4.translationValues(10, 20, 0)); } @@ -349,7 +349,7 @@ void main() { onHover: (PointerHoverEvent event) => events.add(event), onExit: (PointerExitEvent event) => events.add(event), ); - _setUpMouseAnnotationFinder((Offset position) sync* { + setUpMouseAnnotationFinder((Offset position) sync* { if (isInHitRegion) { yield TestAnnotationEntry(annotation, Matrix4.translationValues(10, 20, 0)); } @@ -387,7 +387,7 @@ void main() { onHover: (PointerHoverEvent event) => events.add(event), onExit: (PointerExitEvent event) => events.add(event), ); - _setUpMouseAnnotationFinder((Offset position) sync* { + setUpMouseAnnotationFinder((Offset position) sync* { if (isInHitRegion) { yield TestAnnotationEntry(annotation, Matrix4.translationValues(10, 20, 0)); } @@ -426,7 +426,7 @@ void main() { }); test('should not schedule post-frame callbacks when no mouse is connected', () { - _setUpMouseAnnotationFinder((Offset position) sync* { + setUpMouseAnnotationFinder((Offset position) sync* { }); // Connect a touch device, which should not be recognized by MouseTracker @@ -447,7 +447,7 @@ void main() { final TestAnnotationTarget annotation2 = TestAnnotationTarget( onExit: (PointerExitEvent event) {}, ); - _setUpMouseAnnotationFinder((Offset position) sync* { + setUpMouseAnnotationFinder((Offset position) sync* { if (isInHitRegionOne) yield TestAnnotationEntry(annotation1); else if (isInHitRegionTwo) @@ -487,7 +487,7 @@ void main() { onExit: (PointerExitEvent event) => logs.add('exitB'), onHover: (PointerHoverEvent event) => logs.add('hoverB'), ); - _setUpMouseAnnotationFinder((Offset position) sync* { + setUpMouseAnnotationFinder((Offset position) sync* { // Children's annotations come before parents'. if (isInB) { yield TestAnnotationEntry(annotationB); @@ -541,7 +541,7 @@ void main() { onExit: (PointerExitEvent event) => logs.add('exitB'), onHover: (PointerHoverEvent event) => logs.add('hoverB'), ); - _setUpMouseAnnotationFinder((Offset position) sync* { + setUpMouseAnnotationFinder((Offset position) sync* { if (isInA) { yield TestAnnotationEntry(annotationA); } else if (isInB) { diff --git a/packages/flutter/test/rendering/proxy_box_test.dart b/packages/flutter/test/rendering/proxy_box_test.dart index 70dfff9df4cff..1d6eaec5663cb 100644 --- a/packages/flutter/test/rendering/proxy_box_test.dart +++ b/packages/flutter/test/rendering/proxy_box_test.dart @@ -5,9 +5,8 @@ import 'dart:typed_data'; import 'dart:ui' as ui show Gradient, Image, ImageFilter; -import 'package:flutter/animation.dart'; import 'package:flutter/foundation.dart'; -import 'package:flutter/gestures.dart'; +import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter_test/flutter_test.dart'; @@ -15,7 +14,6 @@ import 'rendering_tester.dart'; void main() { TestRenderingFlutterBinding.ensureInitialized(); - test('RenderFittedBox handles applying paint transform and hit-testing with empty size', () { final RenderFittedBox fittedBox = RenderFittedBox( child: RenderCustomPaint( @@ -61,47 +59,20 @@ void main() { expect(painted, equals(false)); }); - test('RenderPhysicalModel compositing on Fuchsia', () { - debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia; - + test('RenderPhysicalModel compositing', () { final RenderPhysicalModel root = RenderPhysicalModel(color: const Color(0xffff00ff)); layout(root, phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); + expect(root.needsCompositing, isFalse); // On Fuchsia, the system compositor is responsible for drawing shadows // for physical model layers with non-zero elevation. root.elevation = 1.0; pumpFrame(phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); + expect(root.needsCompositing, isFalse); root.elevation = 0.0; pumpFrame(phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); - - debugDefaultTargetPlatformOverride = null; - }); - - test('RenderPhysicalModel compositing on non-Fuchsia', () { - for (final TargetPlatform platform in TargetPlatform.values) { - if (platform == TargetPlatform.fuchsia) { - continue; - } - debugDefaultTargetPlatformOverride = platform; - - final RenderPhysicalModel root = RenderPhysicalModel(color: const Color(0xffff00ff)); - layout(root, phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); - - // Flutter now composites physical shapes on all platforms. - root.elevation = 1.0; - pumpFrame(phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); - - root.elevation = 0.0; - pumpFrame(phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); - } - debugDefaultTargetPlatformOverride = null; + expect(root.needsCompositing, isFalse); }); test('RenderSemanticsGestureHandler adds/removes correct semantic actions', () { @@ -128,9 +99,6 @@ void main() { group('RenderPhysicalShape', () { test('shape change triggers repaint', () { for (final TargetPlatform platform in TargetPlatform.values) { - if (platform == TargetPlatform.fuchsia) { - continue; - } debugDefaultTargetPlatformOverride = platform; final RenderPhysicalShape root = RenderPhysicalShape( @@ -151,27 +119,24 @@ void main() { debugDefaultTargetPlatformOverride = null; }); - test('compositing on non-Fuchsia', () { + test('compositing', () { for (final TargetPlatform platform in TargetPlatform.values) { - if (platform == TargetPlatform.fuchsia) { - continue; - } debugDefaultTargetPlatformOverride = platform; final RenderPhysicalShape root = RenderPhysicalShape( color: const Color(0xffff00ff), clipper: const ShapeBorderClipper(shape: CircleBorder()), ); layout(root, phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); + expect(root.needsCompositing, isFalse); // On non-Fuchsia platforms, we composite physical shape layers root.elevation = 1.0; pumpFrame(phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); + expect(root.needsCompositing, isFalse); root.elevation = 0.0; pumpFrame(phase: EnginePhase.composite); - expect(root.needsCompositing, isTrue); + expect(root.needsCompositing, isFalse); } debugDefaultTargetPlatformOverride = null; }); @@ -287,7 +252,9 @@ void main() { test('RenderOpacity reuses its layer', () { _testLayerReuse(RenderOpacity( opacity: 0.5, // must not be 0 or 1.0. Otherwise, it won't create a layer - child: RenderSizedBox(const Size(1.0, 1.0)), // size doesn't matter + child: RenderRepaintBoundary( + child: RenderSizedBox(const Size(1.0, 1.0)), + ), // size doesn't matter )); }); @@ -353,9 +320,7 @@ void main() { test('RenderClipRect reuses its layer', () { _testLayerReuse(RenderClipRect( clipper: _TestRectClipper(), - // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(1.0, 1.0)), ), // size doesn't matter )); @@ -364,9 +329,7 @@ void main() { test('RenderClipRRect reuses its layer', () { _testLayerReuse(RenderClipRRect( clipper: _TestRRectClipper(), - // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(1.0, 1.0)), ), // size doesn't matter )); @@ -375,9 +338,7 @@ void main() { test('RenderClipOval reuses its layer', () { _testLayerReuse(RenderClipOval( clipper: _TestRectClipper(), - // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(1.0, 1.0)), ), // size doesn't matter )); @@ -386,32 +347,28 @@ void main() { test('RenderClipPath reuses its layer', () { _testLayerReuse(RenderClipPath( clipper: _TestPathClipper(), - // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(1.0, 1.0)), ), // size doesn't matter )); }); test('RenderPhysicalModel reuses its layer', () { - _testLayerReuse(RenderPhysicalModel( + _testLayerReuse(RenderPhysicalModel( + clipBehavior: Clip.hardEdge, color: const Color.fromRGBO(0, 0, 0, 1.0), - // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(1.0, 1.0)), ), // size doesn't matter )); }); test('RenderPhysicalShape reuses its layer', () { - _testLayerReuse(RenderPhysicalShape( + _testLayerReuse(RenderPhysicalShape( clipper: _TestPathClipper(), + clipBehavior: Clip.hardEdge, color: const Color.fromRGBO(0, 0, 0, 1.0), - // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(1.0, 1.0)), ), // size doesn't matter )); @@ -421,52 +378,48 @@ void main() { _testLayerReuse(RenderTransform( // Use a 3D transform to force compositing. transform: Matrix4.rotationX(0.1), - // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(1.0, 1.0)), ), // size doesn't matter )); }); - void _testFittedBoxWithClipRectLayer() { + void testFittedBoxWithClipRectLayer() { _testLayerReuse(RenderFittedBox( fit: BoxFit.cover, clipBehavior: Clip.hardEdge, // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(100.0, 200.0)), ), // size doesn't matter )); } - void _testFittedBoxWithTransformLayer() { + void testFittedBoxWithTransformLayer() { _testLayerReuse(RenderFittedBox( fit: BoxFit.fill, // Inject opacity under the clip to force compositing. - child: RenderOpacity( - opacity: 0.5, + child: RenderRepaintBoundary( child: RenderSizedBox(const Size(1, 1)), ), // size doesn't matter )); } test('RenderFittedBox reuses ClipRectLayer', () { - _testFittedBoxWithClipRectLayer(); + testFittedBoxWithClipRectLayer(); }); test('RenderFittedBox reuses TransformLayer', () { - _testFittedBoxWithTransformLayer(); + testFittedBoxWithTransformLayer(); }); test('RenderFittedBox switches between ClipRectLayer and TransformLayer, and reuses them', () { - _testFittedBoxWithClipRectLayer(); + testFittedBoxWithClipRectLayer(); // clip -> transform - _testFittedBoxWithTransformLayer(); + testFittedBoxWithTransformLayer(); // transform -> clip - _testFittedBoxWithClipRectLayer(); + testFittedBoxWithClipRectLayer(); }); test('RenderFittedBox respects clipBehavior', () { @@ -768,7 +721,7 @@ void _testLayerReuse(RenderBox renderObject) { expect(L, isNot(Layer)); expect(renderObject.debugLayer, null); layout(renderObject, phase: EnginePhase.paint, constraints: BoxConstraints.tight(const Size(10, 10))); - final Layer layer = renderObject.debugLayer!; + final Layer? layer = renderObject.debugLayer; expect(layer, isA()); expect(layer, isNotNull); diff --git a/packages/flutter/test/rendering/slivers_test.dart b/packages/flutter/test/rendering/slivers_test.dart index 27fe043111fbf..aa39323966abb 100644 --- a/packages/flutter/test/rendering/slivers_test.dart +++ b/packages/flutter/test/rendering/slivers_test.dart @@ -264,7 +264,7 @@ void main() { expect(result.path.first.target, equals(c)); }); - Offset _getPaintOrigin(RenderObject render) { + Offset getPaintOrigin(RenderObject render) { final Vector3 transformed3 = render.getTransformTo(null).perspectiveTransform(Vector3(0.0, 0.0, 0.0)); return Offset(transformed3.x, transformed3.y); } @@ -300,11 +300,11 @@ void main() { expect(d.localToGlobal(Offset.zero), const Offset(1200.0, 0.0)); expect(e.localToGlobal(Offset.zero), const Offset(1600.0, 0.0)); - expect(_getPaintOrigin(sliverA), Offset.zero); - expect(_getPaintOrigin(sliverB), const Offset(400.0, 0.0)); - expect(_getPaintOrigin(sliverC), const Offset(800.0, 0.0)); - expect(_getPaintOrigin(sliverD), const Offset(1200.0, 0.0)); - expect(_getPaintOrigin(sliverE), const Offset(1600.0, 0.0)); + expect(getPaintOrigin(sliverA), Offset.zero); + expect(getPaintOrigin(sliverB), const Offset(400.0, 0.0)); + expect(getPaintOrigin(sliverC), const Offset(800.0, 0.0)); + expect(getPaintOrigin(sliverD), const Offset(1200.0, 0.0)); + expect(getPaintOrigin(sliverE), const Offset(1600.0, 0.0)); root.offset = ViewportOffset.fixed(200.0); pumpFrame(); @@ -314,11 +314,11 @@ void main() { expect(d.localToGlobal(Offset.zero), const Offset(1000.0, 0.0)); expect(e.localToGlobal(Offset.zero), const Offset(1400.0, 0.0)); - expect(_getPaintOrigin(sliverA), Offset.zero); - expect(_getPaintOrigin(sliverB), const Offset(200.0, 0.0)); - expect(_getPaintOrigin(sliverC), const Offset(600.0, 0.0)); - expect(_getPaintOrigin(sliverD), const Offset(1000.0, 0.0)); - expect(_getPaintOrigin(sliverE), const Offset(1400.0, 0.0)); + expect(getPaintOrigin(sliverA), Offset.zero); + expect(getPaintOrigin(sliverB), const Offset(200.0, 0.0)); + expect(getPaintOrigin(sliverC), const Offset(600.0, 0.0)); + expect(getPaintOrigin(sliverD), const Offset(1000.0, 0.0)); + expect(getPaintOrigin(sliverE), const Offset(1400.0, 0.0)); root.offset = ViewportOffset.fixed(600.0); pumpFrame(); @@ -328,11 +328,11 @@ void main() { expect(d.localToGlobal(Offset.zero), const Offset(600.0, 0.0)); expect(e.localToGlobal(Offset.zero), const Offset(1000.0, 0.0)); - expect(_getPaintOrigin(sliverA), Offset.zero); - expect(_getPaintOrigin(sliverB), Offset.zero); - expect(_getPaintOrigin(sliverC), const Offset(200.0, 0.0)); - expect(_getPaintOrigin(sliverD), const Offset(600.0, 0.0)); - expect(_getPaintOrigin(sliverE), const Offset(1000.0, 0.0)); + expect(getPaintOrigin(sliverA), Offset.zero); + expect(getPaintOrigin(sliverB), Offset.zero); + expect(getPaintOrigin(sliverC), const Offset(200.0, 0.0)); + expect(getPaintOrigin(sliverD), const Offset(600.0, 0.0)); + expect(getPaintOrigin(sliverE), const Offset(1000.0, 0.0)); root.offset = ViewportOffset.fixed(900.0); pumpFrame(); @@ -342,11 +342,11 @@ void main() { expect(d.localToGlobal(Offset.zero), const Offset(300.0, 0.0)); expect(e.localToGlobal(Offset.zero), const Offset(700.0, 0.0)); - expect(_getPaintOrigin(sliverA), Offset.zero); - expect(_getPaintOrigin(sliverB), Offset.zero); - expect(_getPaintOrigin(sliverC), Offset.zero); - expect(_getPaintOrigin(sliverD), const Offset(300.0, 0.0)); - expect(_getPaintOrigin(sliverE), const Offset(700.0, 0.0)); + expect(getPaintOrigin(sliverA), Offset.zero); + expect(getPaintOrigin(sliverB), Offset.zero); + expect(getPaintOrigin(sliverC), Offset.zero); + expect(getPaintOrigin(sliverD), const Offset(300.0, 0.0)); + expect(getPaintOrigin(sliverE), const Offset(700.0, 0.0)); final BoxHitTestResult result = BoxHitTestResult(); root.hitTest(result, position: const Offset(150.0, 450.0)); diff --git a/packages/flutter/test/rendering/viewport_test.dart b/packages/flutter/test/rendering/viewport_test.dart index 2cb80c45e0b96..fac89a8c9bb1d 100644 --- a/packages/flutter/test/rendering/viewport_test.dart +++ b/packages/flutter/test/rendering/viewport_test.dart @@ -1845,7 +1845,7 @@ void main() { }); group('Overscrolling RenderShrinkWrappingViewport', () { - Widget _buildSimpleShrinkWrap({ + Widget buildSimpleShrinkWrap({ ScrollController? controller, Axis scrollDirection = Axis.vertical, ScrollPhysics? physics, @@ -1867,7 +1867,7 @@ void main() { ); } - Widget _buildClippingShrinkWrap( + Widget buildClippingShrinkWrap( ScrollController controller, { bool constrain = false, }) { @@ -1912,7 +1912,7 @@ void main() { // Regression test for https://github.com/flutter/flutter/issues/89717 final ScrollController controller = ScrollController(); await tester.pumpWidget( - _buildClippingShrinkWrap(controller, constrain: true) + buildClippingShrinkWrap(controller, constrain: true) ); expect(controller.offset, 0.0); expect(tester.getTopLeft(find.text('Item 0')).dy, 100.0); @@ -1939,7 +1939,7 @@ void main() { // Regression test for https://github.com/flutter/flutter/issues/89717 final ScrollController controller = ScrollController(); await tester.pumpWidget( - _buildClippingShrinkWrap(controller) + buildClippingShrinkWrap(controller) ); expect(controller.offset, 0.0); expect(tester.getTopLeft(find.text('Item 0')).dy, 100.0); @@ -1967,7 +1967,7 @@ void main() { // Scrollables should overscroll by default on iOS and macOS final ScrollController controller = ScrollController(); await tester.pumpWidget( - _buildSimpleShrinkWrap(controller: controller), + buildSimpleShrinkWrap(controller: controller), ); expect(controller.offset, 0.0); expect(tester.getTopLeft(find.text('Item 0')).dy, 0.0); @@ -2006,7 +2006,7 @@ void main() { // Scrollables should overscroll by default on iOS and macOS final ScrollController controller = ScrollController(); await tester.pumpWidget( - _buildSimpleShrinkWrap(controller: controller, scrollDirection: Axis.horizontal), + buildSimpleShrinkWrap(controller: controller, scrollDirection: Axis.horizontal), ); expect(controller.offset, 0.0); expect(tester.getTopLeft(find.text('Item 0')).dx, 0.0); @@ -2045,7 +2045,7 @@ void main() { // Scrollables should overscroll when the scroll physics allow final ScrollController controller = ScrollController(); await tester.pumpWidget( - _buildSimpleShrinkWrap(controller: controller, physics: const BouncingScrollPhysics()), + buildSimpleShrinkWrap(controller: controller, physics: const BouncingScrollPhysics()), ); expect(controller.offset, 0.0); expect(tester.getTopLeft(find.text('Item 0')).dy, 0.0); @@ -2084,7 +2084,7 @@ void main() { // Scrollables should overscroll when the scroll physics allow final ScrollController controller = ScrollController(); await tester.pumpWidget( - _buildSimpleShrinkWrap( + buildSimpleShrinkWrap( controller: controller, scrollDirection: Axis.horizontal, physics: const BouncingScrollPhysics(), diff --git a/packages/flutter/test/scheduler/scheduler_test.dart b/packages/flutter/test/scheduler/scheduler_test.dart index 50e1f6b206ec2..84b50c66e9c34 100644 --- a/packages/flutter/test/scheduler/scheduler_test.dart +++ b/packages/flutter/test/scheduler/scheduler_test.dart @@ -140,15 +140,17 @@ void main() { }); test('Flutter.Frame event fired', () async { - SchedulerBinding.instance.platformDispatcher.onReportTimings!([FrameTiming( - vsyncStart: 5000, - buildStart: 10000, - buildFinish: 15000, - rasterStart: 16000, - rasterFinish: 20000, - rasterFinishWallTime: 20010, - frameNumber: 1991 - )]); + SchedulerBinding.instance.platformDispatcher.onReportTimings!([ + FrameTiming( + vsyncStart: 5000, + buildStart: 10000, + buildFinish: 15000, + rasterStart: 16000, + rasterFinish: 20000, + rasterFinishWallTime: 20010, + frameNumber: 1991, + ), + ]); final List> events = scheduler.getEventsDispatched('Flutter.Frame'); expect(events, hasLength(1)); diff --git a/packages/flutter/test/services/channel_buffers_test.dart b/packages/flutter/test/services/channel_buffers_test.dart index ced7a1b380dc4..09eeec03eaa2a 100644 --- a/packages/flutter/test/services/channel_buffers_test.dart +++ b/packages/flutter/test/services/channel_buffers_test.dart @@ -13,13 +13,13 @@ import 'package:flutter_test/flutter_test.dart'; class TestChannelBuffersFlutterBinding extends BindingBase with SchedulerBinding, ServicesBinding { } void main() { - ByteData _makeByteData(String str) { + ByteData makeByteData(String str) { final List list = utf8.encode(str); final ByteBuffer buffer = list is Uint8List ? list.buffer : Uint8List.fromList(list).buffer; return ByteData.view(buffer); } - String _getString(ByteData data) { + String getString(ByteData data) { final ByteBuffer buffer = data.buffer; final List list = buffer.asUint8List(data.offsetInBytes, data.lengthInBytes); return utf8.decode(list); @@ -34,11 +34,11 @@ void main() { didCallCallback = true; } const String payload = 'bar'; - final ByteData data = _makeByteData(payload); + final ByteData data = makeByteData(payload); ui.channelBuffers.push(channel, data, callback); bool didDrainData = false; binding.defaultBinaryMessenger.setMessageHandler(channel, (ByteData? message) async { - expect(_getString(message!), payload); + expect(getString(message!), payload); didDrainData = true; return null; }); diff --git a/packages/flutter/test/services/default_binary_messenger_test.dart b/packages/flutter/test/services/default_binary_messenger_test.dart index 5578a1fba90e8..62bf1945a31bb 100644 --- a/packages/flutter/test/services/default_binary_messenger_test.dart +++ b/packages/flutter/test/services/default_binary_messenger_test.dart @@ -12,7 +12,7 @@ import 'package:flutter_test/flutter_test.dart'; void main() { TestWidgetsFlutterBinding.ensureInitialized(); - ByteData _makeByteData(String str) { + ByteData makeByteData(String str) { final List list = utf8.encode(str); final ByteBuffer buffer = list is Uint8List ? list.buffer : Uint8List.fromList(list).buffer; @@ -23,7 +23,7 @@ void main() { int countInbound = 0; int countOutbound = 0; const String channel = 'foo'; - final ByteData bar = _makeByteData('bar'); + final ByteData bar = makeByteData('bar'); final Completer done = Completer(); ServicesBinding.instance.channelBuffers.push( channel, diff --git a/packages/flutter/test/services/raw_keyboard_test.dart b/packages/flutter/test/services/raw_keyboard_test.dart index 853c206f23873..4578adc866020 100644 --- a/packages/flutter/test/services/raw_keyboard_test.dart +++ b/packages/flutter/test/services/raw_keyboard_test.dart @@ -2143,7 +2143,7 @@ void main() { test('Code points with more than three Unicode scalar values are not allowed', () { // |keyCode| and |scanCode| are arbitrary values. This test should fail due to an invalid |unicodeScalarValues|. - void _createFailingKey() { + void createFailingKey() { RawKeyEvent.fromMessage(const { 'type': 'keydown', 'keymap': 'linux', @@ -2155,7 +2155,7 @@ void main() { }); } - expect(() => _createFailingKey(), throwsAssertionError); + expect(() => createFailingKey(), throwsAssertionError); }); test('Control keyboard keys are correctly translated', () { @@ -2375,7 +2375,7 @@ void main() { test('Code points with more than three Unicode scalar values are not allowed', () { // |keyCode| and |scanCode| are arbitrary values. This test should fail due to an invalid |unicodeScalarValues|. - void _createFailingKey() { + void createFailingKey() { RawKeyEvent.fromMessage(const { 'type': 'keydown', 'keymap': 'linux', @@ -2387,7 +2387,7 @@ void main() { }); } - expect(() => _createFailingKey(), throwsAssertionError); + expect(() => createFailingKey(), throwsAssertionError); }); test('Control keyboard keys are correctly translated', () { diff --git a/packages/flutter/test/services/system_chrome_test.dart b/packages/flutter/test/services/system_chrome_test.dart index b39fa929a1806..4b2ae76d6c6e2 100644 --- a/packages/flutter/test/services/system_chrome_test.dart +++ b/packages/flutter/test/services/system_chrome_test.dart @@ -34,7 +34,7 @@ void main() { 'statusBarBrightness': 'Brightness.dark', 'statusBarIconBrightness': 'Brightness.light', 'systemNavigationBarIconBrightness': 'Brightness.light', - 'systemNavigationBarContrastEnforced': null + 'systemNavigationBarContrastEnforced': null, }, )); log.clear(); @@ -47,7 +47,7 @@ void main() { SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( systemStatusBarContrastEnforced: false, - systemNavigationBarContrastEnforced: true + systemNavigationBarContrastEnforced: true, )); expect(tester.binding.microtaskCount, equals(1)); await tester.idle(); @@ -62,7 +62,7 @@ void main() { 'statusBarBrightness': null, 'statusBarIconBrightness': null, 'systemNavigationBarIconBrightness': null, - 'systemNavigationBarContrastEnforced': true + 'systemNavigationBarContrastEnforced': true, }, )); }); diff --git a/packages/flutter/test/widgets/actions_test.dart b/packages/flutter/test/widgets/actions_test.dart index 3cee40c5538ce..9f0401ba389ab 100644 --- a/packages/flutter/test/widgets/actions_test.dart +++ b/packages/flutter/test/widgets/actions_test.dart @@ -1470,7 +1470,7 @@ void main() { setState = stateSetter; return Actions( actions: > { - if (action2LookupContext != null) LogIntent: Action.overridable(defaultAction: LogInvocationAction(actionName: 'action2'), context: action2LookupContext!) + if (action2LookupContext != null) LogIntent: Action.overridable(defaultAction: LogInvocationAction(actionName: 'action2'), context: action2LookupContext!), }, child: Builder( builder: (BuildContext context3) { @@ -1579,7 +1579,7 @@ void main() { context: context2, ), context: context3, - ) + ), }, child: Builder( builder: (BuildContext context4) { diff --git a/packages/flutter/test/widgets/animated_size_test.dart b/packages/flutter/test/widgets/animated_size_test.dart index d58d61f1630b9..9d2a5cb29cd3b 100644 --- a/packages/flutter/test/widgets/animated_size_test.dart +++ b/packages/flutter/test/widgets/animated_size_test.dart @@ -389,7 +389,7 @@ void main() { const SizedBox( key: key2, height: 200, - ) + ), ], ), ) @@ -416,10 +416,10 @@ void main() { key: key2, height: 200, child: animatedSize, - ) + ), ], ), - ) + ), ); expect( diff --git a/packages/flutter/test/widgets/draggable_scrollable_sheet_test.dart b/packages/flutter/test/widgets/draggable_scrollable_sheet_test.dart index 28375d25328c2..7c4d04ed9943a 100644 --- a/packages/flutter/test/widgets/draggable_scrollable_sheet_test.dart +++ b/packages/flutter/test/widgets/draggable_scrollable_sheet_test.dart @@ -7,7 +7,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { - Widget _boilerplate(VoidCallback? onButtonPressed, { + Widget boilerplateWidget(VoidCallback? onButtonPressed, { DraggableScrollableController? controller, int itemCount = 100, double initialChildSize = .5, @@ -65,7 +65,7 @@ void main() { testWidgets('Scrolls correct amount when maxChildSize < 1.0', (WidgetTester tester) async { const Key key = ValueKey('container'); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, maxChildSize: .6, initialChildSize: .25, @@ -81,7 +81,7 @@ void main() { testWidgets('Scrolls correct amount when maxChildSize == 1.0', (WidgetTester tester) async { const Key key = ValueKey('container'); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, initialChildSize: .25, itemExtent: 25.0, @@ -95,20 +95,20 @@ void main() { }); testWidgets('Invalid snap targets throw assertion errors.', (WidgetTester tester) async { - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, maxChildSize: .8, snapSizes: [.9], )); expect(tester.takeException(), isAssertionError); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, snapSizes: [.1], )); expect(tester.takeException(), isAssertionError); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, snapSizes: [.6, .6, .9], )); @@ -118,7 +118,7 @@ void main() { group('Scroll Physics', () { testWidgets('Can be dragged up without covering its container', (WidgetTester tester) async { int taps = 0; - await tester.pumpWidget(_boilerplate(() => taps++)); + await tester.pumpWidget(boilerplateWidget(() => taps++)); expect(find.text('TapHere'), findsOneWidget); await tester.tap(find.text('TapHere')); @@ -138,7 +138,7 @@ void main() { }, variant: TargetPlatformVariant.all()); testWidgets('Can be dragged down when not full height', (WidgetTester tester) async { - await tester.pumpWidget(_boilerplate(null)); + await tester.pumpWidget(boilerplateWidget(null)); expect(find.text('Item 1'), findsOneWidget); expect(find.text('Item 21'), findsOneWidget); expect(find.text('Item 36'), findsNothing); @@ -151,7 +151,7 @@ void main() { }, variant: TargetPlatformVariant.all()); testWidgets('Can be dragged down when list is shorter than full height', (WidgetTester tester) async { - await tester.pumpWidget(_boilerplate(null, itemCount: 30, initialChildSize: .25)); + await tester.pumpWidget(boilerplateWidget(null, itemCount: 30, initialChildSize: .25)); expect(find.text('Item 1').hitTestable(), findsOneWidget); expect(find.text('Item 29').hitTestable(), findsNothing); @@ -169,7 +169,7 @@ void main() { testWidgets('Can be dragged up and cover its container and scroll in single motion, and then dragged back down', (WidgetTester tester) async { int taps = 0; - await tester.pumpWidget(_boilerplate(() => taps++)); + await tester.pumpWidget(boilerplateWidget(() => taps++)); expect(find.text('TapHere'), findsOneWidget); await tester.tap(find.text('TapHere')); @@ -198,7 +198,7 @@ void main() { testWidgets('Can be flung up gently', (WidgetTester tester) async { int taps = 0; - await tester.pumpWidget(_boilerplate(() => taps++)); + await tester.pumpWidget(boilerplateWidget(() => taps++)); expect(find.text('TapHere'), findsOneWidget); await tester.tap(find.text('TapHere')); @@ -221,7 +221,7 @@ void main() { testWidgets('Can be flung up', (WidgetTester tester) async { int taps = 0; - await tester.pumpWidget(_boilerplate(() => taps++)); + await tester.pumpWidget(boilerplateWidget(() => taps++)); expect(find.text('TapHere'), findsOneWidget); await tester.tap(find.text('TapHere')); @@ -241,7 +241,7 @@ void main() { }, variant: TargetPlatformVariant.all()); testWidgets('Can be flung down when not full height', (WidgetTester tester) async { - await tester.pumpWidget(_boilerplate(null)); + await tester.pumpWidget(boilerplateWidget(null)); expect(find.text('Item 1'), findsOneWidget); expect(find.text('Item 21'), findsOneWidget); expect(find.text('Item 36'), findsNothing); @@ -255,7 +255,7 @@ void main() { testWidgets('Can be flung up and then back down', (WidgetTester tester) async { int taps = 0; - await tester.pumpWidget(_boilerplate(() => taps++)); + await tester.pumpWidget(boilerplateWidget(() => taps++)); expect(find.text('TapHere'), findsOneWidget); await tester.tap(find.text('TapHere')); @@ -294,7 +294,7 @@ void main() { testWidgets('Ballistic animation on fling can be interrupted', (WidgetTester tester) async { int taps = 0; - await tester.pumpWidget(_boilerplate(() => taps++)); + await tester.pumpWidget(boilerplateWidget(() => taps++)); expect(find.text('TapHere'), findsOneWidget); await tester.tap(find.text('TapHere')); @@ -332,7 +332,7 @@ void main() { testWidgets('Does not snap away from initial child on build', (WidgetTester tester) async { const Key containerKey = ValueKey('container'); const Key stackKey = ValueKey('stack'); - await tester.pumpWidget(_boilerplate(null, + await tester.pumpWidget(boilerplateWidget(null, snap: true, initialChildSize: .7, containerKey: containerKey, @@ -353,7 +353,7 @@ void main() { const Key containerKey = ValueKey('container'); const Key stackKey = ValueKey('stack'); final DraggableScrollableController controller = DraggableScrollableController(); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, snap: true, @@ -388,7 +388,7 @@ void main() { testWidgets('Zero velocity drag snaps to nearest snap target', (WidgetTester tester) async { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); - await tester.pumpWidget(_boilerplate(null, + await tester.pumpWidget(boilerplateWidget(null, snap: true, stackKey: stackKey, containerKey: containerKey, @@ -442,7 +442,7 @@ void main() { testWidgets('Setting snapSizes to $snapSizes resolves to min and max', (WidgetTester tester) async { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); - await tester.pumpWidget(_boilerplate(null, + await tester.pumpWidget(boilerplateWidget(null, snap: true, stackKey: stackKey, containerKey: containerKey, @@ -470,7 +470,7 @@ void main() { testWidgets('Min and max are implicitly added to snapSizes', (WidgetTester tester) async { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); - await tester.pumpWidget(_boilerplate(null, + await tester.pumpWidget(boilerplateWidget(null, snap: true, stackKey: stackKey, containerKey: containerKey, @@ -497,7 +497,7 @@ void main() { testWidgets('Changes to widget parameters are propagated', (WidgetTester tester) async { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, stackKey: stackKey, containerKey: containerKey, @@ -510,7 +510,7 @@ void main() { ); // Pump the same widget but with a new initial child size. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, stackKey: stackKey, containerKey: containerKey, @@ -525,7 +525,7 @@ void main() { ); // Pump the same widget but with a new max child size. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, stackKey: stackKey, containerKey: containerKey, @@ -547,7 +547,7 @@ void main() { ); // Pump the same widget but with a new max child size and initial size. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, stackKey: stackKey, containerKey: containerKey, @@ -567,7 +567,7 @@ void main() { await tester.drag(find.text('Item 1'), Offset(0, .2 * screenHeight)); // Pump the same widget but with snapping enabled. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, snap: true, stackKey: stackKey, @@ -586,7 +586,7 @@ void main() { final List snapSizes = [.6]; // Change the snap sizes. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, snap: true, stackKey: stackKey, @@ -605,7 +605,7 @@ void main() { testWidgets('Fling snaps in direction of momentum', (WidgetTester tester) async { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); - await tester.pumpWidget(_boilerplate(null, + await tester.pumpWidget(boilerplateWidget(null, snap: true, stackKey: stackKey, containerKey: containerKey, @@ -631,14 +631,14 @@ void main() { }, variant: TargetPlatformVariant.all()); testWidgets("Changing parameters with an un-listened controller doesn't throw", (WidgetTester tester) async { - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, snap: true, // Will prevent the sheet's child from listening to the controller. ignoreController: true, )); await tester.pumpAndSettle(); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, snap: true, )); @@ -647,7 +647,7 @@ void main() { testWidgets('ScrollNotification correctly dispatched when flung without covering its container', (WidgetTester tester) async { final List notificationTypes = []; - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, onScrollNotification: (ScrollNotification notification) { notificationTypes.add(notification.runtimeType); @@ -668,7 +668,7 @@ void main() { testWidgets('ScrollNotification correctly dispatched when flung with contents scroll', (WidgetTester tester) async { final List notificationTypes = []; - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, onScrollNotification: (ScrollNotification notification) { notificationTypes.add(notification.runtimeType); @@ -691,7 +691,7 @@ void main() { testWidgets('Do not crash when remove the tree during animation.', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/89214 - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, onScrollNotification: (ScrollNotification notification) { return false; @@ -712,7 +712,7 @@ void main() { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); final DraggableScrollableController controller = DraggableScrollableController(); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -789,7 +789,7 @@ void main() { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); final DraggableScrollableController controller = DraggableScrollableController(); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -836,7 +836,7 @@ void main() { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); final DraggableScrollableController controller = DraggableScrollableController(); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -845,7 +845,7 @@ void main() { await tester.pumpAndSettle(); // Pump a new sheet with the same controller. This will dispose of the old sheet first. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -868,7 +868,7 @@ void main() { final DraggableScrollableController controller = DraggableScrollableController(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, - child: _boilerplate( + child: boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -904,7 +904,7 @@ void main() { final DraggableScrollableController controller = DraggableScrollableController(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, - child: _boilerplate( + child: boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -937,7 +937,7 @@ void main() { final DraggableScrollableController controller = DraggableScrollableController(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, - child: _boilerplate( + child: boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -977,7 +977,7 @@ void main() { const Key stackKey = ValueKey('stack'); const Key containerKey = ValueKey('container'); final DraggableScrollableController controller = DraggableScrollableController(); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -1009,14 +1009,14 @@ void main() { textDirection: TextDirection.ltr, child: Stack( children: [ - _boilerplate( + boilerplateWidget( null, controller: controller, ), - _boilerplate( + boilerplateWidget( null, controller: controller, - ) + ), ], ), ), null, EnginePhase.build); @@ -1031,7 +1031,7 @@ void main() { controller.addListener(() { loggedSizes.add(controller.size); }); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -1079,7 +1079,7 @@ void main() { controller.addListener(() { loggedSizes.add(controller.size); }); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -1098,7 +1098,7 @@ void main() { loggedSizes.clear(); // Update a parameter without forcing a change in the current size. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, minChildSize: .1, controller: controller, @@ -1121,7 +1121,7 @@ void main() { controller.addListener(() { loggedSizes.add(controller.size); }); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, stackKey: stackKey, @@ -1136,7 +1136,7 @@ void main() { // Set a new `initialChildSize` which will trigger a size change because we // haven't moved away initial size yet. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, initialChildSize: .6, controller: controller, @@ -1153,7 +1153,7 @@ void main() { loggedSizes.clear(); // Set a `minChildSize` greater than the current size. - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, minChildSize: .4, controller: controller, @@ -1174,7 +1174,7 @@ void main() { expect(() => controller.pixelsToSize(0), throwsAssertionError); expect(() => controller.sizeToPixels(0), throwsAssertionError); - await tester.pumpWidget(_boilerplate( + await tester.pumpWidget(boilerplateWidget( null, controller: controller, )); @@ -1200,7 +1200,7 @@ void main() { final DraggableScrollableController controller = DraggableScrollableController(); expect(controller.isAttached, false); expect(()=>controller.size, throwsAssertionError); - final Widget boilerplate = _boilerplate( + final Widget boilerplate = boilerplateWidget( null, minChildSize: 0.4, controller: controller, @@ -1213,7 +1213,7 @@ void main() { testWidgets('DraggableScrollableController.animateTo should not leak Ticker', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/102483 final DraggableScrollableController controller = DraggableScrollableController(); - await tester.pumpWidget(_boilerplate(() {}, controller: controller)); + await tester.pumpWidget(boilerplateWidget(() {}, controller: controller)); controller.animateTo(0.0, curve: Curves.linear, duration: const Duration(milliseconds: 200)); await tester.pump(); diff --git a/packages/flutter/test/widgets/editable_text_test.dart b/packages/flutter/test/widgets/editable_text_test.dart index 4b0226ebb82fe..322eba34f7b7d 100644 --- a/packages/flutter/test/widgets/editable_text_test.dart +++ b/packages/flutter/test/widgets/editable_text_test.dart @@ -95,7 +95,7 @@ void main() { // More technically, when an EditableText is given a particular [action], Flutter // requests [serializedActionName] when attaching to the platform's input // system. - Future _desiredKeyboardActionIsRequested({ + Future desiredKeyboardActionIsRequested({ required WidgetTester tester, TextInputAction? action, String serializedActionName = '', @@ -292,7 +292,7 @@ void main() { }); testWidgets('Keyboard is configured for "unspecified" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.unspecified, serializedActionName: 'TextInputAction.unspecified', @@ -300,7 +300,7 @@ void main() { }); testWidgets('Keyboard is configured for "none" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.none, serializedActionName: 'TextInputAction.none', @@ -308,7 +308,7 @@ void main() { }); testWidgets('Keyboard is configured for "done" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.done, serializedActionName: 'TextInputAction.done', @@ -316,7 +316,7 @@ void main() { }); testWidgets('Keyboard is configured for "send" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.send, serializedActionName: 'TextInputAction.send', @@ -324,7 +324,7 @@ void main() { }); testWidgets('Keyboard is configured for "go" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.go, serializedActionName: 'TextInputAction.go', @@ -332,7 +332,7 @@ void main() { }); testWidgets('Keyboard is configured for "search" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.search, serializedActionName: 'TextInputAction.search', @@ -340,7 +340,7 @@ void main() { }); testWidgets('Keyboard is configured for "send" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.send, serializedActionName: 'TextInputAction.send', @@ -348,7 +348,7 @@ void main() { }); testWidgets('Keyboard is configured for "next" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.next, serializedActionName: 'TextInputAction.next', @@ -356,7 +356,7 @@ void main() { }); testWidgets('Keyboard is configured for "previous" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.previous, serializedActionName: 'TextInputAction.previous', @@ -364,7 +364,7 @@ void main() { }); testWidgets('Keyboard is configured for "continue" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.continueAction, serializedActionName: 'TextInputAction.continueAction', @@ -372,7 +372,7 @@ void main() { }); testWidgets('Keyboard is configured for "join" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.join, serializedActionName: 'TextInputAction.join', @@ -380,7 +380,7 @@ void main() { }); testWidgets('Keyboard is configured for "route" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.route, serializedActionName: 'TextInputAction.route', @@ -388,7 +388,7 @@ void main() { }); testWidgets('Keyboard is configured for "emergencyCall" action when explicitly requested', (WidgetTester tester) async { - await _desiredKeyboardActionIsRequested( + await desiredKeyboardActionIsRequested( tester: tester, action: TextInputAction.emergencyCall, serializedActionName: 'TextInputAction.emergencyCall', @@ -2386,7 +2386,7 @@ void main() { final TextInputAction action = focusVariants.currentValue!; expect(actionShouldLoseFocus.containsKey(action), isTrue); - Future _ensureCorrectFocusHandlingForAction( + Future ensureCorrectFocusHandlingForAction( TextInputAction action, { required bool shouldLoseFocus, bool shouldFocusNext = false, @@ -2433,7 +2433,7 @@ void main() { } try { - await _ensureCorrectFocusHandlingForAction( + await ensureCorrectFocusHandlingForAction( action, shouldLoseFocus: actionShouldLoseFocus[action]!, shouldFocusNext: action == TextInputAction.next, @@ -3848,7 +3848,7 @@ void main() { }); group('a11y copy/cut/paste', () { - Future _buildApp(MockTextSelectionControls controls, WidgetTester tester) { + Future buildApp(MockTextSelectionControls controls, WidgetTester tester) { return tester.pumpWidget(MaterialApp( home: EditableText( backgroundCursorColor: Colors.grey, @@ -3879,7 +3879,7 @@ void main() { controls.testCanCut = false; controls.testCanPaste = false; - await _buildApp(controls, tester); + await buildApp(controls, tester); await tester.tap(find.byType(EditableText)); await tester.pump(); @@ -3897,7 +3897,7 @@ void main() { ); controls.testCanCopy = true; - await _buildApp(controls, tester); + await buildApp(controls, tester); expect( semantics, includesNodeWith( @@ -3914,7 +3914,7 @@ void main() { controls.testCanCopy = false; controls.testCanPaste = true; - await _buildApp(controls, tester); + await buildApp(controls, tester); await tester.pumpAndSettle(); expect( semantics, @@ -3932,7 +3932,7 @@ void main() { controls.testCanPaste = false; controls.testCanCut = true; - await _buildApp(controls, tester); + await buildApp(controls, tester); expect( semantics, includesNodeWith( @@ -3950,7 +3950,7 @@ void main() { controls.testCanCopy = true; controls.testCanCut = true; controls.testCanPaste = true; - await _buildApp(controls, tester); + await buildApp(controls, tester); expect( semantics, includesNodeWith( @@ -3974,7 +3974,7 @@ void main() { controls.testCanCopy = true; controls.testCanCut = true; controls.testCanPaste = true; - await _buildApp(controls, tester); + await buildApp(controls, tester); await tester.tap(find.byType(EditableText)); await tester.pump(); diff --git a/packages/flutter/test/widgets/heroes_test.dart b/packages/flutter/test/widgets/heroes_test.dart index 3eacf3537d5cc..0a64588427187 100644 --- a/packages/flutter/test/widgets/heroes_test.dart +++ b/packages/flutter/test/widgets/heroes_test.dart @@ -1185,22 +1185,22 @@ Future main() async { await tester.pump(const Duration(milliseconds: 100)); expect(tester.getTopLeft(find.byKey(heroABKey)).dy, 100.0); - bool _isVisible(Element node) { - bool isVisible = true; + bool isVisible(Element node) { + bool visible = true; node.visitAncestorElements((Element ancestor) { final RenderObject r = ancestor.renderObject!; if (r is RenderAnimatedOpacity && r.opacity.value == 0) { - isVisible = false; + visible = false; return false; } return true; }); - return isVisible; + return visible; } // Of all heroes only one should be visible now. final Iterable elements = find.text('Hero').evaluate(); - expect(elements.where(_isVisible).length, 1); + expect(elements.where(isVisible).length, 1); // Hero BC's flight finishes normally. await tester.pump(const Duration(milliseconds: 300)); diff --git a/packages/flutter/test/widgets/image_test.dart b/packages/flutter/test/widgets/image_test.dart index 084b01db138f5..026983bc8822b 100644 --- a/packages/flutter/test/widgets/image_test.dart +++ b/packages/flutter/test/widgets/image_test.dart @@ -1686,7 +1686,7 @@ void main() { expect(tester.takeException(), 'threw'); }); - Future _testRotatedImage(WidgetTester tester, bool isAntiAlias) async { + Future testRotatedImage(WidgetTester tester, bool isAntiAlias) async { final Key key = UniqueKey(); await tester.pumpWidget(RepaintBoundary( key: key, @@ -1717,8 +1717,8 @@ void main() { testWidgets( 'Rotated images', (WidgetTester tester) async { - await _testRotatedImage(tester, true); - await _testRotatedImage(tester, false); + await testRotatedImage(tester, true); + await testRotatedImage(tester, false); }, skip: kIsWeb, // https://github.com/flutter/flutter/issues/87933. ); diff --git a/packages/flutter/test/widgets/layout_builder_and_parent_data_test.dart b/packages/flutter/test/widgets/layout_builder_and_parent_data_test.dart index a6ab9a32b23eb..70f42972262b1 100644 --- a/packages/flutter/test/widgets/layout_builder_and_parent_data_test.dart +++ b/packages/flutter/test/widgets/layout_builder_and_parent_data_test.dart @@ -60,10 +60,12 @@ void main() { int frame = 1; await tester.pumpWidget(SizeChanger( // when this is triggered, the child LayoutBuilder will build again child: LayoutBuilder(builder: (BuildContext context, BoxConstraints constraints) { - return Column(children: [Expanded( - flex: frame, // this is different after the next pump, so that the parentData has to be applied again - child: Container(height: 100.0), - )]); + return Column(children: [ + Expanded( + flex: frame, // this is different after the next pump, so that the parentData has to be applied again + child: Container(height: 100.0), + ), + ]); }), )); frame += 1; diff --git a/packages/flutter/test/widgets/mouse_region_test.dart b/packages/flutter/test/widgets/mouse_region_test.dart index 7da940729dfaa..5e0c937ed642f 100644 --- a/packages/flutter/test/widgets/mouse_region_test.dart +++ b/packages/flutter/test/widgets/mouse_region_test.dart @@ -793,7 +793,7 @@ void main() { await tester.pumpWidget( MouseRegion( onEnter: (PointerEnterEvent _) {}, - child: const Opacity(opacity: 0.5, child: Placeholder()), + child: const RepaintBoundary(child: Placeholder()), ), ); @@ -1556,16 +1556,16 @@ void main() { await gesture.addPointer(location: const Offset(5, 5)); addTearDown(gesture.removePointer); - void _handleHover(PointerHoverEvent _) {} - void _handlePaintChild() { logs.add('paint'); } + void handleHover(PointerHoverEvent _) {} + void handlePaintChild() { logs.add('paint'); } await tester.pumpWidget(_Scaffold( topLeft: SizedBox( height: 10, width: 10, child: MouseRegion( - onHover: _handleHover, - child: CustomPaint(painter: _DelegatedPainter(onPaint: _handlePaintChild)), + onHover: handleHover, + child: CustomPaint(painter: _DelegatedPainter(onPaint: handlePaintChild)), ), ), background: MouseRegion(onEnter: (_) { logs.add('hover-enter'); }), @@ -1584,8 +1584,8 @@ void main() { opaque: false, // Dummy callback so that MouseRegion stays affective after opaque // turns false. - onHover: _handleHover, - child: CustomPaint(painter: _DelegatedPainter(onPaint: _handlePaintChild)), + onHover: handleHover, + child: CustomPaint(painter: _DelegatedPainter(onPaint: handlePaintChild)), ), ), background: MouseRegion(onEnter: (_) { logs.add('hover-enter'); }), diff --git a/packages/flutter/test/widgets/multichildobject_with_keys_test.dart b/packages/flutter/test/widgets/multichildobject_with_keys_test.dart index 2a45d05049ab8..7fa2045877d74 100644 --- a/packages/flutter/test/widgets/multichildobject_with_keys_test.dart +++ b/packages/flutter/test/widgets/multichildobject_with_keys_test.dart @@ -85,7 +85,7 @@ void main() { const ValueKey key1 = ValueKey(1); const ValueKey key2 = ValueKey(2); - Future _buildWithKey(Key key) { + Future buildWithKey(Key key) { return tester.pumpWidget(Column( children: [ const Text('Text 1', textDirection: TextDirection.ltr, key: key1), @@ -95,11 +95,11 @@ void main() { } // Initial build with two different keys. - await _buildWithKey(key2); + await buildWithKey(key2); expect(tester.takeException(), isNull); // Subsequent build with duplicated keys. - await _buildWithKey(key1); + await buildWithKey(key1); expect( tester.takeException(), isA().having( diff --git a/packages/flutter/test/widgets/navigator_test.dart b/packages/flutter/test/widgets/navigator_test.dart index 050fdeb29ac65..4cc82853d1eb6 100644 --- a/packages/flutter/test/widgets/navigator_test.dart +++ b/packages/flutter/test/widgets/navigator_test.dart @@ -2759,7 +2759,7 @@ void main() { ); }); - Widget _buildFrame(String action) { + Widget buildFrame(String action) { const TestPage myPage = TestPage(key: ValueKey('1'), name:'initial'); final Map routes = { '/' : (BuildContext context) => OnTapPage( @@ -2779,7 +2779,7 @@ void main() { return MaterialApp(routes: routes); } - void _checkException(WidgetTester tester) { + void checkException(WidgetTester tester) { final dynamic exception = tester.takeException(); expect(exception, isFlutterError); final FlutterError error = exception as FlutterError; @@ -2795,24 +2795,24 @@ void main() { } testWidgets('throw if add page-based route using the imperative api - push', (WidgetTester tester) async { - await tester.pumpWidget(_buildFrame('push')); + await tester.pumpWidget(buildFrame('push')); await tester.tap(find.text('push')); await tester.pumpAndSettle(); - _checkException(tester); + checkException(tester); }); testWidgets('throw if add page-based route using the imperative api - pushReplacement', (WidgetTester tester) async { - await tester.pumpWidget(_buildFrame('pushReplacement')); + await tester.pumpWidget(buildFrame('pushReplacement')); await tester.tap(find.text('pushReplacement')); await tester.pumpAndSettle(); - _checkException(tester); + checkException(tester); }); testWidgets('throw if add page-based route using the imperative api - pushAndRemoveUntil', (WidgetTester tester) async { - await tester.pumpWidget(_buildFrame('pushAndRemoveUntil')); + await tester.pumpWidget(buildFrame('pushAndRemoveUntil')); await tester.tap(find.text('pushAndRemoveUntil')); await tester.pumpAndSettle(); - _checkException(tester); + checkException(tester); }); testWidgets('throw if page list is empty', (WidgetTester tester) async { diff --git a/packages/flutter/test/widgets/nested_scroll_view_test.dart b/packages/flutter/test/widgets/nested_scroll_view_test.dart index 62a257e38d59a..7d366fd60f909 100644 --- a/packages/flutter/test/widgets/nested_scroll_view_test.dart +++ b/packages/flutter/test/widgets/nested_scroll_view_test.dart @@ -591,35 +591,28 @@ void main() { )), ); - PhysicalModelLayer? _dfsFindPhysicalLayer(ContainerLayer layer) { - expect(layer, isNotNull); - Layer? child = layer.firstChild; - while (child != null) { - if (child is PhysicalModelLayer) { - return child; - } - if (child is ContainerLayer) { - Layer? innerChild = child.firstChild; - while (innerChild != null) { - if (innerChild is ContainerLayer) { - final PhysicalModelLayer? candidate = _dfsFindPhysicalLayer(innerChild); - if (candidate != null) { - return candidate; - } - } - innerChild = innerChild.nextSibling; - } + Object? dfsFindPhysicalLayer(RenderObject object) { + expect(object, isNotNull); + if (object is RenderPhysicalModel || object is RenderPhysicalShape) { + return object; + } + final List children = []; + object.visitChildren(children.add); + for (final RenderObject child in children) { + final Object? result = dfsFindPhysicalLayer(child); + if (result != null) { + return result; } - child = child.nextSibling; } return null; } - final ContainerLayer nestedScrollViewLayer = find.byType(NestedScrollView).evaluate().first.renderObject!.debugLayer!; - void _checkPhysicalLayer({required double elevation}) { - final PhysicalModelLayer? layer = _dfsFindPhysicalLayer(nestedScrollViewLayer); - expect(layer, isNotNull); - expect(layer!.elevation, equals(elevation)); + final RenderObject nestedScrollViewLayer = find.byType(NestedScrollView).evaluate().first.renderObject!; + void checkPhysicalLayer({required double elevation}) { + final dynamic physicalModel = dfsFindPhysicalLayer(nestedScrollViewLayer); + expect(physicalModel, isNotNull); + // ignore: avoid_dynamic_calls + expect(physicalModel.elevation, equals(elevation)); } int expectedBuildCount = 0; @@ -627,7 +620,7 @@ void main() { expect(buildCount, expectedBuildCount); expect(find.text('Item 2'), findsOneWidget); expect(find.text('Item 18'), findsNothing); - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); // scroll down final TestGesture gesture0 = await tester.startGesture( tester.getCenter(find.text('Item 2')), @@ -643,10 +636,10 @@ void main() { expect(buildCount, expectedBuildCount); await tester.pump(const Duration(milliseconds: 1)); // during shadow animation expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 0.00018262863159179688); + checkPhysicalLayer(elevation: 0.00018262863159179688); await tester.pump(const Duration(seconds: 1)); // end shadow animation expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 4); + checkPhysicalLayer(elevation: 4); // scroll down final TestGesture gesture1 = await tester.startGesture( tester.getCenter(find.text('Item 2')), @@ -654,13 +647,13 @@ void main() { await gesture1.moveBy(const Offset(0.0, -800.0)); await tester.pump(); expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 4); + checkPhysicalLayer(elevation: 4); expect(find.text('Item 2'), findsNothing); expect(find.text('Item 18'), findsOneWidget); await gesture1.up(); await tester.pump(const Duration(seconds: 1)); expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 4); + checkPhysicalLayer(elevation: 4); // swipe left to bring in tap on the right final TestGesture gesture2 = await tester.startGesture( tester.getCenter(find.byType(NestedScrollView)), @@ -680,7 +673,7 @@ void main() { ).dy, tester.getBottomLeft(find.byType(AppBar)).dy + 8.0, ); - _checkPhysicalLayer(elevation: 4); + checkPhysicalLayer(elevation: 4); await gesture2.up(); await tester.pump(); // start sideways scroll await tester.pump(const Duration(seconds: 1)); // end sideways scroll, triggers shadow going away @@ -692,7 +685,7 @@ void main() { expect(buildCount, expectedBuildCount); expect(find.text('Item 18'), findsNothing); expect(find.text('Item 2'), findsOneWidget); - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); await tester.pump(const Duration(seconds: 1)); // just checking we don't rebuild... expect(buildCount, expectedBuildCount); // peek left to see it's still in the right place @@ -707,10 +700,10 @@ void main() { expect(buildCount, expectedBuildCount); expect(find.text('Item 18'), findsOneWidget); expect(find.text('Item 2'), findsOneWidget); - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); await tester.pump(const Duration(seconds: 1)); // shadow finishes coming back expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 4); + checkPhysicalLayer(elevation: 4); await gesture3.moveBy(const Offset(-400.0, 0.0)); await gesture3.up(); await tester.pump(); // left tab view goes away @@ -718,10 +711,10 @@ void main() { await tester.pump(); // shadow goes away starting here expectedBuildCount += 1; expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 4); + checkPhysicalLayer(elevation: 4); await tester.pump(const Duration(seconds: 1)); // shadow finishes going away expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); // scroll back up final TestGesture gesture4 = await tester.startGesture( tester.getCenter(find.byType(NestedScrollView)), @@ -731,11 +724,11 @@ void main() { expect(buildCount, expectedBuildCount); expect(find.text('Item 2'), findsOneWidget); expect(find.text('Item 18'), findsNothing); - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); await gesture4.up(); await tester.pump(const Duration(seconds: 1)); expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); // peek left to see it's now back at zero final TestGesture gesture5 = await tester.startGesture( tester.getCenter(find.byType(NestedScrollView)), @@ -746,14 +739,14 @@ void main() { expect(buildCount, expectedBuildCount); expect(find.text('Item 18'), findsNothing); expect(find.text('Item 2'), findsNWidgets(2)); - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); await tester.pump(const Duration(seconds: 1)); // shadow would be finished coming back - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); await gesture5.up(); await tester.pump(); // right tab view goes away await tester.pumpAndSettle(); expect(buildCount, expectedBuildCount); - _checkPhysicalLayer(elevation: 0); + checkPhysicalLayer(elevation: 0); debugDisableShadows = true; }); @@ -2122,7 +2115,7 @@ void main() { group('Correctly handles 0 velocity inner ballistic scroll activity:', () { // Regression tests for https://github.com/flutter/flutter/issues/17096 - Widget _buildBallisticTest(ScrollController controller) { + Widget buildBallisticTest(ScrollController controller) { return MaterialApp( home: Scaffold( body: NestedScrollView( @@ -2153,7 +2146,7 @@ void main() { // Dragging into an overscroll and holding so that when released, the // ballistic scroll activity has a 0 velocity. final ScrollController controller = ScrollController(); - await tester.pumpWidget(_buildBallisticTest(controller)); + await tester.pumpWidget(buildBallisticTest(controller)); // Last item of the inner scroll view. expect(find.text('Item 49'), findsNothing); @@ -2180,7 +2173,7 @@ void main() { // Tapping while an inner ballistic scroll activity is in progress will // trigger a secondary ballistic scroll activity with a 0 velocity. final ScrollController controller = ScrollController(); - await tester.pumpWidget(_buildBallisticTest(controller)); + await tester.pumpWidget(buildBallisticTest(controller)); // Last item of the inner scroll view. expect(find.text('Item 49'), findsNothing); diff --git a/packages/flutter/test/widgets/overscroll_stretch_indicator_test.dart b/packages/flutter/test/widgets/overscroll_stretch_indicator_test.dart index e4129e5713a35..341f4924962d8 100644 --- a/packages/flutter/test/widgets/overscroll_stretch_indicator_test.dart +++ b/packages/flutter/test/widgets/overscroll_stretch_indicator_test.dart @@ -368,11 +368,11 @@ void main() { color: const Color(0xD0FF0000), height: 100, ), - ) + ), ], - ) + ), ), - ) + ), )); expect(find.text('Index 1'), findsOneWidget); @@ -396,41 +396,43 @@ void main() { testWidgets('Clip behavior is updated as needed', (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/issues/97867 - await tester.pumpWidget(Directionality( + await tester.pumpWidget( + Directionality( textDirection: TextDirection.ltr, child: MediaQuery( data: const MediaQueryData(size: Size(800.0, 600.0)), child: ScrollConfiguration( - behavior: const ScrollBehavior().copyWith(overscroll: false), - child: Column( - children: [ - StretchingOverscrollIndicator( - axisDirection: AxisDirection.down, - child: SizedBox( - height: 300, - child: ListView.builder( - itemCount: 20, - itemBuilder: (BuildContext context, int index){ - return Padding( - padding: const EdgeInsets.all(10.0), - child: Text('Index $index'), - ); - }, - ), + behavior: const ScrollBehavior().copyWith(overscroll: false), + child: Column( + children: [ + StretchingOverscrollIndicator( + axisDirection: AxisDirection.down, + child: SizedBox( + height: 300, + child: ListView.builder( + itemCount: 20, + itemBuilder: (BuildContext context, int index){ + return Padding( + padding: const EdgeInsets.all(10.0), + child: Text('Index $index'), + ); + }, ), ), - Opacity( - opacity: 0.5, - child: Container( - color: const Color(0xD0FF0000), - height: 100, - ), - ) - ], - ) + ), + Opacity( + opacity: 0.5, + child: Container( + color: const Color(0xD0FF0000), + height: 100, + ), + ), + ], + ), ), - ) - )); + ), + ), + ); expect(find.text('Index 1'), findsOneWidget); expect(tester.getCenter(find.text('Index 1')).dy, 51.0); diff --git a/packages/flutter/test/widgets/physical_model_test.dart b/packages/flutter/test/widgets/physical_model_test.dart index ccd8698b1c539..4591603ee31d2 100644 --- a/packages/flutter/test/widgets/physical_model_test.dart +++ b/packages/flutter/test/widgets/physical_model_test.dart @@ -43,30 +43,6 @@ void main() { expect(renderPhysicalShape.clipBehavior, equals(Clip.antiAlias)); }); - testWidgets('PhysicalModel - creates a physical model layer when it needs compositing', (WidgetTester tester) async { - debugDisableShadows = false; - await tester.pumpWidget( - MaterialApp( - home: PhysicalModel( - color: Colors.grey, - shadowColor: Colors.red, - elevation: 1.0, - child: Material(child: TextField(controller: TextEditingController())), - ), - ), - ); - await tester.pump(); - - final RenderPhysicalModel renderPhysicalModel = tester.allRenderObjects.whereType().first; - expect(renderPhysicalModel.needsCompositing, true); - - final PhysicalModelLayer physicalModelLayer = tester.layers.whereType().first; - expect(physicalModelLayer.shadowColor, Colors.red); - expect(physicalModelLayer.color, Colors.grey); - expect(physicalModelLayer.elevation, 1.0); - debugDisableShadows = true; - }); - testWidgets('PhysicalModel - clips when overflows and elevation is 0', (WidgetTester tester) async { const Key key = Key('test'); await tester.pumpWidget( diff --git a/packages/flutter/test/widgets/platform_menu_bar_test.dart b/packages/flutter/test/widgets/platform_menu_bar_test.dart index 1034afdd27c07..cd0a02c9e53a6 100644 --- a/packages/flutter/test/widgets/platform_menu_bar_test.dart +++ b/packages/flutter/test/widgets/platform_menu_bar_test.dart @@ -131,15 +131,15 @@ void main() { 'enabled': true, 'shortcutTrigger': 100, 'shortcutModifiers': 1, - } - ] + }, + ], }, { 'id': 17, 'label': 'Sub Menu 12', 'enabled': true, - } - ] + }, + ], }, { 'id': 20, @@ -153,8 +153,8 @@ void main() { }, ], }, - {'id': 21, 'label': 'Menu 3', 'enabled': false, 'children': >[]} - ] + {'id': 21, 'label': 'Menu 3', 'enabled': false, 'children': >[]}, + ], }), ); }); diff --git a/packages/flutter/test/widgets/routes_test.dart b/packages/flutter/test/widgets/routes_test.dart index 11db69536b1e0..3178857942e5a 100644 --- a/packages/flutter/test/widgets/routes_test.dart +++ b/packages/flutter/test/widgets/routes_test.dart @@ -1504,7 +1504,7 @@ void main() { )); final CurveTween defaultBarrierTween = CurveTween(curve: Curves.ease); - int _getExpectedBarrierTweenAlphaValue(double t) { + int getExpectedBarrierTweenAlphaValue(double t) { return Color.getAlphaFromOpacity(defaultBarrierTween.transform(t)); } @@ -1521,21 +1521,21 @@ void main() { modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.25), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.25), 1), ); await tester.pump(const Duration(milliseconds: 25)); modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.50), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.50), 1), ); await tester.pump(const Duration(milliseconds: 25)); modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.75), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.75), 1), ); await tester.pumpAndSettle(); @@ -1567,7 +1567,7 @@ void main() { )); final CurveTween customBarrierTween = CurveTween(curve: Curves.linear); - int _getExpectedBarrierTweenAlphaValue(double t) { + int getExpectedBarrierTweenAlphaValue(double t) { return Color.getAlphaFromOpacity(customBarrierTween.transform(t)); } @@ -1584,21 +1584,21 @@ void main() { modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.25), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.25), 1), ); await tester.pump(const Duration(milliseconds: 25)); modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.50), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.50), 1), ); await tester.pump(const Duration(milliseconds: 25)); modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.75), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.75), 1), ); await tester.pumpAndSettle(); @@ -1630,7 +1630,7 @@ void main() { )); final CurveTween defaultBarrierTween = CurveTween(curve: Curves.ease); - int _getExpectedBarrierTweenAlphaValue(double t) { + int getExpectedBarrierTweenAlphaValue(double t) { return Color.getAlphaFromOpacity(defaultBarrierTween.transform(t)); } @@ -1647,21 +1647,21 @@ void main() { modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.25), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.25), 1), ); await tester.pump(const Duration(milliseconds: 25)); modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.50), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.50), 1), ); await tester.pump(const Duration(milliseconds: 25)); modalBarrierAnimation = tester.widget(animatedModalBarrier).color; expect( modalBarrierAnimation.value!.alpha, - closeTo(_getExpectedBarrierTweenAlphaValue(0.75), 1), + closeTo(getExpectedBarrierTweenAlphaValue(0.75), 1), ); await tester.pumpAndSettle(); diff --git a/packages/flutter/test/widgets/scroll_aware_image_provider_test.dart b/packages/flutter/test/widgets/scroll_aware_image_provider_test.dart index 8e53f47b2efad..2b6213c0b0259 100644 --- a/packages/flutter/test/widgets/scroll_aware_image_provider_test.dart +++ b/packages/flutter/test/widgets/scroll_aware_image_provider_test.dart @@ -21,11 +21,11 @@ void main() { imageCache.clear(); }); - T _findPhysics(WidgetTester tester) { + T findPhysics(WidgetTester tester) { return Scrollable.of(find.byType(TestWidget).evaluate().first)!.position.physics as T; } - ScrollMetrics _findMetrics(WidgetTester tester) { + ScrollMetrics findMetrics(WidgetTester tester) { return Scrollable.of(find.byType(TestWidget).evaluate().first)!.position; } @@ -89,7 +89,7 @@ void main() { testImageProvider.complete(); expect(imageCache.currentSize, 1); - expect(_findPhysics(tester).velocities, [0]); + expect(findPhysics(tester).velocities, [0]); }); testWidgets('ScrollAwareImageProvider does not delay if in scrollable that is scrolling slowly', (WidgetTester tester) async { @@ -124,7 +124,7 @@ void main() { curve: Curves.fastLinearToSlowEaseIn, ); await tester.pump(); - final RecordingPhysics physics = _findPhysics(tester); + final RecordingPhysics physics = findPhysics(tester); expect(physics.velocities.length, 0); final ImageStream stream = imageProvider.resolve(ImageConfiguration.empty); @@ -132,7 +132,7 @@ void main() { expect( const ScrollPhysics().recommendDeferredLoading( physics.velocities.first, - _findMetrics(tester), + findMetrics(tester), find.byType(TestWidget).evaluate().first, ), false, @@ -181,7 +181,7 @@ void main() { curve: Curves.fastLinearToSlowEaseIn, ); await tester.pump(); - final RecordingPhysics physics = _findPhysics(tester); + final RecordingPhysics physics = findPhysics(tester); expect(physics.velocities.length, 0); final ImageStream stream = imageProvider.resolve(ImageConfiguration.empty); @@ -189,7 +189,7 @@ void main() { expect( const ScrollPhysics().recommendDeferredLoading( physics.velocities.first, - _findMetrics(tester), + findMetrics(tester), find.byType(TestWidget).evaluate().first, ), true, @@ -248,7 +248,7 @@ void main() { curve: Curves.fastLinearToSlowEaseIn, ); await tester.pump(); - final RecordingPhysics physics = _findPhysics(tester); + final RecordingPhysics physics = findPhysics(tester); expect(physics.velocities.length, 0); final ImageStream stream = imageProvider.resolve(ImageConfiguration.empty); @@ -256,7 +256,7 @@ void main() { expect( const ScrollPhysics().recommendDeferredLoading( physics.velocities.first, - _findMetrics(tester), + findMetrics(tester), find.byType(TestWidget).evaluate().first, ), true, @@ -307,7 +307,7 @@ void main() { expect(testImageProvider.configuration, null); expect(imageCache.containsKey(testImageProvider), false); - final ControllablePhysics physics = _findPhysics(tester); + final ControllablePhysics physics = findPhysics(tester); physics.recommendDeferredLoadingValue = true; final ImageStream stream = imageProvider.resolve(ImageConfiguration.empty); @@ -358,7 +358,7 @@ void main() { expect(testImageProvider.configuration, null); expect(imageCache.containsKey(testImageProvider), false); - final ControllablePhysics physics = _findPhysics(tester); + final ControllablePhysics physics = findPhysics(tester); physics.recommendDeferredLoadingValue = true; final ImageStream stream = imageProvider.resolve(ImageConfiguration.empty); diff --git a/packages/flutter/test/widgets/scroll_behavior_test.dart b/packages/flutter/test/widgets/scroll_behavior_test.dart index 434990a2650a6..b45583b6fccf6 100644 --- a/packages/flutter/test/widgets/scroll_behavior_test.dart +++ b/packages/flutter/test/widgets/scroll_behavior_test.dart @@ -82,7 +82,8 @@ void main() { }); testWidgets('ScrollBehavior default android overscroll indicator', (WidgetTester tester) async { - await tester.pumpWidget(Directionality( + await tester.pumpWidget( + Directionality( textDirection: TextDirection.ltr, child: ScrollConfiguration( behavior: const ScrollBehavior(), @@ -92,35 +93,38 @@ void main() { height: 1000.0, width: 1000.0, child: Text('Test'), - ) - ] - ) + ), + ], + ), ), - )); + ), + ); expect(find.byType(StretchingOverscrollIndicator), findsNothing); expect(find.byType(GlowingOverscrollIndicator), findsOneWidget); }, variant: TargetPlatformVariant.only(TargetPlatform.android)); testWidgets('ScrollBehavior stretch android overscroll indicator', (WidgetTester tester) async { - await tester.pumpWidget(Directionality( - textDirection: TextDirection.ltr, - child: MediaQuery( - data: const MediaQueryData(size: Size(800, 600)), - child: ScrollConfiguration( + await tester.pumpWidget( + Directionality( + textDirection: TextDirection.ltr, + child: MediaQuery( + data: const MediaQueryData(size: Size(800, 600)), + child: ScrollConfiguration( behavior: const ScrollBehavior(androidOverscrollIndicator: AndroidOverscrollIndicator.stretch), child: ListView( - children: const [ - SizedBox( - height: 1000.0, - width: 1000.0, - child: Text('Test'), - ) - ] - ) + children: const [ + SizedBox( + height: 1000.0, + width: 1000.0, + child: Text('Test'), + ), + ], + ), + ), ), ), - )); + ); expect(find.byType(StretchingOverscrollIndicator), findsOneWidget); expect(find.byType(GlowingOverscrollIndicator), findsNothing); diff --git a/packages/flutter/test/widgets/scrollable_test.dart b/packages/flutter/test/widgets/scrollable_test.dart index 4a63048f3dbff..b5b6689cbccc1 100644 --- a/packages/flutter/test/widgets/scrollable_test.dart +++ b/packages/flutter/test/widgets/scrollable_test.dart @@ -402,12 +402,14 @@ void main() { MaterialApp( home: CustomScrollView( physics: canDrag ? const AlwaysScrollableScrollPhysics() : const NeverScrollableScrollPhysics(), - slivers: [SliverToBoxAdapter( - child: SizedBox( - height: 2000, - child: GestureDetector(onTap: () {}), + slivers: [ + SliverToBoxAdapter( + child: SizedBox( + height: 2000, + child: GestureDetector(onTap: () {}), + ), ), - )], + ], ), ), ); diff --git a/packages/flutter/test/widgets/scrollbar_test.dart b/packages/flutter/test/widgets/scrollbar_test.dart index d2e0bac3de810..d0ce262492799 100644 --- a/packages/flutter/test/widgets/scrollbar_test.dart +++ b/packages/flutter/test/widgets/scrollbar_test.dart @@ -2423,7 +2423,7 @@ void main() { testWidgets('Scrollbar asserts that a visible track has a visible thumb', (WidgetTester tester) async { final ScrollController scrollController = ScrollController(); - Widget _buildApp() { + Widget buildApp() { return Directionality( textDirection: TextDirection.ltr, child: MediaQuery( @@ -2442,6 +2442,6 @@ void main() { ), ); } - expect(() => tester.pumpWidget(_buildApp()), throwsAssertionError); + expect(() => tester.pumpWidget(buildApp()), throwsAssertionError); }); } diff --git a/packages/flutter/test/widgets/selectable_text_test.dart b/packages/flutter/test/widgets/selectable_text_test.dart index c56899bacbc5e..3e28b67093928 100644 --- a/packages/flutter/test/widgets/selectable_text_test.dart +++ b/packages/flutter/test/widgets/selectable_text_test.dart @@ -2197,7 +2197,7 @@ void main() { actions: [SemanticsAction.longPress], label: 'German greeting for good day', textDirection: TextDirection.ltr, - ) + ), ], ), ignoreTransform: true, ignoreRect: true)); }); @@ -2398,7 +2398,7 @@ void main() { TestSemantics( flags: [ SemanticsFlag.isHidden, - SemanticsFlag.isLink + SemanticsFlag.isLink, ], actions: [SemanticsAction.tap], label: 'off screen', diff --git a/packages/flutter/test/widgets/sliver_visibility_test.dart b/packages/flutter/test/widgets/sliver_visibility_test.dart index 0d96e7beca4f5..e8fc0d492cf4c 100644 --- a/packages/flutter/test/widgets/sliver_visibility_test.dart +++ b/packages/flutter/test/widgets/sliver_visibility_test.dart @@ -35,7 +35,7 @@ void main() { final List log = []; const Key anchor = Key('drag'); - Widget _boilerPlate(Widget sliver) { + Widget boilerPlate(Widget sliver) { return Localizations( locale: const Locale('en', 'us'), delegates: const >[ @@ -75,7 +75,7 @@ void main() { // also verifies that the widget can dynamically change from state to state. // Default - await tester.pumpWidget(_boilerPlate(SliverVisibility(sliver: testChild))); + await tester.pumpWidget(boilerPlate(SliverVisibility(sliver: testChild))); expect(find.byType(Text, skipOffstage: false), findsOneWidget); expect(find.text('a true', skipOffstage: false), findsOneWidget); expect(find.byType(SliverVisibility), findsOneWidget); @@ -91,7 +91,7 @@ void main() { log.clear(); // visible: false - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, ))); @@ -108,7 +108,7 @@ void main() { log.clear(); // visible: false, with replacementSliver - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, replacementSliver: const SliverToBoxAdapter(child: Placeholder()), visible: false, @@ -126,7 +126,7 @@ void main() { log.clear(); // visible: true, with replacementSliver - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, replacementSliver: const SliverToBoxAdapter(child: Placeholder()), ))); @@ -145,7 +145,7 @@ void main() { log.clear(); // visible: true, maintain all - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, maintainState: true, maintainAnimation: true, @@ -167,7 +167,7 @@ void main() { log.clear(); // visible: false, maintain all - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, maintainState: true, @@ -190,7 +190,7 @@ void main() { log.clear(); // visible: false, maintain all, replacementSliver - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, replacementSliver: const SliverToBoxAdapter(child: Placeholder()), visible: false, @@ -216,7 +216,7 @@ void main() { log.clear(); // visible: false, maintain all but semantics - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, maintainState: true, @@ -239,7 +239,7 @@ void main() { log.clear(); // visible: false, maintain all but interactivity - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, maintainState: true, @@ -262,7 +262,7 @@ void main() { log.clear(); // visible: false, maintain state, animation, size. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, maintainState: true, @@ -284,7 +284,7 @@ void main() { log.clear(); // visible: false, maintain state and animation. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, maintainState: true, @@ -305,7 +305,7 @@ void main() { log.clear(); // visible: false, maintain state. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, maintainState: true, @@ -328,7 +328,7 @@ void main() { // works. // visible: true, maintain state - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, maintainState: true, ))); @@ -347,7 +347,7 @@ void main() { log.clear(); // visible: false, maintain state. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, maintainState: true, @@ -367,7 +367,7 @@ void main() { log.clear(); // visible: true, maintain state. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, maintainState: true, ))); @@ -386,7 +386,7 @@ void main() { log.clear(); // visible: false, maintain state. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, maintainState: true, @@ -408,7 +408,7 @@ void main() { // Same but without maintainState. // visible: false. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, ))); @@ -425,7 +425,7 @@ void main() { log.clear(); // visible: true. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, ))); expect(find.byType(Text), findsOneWidget); @@ -443,7 +443,7 @@ void main() { log.clear(); //visible: false. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, visible: false, ))); @@ -460,7 +460,7 @@ void main() { log.clear(); // visible: true. - await tester.pumpWidget(_boilerPlate(SliverVisibility( + await tester.pumpWidget(boilerPlate(SliverVisibility( sliver: testChild, ))); expect(find.byType(Text), findsOneWidget); diff --git a/packages/flutter/test/widgets/slivers_test.dart b/packages/flutter/test/widgets/slivers_test.dart index 05effc1307d03..fee8c0fc984e7 100644 --- a/packages/flutter/test/widgets/slivers_test.dart +++ b/packages/flutter/test/widgets/slivers_test.dart @@ -412,7 +412,7 @@ void main() { (WidgetTester tester) async { // Regression test for https://github.com/flutter/flutter/pull/59888. bool skip = true; - Widget _buildItem(BuildContext context, int index) { + Widget buildItem(BuildContext context, int index) { return !skip || index.isEven ? Card( child: ListTile( @@ -431,7 +431,7 @@ void main() { slivers: [ SliverList( delegate: SliverChildBuilderDelegate( - _buildItem, + buildItem, childCount: 30, ), ), @@ -460,7 +460,7 @@ void main() { slivers: [ SliverList( delegate: SliverChildBuilderDelegate( - _buildItem, + buildItem, childCount: 30, ), ), @@ -643,7 +643,7 @@ void main() { expect(controller.offset, 800.0); }); - Widget _boilerPlate(Widget sliver) { + Widget boilerPlate(Widget sliver) { return Localizations( locale: const Locale('en', 'us'), delegates: const >[ @@ -663,7 +663,7 @@ void main() { group('SliverOffstage - ', () { testWidgets('offstage true', (WidgetTester tester) async { final SemanticsTester semantics = SemanticsTester(tester); - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOffstage( sliver: SliverToBoxAdapter( child: Text('a'), @@ -681,7 +681,7 @@ void main() { testWidgets('offstage false', (WidgetTester tester) async { final SemanticsTester semantics = SemanticsTester(tester); - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOffstage( offstage: false, sliver: SliverToBoxAdapter( @@ -704,7 +704,7 @@ void main() { final SemanticsTester semantics = SemanticsTester(tester); // Opacity 1.0: Semantics and painting - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOpacity( sliver: SliverToBoxAdapter( child: Text( @@ -720,7 +720,7 @@ void main() { expect(find.byType(SliverOpacity), paints..paragraph()); // Opacity 0.0: Nothing - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOpacity( sliver: SliverToBoxAdapter( child: Text( @@ -736,7 +736,7 @@ void main() { expect(find.byType(SliverOpacity), paintsNothing); // Opacity 0.0 with semantics: Just semantics - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOpacity( sliver: SliverToBoxAdapter( child: Text( @@ -753,7 +753,7 @@ void main() { expect(find.byType(SliverOpacity), paintsNothing); // Opacity 0.0 without semantics: Nothing - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOpacity( sliver: SliverToBoxAdapter( child: Text( @@ -769,7 +769,7 @@ void main() { expect(find.byType(SliverOpacity), paintsNothing); // Opacity 0.1: Semantics and painting - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOpacity( sliver: SliverToBoxAdapter( child: Text( @@ -785,7 +785,7 @@ void main() { expect(find.byType(SliverOpacity), paints..paragraph()); // Opacity 0.1 without semantics: Still has semantics and painting - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOpacity( sliver: SliverToBoxAdapter( child: Text( @@ -801,7 +801,7 @@ void main() { expect(find.byType(SliverOpacity), paints..paragraph()); // Opacity 0.1 with semantics: Semantics and painting - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( const SliverOpacity( sliver: SliverToBoxAdapter( child: Text( @@ -825,7 +825,7 @@ void main() { testWidgets('ignores pointer events', (WidgetTester tester) async { final SemanticsTester semantics = SemanticsTester(tester); final List events = []; - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( SliverIgnorePointer( ignoringSemantics: false, sliver: SliverToBoxAdapter( @@ -846,7 +846,7 @@ void main() { testWidgets('ignores semantics', (WidgetTester tester) async { final SemanticsTester semantics = SemanticsTester(tester); final List events = []; - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( SliverIgnorePointer( ignoring: false, ignoringSemantics: true, @@ -868,7 +868,7 @@ void main() { testWidgets('ignores pointer events & semantics', (WidgetTester tester) async { final SemanticsTester semantics = SemanticsTester(tester); final List events = []; - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( SliverIgnorePointer( ignoringSemantics: true, sliver: SliverToBoxAdapter( @@ -889,7 +889,7 @@ void main() { testWidgets('ignores nothing', (WidgetTester tester) async { final SemanticsTester semantics = SemanticsTester(tester); final List events = []; - await tester.pumpWidget(_boilerPlate( + await tester.pumpWidget(boilerPlate( SliverIgnorePointer( ignoring: false, ignoringSemantics: false, diff --git a/packages/flutter/test/widgets/text_selection_test.dart b/packages/flutter/test/widgets/text_selection_test.dart index 312101fa0e878..80c36f6d09253 100644 --- a/packages/flutter/test/widgets/text_selection_test.dart +++ b/packages/flutter/test/widgets/text_selection_test.dart @@ -24,16 +24,16 @@ void main() { late int dragEndCount; const Offset forcePressOffset = Offset(400.0, 50.0); - void _handleTapDown(TapDownDetails details) { tapCount++; } - void _handleSingleTapUp(TapUpDetails details) { singleTapUpCount++; } - void _handleSingleTapCancel() { singleTapCancelCount++; } - void _handleSingleLongTapStart(LongPressStartDetails details) { singleLongTapStartCount++; } - void _handleDoubleTapDown(TapDownDetails details) { doubleTapDownCount++; } - void _handleForcePressStart(ForcePressDetails details) { forcePressStartCount++; } - void _handleForcePressEnd(ForcePressDetails details) { forcePressEndCount++; } - void _handleDragSelectionStart(DragStartDetails details) { dragStartCount++; } - void _handleDragSelectionUpdate(DragStartDetails _, DragUpdateDetails details) { dragUpdateCount++; } - void _handleDragSelectionEnd(DragEndDetails details) { dragEndCount++; } + void handleTapDown(TapDownDetails details) { tapCount++; } + void handleSingleTapUp(TapUpDetails details) { singleTapUpCount++; } + void handleSingleTapCancel() { singleTapCancelCount++; } + void handleSingleLongTapStart(LongPressStartDetails details) { singleLongTapStartCount++; } + void handleDoubleTapDown(TapDownDetails details) { doubleTapDownCount++; } + void handleForcePressStart(ForcePressDetails details) { forcePressStartCount++; } + void handleForcePressEnd(ForcePressDetails details) { forcePressEndCount++; } + void handleDragSelectionStart(DragStartDetails details) { dragStartCount++; } + void handleDragSelectionUpdate(DragStartDetails _, DragUpdateDetails details) { dragUpdateCount++; } + void handleDragSelectionEnd(DragEndDetails details) { dragEndCount++; } setUp(() { tapCount = 0; @@ -52,16 +52,16 @@ void main() { await tester.pumpWidget( TextSelectionGestureDetector( behavior: HitTestBehavior.opaque, - onTapDown: _handleTapDown, - onSingleTapUp: _handleSingleTapUp, - onSingleTapCancel: _handleSingleTapCancel, - onSingleLongTapStart: _handleSingleLongTapStart, - onDoubleTapDown: _handleDoubleTapDown, - onForcePressStart: _handleForcePressStart, - onForcePressEnd: _handleForcePressEnd, - onDragSelectionStart: _handleDragSelectionStart, - onDragSelectionUpdate: _handleDragSelectionUpdate, - onDragSelectionEnd: _handleDragSelectionEnd, + onTapDown: handleTapDown, + onSingleTapUp: handleSingleTapUp, + onSingleTapCancel: handleSingleTapCancel, + onSingleLongTapStart: handleSingleLongTapStart, + onDoubleTapDown: handleDoubleTapDown, + onForcePressStart: handleForcePressStart, + onForcePressEnd: handleForcePressEnd, + onDragSelectionStart: handleDragSelectionStart, + onDragSelectionUpdate: handleDragSelectionUpdate, + onDragSelectionEnd: handleDragSelectionEnd, child: Container(), ), ); diff --git a/packages/flutter/test/widgets/transform_test.dart b/packages/flutter/test/widgets/transform_test.dart index 621a4ee77f3ce..47a771756de84 100644 --- a/packages/flutter/test/widgets/transform_test.dart +++ b/packages/flutter/test/widgets/transform_test.dart @@ -240,8 +240,7 @@ void main() { child: ClipRect( child: Transform( transform: Matrix4.diagonal3Values(0.5, 0.5, 1.0), - child: Opacity( - opacity: 0.9, + child: RepaintBoundary( child: Container( color: const Color(0xFF00FF00), ), @@ -265,7 +264,7 @@ void main() { await tester.pumpWidget( Transform.rotate( angle: math.pi / 2.0, - child: Opacity(opacity: 0.5, child: Container()), + child: RepaintBoundary(child: Container()), ), ); @@ -305,7 +304,7 @@ void main() { await tester.pumpWidget( Transform.translate( offset: const Offset(100.0, 50.0), - child: Opacity(opacity: 0.5, child: Container()), + child: RepaintBoundary(child: Container()), ), ); @@ -320,7 +319,7 @@ void main() { await tester.pumpWidget( Transform.scale( scale: 2.0, - child: Opacity(opacity: 0.5, child: Container()), + child: RepaintBoundary(child: Container()), ), ); @@ -364,7 +363,7 @@ void main() { expect(pointerDown, isTrue); }); - Widget _generateTransform(bool needsCompositing, double angle) { + Widget generateTransform(bool needsCompositing, double angle) { final Widget customPaint = CustomPaint(painter: TestRectPainter()); return Transform( transform: MatrixUtils.createCylindricalProjectionTransform( @@ -381,12 +380,12 @@ void main() { '3D transform renders the same with or without needsCompositing', (WidgetTester tester) async { 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 OffsetLayer layer = renderBox.debugLayer! as OffsetLayer; 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))); await expectLater(find.byType(RepaintBoundary).first, matchesReferenceImage(imageWithCompositing)); } }, @@ -412,8 +411,8 @@ void main() { 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, - 25.0, 25.0, 0.0, 1.0] - ); + 25.0, 25.0, 0.0, 1.0, + ]); }); testWidgets('Transform.scale with FilterQuality produces filter layer', (WidgetTester tester) async { @@ -430,8 +429,8 @@ void main() { 3.14159, 0.0, 0.0, 0.0, 0.0, 3.14159, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, - -856.636, -642.477, 0.0, 1.0] - ); + -856.636, -642.477, 0.0, 1.0, + ]); }); testWidgets('Transform.rotate with FilterQuality produces filter layer', (WidgetTester tester) async { @@ -448,8 +447,8 @@ void main() { moreOrLessEquals(0.7071067811865476), moreOrLessEquals(0.7071067811865475), 0.0, 0.0, moreOrLessEquals(-0.7071067811865475), moreOrLessEquals(0.7071067811865476), 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, - moreOrLessEquals(329.28932188134524), moreOrLessEquals(-194.97474683058329), 0.0, 1.0] - ); + moreOrLessEquals(329.28932188134524), moreOrLessEquals(-194.97474683058329), 0.0, 1.0, + ]); }); testWidgets('Offset Transform.rotate with FilterQuality produces filter layer', (WidgetTester tester) async { @@ -470,8 +469,8 @@ void main() { moreOrLessEquals(0.7071067811865476), moreOrLessEquals(0.7071067811865475), 0.0, 0.0, moreOrLessEquals(-0.7071067811865475), moreOrLessEquals(0.7071067811865476), 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, - moreOrLessEquals(329.28932188134524), moreOrLessEquals(-194.97474683058329), 0.0, 1.0] - ); + moreOrLessEquals(329.28932188134524), moreOrLessEquals(-194.97474683058329), 0.0, 1.0, + ]); }); testWidgets('Transform layers update to match child and filterQuality', (WidgetTester tester) async { diff --git a/packages/flutter/test/widgets/transitions_test.dart b/packages/flutter/test/widgets/transitions_test.dart index 07dee3f06abe5..4cb939ff74b5d 100644 --- a/packages/flutter/test/widgets/transitions_test.dart +++ b/packages/flutter/test/widgets/transitions_test.dart @@ -25,11 +25,13 @@ void main() { width: 4.0, ), borderRadius: BorderRadius.zero, - boxShadow: const [BoxShadow( - color: Color(0x66000000), - blurRadius: 10.0, - spreadRadius: 4.0, - )], + boxShadow: const [ + BoxShadow( + color: Color(0x66000000), + blurRadius: 10.0, + spreadRadius: 4.0, + ), + ], ), end: BoxDecoration( color: const Color(0xFF000000), @@ -346,7 +348,7 @@ void main() { }); group('FadeTransition', () { - double _getOpacity(WidgetTester tester, String textValue) { + double getOpacity(WidgetTester tester, String textValue) { final FadeTransition opacityWidget = tester.widget( find.ancestor( of: find.text(textValue), @@ -368,28 +370,28 @@ void main() { await tester.pumpWidget(widget); - expect(_getOpacity(tester, 'Fade In'), 0.0); + expect(getOpacity(tester, 'Fade In'), 0.0); controller.value = 0.25; await tester.pump(); - expect(_getOpacity(tester, 'Fade In'), 0.25); + expect(getOpacity(tester, 'Fade In'), 0.25); controller.value = 0.5; await tester.pump(); - expect(_getOpacity(tester, 'Fade In'), 0.5); + expect(getOpacity(tester, 'Fade In'), 0.5); controller.value = 0.75; await tester.pump(); - expect(_getOpacity(tester, 'Fade In'), 0.75); + expect(getOpacity(tester, 'Fade In'), 0.75); controller.value = 1.0; await tester.pump(); - expect(_getOpacity(tester, 'Fade In'), 1.0); + expect(getOpacity(tester, 'Fade In'), 1.0); }); }); group('SliverFadeTransition', () { - double _getOpacity(WidgetTester tester, String textValue) { + double getOpacity(WidgetTester tester, String textValue) { final SliverFadeTransition opacityWidget = tester.widget( find.ancestor( of: find.text(textValue), @@ -427,23 +429,23 @@ void main() { await tester.pumpWidget(widget); - expect(_getOpacity(tester, 'Fade In'), 0.0); + expect(getOpacity(tester, 'Fade In'), 0.0); controller.value = 0.25; await tester.pump(); - expect(_getOpacity(tester, 'Fade In'), 0.25); + expect(getOpacity(tester, 'Fade In'), 0.25); controller.value = 0.5; await tester.pump(); - expect(_getOpacity(tester, 'Fade In'), 0.5); + expect(getOpacity(tester, 'Fade In'), 0.5); controller.value = 0.75; await tester.pump(); - expect(_getOpacity(tester, 'Fade In'), 0.75); + expect(getOpacity(tester, 'Fade In'), 0.75); controller.value = 1.0; await tester.pump(); - expect(_getOpacity(tester, 'Fade In'), 1.0); + expect(getOpacity(tester, 'Fade In'), 1.0); }); }); diff --git a/packages/flutter_driver/lib/src/common/wait.dart b/packages/flutter_driver/lib/src/common/wait.dart index b0cc8cfbb4e24..d6dd2b9954e6f 100644 --- a/packages/flutter_driver/lib/src/common/wait.dart +++ b/packages/flutter_driver/lib/src/common/wait.dart @@ -65,7 +65,7 @@ abstract class SerializableWaitCondition { /// Serializes the object to JSON. Map serialize() { return { - 'conditionName': conditionName + 'conditionName': conditionName, }; } diff --git a/packages/flutter_driver/test/src/real_tests/extension_test.dart b/packages/flutter_driver/test/src/real_tests/extension_test.dart index ae197b5bd3a61..99b0b302909a3 100644 --- a/packages/flutter_driver/test/src/real_tests/extension_test.dart +++ b/packages/flutter_driver/test/src/real_tests/extension_test.dart @@ -1154,9 +1154,8 @@ void main() { height: 0, width: 0, child: Text('World!', key: Key('widgetTwo')), - ) - ], - ), + ), + ]), ), ); diff --git a/packages/flutter_driver/test/src/real_tests/flutter_driver_test.dart b/packages/flutter_driver/test/src/real_tests/flutter_driver_test.dart index 8679f66bf826d..3888da784135b 100644 --- a/packages/flutter_driver/test/src/real_tests/flutter_driver_test.dart +++ b/packages/flutter_driver/test/src/real_tests/flutter_driver_test.dart @@ -108,7 +108,7 @@ void main() { await driver.waitFor(find.byTooltip('foo'), timeout: _kTestTimeout); expect(log, [ 'VMServiceFlutterDriver: >>> {command: waitFor, timeout: $_kSerializedTestTimeout, finderType: ByTooltipMessage, text: foo}', - 'VMServiceFlutterDriver: <<< {isError: false, response: {status: ok}}' + 'VMServiceFlutterDriver: <<< {isError: false, response: {status: ok}}', ]); }); @@ -587,7 +587,7 @@ void main() { 'setVMTimelineFlags [Dart, GC, Compiler]', 'getFlagList', 'setVMTimelineFlags []', - 'getVMTimeline null null' + 'getVMTimeline null null', ]); expect(timeline.events!.single.name, 'test event'); @@ -679,7 +679,7 @@ void main() { expect(fakeClient.commandLog, [ 'ext.flutter.driver {command: set_frame_sync, enabled: false}', 'ext.flutter.driver {command: waitFor, timeout: $_kSerializedTestTimeout, finderType: ByTooltipMessage, text: foo}', - 'ext.flutter.driver {command: set_frame_sync, enabled: true}' + 'ext.flutter.driver {command: set_frame_sync, enabled: true}', ]); }); }); diff --git a/packages/flutter_driver/test/src/real_tests/timeline_summary_test.dart b/packages/flutter_driver/test/src/real_tests/timeline_summary_test.dart index f5287e50b4599..0c0c94098060e 100644 --- a/packages/flutter_driver/test/src/real_tests/timeline_summary_test.dart +++ b/packages/flutter_driver/test/src/real_tests/timeline_summary_test.dart @@ -53,8 +53,8 @@ void main() { 'ph': 'b', 'ts': timeStamp, 'args': { - 'vsync_transitions_missed': vsyncsMissed.toString() - } + 'vsync_transitions_missed': vsyncsMissed.toString(), + }, }; Map lagEnd(int timeStamp, int vsyncsMissed) => { @@ -62,8 +62,8 @@ void main() { 'ph': 'e', 'ts': timeStamp, 'args': { - 'vsync_transitions_missed': vsyncsMissed.toString() - } + 'vsync_transitions_missed': vsyncsMissed.toString(), + }, }; Map cpuUsage(int timeStamp, double cpuUsage) => { @@ -71,8 +71,8 @@ void main() { 'name': 'CpuUsage', 'ts': timeStamp, 'args': { - 'total_cpu_usage': cpuUsage.toString() - } + 'total_cpu_usage': cpuUsage.toString(), + }, }; Map memoryUsage(int timeStamp, double dirty, double shared) => { @@ -82,7 +82,7 @@ void main() { 'args': { 'owned_shared_memory_usage': shared.toString(), 'dirty_memory_usage': dirty.toString(), - } + }, }; Map platformVsync(int timeStamp) => { @@ -98,7 +98,7 @@ void main() { 'args': { 'StartTime': startTime, 'TargetTime': endTime, - } + }, }; List> _genGC(String name, int count, int startTime, int timeDiff) { diff --git a/packages/flutter_driver/test/src/real_tests/wait_test.dart b/packages/flutter_driver/test/src/real_tests/wait_test.dart index adf99a45e8a48..ebbe0d780c941 100644 --- a/packages/flutter_driver/test/src/real_tests/wait_test.dart +++ b/packages/flutter_driver/test/src/real_tests/wait_test.dart @@ -135,7 +135,7 @@ void main() { const CombinedCondition combinedCondition = CombinedCondition([ NoTransientCallbacks(), - NoPendingFrame() + NoPendingFrame(), ]); expect(combinedCondition.serialize(), { diff --git a/packages/flutter_goldens/test/flutter_goldens_test.dart b/packages/flutter_goldens/test/flutter_goldens_test.dart index 4363c0416da4e..bdcdd7983022b 100644 --- a/packages/flutter_goldens/test/flutter_goldens_test.dart +++ b/packages/flutter_goldens/test/flutter_goldens_test.dart @@ -22,11 +22,12 @@ import 'json_templates.dart'; const String _kFlutterRoot = '/flutter'; // 1x1 transparent pixel -const List _kTestPngBytes = -[137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, +const List _kTestPngBytes = [ + 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 1, 0, 0, 0, 1, 8, 6, 0, 0, 0, 31, 21, 196, 137, 0, 0, 0, 11, 73, 68, 65, 84, 120, 1, 99, 97, 0, 2, 0, 0, 25, 0, 5, 144, 240, 54, 245, 0, 0, 0, 0, 73, 69, - 78, 68, 174, 66, 96, 130]; + 78, 68, 174, 66, 96, 130, +]; void main() { late MemoryFileSystem fs; @@ -547,7 +548,7 @@ void main() { 'SWARMING_TASK_ID' : '12345678990', 'GOLDCTL' : 'goldctl', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPostSubmitFileComparator.isAvailableForEnvironment(platform), @@ -561,7 +562,7 @@ void main() { 'FLUTTER_ROOT': _kFlutterRoot, 'SWARMING_TASK_ID' : '12345678990', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPostSubmitFileComparator.isAvailableForEnvironment(platform), @@ -575,9 +576,9 @@ void main() { 'FLUTTER_ROOT': _kFlutterRoot, 'SWARMING_TASK_ID' : '12345678990', 'GOLDCTL' : 'goldctl', - 'GOLD_TRYJOB' : 'git/ref/12345/head' + 'GOLD_TRYJOB' : 'git/ref/12345/head', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPostSubmitFileComparator.isAvailableForEnvironment(platform), @@ -592,9 +593,9 @@ void main() { 'CIRRUS_CI': 'true', 'CIRRUS_PR': '', 'CIRRUS_BRANCH': 'master', - 'GOLD_SERVICE_ACCOUNT': 'service account...' + 'GOLD_SERVICE_ACCOUNT': 'service account...', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPostSubmitFileComparator.isAvailableForEnvironment(platform), @@ -664,9 +665,9 @@ void main() { 'FLUTTER_ROOT': _kFlutterRoot, 'SWARMING_TASK_ID' : '12345678990', 'GOLDCTL' : 'goldctl', - 'GOLD_TRYJOB' : 'git/ref/12345/head' + 'GOLD_TRYJOB' : 'git/ref/12345/head', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPreSubmitFileComparator.isAvailableForEnvironment(platform), @@ -679,7 +680,7 @@ void main() { environment: { 'FLUTTER_ROOT': _kFlutterRoot, }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPreSubmitFileComparator.isAvailableForEnvironment(platform), @@ -692,9 +693,9 @@ void main() { environment: { 'FLUTTER_ROOT': _kFlutterRoot, 'SWARMING_TASK_ID' : '12345678990', - 'GOLD_TRYJOB' : 'git/ref/12345/head' + 'GOLD_TRYJOB' : 'git/ref/12345/head', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPreSubmitFileComparator.isAvailableForEnvironment(platform), @@ -709,7 +710,7 @@ void main() { 'SWARMING_TASK_ID' : '12345678990', 'GOLDCTL' : 'goldctl', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPreSubmitFileComparator.isAvailableForEnvironment(platform), @@ -724,9 +725,9 @@ void main() { 'CIRRUS_CI': 'true', 'CIRRUS_PR': '', 'CIRRUS_BRANCH': 'master', - 'GOLD_SERVICE_ACCOUNT': 'service account...' + 'GOLD_SERVICE_ACCOUNT': 'service account...', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterPostSubmitFileComparator.isAvailableForEnvironment(platform), @@ -744,7 +745,7 @@ void main() { 'FLUTTER_ROOT': _kFlutterRoot, 'CIRRUS_CI' : 'yep', }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterSkippingFileComparator.isAvailableForEnvironment(platform), @@ -771,7 +772,7 @@ void main() { environment: { 'FLUTTER_ROOT': _kFlutterRoot, }, - operatingSystem: 'macos' + operatingSystem: 'macos', ); expect( FlutterSkippingFileComparator.isAvailableForEnvironment( @@ -795,7 +796,7 @@ void main() { fs: fs, platform: FakePlatform( environment: {'FLUTTER_ROOT': _kFlutterRoot}, - operatingSystem: 'macos' + operatingSystem: 'macos', ), ); diff --git a/packages/flutter_goldens/test/json_templates.dart b/packages/flutter_goldens/test/json_templates.dart index 2791a23c0ac68..d6e7d624e878a 100644 --- a/packages/flutter_goldens/test/json_templates.dart +++ b/packages/flutter_goldens/test/json_templates.dart @@ -20,10 +20,14 @@ String authTemplate({ /// https://flutter-gold.skia.org/img/images/[imageHash].png List> imageResponseTemplate() { return >[ - [137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, - 72, 68, 82, 0, 0, 0, 1, 0, 0, 0, 1, 8, 6, 0, 0, 0, 31, 21, 196, 137, 0], - [0, 0, 11, 73, 68, 65, 84, 120, 1, 99, 97, 0, 2, 0, + [ + 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, + 72, 68, 82, 0, 0, 0, 1, 0, 0, 0, 1, 8, 6, 0, 0, 0, 31, 21, 196, 137, 0, + ], + [ + 0, 0, 11, 73, 68, 65, 84, 120, 1, 99, 97, 0, 2, 0, 0, 25, 0, 5, 144, 240, 54, 245, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, - 130], + 130, + ], ]; } diff --git a/packages/flutter_test/lib/src/controller.dart b/packages/flutter_test/lib/src/controller.dart index c208559fb8cfb..f7b8162ab8e3c 100644 --- a/packages/flutter_test/lib/src/controller.dart +++ b/packages/flutter_test/lib/src/controller.dart @@ -722,7 +722,7 @@ abstract class WidgetController { delta: offsets[t+1] - offsets[t], pointer: pointer, buttons: buttons, - ) + ), ]), ], PointerEventRecord(duration, [ @@ -734,7 +734,7 @@ abstract class WidgetController { // change = PointerChange.up, which translates to PointerUpEvent, // doesn't provide the button field. // buttons: buttons, - ) + ), ]), ]; return TestAsyncUtils.guard(() async { diff --git a/packages/flutter_test/lib/src/matchers.dart b/packages/flutter_test/lib/src/matchers.dart index 5434b0be538fe..c6ae9df17c744 100644 --- a/packages/flutter_test/lib/src/matchers.dart +++ b/packages/flutter_test/lib/src/matchers.dart @@ -604,7 +604,7 @@ Matcher matchesSemantics({ if (hasToggledState) SemanticsFlag.hasToggledState, if (isToggled) SemanticsFlag.isToggled, if (hasImplicitScrolling) SemanticsFlag.hasImplicitScrolling, - if (isSlider) SemanticsFlag.isSlider + if (isSlider) SemanticsFlag.isSlider, ]; final List actions = [ diff --git a/packages/flutter_test/lib/src/test_async_utils.dart b/packages/flutter_test/lib/src/test_async_utils.dart index 2a4003d3202a4..c5e81394828d3 100644 --- a/packages/flutter_test/lib/src/test_async_utils.dart +++ b/packages/flutter_test/lib/src/test_async_utils.dart @@ -274,7 +274,7 @@ class TestAsyncUtils { if (_scopeStack.isNotEmpty) { final List information = [ ErrorSummary('Asynchronous call to guarded function leaked.'), - ErrorHint('You must use "await" with all Future-returning test APIs.') + ErrorHint('You must use "await" with all Future-returning test APIs.'), ]; for (final _AsyncScope scope in _scopeStack) { final _StackEntry? guarder = _findResponsibleMethod(scope.creationStack, 'guard', information); diff --git a/packages/flutter_test/lib/src/widget_tester.dart b/packages/flutter_test/lib/src/widget_tester.dart index b7d87cb7df565..7ee9027a862f5 100644 --- a/packages/flutter_test/lib/src/widget_tester.dart +++ b/packages/flutter_test/lib/src/widget_tester.dart @@ -977,7 +977,7 @@ class WidgetTester extends WidgetController implements HitTestDispatcher, Ticker 'should be disposed by calling dispose() on the AnimationController itself. ' 'Otherwise, the ticker will leak.' ), - ticker.describeForError('The offending ticker was') + ticker.describeForError('The offending ticker was'), ]); } } @@ -1002,7 +1002,7 @@ class WidgetTester extends WidgetController implements HitTestDispatcher, Ticker 'If your test uses SemanticsTester, it is ' 'sufficient to call dispose() on SemanticsTester. Otherwise, the ' 'existing handle will leak into another test and alter its behavior.' - ) + ), ]); } _lastRecordedSemanticsHandles = null; diff --git a/packages/flutter_test/test/bindings_environment/flutter_test_variable_is_false_test.dart b/packages/flutter_test/test/bindings_environment/flutter_test_variable_is_false_test.dart index 394954841f8e9..b4acfab5fbaa3 100644 --- a/packages/flutter_test/test/bindings_environment/flutter_test_variable_is_false_test.dart +++ b/packages/flutter_test/test/bindings_environment/flutter_test_variable_is_false_test.dart @@ -10,6 +10,6 @@ void main() { TestWidgetsFlutterBinding.ensureInitialized({'FLUTTER_TEST': 'false'}); expect(WidgetsBinding.instance, isA()); }, onPlatform: const { - 'browser': [Skip('Browser will not use the live binding')] + 'browser': [Skip('Browser will not use the live binding')], }); } diff --git a/packages/flutter_test/test/goldens_test.dart b/packages/flutter_test/test/goldens_test.dart index c5b431c88ff31..c6c3ec4499e94 100644 --- a/packages/flutter_test/test/goldens_test.dart +++ b/packages/flutter_test/test/goldens_test.dart @@ -12,25 +12,28 @@ import 'package:flutter_test/flutter_test.dart' hide test; import 'package:flutter_test/flutter_test.dart' as test_package; // 1x1 transparent pixel -const List _kExpectedPngBytes = - [137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, - 1, 0, 0, 0, 1, 8, 6, 0, 0, 0, 31, 21, 196, 137, 0, 0, 0, 11, 73, 68, 65, 84, - 120, 1, 99, 97, 0, 2, 0, 0, 25, 0, 5, 144, 240, 54, 245, 0, 0, 0, 0, 73, 69, - 78, 68, 174, 66, 96, 130]; +const List _kExpectedPngBytes = [ + 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, + 1, 0, 0, 0, 1, 8, 6, 0, 0, 0, 31, 21, 196, 137, 0, 0, 0, 11, 73, 68, 65, 84, + 120, 1, 99, 97, 0, 2, 0, 0, 25, 0, 5, 144, 240, 54, 245, 0, 0, 0, 0, 73, 69, + 78, 68, 174, 66, 96, 130, +]; // 1x1 colored pixel -const List _kColorFailurePngBytes = - [137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, - 1, 0, 0, 0, 1, 8, 6, 0, 0, 0, 31, 21, 196, 137, 0, 0, 0, 13, 73, 68, 65, 84, - 120, 1, 99, 249, 207, 240, 255, 63, 0, 7, 18, 3, 2, 164, 147, 160, 197, 0, - 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130]; +const List _kColorFailurePngBytes = [ + 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, + 1, 0, 0, 0, 1, 8, 6, 0, 0, 0, 31, 21, 196, 137, 0, 0, 0, 13, 73, 68, 65, 84, + 120, 1, 99, 249, 207, 240, 255, 63, 0, 7, 18, 3, 2, 164, 147, 160, 197, 0, + 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130, +]; // 1x2 transparent pixel -const List _kSizeFailurePngBytes = - [137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, - 1, 0, 0,0, 2, 8, 6, 0, 0, 0, 153, 129, 182, 39, 0, 0, 0, 14, 73, 68, 65, 84, - 120, 1, 99, 97, 0, 2, 22, 16, 1, 0, 0, 70, 0, 9, 112, 117, 150, 160, 0, 0, - 0, 0, 73, 69, 78, 68, 174, 66, 96, 130]; +const List _kSizeFailurePngBytes = [ + 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, + 1, 0, 0,0, 2, 8, 6, 0, 0, 0, 153, 129, 182, 39, 0, 0, 0, 14, 73, 68, 65, 84, + 120, 1, 99, 97, 0, 2, 22, 16, 1, 0, 0, 70, 0, 9, 112, 117, 150, 160, 0, 0, + 0, 0, 73, 69, 78, 68, 174, 66, 96, 130, +]; void main() { late MemoryFileSystem fs; diff --git a/packages/flutter_test/test/live_widget_controller_test.dart b/packages/flutter_test/test/live_widget_controller_test.dart index 8aa4e909bf5a1..e0da50bcca0d8 100644 --- a/packages/flutter_test/test/live_widget_controller_test.dart +++ b/packages/flutter_test/test/live_widget_controller_test.dart @@ -129,8 +129,8 @@ void main() { position: location, buttons: kSecondaryMouseButton, pointer: 1, - ) - ]) + ), + ]), ], PointerEventRecord(const Duration(milliseconds: 80), [ PointerUpEvent( @@ -138,8 +138,8 @@ void main() { position: location, buttons: kSecondaryMouseButton, pointer: 1, - ) - ]) + ), + ]), ]; final List timeDiffs = await controller.handlePointerEventRecord(records); diff --git a/packages/flutter_test/test/matchers_test.dart b/packages/flutter_test/test/matchers_test.dart index 2477313a06484..6a5500883b7fb 100644 --- a/packages/flutter_test/test/matchers_test.dart +++ b/packages/flutter_test/test/matchers_test.dart @@ -105,23 +105,31 @@ void main() { '├─B\n' '│\n'), isNot(hasAGoodToStringDeep)); - expect(_MockToStringDeep.fromLines( - ['Paragraph#00000\n', - ' │ size: (400x200)\n', - ' ╘═╦══ text ═══\n', - ' ║ TextSpan:\n', - ' ║ "I polished up that handle so carefullee\n', - ' ║ That now I am the Ruler of the Queen\'s Navee!"\n', - ' ╚═══════════\n']), hasAGoodToStringDeep); + expect( + _MockToStringDeep.fromLines([ + 'Paragraph#00000\n', + ' │ size: (400x200)\n', + ' ╘═╦══ text ═══\n', + ' ║ TextSpan:\n', + ' ║ "I polished up that handle so carefullee\n', + ' ║ That now I am the Ruler of the Queen\'s Navee!"\n', + ' ╚═══════════\n', + ]), + hasAGoodToStringDeep, + ); // Text span - expect(_MockToStringDeep.fromLines( - ['Paragraph#00000\n', - ' │ size: (400x200)\n', - ' ╘═╦══ text ═══\n', - ' ║ TextSpan:\n', - ' ║ "I polished up that handle so carefullee\nThat now I am the Ruler of the Queen\'s Navee!"\n', - ' ╚═══════════\n']), isNot(hasAGoodToStringDeep)); + expect( + _MockToStringDeep.fromLines([ + 'Paragraph#00000\n', + ' │ size: (400x200)\n', + ' ╘═╦══ text ═══\n', + ' ║ TextSpan:\n', + ' ║ "I polished up that handle so carefullee\nThat now I am the Ruler of the Queen\'s Navee!"\n', + ' ╚═══════════\n', + ]), + isNot(hasAGoodToStringDeep), + ); }); test('normalizeHashCodesEquals', () { diff --git a/packages/flutter_test/test/widget_tester_test.dart b/packages/flutter_test/test/widget_tester_test.dart index a8a46c83c6a5a..c10992fbdcf2d 100644 --- a/packages/flutter_test/test/widget_tester_test.dart +++ b/packages/flutter_test/test/widget_tester_test.dart @@ -526,8 +526,8 @@ void main() { position: location, buttons: kSecondaryMouseButton, pointer: 1, - ) - ]) + ), + ]), ], PointerEventRecord(const Duration(milliseconds: 80), [ PointerUpEvent( @@ -535,8 +535,8 @@ void main() { position: location, buttons: kSecondaryMouseButton, pointer: 1, - ) - ]) + ), + ]), ]; final List timeDiffs = await tester.handlePointerEventRecord(records); expect(timeDiffs.length, records.length); diff --git a/packages/flutter_tools/bin/getaumidfromname.ps1 b/packages/flutter_tools/bin/getaumidfromname.ps1 deleted file mode 100644 index d5873e33e812a..0000000000000 --- a/packages/flutter_tools/bin/getaumidfromname.ps1 +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright 2014 The Flutter Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -# Retrieves the AMUID from a given application name -[CmdletBinding()] -param( - [Parameter()] - [string]$Name -) -$foo = get-appxpackage | Where-Object { $_.Name -like $name } -$aumid = $foo.packagefamilyname + "!" + (Get-AppxPackageManifest $foo).package.applications.application.id -Write-Output $aumid diff --git a/packages/flutter_tools/bin/tool_backend.dart b/packages/flutter_tools/bin/tool_backend.dart index 754df1ac1d41e..411d53e962e53 100644 --- a/packages/flutter_tools/bin/tool_backend.dart +++ b/packages/flutter_tools/bin/tool_backend.dart @@ -59,11 +59,10 @@ or if (Platform.isWindows) 'flutter.bat' else - 'flutter' + 'flutter', ]); - final bool uwp = targetPlatform.contains('uwp'); final String bundlePlatform = targetPlatform.startsWith('windows') ? 'windows' : targetPlatform; - final String target = '${buildMode}_bundle_${bundlePlatform}_assets${uwp ? '_uwp' : ''}'; + final String target = '${buildMode}_bundle_${bundlePlatform}_assets'; final Process assembleProcess = await Process.start( flutterExecutable, [ diff --git a/packages/flutter_tools/bin/xcode_backend.dart b/packages/flutter_tools/bin/xcode_backend.dart index 37ad2a4fd022f..a0df4560740d8 100644 --- a/packages/flutter_tools/bin/xcode_backend.dart +++ b/packages/flutter_tools/bin/xcode_backend.dart @@ -260,7 +260,7 @@ class Context { 'NSBonjourServices.0', '-string', '_dartobservatory._tcp', - builtProductsPlist + builtProductsPlist, ], ); } else { diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart index 3a750cafdb4a6..e820b584f379d 100644 --- a/packages/flutter_tools/lib/src/android/android_device.dart +++ b/packages/flutter_tools/lib/src/android/android_device.dart @@ -227,7 +227,6 @@ class AndroidDevice extends Device { case TargetPlatform.linux_x64: case TargetPlatform.tester: case TargetPlatform.web_javascript: - case TargetPlatform.windows_uwp_x64: case TargetPlatform.windows_x64: throw UnsupportedError('Invalid target platform for Android'); } @@ -381,7 +380,7 @@ class AndroidDevice extends Device { 'packages', if (userIdentifier != null) ...['--user', userIdentifier], - app.id + app.id, ]); return LineSplitter.split(listOut.stdout).contains('package:${app.id}'); } on Exception catch (error) { @@ -448,7 +447,7 @@ class AndroidDevice extends Device { '-r', if (userIdentifier != null) ...['--user', userIdentifier], - app.applicationPackage.path + app.applicationPackage.path, ])); status.stop(); // Some versions of adb exit with exit code 0 even on failure :( @@ -495,7 +494,8 @@ class AndroidDevice extends Device { 'uninstall', if (userIdentifier != null) ...['--user', userIdentifier], - app.id]), + app.id, + ]), throwOnError: true, ); uninstallOut = uninstallResult.stdout; @@ -565,7 +565,6 @@ class AndroidDevice extends Device { case TargetPlatform.linux_x64: case TargetPlatform.tester: case TargetPlatform.web_javascript: - case TargetPlatform.windows_uwp_x64: case TargetPlatform.windows_x64: _logger.printError('Android platforms are only supported.'); return LaunchResult.failed(); @@ -807,7 +806,7 @@ class AndroidDevice extends Device { RunResult output; try { output = await runAdbCheckedAsync([ - 'shell', '-x', 'logcat', '-v', 'time', '-t', '1' + 'shell', '-x', 'logcat', '-v', 'time', '-t', '1', ]); } on Exception catch (error) { _logger.printError('Failed to extract the most recent timestamp from the Android log: $error.'); diff --git a/packages/flutter_tools/lib/src/android/android_emulator.dart b/packages/flutter_tools/lib/src/android/android_emulator.dart index 45f1d2925704a..115eecefa8bf7 100644 --- a/packages/flutter_tools/lib/src/android/android_emulator.dart +++ b/packages/flutter_tools/lib/src/android/android_emulator.dart @@ -158,7 +158,7 @@ class AndroidEmulator extends Emulator { '-avd', id, if (coldBoot) - '-no-snapshot-load' + '-no-snapshot-load', ]; final Process process = await _processUtils.start(command); diff --git a/packages/flutter_tools/lib/src/android/gradle.dart b/packages/flutter_tools/lib/src/android/gradle.dart index d5caca41af480..fddbe1d4e0f72 100644 --- a/packages/flutter_tools/lib/src/android/gradle.dart +++ b/packages/flutter_tools/lib/src/android/gradle.dart @@ -589,7 +589,7 @@ class AndroidGradleBuilder implements AndroidBuilder { '-Pflutter-root=$flutterRoot', '-Poutput-dir=${outputDirectory.path}', '-Pis-plugin=${manifest.isPlugin}', - '-PbuildNumber=$buildNumber' + '-PbuildNumber=$buildNumber', ]; if (_logger.isVerbose) { command.add('--full-stacktrace'); @@ -851,15 +851,15 @@ Iterable listApkPaths( [ 'app', getNameForAndroidArch(androidArch), - ...apkPartialName - ].join('-') + ...apkPartialName, + ].join('-'), ]; } return [ [ 'app', ...apkPartialName, - ].join('-') + ].join('-'), ]; } diff --git a/packages/flutter_tools/lib/src/artifacts.dart b/packages/flutter_tools/lib/src/artifacts.dart index 2aac9686e822d..bf7635aeecb77 100644 --- a/packages/flutter_tools/lib/src/artifacts.dart +++ b/packages/flutter_tools/lib/src/artifacts.dart @@ -38,10 +38,7 @@ enum Artifact { windowsDesktopPath, /// The root of the cpp client code for Windows desktop. windowsCppClientWrapper, - /// The root of the cpp client code for Windows UWP desktop. - windowsUwpCppClientWrapper, - /// The root of the Windows UWP desktop sources. - windowsUwpDesktopPath, + /// The root of the sky_engine package. skyEnginePath, /// The location of the macOS engine podspec file. @@ -54,9 +51,6 @@ enum Artifact { /// Tools related to subsetting or icon font files. fontSubset, constFinder, - - // Windows UWP app management tool. - uwptool, } /// A subset of [Artifact]s that are platform and build mode independent @@ -98,8 +92,14 @@ enum HostArtifact { idevicesyslog, idevicescreenshot, iproxy, + /// The root of the sky_engine package. skyEnginePath, + + // The Impeller shader compiler. + impellerc, + // Impeller's tessellation library. + libtessellator, } // TODO(knopp): Remove once darwin artifacts are universal and moved out of darwin-x64 @@ -120,7 +120,6 @@ TargetPlatform? _mapTargetPlatform(TargetPlatform? targetPlatform) { case TargetPlatform.linux_x64: case TargetPlatform.linux_arm64: case TargetPlatform.windows_x64: - case TargetPlatform.windows_uwp_x64: case TargetPlatform.fuchsia_arm64: case TargetPlatform.fuchsia_x64: case TargetPlatform.tester: @@ -137,7 +136,6 @@ TargetPlatform? _mapTargetPlatform(TargetPlatform? targetPlatform) { bool _isWindows(TargetPlatform? platform) { switch (platform) { case TargetPlatform.windows_x64: - case TargetPlatform.windows_uwp_x64: return true; case TargetPlatform.android: case TargetPlatform.android_arm: @@ -190,9 +188,7 @@ String? _artifactToFileName(Artifact artifact, [ TargetPlatform? platform, Build case Artifact.linuxHeaders: return 'flutter_linux'; case Artifact.windowsCppClientWrapper: - case Artifact.windowsUwpCppClientWrapper: return 'cpp_client_wrapper'; - case Artifact.windowsUwpDesktopPath: case Artifact.windowsDesktopPath: return ''; case Artifact.skyEnginePath: @@ -209,13 +205,17 @@ String? _artifactToFileName(Artifact artifact, [ TargetPlatform? platform, Build return 'font-subset$exe'; case Artifact.constFinder: return 'const_finder.dart.snapshot'; - case Artifact.uwptool: - return 'uwptool$exe'; } } -String _hostArtifactToFileName(HostArtifact artifact, bool windows) { - final String exe = windows ? '.exe' : ''; +String _hostArtifactToFileName(HostArtifact artifact, Platform platform) { + final String exe = platform.isWindows ? '.exe' : ''; + String dll = '.so'; + if (platform.isWindows) { + dll = '.dll'; + } else if (platform.isMacOS) { + dll = '.dylib'; + } switch (artifact) { case HostArtifact.flutterWebSdk: return ''; @@ -259,6 +259,10 @@ String _hostArtifactToFileName(HostArtifact artifact, bool windows) { case HostArtifact.webPrecompiledCanvaskitSoundSdkSourcemaps: case HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdkSourcemaps: return 'dart_sdk.js.map'; + case HostArtifact.impellerc: + return 'impellerc$exe'; + case HostArtifact.libtessellator: + return 'libtessellator$dll'; } } @@ -349,63 +353,68 @@ class CachedArtifacts implements Artifacts { final String path = _dartSdkPath(_cache); return _fileSystem.directory(path); case HostArtifact.engineDartBinary: - final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.flutterWebSdk: final String path = _getFlutterWebSdkPath(); return _fileSystem.directory(path); case HostArtifact.flutterWebLibrariesJson: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPlatformKernelDill: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPlatformSoundKernelDill: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledSdk: case HostArtifact.webPrecompiledSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledCanvaskitSdk: case HostArtifact.webPrecompiledCanvaskitSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledCanvaskitAndHtmlSdk: case HostArtifact.webPrecompiledCanvaskitAndHtmlSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledSoundSdk: case HostArtifact.webPrecompiledSoundSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-sound', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-sound', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledCanvaskitSoundSdk: case HostArtifact.webPrecompiledCanvaskitSoundSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-sound', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-sound', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdk: case HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html-sound', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html-sound', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.idevicesyslog: case HostArtifact.idevicescreenshot: - final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows); + final String artifactFileName = _hostArtifactToFileName(artifact, _platform); return _cache.getArtifactDirectory('libimobiledevice').childFile(artifactFileName); case HostArtifact.skyEnginePath: final Directory dartPackageDirectory = _cache.getCacheDir('pkg'); - final String path = _fileSystem.path.join(dartPackageDirectory.path, _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(dartPackageDirectory.path, _hostArtifactToFileName(artifact, _platform)); return _fileSystem.directory(path); case HostArtifact.dart2jsSnapshot: case HostArtifact.dartdevcSnapshot: case HostArtifact.kernelWorkerSnapshot: - final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.iosDeploy: - final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows); + final String artifactFileName = _hostArtifactToFileName(artifact, _platform); return _cache.getArtifactDirectory('ios-deploy').childFile(artifactFileName); case HostArtifact.iproxy: - final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows); + final String artifactFileName = _hostArtifactToFileName(artifact, _platform); return _cache.getArtifactDirectory('usbmuxd').childFile(artifactFileName); + case HostArtifact.impellerc: + case HostArtifact.libtessellator: + final String artifactFileName = _hostArtifactToFileName(artifact, _platform); + final String engineDir = _getEngineArtifactsPath(_currentHostPlatform(_platform, _operatingSystemUtils))!; + return _fileSystem.file(_fileSystem.path.join(engineDir, artifactFileName)); } } @@ -431,7 +440,6 @@ class CachedArtifacts implements Artifacts { case TargetPlatform.linux_x64: case TargetPlatform.linux_arm64: case TargetPlatform.windows_x64: - case TargetPlatform.windows_uwp_x64: return _getDesktopArtifactPath(artifact, platform, mode); case TargetPlatform.fuchsia_arm64: case TargetPlatform.fuchsia_x64: @@ -483,12 +491,9 @@ class CachedArtifacts implements Artifacts { case Artifact.platformKernelDill: case Artifact.platformLibrariesJson: case Artifact.skyEnginePath: - case Artifact.uwptool: case Artifact.vmSnapshotData: case Artifact.windowsCppClientWrapper: case Artifact.windowsDesktopPath: - case Artifact.windowsUwpCppClientWrapper: - case Artifact.windowsUwpDesktopPath: return _getHostArtifactPath(artifact, platform, mode); } } @@ -519,12 +524,9 @@ class CachedArtifacts implements Artifacts { case Artifact.platformKernelDill: case Artifact.platformLibrariesJson: case Artifact.skyEnginePath: - case Artifact.uwptool: case Artifact.vmSnapshotData: case Artifact.windowsCppClientWrapper: case Artifact.windowsDesktopPath: - case Artifact.windowsUwpCppClientWrapper: - case Artifact.windowsUwpDesktopPath: return _getHostArtifactPath(artifact, platform, mode); } } @@ -567,12 +569,9 @@ class CachedArtifacts implements Artifacts { case Artifact.linuxHeaders: case Artifact.platformLibrariesJson: case Artifact.skyEnginePath: - case Artifact.uwptool: case Artifact.vmSnapshotData: case Artifact.windowsCppClientWrapper: case Artifact.windowsDesktopPath: - case Artifact.windowsUwpCppClientWrapper: - case Artifact.windowsUwpDesktopPath: return _getHostArtifactPath(artifact, platform, mode); } } @@ -626,15 +625,9 @@ class CachedArtifacts implements Artifacts { } final String engineArtifactsPath = _cache.getArtifactDirectory('engine').path; return _fileSystem.path.join(engineArtifactsPath, platformDirName, _artifactToFileName(artifact, platform, mode)); - case Artifact.windowsUwpDesktopPath: - final String engineArtifactsPath = _cache.getArtifactDirectory('engine').path; - return _fileSystem.path.join(engineArtifactsPath, 'windows-uwp-x64-${getNameForBuildMode(mode!)}', _artifactToFileName(artifact, platform, mode)); case Artifact.windowsCppClientWrapper: final String engineArtifactsPath = _cache.getArtifactDirectory('engine').path; return _fileSystem.path.join(engineArtifactsPath, 'windows-x64', _artifactToFileName(artifact, platform, mode)); - case Artifact.windowsUwpCppClientWrapper: - final String engineArtifactsPath = _cache.getArtifactDirectory('engine').path; - return _fileSystem.path.join(engineArtifactsPath, 'windows-uwp-x64-debug', _artifactToFileName(artifact, platform, mode)); case Artifact.skyEnginePath: final Directory dartPackageDirectory = _cache.getCacheDir('pkg'); return _fileSystem.path.join(dartPackageDirectory.path, _artifactToFileName(artifact)); @@ -644,11 +637,6 @@ class CachedArtifacts implements Artifacts { .childDirectory(_enginePlatformDirectoryName(platform)) .childFile(_artifactToFileName(artifact, platform, mode)!) .path; - case Artifact.uwptool: - return _cache.getArtifactDirectory('engine') - .childDirectory('windows-uwp-x64-${getNameForBuildMode(mode ?? BuildMode.debug)}') - .childFile(_artifactToFileName(artifact, platform, mode)!) - .path; case Artifact.flutterFramework: case Artifact.flutterXcframework: case Artifact.fuchsiaFlutterRunner: @@ -684,7 +672,6 @@ class CachedArtifacts implements Artifacts { case TargetPlatform.android_arm64: case TargetPlatform.android_x64: case TargetPlatform.android_x86: - case TargetPlatform.windows_uwp_x64: assert(mode != null, 'Need to specify a build mode for platform $platform.'); final String suffix = mode != BuildMode.debug ? '-${snakeCase(getModeName(mode!), '-')}' : ''; return _fileSystem.path.join(engineDir, platformName + suffix); @@ -791,67 +778,71 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts { final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk'); return _fileSystem.directory(path); case HostArtifact.engineDartBinary: - final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.dart2jsSnapshot: - final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.dartdevcSnapshot: - final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_dartSdkPath(_cache), 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.kernelWorkerSnapshot: - final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.flutterWebSdk: final String path = _getFlutterWebSdkPath(); return _fileSystem.directory(path); case HostArtifact.flutterWebLibrariesJson: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPlatformKernelDill: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPlatformSoundKernelDill: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledSdk: case HostArtifact.webPrecompiledSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledCanvaskitSdk: case HostArtifact.webPrecompiledCanvaskitSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledCanvaskitAndHtmlSdk: case HostArtifact.webPrecompiledCanvaskitAndHtmlSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledSoundSdk: case HostArtifact.webPrecompiledSoundSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-sound', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-sound', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledCanvaskitSoundSdk: case HostArtifact.webPrecompiledCanvaskitSoundSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-sound', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-sound', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdk: case HostArtifact.webPrecompiledCanvaskitAndHtmlSoundSdkSourcemaps: - final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html-sound', _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(_getFlutterWebSdkPath(), 'kernel', 'amd-canvaskit-html-sound', _hostArtifactToFileName(artifact, _platform)); return _fileSystem.file(path); case HostArtifact.idevicesyslog: case HostArtifact.idevicescreenshot: - final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows); + final String artifactFileName = _hostArtifactToFileName(artifact, _platform); return _cache.getArtifactDirectory('libimobiledevice').childFile(artifactFileName); case HostArtifact.skyEnginePath: final Directory dartPackageDirectory = _cache.getCacheDir('pkg'); - final String path = _fileSystem.path.join(dartPackageDirectory.path, _hostArtifactToFileName(artifact, _platform.isWindows)); + final String path = _fileSystem.path.join(dartPackageDirectory.path, _hostArtifactToFileName(artifact, _platform)); return _fileSystem.directory(path); case HostArtifact.iosDeploy: - final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows); + final String artifactFileName = _hostArtifactToFileName(artifact, _platform); return _cache.getArtifactDirectory('ios-deploy').childFile(artifactFileName); case HostArtifact.iproxy: - final String artifactFileName = _hostArtifactToFileName(artifact, _platform.isWindows); + final String artifactFileName = _hostArtifactToFileName(artifact, _platform); return _cache.getArtifactDirectory('usbmuxd').childFile(artifactFileName); + case HostArtifact.impellerc: + case HostArtifact.libtessellator: + final String artifactFileName = _hostArtifactToFileName(artifact, _platform); + return _fileSystem.file(_fileSystem.path.join(_hostEngineOutPath, artifactFileName)); } } @@ -914,19 +905,15 @@ class CachedLocalEngineArtifacts implements LocalEngineArtifacts { return _fileSystem.path.join(_hostEngineOutPath, artifactFileName); case Artifact.constFinder: return _fileSystem.path.join(_hostEngineOutPath, 'gen', artifactFileName); - case Artifact.windowsUwpDesktopPath: case Artifact.linuxDesktopPath: case Artifact.linuxHeaders: case Artifact.windowsDesktopPath: case Artifact.windowsCppClientWrapper: - case Artifact.windowsUwpCppClientWrapper: return _fileSystem.path.join(_hostEngineOutPath, artifactFileName); case Artifact.frontendServerSnapshotForEngineDartSdk: return _fileSystem.path.join( _hostEngineOutPath, 'dart-sdk', 'bin', 'snapshots', artifactFileName, ); - case Artifact.uwptool: - return _fileSystem.path.join(_hostEngineOutPath, artifactFileName); } } diff --git a/packages/flutter_tools/lib/src/base/analyze_size.dart b/packages/flutter_tools/lib/src/base/analyze_size.dart index e76c5bd8f931b..36fe57ce4ea6a 100644 --- a/packages/flutter_tools/lib/src/base/analyze_size.dart +++ b/packages/flutter_tools/lib/src/base/analyze_size.dart @@ -467,7 +467,7 @@ class _SymbolNode { Map toJson() { final Map json = { 'n': name, - 'value': byteSize + 'value': byteSize, }; final List> childrenAsJson = >[]; for (final _SymbolNode child in children) { diff --git a/packages/flutter_tools/lib/src/base/build.dart b/packages/flutter_tools/lib/src/base/build.dart index 79d5b6090462c..96600b4889303 100644 --- a/packages/flutter_tools/lib/src/base/build.dart +++ b/packages/flutter_tools/lib/src/base/build.dart @@ -197,7 +197,7 @@ class AOTSnapshotter { // Faster async/await if (shouldSplitDebugInfo) ...[ '--dwarf-stack-traces', - '--save-debugging-info=${_fileSystem.path.join(splitDebugInfo!, debugFilename)}' + '--save-debugging-info=${_fileSystem.path.join(splitDebugInfo!, debugFilename)}', ], if (dartObfuscation) '--obfuscate', @@ -314,7 +314,6 @@ class AOTSnapshotter { TargetPlatform.linux_x64, TargetPlatform.linux_arm64, TargetPlatform.windows_x64, - TargetPlatform.windows_uwp_x64, ].contains(platform); } } diff --git a/packages/flutter_tools/lib/src/base/logger.dart b/packages/flutter_tools/lib/src/base/logger.dart index a68ce06fc38c6..b102fe84abb05 100644 --- a/packages/flutter_tools/lib/src/base/logger.dart +++ b/packages/flutter_tools/lib/src/base/logger.dart @@ -901,7 +901,7 @@ class BufferLogger extends Logger { void sendEvent(String name, [Map? args]) { _events.write(json.encode({ 'name': name, - 'args': args + 'args': args, })); } } diff --git a/packages/flutter_tools/lib/src/build_info.dart b/packages/flutter_tools/lib/src/build_info.dart index c12e7c201ffb1..954e678716b10 100644 --- a/packages/flutter_tools/lib/src/build_info.dart +++ b/packages/flutter_tools/lib/src/build_info.dart @@ -527,7 +527,6 @@ enum TargetPlatform { linux_x64, linux_arm64, windows_x64, - windows_uwp_x64, fuchsia_arm64, fuchsia_x64, tester, @@ -660,8 +659,6 @@ String getNameForTargetPlatform(TargetPlatform platform, {DarwinArch? darwinArch return 'linux-arm64'; case TargetPlatform.windows_x64: return 'windows-x64'; - case TargetPlatform.windows_uwp_x64: - return 'windows-uwp-x64'; case TargetPlatform.fuchsia_arm64: return 'fuchsia-arm64'; case TargetPlatform.fuchsia_x64: @@ -705,8 +702,6 @@ TargetPlatform getTargetPlatformForName(String platform) { return TargetPlatform.linux_arm64; case 'windows-x64': return TargetPlatform.windows_x64; - case 'windows-uwp-x64': - return TargetPlatform.windows_uwp_x64; case 'web-javascript': return TargetPlatform.web_javascript; } @@ -770,7 +765,6 @@ String fuchsiaArchForTargetPlatform(TargetPlatform targetPlatform) { case TargetPlatform.linux_x64: case TargetPlatform.tester: case TargetPlatform.web_javascript: - case TargetPlatform.windows_uwp_x64: case TargetPlatform.windows_x64: throw UnsupportedError('Unexpected Fuchsia platform $targetPlatform'); } @@ -859,11 +853,6 @@ String getWindowsBuildDirectory() { return globals.fs.path.join(getBuildDirectory(), 'windows'); } -/// Returns the Windows UWP build output directory. -String getWindowsBuildUwpDirectory() { - return globals.fs.path.join(getBuildDirectory(), 'winuwp'); -} - /// Returns the Fuchsia build output directory. String getFuchsiaBuildDirectory() { return globals.fs.path.join(getBuildDirectory(), 'fuchsia'); @@ -1030,7 +1019,6 @@ String getNameForTargetPlatformArch(TargetPlatform platform) { case TargetPlatform.ios: case TargetPlatform.tester: case TargetPlatform.web_javascript: - case TargetPlatform.windows_uwp_x64: throw UnsupportedError('Unexpected target platform $platform'); } } diff --git a/packages/flutter_tools/lib/src/build_system/hash.dart b/packages/flutter_tools/lib/src/build_system/hash.dart index 3f836331240a7..6b6285b89cbc7 100644 --- a/packages/flutter_tools/lib/src/build_system/hash.dart +++ b/packages/flutter_tools/lib/src/build_system/hash.dart @@ -17,7 +17,7 @@ final Uint32List _noise = Uint32List.fromList([ 0xd4ef3085, 0x04881d05, 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665, 0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039, 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1, 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1, - 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391 + 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391, ]); /// Per-round shift amounts. @@ -25,7 +25,7 @@ const List _shiftAmounts = [ 07, 12, 17, 22, 07, 12, 17, 22, 07, 12, 17, 22, 07, 12, 17, 22, 05, 09, 14, 20, 05, 09, 14, 20, 05, 09, 14, 20, 05, 09, 14, 20, 04, 11, 16, 23, 04, 11, 16, 23, 04, 11, 16, 23, 04, 11, 16, 23, 06, 10, 15, 21, 06, 10, 15, 21, 06, - 10, 15, 21, 06, 10, 15, 21 + 10, 15, 21, 06, 10, 15, 21, ]; /// A bitmask that limits an integer to 32 bits. diff --git a/packages/flutter_tools/lib/src/build_system/targets/assets.dart b/packages/flutter_tools/lib/src/build_system/targets/assets.dart index 68a4cd02570b1..ceb9075480131 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/assets.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/assets.dart @@ -265,7 +265,7 @@ class CopyAssets extends Target { @override List get depfiles => const [ - 'flutter_assets.d' + 'flutter_assets.d', ]; @override diff --git a/packages/flutter_tools/lib/src/build_system/targets/common.dart b/packages/flutter_tools/lib/src/build_system/targets/common.dart index c0e78b7398579..899c2da15bd1f 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/common.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/common.dart @@ -44,7 +44,7 @@ class CopyFlutterBundle extends Target { @override List get depfiles => [ - 'flutter_assets.d' + 'flutter_assets.d', ]; @override @@ -204,7 +204,6 @@ class KernelSnapshot extends Target { case TargetPlatform.linux_arm64: case TargetPlatform.tester: case TargetPlatform.web_javascript: - case TargetPlatform.windows_uwp_x64: forceLinkPlatform = false; break; } diff --git a/packages/flutter_tools/lib/src/build_system/targets/ios.dart b/packages/flutter_tools/lib/src/build_system/targets/ios.dart index b3c7fa0db8640..5f73e26a0d9c3 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/ios.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/ios.dart @@ -335,7 +335,7 @@ abstract class UnpackIOS extends Target { 'lipo', frameworkBinaryPath, '-verify_arch', - ...archList + ...archList, ]); if (verifyResult.exitCode != 0) { @@ -444,7 +444,7 @@ abstract class IosAssetBundle extends Target { @override List get outputs => const [ Source.pattern('{OUTPUT_DIR}/App.framework/App'), - Source.pattern('{OUTPUT_DIR}/App.framework/Info.plist') + Source.pattern('{OUTPUT_DIR}/App.framework/Info.plist'), ]; @override diff --git a/packages/flutter_tools/lib/src/build_system/targets/localizations.dart b/packages/flutter_tools/lib/src/build_system/targets/localizations.dart index 2e558be531583..af0f0077927d1 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/localizations.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/localizations.dart @@ -71,12 +71,12 @@ class GenerateLocalizationsTarget extends Target { configFile, if (inputs != null) for (Object inputFile in inputs.whereType()) - environment.fileSystem.file(inputFile) + environment.fileSystem.file(inputFile), ], [ if (outputs != null) for (Object outputFile in outputs.whereType()) - environment.fileSystem.file(outputFile) + environment.fileSystem.file(outputFile), ], ); depfileService.writeToFile( diff --git a/packages/flutter_tools/lib/src/build_system/targets/macos.dart b/packages/flutter_tools/lib/src/build_system/targets/macos.dart index d29fadad190e3..ac5ffc591e438 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/macos.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/macos.dart @@ -93,7 +93,7 @@ abstract class UnpackMacOS extends Target { 'lipo', frameworkBinaryPath, '-verify_arch', - ...archList + ...archList, ]); if (verifyResult.exitCode != 0) { diff --git a/packages/flutter_tools/lib/src/build_system/targets/windows.dart b/packages/flutter_tools/lib/src/build_system/targets/windows.dart index 4eed095b1ca09..b5f80a331e2c3 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/windows.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/windows.dart @@ -26,20 +26,7 @@ const List _kWindowsArtifacts = [ 'flutter_windows.h', ]; -const List _kWindowsUwpArtifacts = [ - 'flutter_windows_winuwp.dll', - 'flutter_windows_winuwp.dll.exp', - 'flutter_windows_winuwp.dll.lib', - 'flutter_windows_winuwp.dll.pdb', - 'flutter_export.h', - 'flutter_messenger.h', - 'flutter_plugin_registrar.h', - 'flutter_texture_registrar.h', - 'flutter_windows.h', -]; - const String _kWindowsDepfile = 'windows_engine_sources.d'; -const String _kWindowsUwpDepfile = 'windows_uwp_engine_sources.d'; /// Copies the Windows desktop embedding files to the copy directory. class UnpackWindows extends Target { @@ -111,84 +98,6 @@ class UnpackWindows extends Target { } } - -/// Copies the Windows desktop embedding files to the copy directory. -class UnpackWindowsUwp extends Target { - const UnpackWindowsUwp(); - - @override - String get name => 'unpack_windows_uwp'; - - @override - List get inputs => const [ - Source.pattern('{FLUTTER_ROOT}/packages/flutter_tools/lib/src/build_system/targets/windows.dart'), - ]; - - @override - List get outputs => const []; - - @override - List get depfiles => const [_kWindowsUwpDepfile]; - - @override - List get dependencies => const []; - - @override - Future build(Environment environment) async { - final String? buildModeEnvironment = environment.defines[kBuildMode]; - if (buildModeEnvironment == null) { - throw MissingDefineException(kBuildMode, name); - } - final BuildMode buildMode = getBuildModeForName(buildModeEnvironment); - final String engineSourcePath = environment.artifacts - .getArtifactPath( - Artifact.windowsUwpDesktopPath, - platform: TargetPlatform.windows_x64, - mode: buildMode, - ); - final String clientSourcePath = environment.artifacts - .getArtifactPath( - Artifact.windowsUwpCppClientWrapper, - platform: TargetPlatform.windows_x64, - mode: buildMode, - ); - final Directory outputDirectory = environment.fileSystem.directory( - environment.fileSystem.path.join( - environment.projectDir.path, - 'winuwp', - 'flutter', - 'ephemeral', - ), - ); - final Depfile depfile = unpackDesktopArtifacts( - fileSystem: environment.fileSystem, - artifacts: _kWindowsUwpArtifacts, - engineSourcePath: engineSourcePath, - outputDirectory: outputDirectory, - clientSourcePaths: [clientSourcePath], - icuDataPath: environment.artifacts.getArtifactPath( - Artifact.icuData, - platform: TargetPlatform.windows_x64 - ) - ); - // Copy flutter_windows.h into flutter directory as well. - final File flutterWindows = outputDirectory.childFile('flutter_windows.h'); - final File flutterWindowsDest = flutterWindows.parent.parent.childFile('flutter_windows.h'); - flutterWindows.copySync(flutterWindowsDest.path); - depfile.outputs.add(flutterWindowsDest); - // - - final DepfileService depfileService = DepfileService( - fileSystem: environment.fileSystem, - logger: environment.logger, - ); - depfileService.writeToFile( - depfile, - environment.buildDir.childFile(_kWindowsUwpDepfile), - ); - } -} - /// Creates a bundle for the Windows desktop target. abstract class BundleWindowsAssets extends Target { const BundleWindowsAssets(); @@ -245,31 +154,16 @@ abstract class BundleWindowsAssets extends Target { } } - -/// Creates a bundle for the Windows desktop target. -abstract class BundleWindowsAssetsUwp extends BundleWindowsAssets { - const BundleWindowsAssetsUwp(); - - @override - List get dependencies => const [ - KernelSnapshot(), - UnpackWindowsUwp(), - ]; -} - /// A wrapper for AOT compilation that copies app.so into the output directory. class WindowsAotBundle extends Target { /// Create a [WindowsAotBundle] wrapper for [aotTarget]. - const WindowsAotBundle(this.aotTarget, {required this.uwp}); + const WindowsAotBundle(this.aotTarget); /// The [AotElfBase] subclass that produces the app.so. final AotElfBase aotTarget; - /// Whether this is the UWP target. - final bool uwp; - @override - String get name => uwp ? 'windows_uwp_aot_bundle' : 'windows_aot_bundle'; + String get name => 'windows_aot_bundle'; @override List get inputs => const [ @@ -277,10 +171,7 @@ class WindowsAotBundle extends Target { ]; @override - List get outputs => uwp ? - const [ - Source.pattern('{OUTPUT_DIR}/winuwp/app.so'), - ] : + List get outputs => const [ Source.pattern('{OUTPUT_DIR}/windows/app.so'), ]; @@ -293,44 +184,7 @@ class WindowsAotBundle extends Target { @override Future build(Environment environment) async { final File outputFile = environment.buildDir.childFile('app.so'); - final Directory outputDirectory = environment.outputDir.childDirectory(uwp ? 'winuwp' : 'windows'); - if (!outputDirectory.existsSync()) { - outputDirectory.createSync(recursive: true); - } - outputFile.copySync(outputDirectory.childFile('app.so').path); - } -} - -/// A wrapper for AOT compilation that copies app.so into the output directory. -class WindowsUwpAotBundle extends Target { - /// Create a [WindowsAotBundle] wrapper for [aotTarget]. - const WindowsUwpAotBundle(this.aotTarget); - - /// The [AotElfBase] subclass that produces the app.so. - final AotElfBase aotTarget; - - @override - String get name => 'windows_uwp_aot_bundle'; - - @override - List get inputs => const [ - Source.pattern('{BUILD_DIR}/app.so'), - ]; - - @override - List get outputs => const [ - Source.pattern('{OUTPUT_DIR}/winuwp/app.so'), - ]; - - @override - List get dependencies => [ - aotTarget, - ]; - - @override - Future build(Environment environment) async { - final File outputFile = environment.buildDir.childFile('app.so'); - final Directory outputDirectory = environment.outputDir.childDirectory('winuwp'); + final Directory outputDirectory = environment.outputDir.childDirectory('windows'); if (!outputDirectory.existsSync()) { outputDirectory.createSync(recursive: true); } @@ -350,7 +204,7 @@ class ReleaseBundleWindowsAssets extends BundleWindowsAssets { @override List get dependencies => [ ...super.dependencies, - const WindowsAotBundle(AotElfRelease(TargetPlatform.windows_x64), uwp: false), + const WindowsAotBundle(AotElfRelease(TargetPlatform.windows_x64)), ]; } @@ -366,7 +220,7 @@ class ProfileBundleWindowsAssets extends BundleWindowsAssets { @override List get dependencies => [ ...super.dependencies, - const WindowsAotBundle(AotElfProfile(TargetPlatform.windows_x64), uwp: false), + const WindowsAotBundle(AotElfProfile(TargetPlatform.windows_x64)), ]; } @@ -386,52 +240,3 @@ class DebugBundleWindowsAssets extends BundleWindowsAssets { const Source.pattern('{OUTPUT_DIR}/flutter_assets/kernel_blob.bin'), ]; } - -class ReleaseBundleWindowsAssetsUwp extends BundleWindowsAssetsUwp { - const ReleaseBundleWindowsAssetsUwp(); - - @override - String get name => 'release_bundle_windows_assets_uwp'; - - @override - List get outputs => const []; - - @override - List get dependencies => [ - ...super.dependencies, - const WindowsAotBundle(AotElfRelease(TargetPlatform.windows_uwp_x64), uwp: true), - ]; -} - -class ProfileBundleWindowsAssetsUwp extends BundleWindowsAssetsUwp { - const ProfileBundleWindowsAssetsUwp(); - - @override - String get name => 'profile_bundle_windows_assets_uwp'; - - @override - List get outputs => const []; - - @override - List get dependencies => [ - ...super.dependencies, - const WindowsAotBundle(AotElfProfile(TargetPlatform.windows_uwp_x64), uwp: true), - ]; -} - -class DebugBundleWindowsAssetsUwp extends BundleWindowsAssetsUwp { - const DebugBundleWindowsAssetsUwp(); - - @override - String get name => 'debug_bundle_windows_assets_uwp'; - - @override - List get inputs => [ - const Source.pattern('{BUILD_DIR}/app.dill'), - ]; - - @override - List get outputs => [ - const Source.pattern('{OUTPUT_DIR}/flutter_assets/kernel_blob.bin'), - ]; -} diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart index 701a898f33922..6fe426a5601f8 100644 --- a/packages/flutter_tools/lib/src/cache.dart +++ b/packages/flutter_tools/lib/src/cache.dart @@ -70,9 +70,6 @@ class DevelopmentArtifact { /// Artifacts required for the Flutter Runner. static const DevelopmentArtifact flutterRunner = DevelopmentArtifact._('flutter_runner', feature: flutterFuchsiaFeature); - /// Artifacts required for desktop Windows UWP. - static const DevelopmentArtifact windowsUwp = DevelopmentArtifact._('winuwp', feature: windowsUwpEmbedding); - /// Artifacts required for any development platform. /// /// This does not need to be explicitly returned from requiredArtifacts as @@ -92,7 +89,6 @@ class DevelopmentArtifact { fuchsia, universal, flutterRunner, - windowsUwp, ]; @override diff --git a/packages/flutter_tools/lib/src/cmake_project.dart b/packages/flutter_tools/lib/src/cmake_project.dart index d30b43e7986fd..bb707840d2d42 100644 --- a/packages/flutter_tools/lib/src/cmake_project.dart +++ b/packages/flutter_tools/lib/src/cmake_project.dart @@ -2,13 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'package:meta/meta.dart'; -import 'package:xml/xml.dart'; - -import 'base/common.dart'; import 'base/file_system.dart'; import 'base/utils.dart'; -import 'cmake.dart'; import 'platform_plugins.dart'; import 'project.dart'; @@ -84,45 +79,6 @@ class WindowsProject extends FlutterProjectPlatform implements CmakeBasedProject Future ensureReadyForPlatformSpecificTooling() async {} } -/// The Windows UWP version of the Windows project. -class WindowsUwpProject extends WindowsProject { - WindowsUwpProject.fromFlutter(super.parent) : super.fromFlutter(); - - @override - String get _childDirectory => 'winuwp'; - - File get runnerCmakeFile => _editableDirectory.childDirectory('runner_uwp').childFile('CMakeLists.txt'); - - /// Eventually this will be used to check if the user's unstable project needs to be regenerated. - int? get projectVersion => int.tryParse(_editableDirectory.childFile('project_version').readAsStringSync()); - - /// Retrieve the GUID of the UWP package. - late final String? packageGuid = getCmakePackageGuid(runnerCmakeFile); - - File get appManifest => _editableDirectory.childDirectory('runner_uwp').childFile('appxmanifest.in'); - - late final String? packageVersion = parseAppVersion(this); -} - -@visibleForTesting -String? parseAppVersion(WindowsUwpProject project) { - final File appManifestFile = project.appManifest; - if (!appManifestFile.existsSync()) { - return null; - } - - XmlDocument document; - try { - document = XmlDocument.parse(appManifestFile.readAsStringSync()); - } on XmlParserException { - throwToolExit('Error parsing $appManifestFile. Please ensure that the appx manifest is a valid XML document and try again.'); - } - for (final XmlElement metaData in document.findAllElements('Identity')) { - return metaData.getAttribute('Version'); - } - return null; -} - /// The Linux sub project. class LinuxProject extends FlutterProjectPlatform implements CmakeBasedProject { LinuxProject.fromFlutter(this.parent); diff --git a/packages/flutter_tools/lib/src/commands/assemble.dart b/packages/flutter_tools/lib/src/commands/assemble.dart index 928181d31f65f..33499acac5a09 100644 --- a/packages/flutter_tools/lib/src/commands/assemble.dart +++ b/packages/flutter_tools/lib/src/commands/assemble.dart @@ -79,10 +79,6 @@ List _kDefaultTargets = [ const DebugBundleWindowsAssets(), const ProfileBundleWindowsAssets(), const ReleaseBundleWindowsAssets(), - // Windows UWP targets - const DebugBundleWindowsAssetsUwp(), - const ProfileBundleWindowsAssetsUwp(), - const ReleaseBundleWindowsAssetsUwp(), ]; /// Assemble provides a low level API to interact with the flutter tool build @@ -183,12 +179,12 @@ class AssembleCommand extends FlutterCommand { final String name = argumentResults.rest.first; final Map targetMap = { for (final Target target in _kDefaultTargets) - target.name: target + target.name: target, }; final List results = [ for (final String targetName in argumentResults.rest) if (targetMap.containsKey(targetName)) - targetMap[targetName]! + targetMap[targetName]!, ]; if (results.isEmpty) { throwToolExit('No target named "$name" defined.'); @@ -390,8 +386,8 @@ void writePerformanceData(Iterable measurements, File ou 'skipped': measurement.skipped, 'succeeded': measurement.succeeded, 'elapsedMilliseconds': measurement.elapsedMilliseconds, - } - ] + }, + ], }; if (!outFile.parent.existsSync()) { outFile.parent.createSync(recursive: true); diff --git a/packages/flutter_tools/lib/src/commands/build.dart b/packages/flutter_tools/lib/src/commands/build.dart index 5cfaa11c5dc97..9a332a2753479 100644 --- a/packages/flutter_tools/lib/src/commands/build.dart +++ b/packages/flutter_tools/lib/src/commands/build.dart @@ -18,7 +18,6 @@ import 'build_fuchsia.dart'; import 'build_ios.dart'; import 'build_ios_framework.dart'; import 'build_web.dart'; -import 'build_winuwp.dart'; class BuildCommand extends FlutterCommand { BuildCommand({ bool verboseHelp = false }) { @@ -39,7 +38,6 @@ class BuildCommand extends FlutterCommand { verboseHelp: verboseHelp )); _addSubcommand(BuildWindowsCommand(verboseHelp: verboseHelp)); - _addSubcommand(BuildWindowsUwpCommand(verboseHelp: verboseHelp)); _addSubcommand(BuildFuchsiaCommand(verboseHelp: verboseHelp)); } diff --git a/packages/flutter_tools/lib/src/commands/build_bundle.dart b/packages/flutter_tools/lib/src/commands/build_bundle.dart index f7f90453edc00..327097e7be687 100644 --- a/packages/flutter_tools/lib/src/commands/build_bundle.dart +++ b/packages/flutter_tools/lib/src/commands/build_bundle.dart @@ -108,7 +108,6 @@ class BuildBundleCommand extends BuildSubCommand { } break; case TargetPlatform.windows_x64: - case TargetPlatform.windows_uwp_x64: if (!featureFlags.isWindowsEnabled) { throwToolExit('Windows is not a supported target platform.'); } diff --git a/packages/flutter_tools/lib/src/commands/build_ios_framework.dart b/packages/flutter_tools/lib/src/commands/build_ios_framework.dart index ce2cc0432e760..daaaafd34287b 100644 --- a/packages/flutter_tools/lib/src/commands/build_ios_framework.dart +++ b/packages/flutter_tools/lib/src/commands/build_ios_framework.dart @@ -490,7 +490,7 @@ end podProduct as Directory, simulatorBuildConfiguration .childDirectory(builtProduct.basename) - .childDirectory(podFrameworkName) + .childDirectory(podFrameworkName), ]; await _produceXCFramework(frameworks, binaryName, modeDirectory); @@ -520,10 +520,10 @@ end entity.basename.endsWith('dSYM')) .map((FileSystemEntity entity) => ['-debug-symbols', entity.path]) - .expand((List parameter) => parameter) + .expand((List parameter) => parameter), ], '-output', - outputDirectory.childDirectory('$frameworkBinaryName.xcframework').path + outputDirectory.childDirectory('$frameworkBinaryName.xcframework').path, ]; final RunResult xcframeworkResult = await globals.processUtils.run( diff --git a/packages/flutter_tools/lib/src/commands/build_winuwp.dart b/packages/flutter_tools/lib/src/commands/build_winuwp.dart deleted file mode 100644 index 7fb6eb9617775..0000000000000 --- a/packages/flutter_tools/lib/src/commands/build_winuwp.dart +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2014 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:meta/meta.dart'; - -import '../base/common.dart'; -import '../build_info.dart'; -import '../cache.dart'; -import '../features.dart'; -import '../globals.dart' as globals; -import '../project.dart'; -import '../runner/flutter_command.dart' show FlutterCommandResult; -import '../windows/build_windows.dart'; -import '../windows/visual_studio.dart'; -import 'build.dart'; - -/// A command to build a Windows UWP desktop target. -class BuildWindowsUwpCommand extends BuildSubCommand { - BuildWindowsUwpCommand({ - bool verboseHelp = false, - }) : super(verboseHelp: verboseHelp) { - addCommonDesktopBuildOptions(verboseHelp: verboseHelp); - } - - @override - final String name = 'winuwp'; - - @override - bool get hidden => !featureFlags.isWindowsUwpEnabled || !globals.platform.isWindows; - - @override - Future> get requiredArtifacts async => { - DevelopmentArtifact.windowsUwp, - }; - - @override - String get description => 'Build a Windows UWP desktop application.'; - - @visibleForTesting - VisualStudio? visualStudioOverride; - - @override - Future runCommand() async { - final FlutterProject flutterProject = FlutterProject.current(); - final BuildInfo buildInfo = await getBuildInfo(); - if (!featureFlags.isWindowsUwpEnabled) { - throwToolExit('"build winuwp" is not currently supported.'); - } - if (!globals.platform.isWindows) { - throwToolExit('"build winuwp" only supported on Windows hosts.'); - } - displayNullSafetyMode(buildInfo); - await buildWindowsUwp( - flutterProject.windowsUwp, - buildInfo, - target: targetFile, - visualStudioOverride: visualStudioOverride, - ); - return FlutterCommandResult.success(); - } -} diff --git a/packages/flutter_tools/lib/src/commands/create.dart b/packages/flutter_tools/lib/src/commands/create.dart index cf85a54a70500..8ae8fb5df3799 100644 --- a/packages/flutter_tools/lib/src/commands/create.dart +++ b/packages/flutter_tools/lib/src/commands/create.dart @@ -289,7 +289,6 @@ class CreateCommand extends CreateBase { linux: featureFlags.isLinuxEnabled && platforms.contains('linux'), macos: featureFlags.isMacOSEnabled && platforms.contains('macos'), windows: featureFlags.isWindowsEnabled && platforms.contains('windows'), - windowsUwp: featureFlags.isWindowsUwpEnabled && platforms.contains('winuwp'), // Enable null safety everywhere. dartSdkVersionBounds: "'>=$dartSdk <3.0.0'", implementationTests: boolArg('implementation-tests'), @@ -666,7 +665,7 @@ Your $application code is in $relativeAppMain. List _getSupportedPlatformsFromTemplateContext(Map templateContext) { return [ for (String platform in kAllCreatePlatforms) - if (templateContext[platform] == true) platform + if (templateContext[platform] == true) platform, ]; } diff --git a/packages/flutter_tools/lib/src/commands/create_base.dart b/packages/flutter_tools/lib/src/commands/create_base.dart index f1f9856bc8b31..737b3d3c04806 100644 --- a/packages/flutter_tools/lib/src/commands/create_base.dart +++ b/packages/flutter_tools/lib/src/commands/create_base.dart @@ -20,7 +20,6 @@ import '../cache.dart'; import '../convert.dart'; import '../dart/generate_synthetic_packages.dart'; import '../dart/pub.dart'; -import '../features.dart'; import '../flutter_project_metadata.dart'; import '../globals.dart' as globals; import '../project.dart'; @@ -45,7 +44,6 @@ const List kAllCreatePlatforms = [ 'linux', 'macos', 'web', - 'winuwp', ]; const String _kDefaultPlatformArgumentHelp = @@ -165,13 +163,9 @@ abstract class CreateBase extends FlutterCommand { aliases: [ 'platform' ], defaultsTo: [ ..._kAvailablePlatforms, - if (featureFlags.isWindowsUwpEnabled) - 'winuwp', ], allowed: [ ..._kAvailablePlatforms, - if (featureFlags.isWindowsUwpEnabled) - 'winuwp', ], ); } @@ -355,7 +349,6 @@ abstract class CreateBase extends FlutterCommand { bool linux = false, bool macos = false, bool windows = false, - bool windowsUwp = false, bool implementationTests = false, }) { final String pluginDartClass = _createPluginClassName(projectName); @@ -418,7 +411,6 @@ abstract class CreateBase extends FlutterCommand { 'linux': linux, 'macos': macos, 'windows': windows, - 'winuwp': windowsUwp, 'year': DateTime.now().year, 'dartSdkVersionBounds': dartSdkVersionBounds, 'implementationTests': implementationTests, @@ -522,7 +514,6 @@ abstract class CreateBase extends FlutterCommand { final bool macOSPlatform = templateContext['macos'] as bool ?? false; final bool windowsPlatform = templateContext['windows'] as bool ?? false; final bool webPlatform = templateContext['web'] as bool ?? false; - final bool winUwpPlatform = templateContext['winuwp'] as bool ?? false; if (boolArg('pub')) { final Environment environment = Environment( @@ -562,7 +553,6 @@ abstract class CreateBase extends FlutterCommand { macOSPlatform: macOSPlatform, windowsPlatform: windowsPlatform, webPlatform: webPlatform, - winUwpPlatform: winUwpPlatform, ); } final List platformsForMigrateConfig = [SupportedPlatform.root]; @@ -585,9 +575,6 @@ abstract class CreateBase extends FlutterCommand { if (windowsPlatform) { platformsForMigrateConfig.add(SupportedPlatform.windows); } - if (winUwpPlatform) { - platformsForMigrateConfig.add(SupportedPlatform.windowsuwp); - } if (templateContext['fuchsia'] == true) { platformsForMigrateConfig.add(SupportedPlatform.fuchsia); } diff --git a/packages/flutter_tools/lib/src/commands/custom_devices.dart b/packages/flutter_tools/lib/src/commands/custom_devices.dart index fbc52fe615922..af6c3ac8c0c5c 100644 --- a/packages/flutter_tools/lib/src/commands/custom_devices.dart +++ b/packages/flutter_tools/lib/src/commands/custom_devices.dart @@ -529,7 +529,7 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase { final String exampleOrDefault = [ if (example != null) 'example: $example', - if (defaultsTo != null) 'empty for $defaultsTo' + if (defaultsTo != null) 'empty for $defaultsTo', ].join(', '); if (exampleOrDefault.isNotEmpty) { @@ -710,7 +710,7 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase { '-o', 'BatchMode=yes', if (ipv6) '-6', r'${localPath}', - '$sshTarget:/tmp/\${appName}' + '$sshTarget:/tmp/\${appName}', ], uninstallCommand: [ @@ -718,7 +718,7 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase { '-o', 'BatchMode=yes', if (ipv6) '-6', sshTarget, - r'rm -rf "/tmp/${appName}"' + r'rm -rf "/tmp/${appName}"', ], runDebugCommand: [ @@ -726,7 +726,7 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase { '-o', 'BatchMode=yes', if (ipv6) '-6', sshTarget, - remoteRunDebugCommand + remoteRunDebugCommand, ], forwardPortCommand: usePortForwarding @@ -737,7 +737,7 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase { if (ipv6) '-6', '-L', '$formattedLoopbackIp:\${hostPort}:$formattedLoopbackIp:\${devicePort}', sshTarget, - "echo 'Port forwarding success'; read" + "echo 'Port forwarding success'; read", ] : null, forwardPortSuccessRegex: usePortForwarding @@ -750,7 +750,7 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase { '-o', 'BatchMode=yes', if (ipv6) '-6', sshTarget, - screenshotCommand + screenshotCommand, ] : null ); @@ -762,7 +762,7 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase { if (ipv6) '-6', '-n', '1', '-w', '500', - targetStr + targetStr, ], explicitPingSuccessRegex: true, pingSuccessRegex: RegExp(r'[<=]\d+ms') @@ -774,7 +774,7 @@ class CustomDevicesAddCommand extends CustomDevicesCommandBase { if (ipv6) '-6', '-c', '1', '-w', '1', - targetStr + targetStr, ], explicitPingSuccessRegex: true, pingSuccessRegex: null diff --git a/packages/flutter_tools/lib/src/commands/daemon.dart b/packages/flutter_tools/lib/src/commands/daemon.dart index 246cdc6ba2f05..607a512b51fe7 100644 --- a/packages/flutter_tools/lib/src/commands/daemon.dart +++ b/packages/flutter_tools/lib/src/commands/daemon.dart @@ -1103,7 +1103,7 @@ Future> _deviceToMap(Device device) async { 'flutterExit': device.supportsFlutterExit, 'hardwareRendering': await device.supportsHardwareRendering, 'startPaused': device.supportsStartPaused, - } + }, }; } diff --git a/packages/flutter_tools/lib/src/commands/format.dart b/packages/flutter_tools/lib/src/commands/format.dart index 986dc7ba22b75..69f4ef4988ae8 100644 --- a/packages/flutter_tools/lib/src/commands/format.dart +++ b/packages/flutter_tools/lib/src/commands/format.dart @@ -51,7 +51,7 @@ class FormatCommand extends FlutterCommand { if (arg == '--dry-run' || arg == '-n') '--output=none' else - arg + arg, ]); } diff --git a/packages/flutter_tools/lib/src/commands/precache.dart b/packages/flutter_tools/lib/src/commands/precache.dart index 39de6503826e0..739efc8a1a53d 100644 --- a/packages/flutter_tools/lib/src/commands/precache.dart +++ b/packages/flutter_tools/lib/src/commands/precache.dart @@ -50,8 +50,6 @@ class PrecacheCommand extends FlutterCommand { help: 'Precache artifacts for Linux desktop development.'); argParser.addFlag('windows', negatable: true, defaultsTo: false, help: 'Precache artifacts for Windows desktop development.'); - argParser.addFlag('winuwp', negatable: true, defaultsTo: false, - help: 'Precache artifacts for Windows UWP desktop development.'); argParser.addFlag('macos', negatable: true, defaultsTo: false, help: 'Precache artifacts for macOS desktop development.'); argParser.addFlag('fuchsia', negatable: true, defaultsTo: false, @@ -89,7 +87,7 @@ class PrecacheCommand extends FlutterCommand { 'android_gen_snapshot', 'android_maven', 'android_internal_build', - ] + ], }; /// Returns a reverse mapping of _expandedArtifacts, from child artifact name @@ -98,7 +96,7 @@ class PrecacheCommand extends FlutterCommand { return { for (final MapEntry> entry in _expandedArtifacts.entries) for (final String childArtifactName in entry.value) - childArtifactName: entry.key + childArtifactName: entry.key, }; } diff --git a/packages/flutter_tools/lib/src/commands/test.dart b/packages/flutter_tools/lib/src/commands/test.dart index fca00b4b39c75..026529165ded3 100644 --- a/packages/flutter_tools/lib/src/commands/test.dart +++ b/packages/flutter_tools/lib/src/commands/test.dart @@ -277,7 +277,7 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts { if (globals.fs.isDirectorySync(path)) ..._findTests(globals.fs.directory(path)) else - globals.fs.path.normalize(globals.fs.path.absolute(path)) + globals.fs.path.normalize(globals.fs.path.absolute(path)), ]; } diff --git a/packages/flutter_tools/lib/src/context_runner.dart b/packages/flutter_tools/lib/src/context_runner.dart index aea6b97f89f5b..7dcda5c5e6aa7 100644 --- a/packages/flutter_tools/lib/src/context_runner.dart +++ b/packages/flutter_tools/lib/src/context_runner.dart @@ -64,7 +64,6 @@ import 'run_hot.dart'; import 'runner/local_engine.dart'; import 'version.dart'; import 'web/workflow.dart'; -import 'windows/uwptool.dart'; import 'windows/visual_studio.dart'; import 'windows/visual_studio_validator.dart'; import 'windows/windows_workflow.dart'; @@ -207,11 +206,6 @@ Future runInContext( operatingSystemUtils: globals.os, terminal: globals.terminal, customDevicesConfig: globals.customDevicesConfig, - uwptool: UwpTool( - artifacts: globals.artifacts, - logger: globals.logger, - processManager: globals.processManager, - ), ), DevtoolsLauncher: () => DevtoolsServerLauncher( processManager: globals.processManager, diff --git a/packages/flutter_tools/lib/src/custom_devices/custom_device.dart b/packages/flutter_tools/lib/src/custom_devices/custom_device.dart index 8373d2c882a1e..e663cfc60b511 100644 --- a/packages/flutter_tools/lib/src/custom_devices/custom_device.dart +++ b/packages/flutter_tools/lib/src/custom_devices/custom_device.dart @@ -156,7 +156,7 @@ class CustomDevicePortForwarder extends DevicePortForwarder { _forwardPortCommand, { 'devicePort': '$devicePort', - 'hostPort': '$hostPort' + 'hostPort': '$hostPort', }, additionalReplacementValues: _additionalReplacementValues ); @@ -394,7 +394,7 @@ class CustomDeviceAppSession { { 'remotePath': '/tmp/', 'appName': packageName, - 'engineOptions': _getEngineOptionsForCmdline(debuggingOptions, traceStartup, route) + 'engineOptions': _getEngineOptionsForCmdline(debuggingOptions, traceStartup, route), } ); @@ -587,7 +587,7 @@ class CustomDevice extends Device { _config.postBuildCommand!, { 'appName': appName, - 'localPath': localPath + 'localPath': localPath, }, additionalReplacementValues: additionalReplacementValues ); @@ -621,7 +621,7 @@ class CustomDevice extends Device { final List interpolated = interpolateCommand( _config.uninstallCommand, { - 'appName': appName + 'appName': appName, }, additionalReplacementValues: additionalReplacementValues ); @@ -657,7 +657,7 @@ class CustomDevice extends Device { _config.installCommand, { 'localPath': localPath, - 'appName': appName + 'appName': appName, }, additionalReplacementValues: additionalReplacementValues ); diff --git a/packages/flutter_tools/lib/src/custom_devices/custom_device_config.dart b/packages/flutter_tools/lib/src/custom_devices/custom_device_config.dart index ea69950651c5f..7f5c031141d2b 100644 --- a/packages/flutter_tools/lib/src/custom_devices/custom_device_config.dart +++ b/packages/flutter_tools/lib/src/custom_devices/custom_device_config.dart @@ -283,7 +283,7 @@ class CustomDeviceConfig { 'ping', '-w', '1', '-c', '1', - 'raspberrypi' + 'raspberrypi', ], explicitPingSuccessRegex: true ); diff --git a/packages/flutter_tools/lib/src/custom_devices/custom_devices_config.dart b/packages/flutter_tools/lib/src/custom_devices/custom_devices_config.dart index ec9192a9b845a..cb68c6cfe3471 100644 --- a/packages/flutter_tools/lib/src/custom_devices/custom_devices_config.dart +++ b/packages/flutter_tools/lib/src/custom_devices/custom_devices_config.dart @@ -186,7 +186,7 @@ class CustomDevicesConfig { _kCustomDevicesConfigKey, [ ...?_getDevicesJsonValue(), - config.toJson() + config.toJson(), ] ); } diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart index 40652d80d16d4..8698acf08317b 100644 --- a/packages/flutter_tools/lib/src/device.dart +++ b/packages/flutter_tools/lib/src/device.dart @@ -158,7 +158,7 @@ abstract class DeviceManager { }, onError: (dynamic error, StackTrace stackTrace) { // Return matches from other discoverers even if one fails. _logger.printTrace('Ignored error discovering $deviceId: $error'); - }) + }), ]; // Wait for an exact match, or for all discoverers to return results. @@ -722,7 +722,7 @@ abstract class Device { 'flutterExit': supportsFlutterExit, 'hardwareRendering': isLocalEmu && await supportsHardwareRendering, 'startPaused': supportsStartPaused, - } + }, }; } diff --git a/packages/flutter_tools/lib/src/drive/web_driver_service.dart b/packages/flutter_tools/lib/src/drive/web_driver_service.dart index fb596428894a6..8f99f96763fd7 100644 --- a/packages/flutter_tools/lib/src/drive/web_driver_service.dart +++ b/packages/flutter_tools/lib/src/drive/web_driver_service.dart @@ -258,14 +258,14 @@ Map getDesiredCapabilities(Browser browser, bool headless, [Str '--no-default-browser-check', '--no-sandbox', '--no-first-run', - if (headless) '--headless' + if (headless) '--headless', ], 'perfLoggingPrefs': { 'traceCategories': 'devtools.timeline,' - 'v8,blink.console,benchmark,blink,' - 'blink.user_timing' - } + 'v8,blink.console,benchmark,blink,' + 'blink.user_timing', + }, }, }; break; @@ -275,7 +275,7 @@ Map getDesiredCapabilities(Browser browser, bool headless, [Str 'browserName': 'firefox', 'moz:firefoxOptions' : { 'args': [ - if (headless) '-headless' + if (headless) '-headless', ], 'prefs': { 'dom.file.createInChild': true, @@ -285,10 +285,10 @@ Map getDesiredCapabilities(Browser browser, bool headless, [Str 'media.gmp-provider.enabled': false, 'network.captive-portal-service.enabled': false, 'security.insecure_field_warning.contextual.enabled': false, - 'test.currentTimeOffsetSeconds': 11491200 + 'test.currentTimeOffsetSeconds': 11491200, }, - 'log': {'level': 'trace'} - } + 'log': {'level': 'trace'}, + }, }; break; case Browser.edge: @@ -306,7 +306,7 @@ Map getDesiredCapabilities(Browser browser, bool headless, [Str return { 'platformName': 'ios', 'browserName': 'safari', - 'safari:useSimulator': true + 'safari:useSimulator': true, }; case Browser.androidChrome: return { @@ -314,7 +314,7 @@ Map getDesiredCapabilities(Browser browser, bool headless, [Str 'platformName': 'android', 'goog:chromeOptions': { 'androidPackage': 'com.android.chrome', - 'args': ['--disable-fullscreen'] + 'args': ['--disable-fullscreen'], }, }; } diff --git a/packages/flutter_tools/lib/src/features.dart b/packages/flutter_tools/lib/src/features.dart index f94f031b6f6cf..a53d3baf3fd07 100644 --- a/packages/flutter_tools/lib/src/features.dart +++ b/packages/flutter_tools/lib/src/features.dart @@ -47,9 +47,6 @@ abstract class FeatureFlags { /// Whether fast single widget reloads are enabled. bool get isSingleWidgetReloadEnabled => false; - /// Whether the windows UWP embedding is enabled. - bool get isWindowsUwpEnabled => false; - /// Whether a particular feature is enabled for the current channel. /// /// Prefer using one of the specific getters above instead of this API. @@ -62,7 +59,6 @@ const List allFeatures = [ flutterLinuxDesktopFeature, flutterMacOSDesktopFeature, flutterWindowsDesktopFeature, - windowsUwpEmbedding, singleWidgetReload, flutterAndroidFeature, flutterIOSFeature, @@ -212,16 +208,6 @@ const Feature singleWidgetReload = Feature( ), ); -/// The feature for enabling the Windows UWP embedding. -const Feature windowsUwpEmbedding = Feature( - name: 'Flutter for Windows UWP', - configSetting: 'enable-windows-uwp-desktop', - extraHelpText: 'Warning: Windows UWP support is obsolete and will be removed.', - master: FeatureChannelSetting( - available: true, - ), -); - /// A [Feature] is a process for conditionally enabling tool features. /// /// All settings are optional, and if not provided will generally default to diff --git a/packages/flutter_tools/lib/src/flutter_application_package.dart b/packages/flutter_tools/lib/src/flutter_application_package.dart index a0f924bef9eb7..c7afa223d372e 100644 --- a/packages/flutter_tools/lib/src/flutter_application_package.dart +++ b/packages/flutter_tools/lib/src/flutter_application_package.dart @@ -105,8 +105,6 @@ class FlutterApplicationPackageFactory extends ApplicationPackageFactory { return applicationBinary == null ? FuchsiaApp.fromFuchsiaProject(FlutterProject.current().fuchsia) : FuchsiaApp.fromPrebuiltApp(applicationBinary); - case TargetPlatform.windows_uwp_x64: - return BuildableUwpApp(project: FlutterProject.current().windowsUwp); } } } diff --git a/packages/flutter_tools/lib/src/flutter_cache.dart b/packages/flutter_tools/lib/src/flutter_cache.dart index 818c10f1082b8..4874af196d45b 100644 --- a/packages/flutter_tools/lib/src/flutter_cache.dart +++ b/packages/flutter_tools/lib/src/flutter_cache.dart @@ -38,7 +38,6 @@ class FlutterCache extends Cache { registerArtifact(FlutterWebSdk(this, platform: platform)); registerArtifact(FlutterSdk(this, platform: platform)); registerArtifact(WindowsEngineArtifacts(this, platform: platform)); - registerArtifact(WindowsUwpEngineArtifacts(this, platform: platform)); registerArtifact(MacOSEngineArtifacts(this, platform: platform)); registerArtifact(LinuxEngineArtifacts(this, platform: platform)); registerArtifact(LinuxFuchsiaSDKArtifacts(this, platform: platform)); @@ -305,33 +304,6 @@ class WindowsEngineArtifacts extends EngineCachedArtifact { List getLicenseDirs() => const []; } -class WindowsUwpEngineArtifacts extends EngineCachedArtifact { - WindowsUwpEngineArtifacts(Cache cache, { - required Platform platform, - }) : _platform = platform, - super( - 'windows-uwp-sdk', - cache, - DevelopmentArtifact.windowsUwp, - ); - - final Platform _platform; - - @override - List getPackageDirs() => const []; - - @override - List> getBinaryDirs() { - if (_platform.isWindows || ignorePlatformFiltering) { - return _windowsUwpDesktopBinaryDirs; - } - return const >[]; - } - - @override - List getLicenseDirs() => const []; -} - /// Artifacts required for desktop Linux builds. class LinuxEngineArtifacts extends EngineCachedArtifact { LinuxEngineArtifacts(Cache cache, { @@ -864,13 +836,6 @@ const List> _windowsDesktopBinaryDirs = >[ ['windows-x64-release', 'windows-x64-release/windows-x64-flutter.zip'], ]; -const List> _windowsUwpDesktopBinaryDirs = >[ - ['windows-uwp-x64-debug', 'windows-x64-debug/windows-uwp-x64-flutter.zip'], - ['windows-uwp-x64-debug', 'windows-x64/flutter-cpp-client-wrapper.zip'], - ['windows-uwp-x64-profile', 'windows-x64-profile/windows-uwp-x64-flutter.zip'], - ['windows-uwp-x64-release', 'windows-x64-release/windows-uwp-x64-flutter.zip'], -]; - const List> _macOSDesktopBinaryDirs = >[ ['darwin-x64', 'darwin-x64/FlutterMacOS.framework.zip'], ['darwin-x64', 'darwin-x64/gen_snapshot.zip'], diff --git a/packages/flutter_tools/lib/src/flutter_device_manager.dart b/packages/flutter_tools/lib/src/flutter_device_manager.dart index 4e394a166f98e..887783b5df426 100644 --- a/packages/flutter_tools/lib/src/flutter_device_manager.dart +++ b/packages/flutter_tools/lib/src/flutter_device_manager.dart @@ -29,7 +29,7 @@ import 'macos/xcdevice.dart'; import 'tester/flutter_tester.dart'; import 'version.dart'; import 'web/web_device.dart'; -import 'windows/uwptool.dart'; + import 'windows/windows_device.dart'; import 'windows/windows_workflow.dart'; @@ -56,7 +56,6 @@ class FlutterDeviceManager extends DeviceManager { required WindowsWorkflow windowsWorkflow, required super.terminal, required CustomDevicesConfig customDevicesConfig, - required UwpTool uwptool, }) : deviceDiscoverers = [ AndroidDevices( logger: logger, @@ -120,8 +119,6 @@ class FlutterDeviceManager extends DeviceManager { logger: logger, fileSystem: fileSystem, windowsWorkflow: windowsWorkflow, - featureFlags: featureFlags, - uwptool: uwptool, ), WebDevices( featureFlags: featureFlags, diff --git a/packages/flutter_tools/lib/src/flutter_features.dart b/packages/flutter_tools/lib/src/flutter_features.dart index d3b1295831b5a..9f4ce259850f8 100644 --- a/packages/flutter_tools/lib/src/flutter_features.dart +++ b/packages/flutter_tools/lib/src/flutter_features.dart @@ -47,9 +47,6 @@ class FlutterFeatureFlags implements FeatureFlags { @override bool get isSingleWidgetReloadEnabled => isEnabled(singleWidgetReload); - @override - bool get isWindowsUwpEnabled => isEnabled(windowsUwpEmbedding); - @override bool isEnabled(Feature feature) { final String currentChannel = _flutterVersion.channel; diff --git a/packages/flutter_tools/lib/src/flutter_manifest.dart b/packages/flutter_tools/lib/src/flutter_manifest.dart index d2aa00347e3c5..5b4fd6fed47da 100644 --- a/packages/flutter_tools/lib/src/flutter_manifest.dart +++ b/packages/flutter_tools/lib/src/flutter_manifest.dart @@ -14,7 +14,7 @@ import 'base/utils.dart'; import 'plugins.dart'; const Set _kValidPluginPlatforms = { - 'android', 'ios', 'web', 'windows', 'linux', 'macos' + 'android', 'ios', 'web', 'windows', 'linux', 'macos', }; /// A wrapper around the `flutter` section in the `pubspec.yaml` file. diff --git a/packages/flutter_tools/lib/src/flutter_plugins.dart b/packages/flutter_tools/lib/src/flutter_plugins.dart index d2f8fbd8092bf..a399c834b49f8 100644 --- a/packages/flutter_tools/lib/src/flutter_plugins.dart +++ b/packages/flutter_tools/lib/src/flutter_plugins.dart @@ -922,25 +922,6 @@ Future writeWindowsPluginFiles(FlutterProject project, List plugin await _writePluginCmakefile(project.windows.generatedPluginCmakeFile, context, templateRenderer); } -/// The tooling currently treats UWP and win32 as identical, other than variant -/// filtering, for the purposes of tooling support and initial UWP bootstrap. -@visibleForTesting -Future writeWindowsUwpPluginFiles(FlutterProject project, List plugins, TemplateRenderer templateRenderer) async { - final List methodChannelPlugins = _filterMethodChannelPlugins(plugins, WindowsPlugin.kConfigKey); - final List uwpPlugins = _filterPluginsByVariant(methodChannelPlugins, WindowsPlugin.kConfigKey, PluginPlatformVariant.winuwp); - final List> windowsMethodChannelPlugins = _extractPlatformMaps(uwpPlugins, WindowsPlugin.kConfigKey); - final List ffiPlugins = _filterFfiPlugins(plugins, WindowsPlugin.kConfigKey)..removeWhere(methodChannelPlugins.contains); - final List> windowsFfiPlugins = _extractPlatformMaps(ffiPlugins, WindowsPlugin.kConfigKey); - final Map context = { - 'os': 'windows', - 'methodChannelPlugins': windowsMethodChannelPlugins, - 'ffiPlugins': windowsFfiPlugins, - 'pluginsDir': _cmakeRelativePluginSymlinkDirectoryPath(project.windowsUwp), - }; - await _writeCppPluginRegistrant(project.windowsUwp.managedDirectory, context, templateRenderer); - await _writePluginCmakefile(project.windowsUwp.generatedPluginCmakeFile, context, templateRenderer); -} - Future _writeCppPluginRegistrant(Directory destination, Map templateContext, TemplateRenderer templateRenderer) async { _renderTemplateToFile( _cppPluginRegistryHeaderTemplate, @@ -1006,13 +987,6 @@ void createPluginSymlinks(FlutterProject project, {bool force = false, @visibleF force: force, ); } - if (localFeatureFlags.isWindowsUwpEnabled && project.windowsUwp.existsSync()) { - _createPlatformPluginSymlinks( - project.windowsUwp.pluginSymlinkDirectory, - platformPlugins[project.windows.pluginConfigKey] as List?, - force: force, - ); - } } /// Handler for symlink failures which provides specific instructions for known @@ -1104,7 +1078,6 @@ Future injectPlugins( bool linuxPlatform = false, bool macOSPlatform = false, bool windowsPlatform = false, - bool winUwpPlatform = false, bool webPlatform = false, }) async { final List plugins = await findPlugins(project); @@ -1125,9 +1098,6 @@ Future injectPlugins( if (windowsPlatform) { await writeWindowsPluginFiles(project, plugins, globals.templateRenderer); } - if (winUwpPlatform) { - await writeWindowsUwpPluginFiles(project, plugins, globals.templateRenderer); - } if (!project.isModule) { final List darwinProjects = [ if (iosPlatform) project.ios, diff --git a/packages/flutter_tools/lib/src/fuchsia/fuchsia_ffx.dart b/packages/flutter_tools/lib/src/fuchsia/fuchsia_ffx.dart index 4bb65497f3e91..d790b7612b3c7 100644 --- a/packages/flutter_tools/lib/src/fuchsia/fuchsia_ffx.dart +++ b/packages/flutter_tools/lib/src/fuchsia/fuchsia_ffx.dart @@ -58,7 +58,7 @@ class FuchsiaFfx { 'target', 'list', '--format', - 's' + 's', ]; final RunResult result = await _processUtils.run(command); if (result.exitCode != 0) { diff --git a/packages/flutter_tools/lib/src/fuchsia/fuchsia_kernel_compiler.dart b/packages/flutter_tools/lib/src/fuchsia/fuchsia_kernel_compiler.dart index f7731fbf944f6..b971ed416a8b5 100644 --- a/packages/flutter_tools/lib/src/fuchsia/fuchsia_kernel_compiler.dart +++ b/packages/flutter_tools/lib/src/fuchsia/fuchsia_kernel_compiler.dart @@ -63,7 +63,7 @@ class FuchsiaKernelCompiler { globals.fs.path.join(outDir, '$appName.dil'), '--component-name', appName, - ...getBuildInfoFlags(buildInfo: buildInfo, manifestPath: manifestPath) + ...getBuildInfoFlags(buildInfo: buildInfo, manifestPath: manifestPath), ]; flags += [ @@ -104,12 +104,12 @@ class FuchsiaKernelCompiler { // AOT/JIT: if (buildInfo.usesAot) ...[ '--aot', - '--tfa' + '--tfa', ] else ...[ '--no-link-platform', '--split-output-by-packages', '--manifest', - manifestPath + manifestPath, ], // debug, profile, jit release, release: diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart index b4780a3847e91..bc1db285b263d 100644 --- a/packages/flutter_tools/lib/src/ios/devices.dart +++ b/packages/flutter_tools/lib/src/ios/devices.dart @@ -133,7 +133,7 @@ class IOSDevices extends PollingDeviceDiscovery { Future> getDiagnostics() async { if (!_platform.isMacOS) { return const [ - 'Control of iOS devices or simulators only supported on macOS.' + 'Control of iOS devices or simulators only supported on macOS.', ]; } diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart index 5b7653d5bd3eb..25606dd5e82f6 100644 --- a/packages/flutter_tools/lib/src/ios/mac.dart +++ b/packages/flutter_tools/lib/src/ios/mac.dart @@ -359,7 +359,7 @@ Future buildXcodeProject({ '-resultBundlePath', tempDir.childFile(_kResultBundlePath).absolute.path, '-resultBundleVersion', - _kResultBundleVersion + _kResultBundleVersion, ]); // Don't log analytics for downstream Flutter commands. diff --git a/packages/flutter_tools/lib/src/ios/simulators.dart b/packages/flutter_tools/lib/src/ios/simulators.dart index 407a70bf42a05..ea8d1fc7afe95 100644 --- a/packages/flutter_tools/lib/src/ios/simulators.dart +++ b/packages/flutter_tools/lib/src/ios/simulators.dart @@ -473,7 +473,7 @@ class IOSSimulator extends Device { if (debuggingOptions.traceSkiaAllowlist != null) '--trace-skia-allowlist="${debuggingOptions.traceSkiaAllowlist}"', if (dartVmFlags.isNotEmpty) '--dart-flags=$dartVmFlags', '--observatory-port=${debuggingOptions.hostVmServicePort ?? 0}', - if (route != null) '--route=$route' + if (route != null) '--route=$route', ], ]; diff --git a/packages/flutter_tools/lib/src/ios/xcodeproj.dart b/packages/flutter_tools/lib/src/ios/xcodeproj.dart index 8afba4c76b5d6..47f8575740873 100644 --- a/packages/flutter_tools/lib/src/ios/xcodeproj.dart +++ b/packages/flutter_tools/lib/src/ios/xcodeproj.dart @@ -194,7 +194,7 @@ class XcodeProjectInterpreter { 'generic/platform=iOS Simulator', '-showBuildSettings', 'BUILD_DIR=${_fileSystem.path.absolute(getIosBuildDirectory())}', - ...environmentVariablesAsXcodeBuildSettings(_platform) + ...environmentVariablesAsXcodeBuildSettings(_platform), ]; try { // showBuildSettings is reported to occasionally timeout. Here, we give it @@ -290,7 +290,7 @@ class XcodeProjectInterpreter { if (!verbose) '-quiet', 'clean', - ...environmentVariablesAsXcodeBuildSettings(_platform) + ...environmentVariablesAsXcodeBuildSettings(_platform), ], workingDirectory: _fileSystem.currentDirectory.path); } diff --git a/packages/flutter_tools/lib/src/isolated/devfs_web.dart b/packages/flutter_tools/lib/src/isolated/devfs_web.dart index 7539977abd3ed..3a82a98a470b8 100644 --- a/packages/flutter_tools/lib/src/isolated/devfs_web.dart +++ b/packages/flutter_tools/lib/src/isolated/devfs_web.dart @@ -267,7 +267,7 @@ class WebAssetServer implements AssetReader { final String result = await globals.fs.file(uri.toFilePath()).readAsString(); return shelf.Response.ok(result, headers: { - HttpHeaders.contentTypeHeader: 'application/javascript' + HttpHeaders.contentTypeHeader: 'application/javascript', }); } return innerHandler(request); diff --git a/packages/flutter_tools/lib/src/linux/build_linux.dart b/packages/flutter_tools/lib/src/linux/build_linux.dart index 81c86d5122f4d..6150f43553205 100644 --- a/packages/flutter_tools/lib/src/linux/build_linux.dart +++ b/packages/flutter_tools/lib/src/linux/build_linux.dart @@ -145,7 +145,7 @@ Future _runCmake(String buildModeName, Directory sourceDir, Directory buil workingDirectory: buildDir.path, environment: { 'CC': 'clang', - 'CXX': 'clang++' + 'CXX': 'clang++', }, trace: true, ); diff --git a/packages/flutter_tools/lib/src/linux/linux_doctor.dart b/packages/flutter_tools/lib/src/linux/linux_doctor.dart index c21d4f83dcaf1..fae34766b369d 100644 --- a/packages/flutter_tools/lib/src/linux/linux_doctor.dart +++ b/packages/flutter_tools/lib/src/linux/linux_doctor.dart @@ -65,7 +65,7 @@ class LinuxDoctorValidator extends DoctorValidator { final Map installedVersions = { // Sort the check to make the call order predictable for unit tests. for (String binary in _requiredBinaryVersions.keys.toList()..sort()) - binary: await _getBinaryVersion(binary) + binary: await _getBinaryVersion(binary), }; // Determine overall validation level. diff --git a/packages/flutter_tools/lib/src/macos/build_macos.dart b/packages/flutter_tools/lib/src/macos/build_macos.dart index 0b31ea57bbf0b..1af3b7b009223 100644 --- a/packages/flutter_tools/lib/src/macos/build_macos.dart +++ b/packages/flutter_tools/lib/src/macos/build_macos.dart @@ -114,7 +114,7 @@ Future buildMacOS({ else '-quiet', 'COMPILER_INDEX_STORE_ENABLE=NO', - ...environmentVariablesAsXcodeBuildSettings(globals.platform) + ...environmentVariablesAsXcodeBuildSettings(globals.platform), ], trace: true, stdoutErrorMatcher: verboseLogging ? null : _filteredOutput, diff --git a/packages/flutter_tools/lib/src/macos/xcdevice.dart b/packages/flutter_tools/lib/src/macos/xcdevice.dart index a7fd11c20b588..2f25e3caede55 100644 --- a/packages/flutter_tools/lib/src/macos/xcdevice.dart +++ b/packages/flutter_tools/lib/src/macos/xcdevice.dart @@ -186,11 +186,11 @@ class XCDevice { final String identifier = match.group(2)!; if (verb.startsWith('attach')) { _deviceIdentifierByEvent?.add({ - XCDeviceEvent.attach: identifier + XCDeviceEvent.attach: identifier, }); } else if (verb.startsWith('detach')) { _deviceIdentifierByEvent?.add({ - XCDeviceEvent.detach: identifier + XCDeviceEvent.detach: identifier, }); } } diff --git a/packages/flutter_tools/lib/src/mdns_discovery.dart b/packages/flutter_tools/lib/src/mdns_discovery.dart index b4dee608d76f0..ce7d8c2602b16 100644 --- a/packages/flutter_tools/lib/src/mdns_discovery.dart +++ b/packages/flutter_tools/lib/src/mdns_discovery.dart @@ -217,7 +217,6 @@ class MDnsObservatoryDiscovery { case TargetPlatform.linux_x64: case TargetPlatform.tester: case TargetPlatform.web_javascript: - case TargetPlatform.windows_uwp_x64: case TargetPlatform.windows_x64: _logger.printTrace('No interface with an ipv4 link local address was found.'); break; diff --git a/packages/flutter_tools/lib/src/persistent_tool_state.dart b/packages/flutter_tools/lib/src/persistent_tool_state.dart index 34ff213525964..d9eed49eeef89 100644 --- a/packages/flutter_tools/lib/src/persistent_tool_state.dart +++ b/packages/flutter_tools/lib/src/persistent_tool_state.dart @@ -84,7 +84,7 @@ class _DefaultPersistentToolState implements PersistentToolState { static const Map _lastActiveVersionKeys = { Channel.master: 'last-active-master-version', Channel.beta: 'last-active-beta-version', - Channel.stable: 'last-active-stable-version' + Channel.stable: 'last-active-stable-version', }; static const String _kBotKey = 'is-bot'; static const String _kLicenseHash = 'license-hash'; diff --git a/packages/flutter_tools/lib/src/platform_plugins.dart b/packages/flutter_tools/lib/src/platform_plugins.dart index 3a9e9744c0ebd..9a773b53768e6 100644 --- a/packages/flutter_tools/lib/src/platform_plugins.dart +++ b/packages/flutter_tools/lib/src/platform_plugins.dart @@ -26,9 +26,6 @@ const String kSupportedVariants = 'supportedVariants'; enum PluginPlatformVariant { /// Win32 variant of Windows. win32, - - // UWP variant of Windows. - winuwp, } /// Marker interface for all platform specific plugin config implementations. @@ -183,7 +180,7 @@ class AndroidPlugin extends PluginPlatform implements NativeOrDartPlugin { 'kotlin', package.replaceAll('.', _fileSystem.path.separator), '$pluginClass.kt', - ) + ), ]; File? mainPluginClass; @@ -396,7 +393,6 @@ class WindowsPlugin extends PluginPlatform } else { const Map variantByName = { 'win32': PluginPlatformVariant.win32, - 'uwp': PluginPlatformVariant.winuwp, }; for (final String variantName in variantList.cast()) { final PluginPlatformVariant? variant = variantByName[variantName]; diff --git a/packages/flutter_tools/lib/src/project.dart b/packages/flutter_tools/lib/src/project.dart index 4061987a0305a..c127c3030c4e6 100644 --- a/packages/flutter_tools/lib/src/project.dart +++ b/packages/flutter_tools/lib/src/project.dart @@ -35,7 +35,6 @@ enum SupportedPlatform { macos, web, windows, - windowsuwp, fuchsia, root, // Special platform to represent the root project directory } @@ -194,9 +193,6 @@ class FlutterProject { /// The Windows sub project of this project. late final WindowsProject windows = WindowsProject.fromFlutter(this); - /// The Windows UWP sub project of this project. - late final WindowsUwpProject windowsUwp = WindowsUwpProject.fromFlutter(this); - /// The Fuchsia sub project of this project. late final FuchsiaProject fuchsia = FuchsiaProject._(this); @@ -278,9 +274,6 @@ class FlutterProject { if (windows.existsSync()) { platforms.add(SupportedPlatform.windows); } - if (windowsUwp.existsSync()) { - platforms.add(SupportedPlatform.windowsuwp); - } if (fuchsia.existsSync()) { platforms.add(SupportedPlatform.fuchsia); } @@ -336,7 +329,6 @@ class FlutterProject { macOSPlatform: featureFlags.isMacOSEnabled && macos.existsSync(), windowsPlatform: featureFlags.isWindowsEnabled && windows.existsSync(), webPlatform: featureFlags.isWebEnabled && web.existsSync(), - winUwpPlatform: featureFlags.isWindowsUwpEnabled && windowsUwp.existsSync(), deprecationBehavior: deprecationBehavior, ); } @@ -350,7 +342,6 @@ class FlutterProject { bool macOSPlatform = false, bool windowsPlatform = false, bool webPlatform = false, - bool winUwpPlatform = false, DeprecationBehavior deprecationBehavior = DeprecationBehavior.none, }) async { if (!directory.existsSync() || isPlugin) { @@ -375,9 +366,6 @@ class FlutterProject { if (webPlatform) { await web.ensureReadyForPlatformSpecificTooling(); } - if (winUwpPlatform) { - await windowsUwp.ensureReadyForPlatformSpecificTooling(); - } await injectPlugins( this, androidPlatform: androidPlatform, @@ -386,7 +374,6 @@ class FlutterProject { macOSPlatform: macOSPlatform, windowsPlatform: windowsPlatform, webPlatform: webPlatform, - winUwpPlatform: winUwpPlatform, ); } diff --git a/packages/flutter_tools/lib/src/resident_devtools_handler.dart b/packages/flutter_tools/lib/src/resident_devtools_handler.dart index 2b26ac53cab39..7c419185c50d0 100644 --- a/packages/flutter_tools/lib/src/resident_devtools_handler.dart +++ b/packages/flutter_tools/lib/src/resident_devtools_handler.dart @@ -169,7 +169,7 @@ class FlutterResidentDevtoolsHandler implements ResidentDevtoolsHandler { Future> _devicesWithExtensions(List flutterDevices) async { final List devices = await Future.wait(>[ - for (final FlutterDevice device in flutterDevices) _waitForExtensionsForDevice(device) + for (final FlutterDevice device in flutterDevices) _waitForExtensionsForDevice(device), ]); return devices.where((FlutterDevice device) => device != null).toList(); } diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart index d303e639a60db..b5bbac33c7e16 100644 --- a/packages/flutter_tools/lib/src/resident_runner.dart +++ b/packages/flutter_tools/lib/src/resident_runner.dart @@ -1523,7 +1523,6 @@ Future getMissingPackageHintForPlatform(TargetPlatform platform) async { case TargetPlatform.linux_x64: case TargetPlatform.tester: case TargetPlatform.web_javascript: - case TargetPlatform.windows_uwp_x64: case TargetPlatform.windows_x64: return null; } diff --git a/packages/flutter_tools/lib/src/run_hot.dart b/packages/flutter_tools/lib/src/run_hot.dart index 6351f430de844..e51ab68bab39c 100644 --- a/packages/flutter_tools/lib/src/run_hot.dart +++ b/packages/flutter_tools/lib/src/run_hot.dart @@ -614,7 +614,7 @@ class HotRunner extends ResidentRunner { device.vmService.service.setIsolatePauseMode(isolate.id, exceptionPauseMode: vm_service.ExceptionPauseMode.kNone), for (final vm_service.Breakpoint breakpoint in isolate.breakpoints) - device.vmService.service.removeBreakpoint(isolate.id, breakpoint.id) + device.vmService.service.removeBreakpoint(isolate.id, breakpoint.id), ]; await Future.wait(breakpointAndExceptionRemoval); await device.vmService.service.resume(view.uiIsolate.id); @@ -1186,7 +1186,7 @@ Future>> _reloadDeviceSources( isolateRef.id, pause: pause, rootLibUri: deviceEntryUri, - ) + ), ]; } diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart index 3d1c55316fa9a..d5acfc01abd36 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart @@ -153,11 +153,11 @@ abstract class FlutterCommand extends Command { ], 'canvaskit': [ 'FLUTTER_WEB_AUTO_DETECT=false', - 'FLUTTER_WEB_USE_SKIA=true' + 'FLUTTER_WEB_USE_SKIA=true', ], 'html': [ 'FLUTTER_WEB_AUTO_DETECT=false', - 'FLUTTER_WEB_USE_SKIA=false' + 'FLUTTER_WEB_USE_SKIA=false', ], }; @@ -1591,10 +1591,6 @@ DevelopmentArtifact? artifactFromTargetPlatform(TargetPlatform targetPlatform) { case TargetPlatform.fuchsia_arm64: case TargetPlatform.fuchsia_x64: case TargetPlatform.tester: - case TargetPlatform.windows_uwp_x64: - if (featureFlags.isWindowsUwpEnabled) { - return DevelopmentArtifact.windowsUwp; - } return null; } } diff --git a/packages/flutter_tools/lib/src/runner/local_engine.dart b/packages/flutter_tools/lib/src/runner/local_engine.dart index e3626024ebbe9..ecdad2fa14908 100644 --- a/packages/flutter_tools/lib/src/runner/local_engine.dart +++ b/packages/flutter_tools/lib/src/runner/local_engine.dart @@ -150,10 +150,6 @@ class LocalEngineLocator { // Determine the host engine directory associated with the local engine: // Strip '_sim_' since there are no host simulator builds. String _getHostEngineBasename(String localEngineBasename) { - // Allow winuwp builds to be treated as host builds. - if (localEngineBasename.startsWith('winuwp')) { - return localEngineBasename; - } String tmpBasename = localEngineBasename.replaceFirst('_sim_', '_'); tmpBasename = tmpBasename.substring(tmpBasename.indexOf('_') + 1); // Strip suffix for various archs. diff --git a/packages/flutter_tools/lib/src/sksl_writer.dart b/packages/flutter_tools/lib/src/sksl_writer.dart index 6ac6e3ddd20f8..aab82c0c8079a 100644 --- a/packages/flutter_tools/lib/src/sksl_writer.dart +++ b/packages/flutter_tools/lib/src/sksl_writer.dart @@ -54,7 +54,6 @@ Future sharedSkSlWriter(Device device, Map data, { case TargetPlatform.linux_x64: case TargetPlatform.tester: case TargetPlatform.web_javascript: - case TargetPlatform.windows_uwp_x64: case TargetPlatform.windows_x64: break; } diff --git a/packages/flutter_tools/lib/src/template.dart b/packages/flutter_tools/lib/src/template.dart index 06ae4e7920aad..d32fa9642d7c2 100644 --- a/packages/flutter_tools/lib/src/template.dart +++ b/packages/flutter_tools/lib/src/template.dart @@ -122,12 +122,12 @@ class Template { return Template._( [ for (final String name in names) - _templateDirectoryInPackage(name, fileSystem) + _templateDirectoryInPackage(name, fileSystem), ], [ for (final String name in names) if ((await _templateImageDirectory(name, fileSystem, logger)).existsSync()) - await _templateImageDirectory(name, fileSystem, logger) + await _templateImageDirectory(name, fileSystem, logger), ], fileSystem: fileSystem, logger: logger, @@ -214,11 +214,6 @@ class Template { if (relativeDestinationPath.startsWith('windows.tmpl') && !windows) { return null; } - // Only build a Windows UWP project if explicitly asked. - final bool windowsUwp = (context['winuwp'] as bool?) ?? false; - if (relativeDestinationPath.startsWith('winuwp.tmpl') && !windowsUwp) { - return null; - } final String? projectName = context['projectName'] as String?; final String? androidIdentifier = context['androidIdentifier'] as String?; @@ -309,7 +304,7 @@ class Template { final List potentials = [ for (final Directory imageSourceDir in imageSourceDirectories) _fileSystem.file(_fileSystem.path - .join(imageSourceDir.path, relativeDestinationPath.replaceAll(imageTemplateExtension, ''))) + .join(imageSourceDir.path, relativeDestinationPath.replaceAll(imageTemplateExtension, ''))), ]; if (potentials.any((File file) => file.existsSync())) { diff --git a/packages/flutter_tools/lib/src/test/flutter_web_platform.dart b/packages/flutter_tools/lib/src/test/flutter_web_platform.dart index b0350be8e3ce2..0ea468628886f 100644 --- a/packages/flutter_tools/lib/src/test/flutter_web_platform.dart +++ b/packages/flutter_tools/lib/src/test/flutter_web_platform.dart @@ -367,7 +367,7 @@ class FlutterWebPlatform extends PlatformPlugin { 'width': width.toDouble(), 'height': height.toDouble(), 'scale': 1.0, - } + }, }); bytes = base64.decode(response.result['data'] as String); } on WipError catch (ex) { diff --git a/packages/flutter_tools/lib/src/tester/flutter_tester.dart b/packages/flutter_tools/lib/src/tester/flutter_tester.dart index 2aa2d1b3ca6aa..8662321a0f63c 100644 --- a/packages/flutter_tools/lib/src/tester/flutter_tester.dart +++ b/packages/flutter_tools/lib/src/tester/flutter_tester.dart @@ -174,7 +174,7 @@ class FlutterTesterDevice extends Device { '--disable-service-auth-codes', if (debuggingOptions.hasObservatoryPort) '--observatory-port=${debuggingOptions.hostVmServicePort}', - applicationKernelFilePath + applicationKernelFilePath, ]; ProtocolDiscovery? observatoryDiscovery; diff --git a/packages/flutter_tools/lib/src/vmservice.dart b/packages/flutter_tools/lib/src/vmservice.dart index 59b7e776b66f9..2a34556d42ad3 100644 --- a/packages/flutter_tools/lib/src/vmservice.dart +++ b/packages/flutter_tools/lib/src/vmservice.dart @@ -198,7 +198,7 @@ Future setUpVmService( return { 'result': { 'type': 'Success', - } + }, }; }); registrationRequests.add(vmService.registerService('reloadSources', 'Flutter Tools')); @@ -211,7 +211,7 @@ Future setUpVmService( return { 'result': { 'type': 'Success', - } + }, }; }); registrationRequests.add(vmService.registerService('hotRestart', 'Flutter Tools')); @@ -226,7 +226,7 @@ Future setUpVmService( 'result': { 'type': 'Success', ...versionJson, - } + }, }; }); registrationRequests.add(vmService.registerService('flutterVersion', 'Flutter Tools')); @@ -258,7 +258,7 @@ Future setUpVmService( 'result': { 'type': 'Success', ...result.toJson(), - } + }, }; }); registrationRequests.add(vmService.registerService('flutterMemoryInfo', 'Flutter Tools')); @@ -270,7 +270,7 @@ Future setUpVmService( 'result': { 'type': 'Success', 'filename': filename, - } + }, }; }); registrationRequests.add(vmService.registerService('flutterGetSkSL', 'Flutter Tools')); @@ -847,7 +847,7 @@ class FlutterVmService { final List views = [ if (rawViews != null) for (final Map rawView in rawViews.whereType>()) - FlutterView.parse(rawView) + FlutterView.parse(rawView), ]; if (views.isNotEmpty || returnEarly) { return views; diff --git a/packages/flutter_tools/lib/src/windows/application_package.dart b/packages/flutter_tools/lib/src/windows/application_package.dart index 2b1e1939e2529..aeb8c6330f2e4 100644 --- a/packages/flutter_tools/lib/src/windows/application_package.dart +++ b/packages/flutter_tools/lib/src/windows/application_package.dart @@ -71,14 +71,3 @@ class BuildableWindowsApp extends WindowsApp { @override String get name => project.parent.manifest.appName; } - -class BuildableUwpApp extends ApplicationPackage { - BuildableUwpApp({required this.project}) : super(id: project.packageGuid ?? 'com.example.placeholder'); - - final WindowsUwpProject project; - - String? get projectVersion => project.packageVersion; - - @override - String? get name => getCmakeExecutableName(project); -} diff --git a/packages/flutter_tools/lib/src/windows/build_windows.dart b/packages/flutter_tools/lib/src/windows/build_windows.dart index 859b97ceb611d..ed41e392a921f 100644 --- a/packages/flutter_tools/lib/src/windows/build_windows.dart +++ b/packages/flutter_tools/lib/src/windows/build_windows.dart @@ -17,12 +17,8 @@ import '../convert.dart'; import '../flutter_plugins.dart'; import '../globals.dart' as globals; import '../migrations/cmake_custom_command_migration.dart'; -import 'install_manifest.dart'; import 'visual_studio.dart'; -/// Update the string when non-backwards compatible changes are made to the UWP template. -const int kCurrentUwpTemplateVersion = 0; - /// Builds the Windows project using msbuild. Future buildWindows(WindowsProject windowsProject, BuildInfo buildInfo, { String? target, @@ -116,132 +112,6 @@ Future buildWindows(WindowsProject windowsProject, BuildInfo buildInfo, { } } -/// Build the Windows UWP project. -/// -/// Note that this feature is currently unfinished. -Future buildWindowsUwp(WindowsUwpProject windowsProject, BuildInfo buildInfo, { - String? target, - VisualStudio? visualStudioOverride, -}) async { - final Directory buildDirectory = globals.fs.directory(getWindowsBuildUwpDirectory()); - if (!windowsProject.existsSync()) { - throwToolExit( - 'No Windows UWP desktop project configured. See ' - 'https://docs.flutter.dev/desktop#add-desktop-support-to-an-existing-flutter-app ' - 'to learn about adding Windows support to a project.', - ); - } - if (windowsProject.projectVersion != kCurrentUwpTemplateVersion) { - throwToolExit( - 'The Windows UWP project template and build process has changed. In order to build ' - 'you must delete the winuwp directory and re-create the project.', - ); - } - // Ensure that necessary ephemeral files are generated and up to date. - _writeGeneratedFlutterConfig(windowsProject, buildInfo, target); - createPluginSymlinks(windowsProject.parent); - await createManifest( - buildDirectory: buildDirectory, - logger: globals.logger, - platform: globals.platform, - project: windowsProject, - buildInfo: buildInfo, - fileSystem: globals.fs, - ); - - final VisualStudio visualStudio = visualStudioOverride ?? VisualStudio( - fileSystem: globals.fs, - platform: globals.platform, - logger: globals.logger, - processManager: globals.processManager, - ); - final String? cmakePath = visualStudio.cmakePath; - final String? cmakeGenerator = visualStudio.cmakeGenerator; - if (cmakePath == null || cmakeGenerator == null) { - throwToolExit('Unable to find suitable Visual Studio toolchain. ' - 'Please run `flutter doctor` for more details.'); - } - - final String buildModeName = getNameForBuildMode(buildInfo.mode); - final Status status = globals.logger.startProgress( - 'Building Windows UWP application...', - ); - try { - // The Cmake re-entrant build does not work for UWP, so the flutter build is - // run in advance. - await _runFlutterBuild(buildDirectory, buildInfo, target); - await _runCmakeGeneration( - cmakePath: cmakePath, - generator: cmakeGenerator, - buildDir: buildDirectory, - sourceDir: windowsProject.cmakeFile.parent, - ); - await _runBuild(cmakePath, buildDirectory, buildModeName, install: false); - } finally { - status.cancel(); - } -} - -const Map _targets = { - BuildMode.debug: 'debug_bundle_windows_assets_uwp', - BuildMode.profile: 'profile_bundle_windows_assets_uwp', - BuildMode.release: 'release_bundle_windows_assets_uwp', -}; - -Future _runFlutterBuild(Directory buildDirectory, BuildInfo buildInfo, String? targetFile) async { - await buildDirectory.create(recursive: true); - int result; - String? flutterEngine; - String? localEngine; - final Artifacts artifacts = globals.artifacts!; - if (artifacts is LocalEngineArtifacts) { - final String engineOutPath = artifacts.engineOutPath; - flutterEngine = globals.fs.path.dirname(globals.fs.path.dirname(engineOutPath)); - localEngine = globals.fs.path.basename(engineOutPath); - } - try { - final String? buildMode = _targets[buildInfo.mode]; - result = await globals.processUtils.stream( - [ - globals.fs.path.join(Cache.flutterRoot!, 'bin', 'flutter'), - if (globals.logger.isVerbose) - '--verbose', - if (flutterEngine != null) '--local-engine-src-path=$flutterEngine', - if (localEngine != null) '--local-engine=$localEngine', - 'assemble', - '--no-version-check', - '--output=build', - '-dTargetPlatform=windows-uwp-x64', - '-dTrackWidgetCreation=${buildInfo.trackWidgetCreation}', - '-dBuildMode=${getNameForBuildMode(buildInfo.mode)}', - '-dTargetFile=$targetFile', - '-dTreeShakeIcons="${buildInfo.treeShakeIcons}"', - '-dDartObfuscation=${buildInfo.dartObfuscation}', - if (buildInfo.bundleSkSLPath != null) - '-dBundleSkSLPath=${buildInfo.bundleSkSLPath}', - if (buildInfo.codeSizeDirectory != null) - '-dCodeSizeDirectory=${buildInfo.codeSizeDirectory}', - if (buildInfo.splitDebugInfoPath != null) - '-dSplitDebugInfo=${buildInfo.splitDebugInfoPath}', - if (buildInfo.dartDefines != null && buildInfo.dartDefines.isNotEmpty) - '--DartDefines=${encodeDartDefines(buildInfo.dartDefines)}', - if (buildInfo.extraGenSnapshotOptions != null && buildInfo.extraGenSnapshotOptions.isNotEmpty) - '--ExtraGenSnapshotOptions=${buildInfo.extraGenSnapshotOptions}', - if (buildInfo.extraFrontEndOptions != null && buildInfo.extraFrontEndOptions.isNotEmpty) - '--ExtraFrontEndOptions=${buildInfo.extraFrontEndOptions}', - if (buildMode != null) - buildMode, - ], - trace: true, - ); - } on ArgumentError { - throwToolExit("cmake not found. Run 'flutter doctor' for more information."); - } - if (result != 0) { - throwToolExit('Unable to generate build files'); - } -} - Future _runCmakeGeneration({ required String cmakePath, required String generator, @@ -298,11 +168,11 @@ Future _runBuild( if (install) ...['--target', 'INSTALL'], if (globals.logger.isVerbose) - '--verbose' + '--verbose', ], environment: { if (globals.logger.isVerbose) - 'VERBOSE_SCRIPT_LOGGING': 'true' + 'VERBOSE_SCRIPT_LOGGING': 'true', }, trace: true, stdoutErrorMatcher: errorMatcher, diff --git a/packages/flutter_tools/lib/src/windows/install_manifest.dart b/packages/flutter_tools/lib/src/windows/install_manifest.dart deleted file mode 100644 index 783e22ca29099..0000000000000 --- a/packages/flutter_tools/lib/src/windows/install_manifest.dart +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2014 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import '../asset.dart'; -import '../base/common.dart'; -import '../base/file_system.dart'; -import '../base/logger.dart'; -import '../base/platform.dart'; -import '../build_info.dart'; -import '../cmake_project.dart'; - -/// Generate an install manifest that is required for CMAKE on UWP projects. -Future createManifest({ - required Logger logger, - required FileSystem fileSystem, - required Platform platform, - required WindowsUwpProject project, - required BuildInfo buildInfo, - required Directory buildDirectory, -}) async { - final List outputs = []; - final AssetBundle assetBundle = AssetBundleFactory.defaultInstance( - logger: logger, - fileSystem: fileSystem, - platform: platform, - ).createBundle(); - final int resultCode = await assetBundle.build( - packagesPath: buildInfo.packagesPath, - assetDirPath: buildDirectory.childDirectory('flutter_assets').path, - ); - if (resultCode != 0) { - throwToolExit('Failed to build assets.'); - } - - if (buildInfo.mode.isPrecompiled) { - outputs.add(buildDirectory.childFile('app.so')); - } else { - outputs.add(buildDirectory.parent.childDirectory('flutter_assets').childFile('kernel_blob.bin')); - } - for (final String key in assetBundle.entries.keys) { - outputs.add(buildDirectory.parent.childDirectory('flutter_assets').childFile(key)); - } - outputs.add(project.ephemeralDirectory.childFile('flutter_windows_winuwp.dll')); - outputs.add(project.ephemeralDirectory.childFile('flutter_windows_winuwp.dll.pdb')); - outputs.add(project.ephemeralDirectory.childFile('icudtl.dat')); - project.ephemeralDirectory.childFile('install_manifest') - ..createSync(recursive: true) - ..writeAsStringSync(outputs.map((File file) => file.absolute.uri.path.substring(1)).join('\n')); -} diff --git a/packages/flutter_tools/lib/src/windows/uwptool.dart b/packages/flutter_tools/lib/src/windows/uwptool.dart deleted file mode 100644 index f5dbba084d5bb..0000000000000 --- a/packages/flutter_tools/lib/src/windows/uwptool.dart +++ /dev/null @@ -1,161 +0,0 @@ -// Copyright 2014 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:async'; - -import 'package:process/process.dart'; - -import '../artifacts.dart'; -import '../base/logger.dart'; -import '../base/process.dart'; - -/// The uwptool command-line tool. -/// -/// `uwptool` is a host utility command-line tool that supports a variety of -/// actions related to Universal Windows Platform (UWP) applications, including -/// installing and uninstalling apps, querying installed apps, and launching -/// apps. -class UwpTool { - UwpTool({ - required Artifacts artifacts, - required Logger logger, - required ProcessManager processManager, - }) : _artifacts = artifacts, - _logger = logger, - _processUtils = ProcessUtils(processManager: processManager, logger: logger); - - final Artifacts _artifacts; - final Logger _logger; - final ProcessUtils _processUtils; - - String get _binaryPath => _artifacts.getArtifactPath(Artifact.uwptool); - - Future> listApps() async { - final List launchCommand = [ - _binaryPath, - 'listapps', - ]; - final RunResult result = await _processUtils.run(launchCommand); - if (result.exitCode != 0) { - _logger.printError('Failed to list installed UWP apps: ${result.stderr}'); - return []; - } - final List packageFamilies = []; - for (final String line in result.stdout.split('\n')) { - final String packageFamily = line.trim(); - if (packageFamily.isNotEmpty) { - packageFamilies.add(packageFamily); - } - } - return packageFamilies; - } - - /// Returns the package family name for the specified package name. - /// - /// If no installed application on the system matches the specified package - /// name, returns null. - Future getPackageFamilyName(String packageName) async { - for (final String packageFamily in await listApps()) { - if (packageFamily.startsWith(packageName)) { - return packageFamily; - } - } - return null; - } - - /// Launches the app with the specified package family name. - /// - /// On success, returns the process ID of the launched app, otherwise null. - Future launchApp(String packageFamily, List args) async { - final List launchCommand = [ - _binaryPath, - 'launch', - packageFamily - ] + args; - final RunResult result = await _processUtils.run(launchCommand); - if (result.exitCode != 0) { - _logger.printError('Failed to launch app $packageFamily: ${result.stderr}'); - return null; - } - // Read the process ID from stdout. - final int? processId = int.tryParse(result.stdout.trim()); - _logger.printTrace('Launched application $packageFamily with process ID $processId'); - return processId; - } - - /// Returns `true` if the specified package signature is valid. - Future isSignatureValid(String packagePath) async { - final List launchCommand = [ - 'powershell.exe', - '-command', - 'if ((Get-AuthenticodeSignature "$packagePath").Status -eq "Valid") { exit 0 } else { exit 1 }' - ]; - final RunResult result = await _processUtils.run(launchCommand); - if (result.exitCode != 0) { - _logger.printTrace('Invalid signature found for $packagePath'); - return false; - } - _logger.printTrace('Valid signature found for $packagePath'); - return true; - } - - /// Installs a developer signing certificate. - /// - /// Returns `true` on success. - Future installCertificate(String certificatePath) async { - final List launchCommand = [ - 'powershell.exe', - 'start', - 'certutil', - '-argumentlist', - '\'-addstore TrustedPeople "$certificatePath"\'', - '-verb', - 'runas' - ]; - final RunResult result = await _processUtils.run(launchCommand); - if (result.exitCode != 0) { - _logger.printError('Failed to install certificate $certificatePath'); - return false; - } - _logger.printTrace('Waiting for certificate store update'); - // TODO(cbracken): Determine how we can query for success until some timeout. - // https://github.com/flutter/flutter/issues/82665 - await Future.delayed(const Duration(seconds: 1)); - _logger.printTrace('Installed certificate $certificatePath'); - return true; - } - - /// Installs the app with the specified build directory. - /// - /// Returns `true` on success. - Future installApp(String packageUri, List dependencyUris) async { - final List launchCommand = [ - _binaryPath, - 'install', - packageUri, - ] + dependencyUris; - final RunResult result = await _processUtils.run(launchCommand); - if (result.exitCode != 0) { - _logger.printError('Failed to install $packageUri'); - return false; - } - _logger.printTrace('Installed application $packageUri'); - return true; - } - - Future uninstallApp(String packageFamily) async { - final List launchCommand = [ - _binaryPath, - 'uninstall', - packageFamily - ]; - final RunResult result = await _processUtils.run(launchCommand); - if (result.exitCode != 0) { - _logger.printError('Failed to uninstall $packageFamily'); - return false; - } - _logger.printTrace('Uninstalled application $packageFamily'); - return true; - } -} diff --git a/packages/flutter_tools/lib/src/windows/visual_studio.dart b/packages/flutter_tools/lib/src/windows/visual_studio.dart index 5c0c928786b36..ea1e3bdd4c42f 100644 --- a/packages/flutter_tools/lib/src/windows/visual_studio.dart +++ b/packages/flutter_tools/lib/src/windows/visual_studio.dart @@ -208,7 +208,7 @@ class VisualStudio { /// See https://docs.microsoft.com/en-us/visualstudio/install/workload-and-component-ids static const List _requiredWorkloads = [ 'Microsoft.VisualStudio.Workload.NativeDesktop', - 'Microsoft.VisualStudio.Workload.VCTools' + 'Microsoft.VisualStudio.Workload.VCTools', ]; /// Components for use with vswhere requirements. @@ -301,7 +301,7 @@ class VisualStudio { '-requires', requiredWorkload, ], - ..._requiredComponents(_minimumSupportedVersion).keys + ..._requiredComponents(_minimumSupportedVersion).keys, ] : []; try { diff --git a/packages/flutter_tools/lib/src/windows/windows_device.dart b/packages/flutter_tools/lib/src/windows/windows_device.dart index 08f9f406d1f04..83af4e012dbd4 100644 --- a/packages/flutter_tools/lib/src/windows/windows_device.dart +++ b/packages/flutter_tools/lib/src/windows/windows_device.dart @@ -6,20 +6,15 @@ import 'dart:async'; import 'package:process/process.dart'; -import '../application_package.dart'; import '../base/file_system.dart'; import '../base/logger.dart'; import '../base/os.dart'; -import '../base/utils.dart'; import '../build_info.dart'; import '../desktop_device.dart'; import '../device.dart'; -import '../device_port_forwarder.dart'; -import '../features.dart'; import '../project.dart'; import 'application_package.dart'; import 'build_windows.dart'; -import 'uwptool.dart'; import 'windows_workflow.dart'; /// A device that represents a desktop Windows target. @@ -72,332 +67,6 @@ class WindowsDevice extends DesktopDevice { } } -// A device that represents a desktop Windows UWP target. -class WindowsUWPDevice extends Device { - WindowsUWPDevice({ - required ProcessManager processManager, - required Logger logger, - required FileSystem fileSystem, - required OperatingSystemUtils operatingSystemUtils, - required UwpTool uwptool, - }) : _logger = logger, - _processManager = processManager, - _operatingSystemUtils = operatingSystemUtils, - _fileSystem = fileSystem, - _uwptool = uwptool, - super( - 'winuwp', - platformType: PlatformType.windows, - ephemeral: false, - category: Category.desktop, - ); - - final ProcessManager _processManager; - final Logger _logger; - final FileSystem _fileSystem; - final OperatingSystemUtils _operatingSystemUtils; - final UwpTool _uwptool; - BuildMode? _buildMode; - - int? _processId; - - @override - bool isSupported() => true; - - @override - String get name => 'Windows (UWP)'; - - @override - Future get targetPlatform async => TargetPlatform.windows_uwp_x64; - - @override - bool isSupportedForProject(FlutterProject flutterProject) { - return flutterProject.windowsUwp.existsSync(); - } - - @override - void clearLogs() { } - - @override - Future dispose() async { } - - @override - Future get emulatorId async => null; - - @override - FutureOr getLogReader({covariant BuildableUwpApp? app, bool includePastLogs = false}) { - return NoOpDeviceLogReader('winuwp'); - } - - // Returns `true` if the specified file is a valid package based on file extension. - bool _isValidPackage(String packagePath) { - const List validPackageExtensions = [ - '.appx', '.msix', // Architecture-specific application. - '.appxbundle', '.msixbundle', // Architecture-independent application. - '.eappx', '.emsix', // Encrypted architecture-specific application. - '.eappxbundle', '.emsixbundle', // Encrypted architecture-independent application. - ]; - return validPackageExtensions.any(packagePath.endsWith); - } - - // Walks the build directory for any dependent packages for the specified architecture. - List _getPackagePaths(String directory) { - if (!_fileSystem.isDirectorySync(directory)) { - return []; - } - final List packagePaths = []; - for (final FileSystemEntity entity in _fileSystem.directory(directory).listSync()) { - if (entity.statSync().type != FileSystemEntityType.file) { - continue; - } - final String packagePath = entity.absolute.path; - if (_isValidPackage(packagePath)) { - packagePaths.add(packagePath); - } - } - return packagePaths; - } - - // Walks the build directory for any dependent packages for the specified architecture. - String? _getAppPackagePath(String buildDirectory) { - final List packagePaths = _getPackagePaths(buildDirectory); - return packagePaths.isNotEmpty ? packagePaths.first : null; - } - - // Walks the build directory for any dependent packages for the specified architecture. - List _getDependencyPaths(String buildDirectory, String architecture) { - final String depsDirectory = _fileSystem.path.join(buildDirectory, 'Dependencies', architecture); - return _getPackagePaths(depsDirectory); - } - - String _getPackageName(String binaryName, String version, String config, {String? architecture}) { - final List components = [ - binaryName, - version, - if (architecture != null) architecture, - config, - ]; - return components.join('_'); - } - - @override - Future installApp(covariant BuildableUwpApp app, {String? userIdentifier}) async { - /// The cmake build generates an install powershell script. - /// build\winuwp\runner_uwp\AppPackages\\__\Add-AppDevPackage.ps1 - final String? binaryName = app.name; - final String? packageVersion = app.projectVersion; - if (binaryName == null || packageVersion == null) { - return false; - } - final String binaryDir = _fileSystem.path.absolute( - _fileSystem.path.join('build', 'winuwp', 'runner_uwp', 'AppPackages', binaryName)); - final String config = sentenceCase(getNameForBuildMode(_buildMode ?? BuildMode.debug)); - - // If a multi-architecture package exists, install that; otherwise install - // the single-architecture package. - final List packageNames = [ - // Multi-archtitecture package. - _getPackageName(binaryName, packageVersion, config), - // Single-archtitecture package. - _getPackageName(binaryName, packageVersion, config, architecture: 'x64'), - ]; - String? packageName; - String? buildDirectory; - String? packagePath; - for (final String name in packageNames) { - packageName = name; - buildDirectory = _fileSystem.path.join(binaryDir, '${packageName}_Test'); - if (_fileSystem.isDirectorySync(buildDirectory)) { - packagePath = _getAppPackagePath(buildDirectory); - if (packagePath != null && _fileSystem.isFileSync(packagePath)) { - break; - } - } - } - if (packagePath == null) { - _logger.printError('Failed to locate app package to install'); - return false; - } - - // Verify package signature. - if (!await _uwptool.isSignatureValid(packagePath)) { - // If signature is invalid, install the developer certificate. - final String certificatePath = _fileSystem.path.join(buildDirectory!, '$packageName.cer'); - if (_logger.terminal.stdinHasTerminal) { - final String response = await _logger.terminal.promptForCharInput( - ['Y', 'y', 'N', 'n'], - logger: _logger, - prompt: 'Install developer certificate.\n' - '\n' - 'Windows UWP apps are signed with a developer certificate during the build\n' - 'process. On the first install of an app with a signature from a new\n' - 'certificate, the certificate must be installed.\n' - '\n' - 'If desired, this certificate can later be removed by launching the \n' - '"Manage Computer Certificates" control panel from the Start menu and deleting\n' - 'the "CMake Test Cert" certificate from the "Trusted People" > "Certificates"\n' - 'section.\n' - '\n' - 'Press "Y" to continue, or "N" to cancel.', - displayAcceptedCharacters: false, - ); - if (response == 'N' || response == 'n') { - return false; - } - } - await _uwptool.installCertificate(certificatePath); - } - - // Install the application and dependencies. - final String packageUri = Uri.file(packagePath).toString(); - final List dependencyUris = _getDependencyPaths(buildDirectory!, 'x64') - .map((String path) => Uri.file(path).toString()) - .toList(); - return _uwptool.installApp(packageUri, dependencyUris); - } - - @override - Future isAppInstalled(covariant ApplicationPackage app, {String? userIdentifier}) async { - final String packageName = app.id; - return await _uwptool.getPackageFamilyName(packageName) != null; - } - - @override - Future isLatestBuildInstalled(covariant ApplicationPackage app) async => false; - - @override - Future get isLocalEmulator async => false; - - @override - DevicePortForwarder get portForwarder => const NoOpDevicePortForwarder(); - - @override - Future get sdkNameAndVersion async => ''; - - @override - Future startApp(covariant BuildableUwpApp package, { - String? mainPath, - String? route, - required DebuggingOptions debuggingOptions, - Map platformArgs = const {}, - bool prebuiltApplication = false, - bool ipv6 = false, - String? userIdentifier, - }) async { - _buildMode = debuggingOptions.buildInfo.mode; - if (!prebuiltApplication) { - await buildWindowsUwp( - package.project, - debuggingOptions.buildInfo, - target: mainPath, - ); - } - if (await isAppInstalled(package) && !await uninstallApp(package)) { - _logger.printError('Failed to uninstall previous app package'); - return LaunchResult.failed(); - } - if (!await installApp(package)) { - _logger.printError('Failed to install app package'); - return LaunchResult.failed(); - } - - final String packageName = package.id; - if (packageName == null) { - _logger.printError('Could not find PACKAGE_GUID in ${package.project.runnerCmakeFile.path}'); - return LaunchResult.failed(); - } - - final String? packageFamily = await _uwptool.getPackageFamilyName(packageName); - if (packageFamily == null) { - _logger.printError('Could not find package family name from $packageName'); - return LaunchResult.failed(); - } - - if (debuggingOptions.buildInfo.mode.isRelease) { - _processId = await _uwptool.launchApp(packageFamily, []); - return _processId != null ? LaunchResult.succeeded() : LaunchResult.failed(); - } - - /// If the terminal is attached, prompt the user to open the firewall port. - if (_logger.terminal.stdinHasTerminal) { - final String response = await _logger.terminal.promptForCharInput( - ['Y', 'y', 'N', 'n'], - logger: _logger, - prompt: 'Enable Flutter debugging from localhost.\n' - '\n' - 'Windows UWP apps run in a sandboxed environment. To enable Flutter debugging\n' - 'and hot reload, you will need to enable inbound connections to the app from the\n' - 'Flutter tool running on your machine. To do so:\n' - ' 1. Launch PowerShell as an Administrator\n' - ' 2. Enter the following command:\n' - ' checknetisolation loopbackexempt -is -n=$packageFamily\n' - '\n' - 'Press "Y" once this is complete, or "N" to abort.', - displayAcceptedCharacters: false, - ); - if (response == 'N' || response == 'n') { - return LaunchResult.failed(); - } - } - - /// Currently we do not have a way to discover the VM Service URI. - final int port = debuggingOptions.deviceVmServicePort ?? await _operatingSystemUtils.findFreePort(); - final List args = [ - '--observatory-port=$port', - '--disable-service-auth-codes', - '--enable-dart-profiling', - if (debuggingOptions.startPaused) '--start-paused', - if (debuggingOptions.useTestFonts) '--use-test-fonts', - if (debuggingOptions.debuggingEnabled) ...[ - '--enable-checked-mode', - '--verify-entry-points', - ], - if (debuggingOptions.enableSoftwareRendering) '--enable-software-rendering', - if (debuggingOptions.skiaDeterministicRendering) '--skia-deterministic-rendering', - if (debuggingOptions.traceSkia) '--trace-skia', - if (debuggingOptions.traceAllowlist != null) '--trace-allowlist="${debuggingOptions.traceAllowlist}"', - if (debuggingOptions.traceSkiaAllowlist != null) '--trace-skia-allowlist="${debuggingOptions.traceSkiaAllowlist}"', - if (debuggingOptions.endlessTraceBuffer) '--endless-trace-buffer', - if (debuggingOptions.dumpSkpOnShaderCompilation) '--dump-skp-on-shader-compilation', - if (debuggingOptions.verboseSystemLogs) '--verbose-logging', - if (debuggingOptions.cacheSkSL) '--cache-sksl', - if (debuggingOptions.purgePersistentCache) '--purge-persistent-cache', - if (platformArgs['trace-startup'] as bool? ?? false) '--trace-startup', - ]; - _processId = await _uwptool.launchApp(packageFamily, args); - if (_processId == null) { - return LaunchResult.failed(); - } - return LaunchResult.succeeded(observatoryUri: Uri.parse('http://localhost:$port')); - } - - @override - Future stopApp(covariant BuildableUwpApp app, {String? userIdentifier}) async { - if (_processId != null) { - return _processManager.killPid(_processId!); - } - return false; - } - - @override - Future uninstallApp(covariant BuildableUwpApp app, {String? userIdentifier}) async { - final String packageName = app.id; - if (packageName == null) { - _logger.printError('Could not find PACKAGE_GUID in ${app.project.runnerCmakeFile.path}'); - return false; - } - final String? packageFamily = await _uwptool.getPackageFamilyName(packageName); - if (packageFamily == null) { - // App is not installed. - return true; - } - return _uwptool.uninstallApp(packageFamily); - } - - @override - FutureOr supportsRuntimeMode(BuildMode buildMode) => buildMode != BuildMode.jitRelease; -} - class WindowsDevices extends PollingDeviceDiscovery { WindowsDevices({ required ProcessManager processManager, @@ -405,15 +74,11 @@ class WindowsDevices extends PollingDeviceDiscovery { required FileSystem fileSystem, required OperatingSystemUtils operatingSystemUtils, required WindowsWorkflow windowsWorkflow, - required FeatureFlags featureFlags, - required UwpTool uwptool, }) : _fileSystem = fileSystem, _logger = logger, _processManager = processManager, _operatingSystemUtils = operatingSystemUtils, _windowsWorkflow = windowsWorkflow, - _featureFlags = featureFlags, - _uwptool = uwptool, super('windows devices'); final FileSystem _fileSystem; @@ -421,8 +86,6 @@ class WindowsDevices extends PollingDeviceDiscovery { final ProcessManager _processManager; final OperatingSystemUtils _operatingSystemUtils; final WindowsWorkflow _windowsWorkflow; - final FeatureFlags _featureFlags; - final UwpTool _uwptool; @override bool get supportsPlatform => _windowsWorkflow.appliesToHostPlatform; @@ -442,14 +105,6 @@ class WindowsDevices extends PollingDeviceDiscovery { processManager: _processManager, operatingSystemUtils: _operatingSystemUtils, ), - if (_featureFlags.isWindowsUwpEnabled) - WindowsUWPDevice( - fileSystem: _fileSystem, - logger: _logger, - processManager: _processManager, - operatingSystemUtils: _operatingSystemUtils, - uwptool: _uwptool, - ) ]; } @@ -457,5 +112,5 @@ class WindowsDevices extends PollingDeviceDiscovery { Future> getDiagnostics() async => const []; @override - List get wellKnownIds => const ['windows', 'winuwp']; + List get wellKnownIds => const ['windows']; } diff --git a/packages/flutter_tools/templates/app/winuwp.tmpl/.gitignore b/packages/flutter_tools/templates/app/winuwp.tmpl/.gitignore deleted file mode 100644 index d492d0d98c8fd..0000000000000 --- a/packages/flutter_tools/templates/app/winuwp.tmpl/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -flutter/ephemeral/ - -# Visual Studio user-specific files. -*.suo -*.user -*.userosscache -*.sln.docstates - -# Visual Studio build-related files. -x64/ -x86/ - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/CMakeLists.txt.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/CMakeLists.txt.tmpl deleted file mode 100644 index 9827cf9923178..0000000000000 --- a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/CMakeLists.txt.tmpl +++ /dev/null @@ -1,64 +0,0 @@ -# Project-level configuration. -cmake_minimum_required(VERSION 3.8) -set(CMAKE_SYSTEM_NAME WindowsStore) -set(CMAKE_SYSTEM_VERSION 10.0) -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED YES) -project({{projectName}} LANGUAGES CXX) - -# Explicitly opt in to modern CMake behaviors to avoid warnings with recent -# versions of CMake. -cmake_policy(SET CMP0079 NEW) - -# The name of the executable created for the application. Change this to change -# the on-disk name of your application. -set(BINARY_NAME "{{projectName}}") - -# Define build configuration options. -get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) -if(IS_MULTICONFIG) - set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" - CACHE STRING "" FORCE) -else() - if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - set(CMAKE_BUILD_TYPE "Debug" CACHE - STRING "Flutter build mode" FORCE) - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS - "Debug" "Profile" "Release") - endif() -endif() -# Define settings for the Profile build mode. -set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") -set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") -set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") -set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") - -# Use Unicode for all projects. -add_definitions(-DUNICODE -D_UNICODE) - -# Compilation settings that should be applied to most targets. -# -# Be cautious about adding new options here, as plugins use this function by -# default. In most cases, you should add new options to specific targets instead -# of modifying this function. -function(APPLY_STANDARD_SETTINGS TARGET) - target_compile_features(${TARGET} PUBLIC cxx_std_17) - target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100" /await) - target_compile_options(${TARGET} PRIVATE /EHsc) - target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") - target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") - target_compile_definitions(${TARGET} PRIVATE WINUWP) - set_target_properties(${TARGET} PROPERTIES VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION 10.0.18362.0) -endfunction() - -set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") - -# Flutter library and tool build rules. -add_subdirectory(${FLUTTER_MANAGED_DIR}) - -# Application build; see runner/CMakeLists.txt. -add_subdirectory("runner_uwp") - -# Generated plugin build rules, which manage building the plugins and adding -# them to the application. -include(flutter/generated_plugins.cmake) diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/flutter/CMakeLists.txt b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/flutter/CMakeLists.txt deleted file mode 100644 index 9adbd9ddb310f..0000000000000 --- a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/flutter/CMakeLists.txt +++ /dev/null @@ -1,92 +0,0 @@ -# This file controls Flutter-level build steps. It should not be edited. -cmake_minimum_required(VERSION 3.8) -set(CMAKE_SYSTEM_NAME WindowsStore) -set(CMAKE_SYSTEM_VERSION 10.0) -set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") - -include(CMakePrintHelpers) - -# Configuration provided via flutter tool. -include(${EPHEMERAL_DIR}/generated_config.cmake) - -# TODO: Move the rest of this into files in ephemeral. See -# https://github.com/flutter/flutter/issues/57146. -set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") - -# === Flutter Library === -set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows_winuwp.dll") - -# === Assets === -set(CMAKE_INSTALL_MANIFEST "${EPHEMERAL_DIR}/install_manifest") -file(STRINGS ${CMAKE_INSTALL_MANIFEST} INSTALL_MANIFEST_CONTENT) - -# Published to parent scope for install step. -set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) -set(INSTALL_MANIFEST_CONTENT ${INSTALL_MANIFEST_CONTENT} PARENT_SCOPE) - -list(APPEND FLUTTER_LIBRARY_HEADERS - "flutter_export.h" - "flutter_windows.h" - "flutter_messenger.h" - "flutter_plugin_registrar.h" - "flutter_texture_registrar.h" -) -list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") -add_library(flutter INTERFACE) -target_include_directories(flutter INTERFACE - "${EPHEMERAL_DIR}" -) -target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") -add_dependencies(flutter flutter_assemble) - -# === Wrapper === -list(APPEND CPP_WRAPPER_SOURCES_CORE - "core_implementations.cc" - "standard_codec.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") -list(APPEND CPP_WRAPPER_SOURCES_PLUGIN - "plugin_registrar.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") -list(APPEND CPP_WRAPPER_SOURCES_APP - "flutter_engine.cc" - "flutter_view_controller.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") - -# Wrapper sources needed for a plugin. -add_library(flutter_wrapper_plugin STATIC - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_PLUGIN} -) -apply_standard_settings(flutter_wrapper_plugin) -set_target_properties(flutter_wrapper_plugin PROPERTIES - POSITION_INDEPENDENT_CODE ON) -set_target_properties(flutter_wrapper_plugin PROPERTIES - CXX_VISIBILITY_PRESET hidden) -target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) -target_include_directories(flutter_wrapper_plugin PUBLIC - "${WRAPPER_ROOT}/include" -) -add_dependencies(flutter_wrapper_plugin flutter_assemble) - -# Wrapper sources needed for the runner. -add_library(flutter_wrapper_app STATIC - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_APP} -) -apply_standard_settings(flutter_wrapper_app) -target_link_libraries(flutter_wrapper_app PUBLIC flutter) -target_include_directories(flutter_wrapper_app PUBLIC - "${WRAPPER_ROOT}/include" -) -add_dependencies(flutter_wrapper_app flutter_assemble) - -add_custom_target(flutter_assemble DEPENDS - "${FLUTTER_LIBRARY}" - ${FLUTTER_LIBRARY_HEADERS} - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_PLUGIN} - ${CPP_WRAPPER_SOURCES_APP} -) diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/project_version b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/project_version deleted file mode 100644 index c227083464fb9..0000000000000 --- a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/project_version +++ /dev/null @@ -1 +0,0 @@ -0 \ No newline at end of file diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-100.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-100.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-125.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-125.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-150.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-150.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-400.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-400.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LockScreenLogo.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LockScreenLogo.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-100.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-100.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-125.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-125.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-150.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-150.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-400.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-400.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-100.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-100.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-125.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-125.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-150.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-150.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-400.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-400.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-100.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-100.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-125.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-125.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-150.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-150.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-400.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-400.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-16.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-16.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-256.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-256.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-32.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-32.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-48.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-48.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-100.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-100.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-125.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-125.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-150.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-150.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-400.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-400.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-16.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-16.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-24.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-24.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-256.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-256.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-32.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-32.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-48.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-48.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-100.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-100.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-125.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-125.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-150.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-150.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-400.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-400.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Wide310x150Logo.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Wide310x150Logo.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-100.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-100.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-125.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-125.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-150.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-150.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-200.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-200.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-400.png.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-400.png.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/CMakeLists.txt.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/CMakeLists.txt.tmpl deleted file mode 100644 index 8dccdc465b189..0000000000000 --- a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/CMakeLists.txt.tmpl +++ /dev/null @@ -1,141 +0,0 @@ -cmake_minimum_required (VERSION 3.8) -set(CMAKE_SYSTEM_NAME WindowsStore) -set(CMAKE_SYSTEM_VERSION 10.0) -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED YES) - -include(CMakePrintHelpers) - -project (runner LANGUAGES CXX) - -# UWP tile and icon assets. -set(ASSET_FILES ${ASSET_FILES} - Assets/LargeTile.scale-100.png - Assets/LargeTile.scale-125.png - Assets/LargeTile.scale-150.png - Assets/LargeTile.scale-200.png - Assets/LargeTile.scale-400.png - Assets/LockScreenLogo.scale-200.png - Assets/SmallTile.scale-100.png - Assets/SmallTile.scale-125.png - Assets/SmallTile.scale-150.png - Assets/SmallTile.scale-200.png - Assets/SmallTile.scale-400.png - Assets/SplashScreen.scale-100.png - Assets/SplashScreen.scale-125.png - Assets/SplashScreen.scale-150.png - Assets/SplashScreen.scale-200.png - Assets/SplashScreen.scale-400.png - Assets/Square44x44Logo.altform-unplated_targetsize-16.png - Assets/Square44x44Logo.altform-unplated_targetsize-32.png - Assets/Square44x44Logo.altform-unplated_targetsize-48.png - Assets/Square44x44Logo.altform-unplated_targetsize-256.png - Assets/Square44x44Logo.scale-100.png - Assets/Square44x44Logo.scale-125.png - Assets/Square44x44Logo.scale-150.png - Assets/Square44x44Logo.scale-200.png - Assets/Square44x44Logo.scale-400.png - Assets/Square44x44Logo.targetsize-16.png - Assets/Square44x44Logo.targetsize-24.png - Assets/Square44x44Logo.targetsize-24_altform-unplated.png - Assets/Square44x44Logo.targetsize-32.png - Assets/Square44x44Logo.targetsize-48.png - Assets/Square44x44Logo.targetsize-256.png - Assets/Square150x150Logo.scale-100.png - Assets/Square150x150Logo.scale-125.png - Assets/Square150x150Logo.scale-150.png - Assets/Square150x150Logo.scale-200.png - Assets/Square150x150Logo.scale-400.png - Assets/StoreLogo.png - Assets/StoreLogo.scale-100.png - Assets/StoreLogo.scale-125.png - Assets/StoreLogo.scale-150.png - Assets/StoreLogo.scale-200.png - Assets/StoreLogo.scale-400.png - Assets/Wide310x150Logo.scale-200.png - Assets/WideTile.scale-100.png - Assets/WideTile.scale-125.png - Assets/WideTile.scale-150.png - Assets/WideTile.scale-200.png - Assets/WideTile.scale-400.png -) - -# Configure package manifest file. -set(APP_MANIFEST_NAME Package.appxmanifest) -set(APP_MANIFEST_TARGET_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${APP_MANIFEST_NAME}) -set(SHORT_NAME ${BINARY_NAME}) -set(PACKAGE_GUID "{{windowsIdentifier}}") - -configure_file( - appxmanifest.in - ${APP_MANIFEST_TARGET_LOCATION} - @ONLY) - -set(CONTENT_FILES ${APP_MANIFEST_TARGET_LOCATION}) - -# Configure package content files. -set_property(SOURCE ${CONTENT_FILES} PROPERTY VS_DEPLOYMENT_CONTENT 1) - -set(RESOURCE_FILES ${ASSET_FILES} ${CONTENT_FILES} Windows_TemporaryKey.pfx) -set_property(SOURCE ${ASSET_FILES} PROPERTY VS_DEPLOYMENT_CONTENT 1) -set_property(SOURCE ${ASSET_FILES} PROPERTY VS_DEPLOYMENT_LOCATION "Assets") - -set(STRING_FILES Resources.pri) -set_property(SOURCE ${STRING_FILES} PROPERTY VS_TOOL_OVERRIDE "PRIResource") - -source_group("Resource Files" FILES ${RESOURCE_FILES} ${CONTENT_FILES} ${STRING_FILES}) - -# Configure Flutter assets using tool generated install manifest -foreach(ITEM ${INSTALL_MANIFEST_CONTENT}) - get_filename_component(ITEM_REL ${CMAKE_BINARY_DIR} DIRECTORY) - file(RELATIVE_PATH RELPATH ${ITEM_REL} ${ITEM}) - - get_filename_component(RELPATH ${RELPATH} DIRECTORY) - get_filename_component(ITEMEXT ${ITEM} LAST_EXT) - - if("${ITEMEXT}" STREQUAL ".dll" OR "${ITEMEXT}" STREQUAL ".pdb") - string(CONCAT RELPATH "") - elseif ("${ITEMEXT}" STREQUAL ".so") - file(RELATIVE_PATH RELPATH "${ITEM_REL}/winuwp" ${ITEM}) - string(REGEX REPLACE "/" "\\\\" RELPATH ${RELPATH}) - string(CONCAT RELPATH "Assets\\Data") - elseif("${ITEMEXT}" STREQUAL ".dat") - string(CONCAT RELPATH "Assets\\Data") - else() - string(REGEX REPLACE "/" "\\\\" RELPATH ${RELPATH}) - string(CONCAT RELPATH "Assets\\Data\\" ${RELPATH}) - endif() - - cmake_print_variables(${RELPATH}) - - set_property(SOURCE ${ITEM} PROPERTY VS_DEPLOYMENT_CONTENT 1) - set_property(SOURCE ${ITEM} PROPERTY VS_DEPLOYMENT_LOCATION ${RELPATH}) -endforeach() - -# Define the application target. To change its name, change BINARY_NAME in the -# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer -# work. -# -# Any new source files that you add to the application should be added here. -add_executable (${BINARY_NAME} WIN32 - main.cpp - flutter_frameworkview.cpp - "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" - ${RESOURCE_FILES} - ${INSTALL_MANIFEST_CONTENT} -) - -# Apply the standard set of build settings. This can be removed for applications -# that need different build settings. -apply_standard_settings(${BINARY_NAME}) - -# Disable Windows macros that collide with C++ standard library functions. -target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") - -# Add dependency libraries and include directories. Add any application-specific -# dependencies here. -target_link_libraries(${BINARY_NAME} PRIVATE WindowsApp flutter flutter_wrapper_app) -target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") - -# Run the Flutter tool portions of the build. This must not be removed. -add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/CMakeSettings.json b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/CMakeSettings.json deleted file mode 100644 index ba63a530d744e..0000000000000 --- a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/CMakeSettings.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - // See https://go.microsoft.com//fwlink//?linkid=834763 for more information about this file. - "configurations": [ - { - "name": "Debug", - "generator": "Visual Studio 15 2017 Win64", - "configurationType": "Debug", - "inheritEnvironments": [ "msvc_x64_x64" ], - "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "", - "ctestCommandArgs": "" - }, - { - "name": "Release", - "generator": "Visual Studio 15 2017 Win64", - "configurationType": "Release", - "inheritEnvironments": [ "msvc_x64_x64" ], - "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", - "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "", - "ctestCommandArgs": "" - } - ] -} diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Windows_TemporaryKey.pfx.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/Windows_TemporaryKey.pfx.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/appxmanifest.in b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/appxmanifest.in deleted file mode 100644 index 570d424ee8228..0000000000000 --- a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/appxmanifest.in +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - @SHORT_NAME@ - CMake Test Cert - Assets/StoreLogo.png - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/flutter_frameworkview.cpp b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/flutter_frameworkview.cpp deleted file mode 100644 index bcdc73adbf667..0000000000000 --- a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/flutter_frameworkview.cpp +++ /dev/null @@ -1,155 +0,0 @@ -#include "winrt/Windows.ApplicationModel.Core.h" -#include "winrt/Windows.Foundation.h" -#include "winrt/Windows.System.Profile.h" -#include "winrt/Windows.System.Threading.h" -#include "winrt/Windows.UI.Core.h" -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include - -struct FlutterFrameworkView - : winrt::implements< - FlutterFrameworkView, - winrt::Windows::ApplicationModel::Core::IFrameworkView> { - // |winrt::Windows::ApplicationModel::Core::IFrameworkView| - void - Initialize(winrt::Windows::ApplicationModel::Core::CoreApplicationView const - &applicationView) { - - // Layout scaling must be disabled in the appinitialization phase in order - // to take effect correctly. - if (winrt::Windows::System::Profile::AnalyticsInfo::VersionInfo() - .DeviceFamily() == L"Windows.Xbox") { - - bool result = winrt::Windows::UI::ViewManagement::ApplicationViewScaling:: - TrySetDisableLayoutScaling(true); - if (!result) { - OutputDebugString(L"Couldn't disable layout scaling"); - } - } - - main_view_ = applicationView; - main_view_.Activated({this, &FlutterFrameworkView::OnActivated}); - } - - // |winrt::Windows::ApplicationModel::Core::IFrameworkView| - void Uninitialize() { - main_view_.Activated(nullptr); - main_view_ = nullptr; - } - - // |winrt::Windows::ApplicationModel::Core::IFrameworkView| - void Load(winrt::hstring const &) {} - - // |winrt::Windows::ApplicationModel::Core::IFrameworkView| - void Run() { - winrt::Windows::UI::Core::CoreWindow window = - winrt::Windows::UI::Core::CoreWindow::GetForCurrentThread(); - - winrt::Windows::UI::Core::CoreDispatcher dispatcher = window.Dispatcher(); - dispatcher.ProcessEvents( - winrt::Windows::UI::Core::CoreProcessEventsOption::ProcessUntilQuit); - } - - // |winrt::Windows::ApplicationModel::Core::IFrameworkView| - winrt::Windows::Foundation::IAsyncAction - SetWindow(winrt::Windows::UI::Core::CoreWindow const &window) { - - // Capture reference to window. - window_ = window; - - // Lay out the window's content within the region occupied by the - // CoreWindow. - auto appView = winrt::Windows::UI::ViewManagement::ApplicationView:: - GetForCurrentView(); - - appView.SetDesiredBoundsMode(winrt::Windows::UI::ViewManagement:: - ApplicationViewBoundsMode::UseCoreWindow); - - // Configure folder paths. - try { - winrt::Windows::Storage::StorageFolder folder = - winrt::Windows::ApplicationModel::Package::Current() - .InstalledLocation(); - - winrt::Windows::Storage::StorageFolder assets = - co_await folder.GetFolderAsync(L"Assets"); - winrt::Windows::Storage::StorageFolder data = - co_await assets.GetFolderAsync(L"data"); - winrt::Windows::Storage::StorageFolder flutter_assets = - co_await data.GetFolderAsync(L"flutter_assets"); - winrt::Windows::Storage::StorageFile icu_data = - co_await data.GetFileAsync(L"icudtl.dat"); - -#if NDEBUG - winrt::Windows::Storage::StorageFile aot_data = - co_await data.GetFileAsync(L"app.so"); -#endif - - std::wstring flutter_assets_path{flutter_assets.Path()}; - std::wstring icu_data_path{icu_data.Path()}; - std::wstring aot_data_path { -#if NDEBUG - aot_data.Path() -#endif - }; - - flutter::DartProject project(flutter_assets_path, icu_data_path, - aot_data_path); - - // Construct viewcontroller using the Window and project - flutter_view_controller_ = std::make_unique( - static_cast(winrt::get_abi(main_view_)), - static_cast(winrt::get_abi(launch_args_)), - project); - - // If plugins present, register them. - RegisterPlugins(flutter_view_controller_.get()->engine()); - } catch (winrt::hresult_error &err) { - winrt::Windows::UI::Popups::MessageDialog md = - winrt::Windows::UI::Popups::MessageDialog::MessageDialog( - L"There was a problem starting the engine: " + err.message()); - md.ShowAsync(); - } - } - - void OnActivated( - winrt::Windows::ApplicationModel::Core::CoreApplicationView const - &applicationView, - winrt::Windows::ApplicationModel::Activation::IActivatedEventArgs const - &args) { - // Activate the application window, making it visible and enabling it to - // receive events. - applicationView.CoreWindow().Activate(); - - // Capture launch args to later pass to Flutter. - launch_args_ = args; - } - - // Current CoreApplicationView. - winrt::Windows::ApplicationModel::Core::CoreApplicationView main_view_{ - nullptr}; - - // Current CoreWindow. - winrt::Windows::UI::Core::CoreWindow window_{nullptr}; - - // Current FlutterViewController. - std::unique_ptr flutter_view_controller_{ - nullptr}; - - // Launch args that were passed in on activation. - winrt::Windows::ApplicationModel::Activation::IActivatedEventArgs - launch_args_; -}; diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/main.cpp b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/main.cpp deleted file mode 100644 index 1ce54b1fc1203..0000000000000 --- a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/main.cpp +++ /dev/null @@ -1,30 +0,0 @@ - -#include - -#include "winrt/Windows.ApplicationModel.Core.h" -#include "winrt/Windows.Foundation.h" -#include -#include -#include - -#include - -#include "flutter_frameworkview.cpp" - -struct App - : winrt::implements< - App, winrt::Windows::ApplicationModel::Core::IFrameworkViewSource> { - App() { view_ = winrt::make_self(); } - - // |winrt::Windows::ApplicationModel::Core::IFrameworkViewSource| - winrt::Windows::ApplicationModel::Core::IFrameworkView CreateView() { - return view_.as(); - } - - winrt::com_ptr view_; -}; - -int __stdcall wWinMain(HINSTANCE, HINSTANCE, PWSTR, int) { - winrt::Windows::ApplicationModel::Core::CoreApplication::Run( - winrt::make()); -} diff --git a/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/resources.pri.img.tmpl b/packages/flutter_tools/templates/app_shared/winuwp.tmpl/runner_uwp/resources.pri.img.tmpl deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/packages/flutter_tools/templates/template_manifest.json b/packages/flutter_tools/templates/template_manifest.json index 44ded214f1e38..fe0c148b1169a 100644 --- a/packages/flutter_tools/templates/template_manifest.json +++ b/packages/flutter_tools/templates/template_manifest.json @@ -5,7 +5,6 @@ "templates/app/lib/main.dart.tmpl", "templates/app/pubspec.yaml.tmpl", "templates/app/README.md.tmpl", - "templates/app/winuwp.tmpl/.gitignore", "templates/app_shared/.gitignore.tmpl", "templates/app_shared/.idea/libraries/Dart_SDK.xml.tmpl", @@ -139,64 +138,6 @@ "templates/app_shared/windows.tmpl/runner/utils.h", "templates/app_shared/windows.tmpl/runner/win32_window.cpp", "templates/app_shared/windows.tmpl/runner/win32_window.h", - "templates/app_shared/winuwp.tmpl/CMakeLists.txt.tmpl", - "templates/app_shared/winuwp.tmpl/flutter/CMakeLists.txt", - "templates/app_shared/winuwp.tmpl/project_version", - "templates/app_shared/winuwp.tmpl/runner_uwp/appxmanifest.in", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-100.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-125.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-150.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LargeTile.scale-400.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/LockScreenLogo.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-100.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-125.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-150.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SmallTile.scale-400.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-100.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-125.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-150.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/SplashScreen.scale-400.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-100.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-125.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-150.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square150x150Logo.scale-400.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-16.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-256.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-32.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-48.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-100.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-125.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-150.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.scale-400.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-16.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-24.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-256.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-32.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Square44x44Logo.targetsize-48.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-100.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-125.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-150.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/StoreLogo.scale-400.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/Wide310x150Logo.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-100.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-125.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-150.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-200.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Assets/WideTile.scale-400.png.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/CMakeLists.txt.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/CMakeSettings.json", - "templates/app_shared/winuwp.tmpl/runner_uwp/flutter_frameworkview.cpp", - "templates/app_shared/winuwp.tmpl/runner_uwp/main.cpp", - "templates/app_shared/winuwp.tmpl/runner_uwp/resources.pri.img.tmpl", - "templates/app_shared/winuwp.tmpl/runner_uwp/Windows_TemporaryKey.pfx.img.tmpl", "templates/app_test_widget/test/widget_test.dart.tmpl", diff --git a/packages/flutter_tools/test/commands.shard/hermetic/assemble_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/assemble_test.dart index c29e76b0d99a9..beb713cde5d58 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/assemble_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/assemble_test.dart @@ -271,7 +271,7 @@ void main() { skipped: false, succeeded: true, elapsedMilliseconds: 123, - ) + ), ]; final FileSystem fileSystem = MemoryFileSystem.test(); final File outFile = fileSystem.currentDirectory diff --git a/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart index 9af19152271a7..d4f96a5bfbce7 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart @@ -713,7 +713,7 @@ VMServiceConnector getFakeVmServiceFactory({ 'views': [ { 'id': '1', - 'isolate': fakeUnpausedIsolate.toJson() + 'isolate': fakeUnpausedIsolate.toJson(), }, ], }, @@ -740,7 +740,7 @@ VMServiceConnector getFakeVmServiceFactory({ 'views': [ { 'id': '1', - 'isolate': fakeUnpausedIsolate.toJson() + 'isolate': fakeUnpausedIsolate.toJson(), }, ], }, diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_fuchsia_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_fuchsia_test.dart index de6c528321401..30faad0cb5913 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_fuchsia_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_fuchsia_test.dart @@ -40,7 +40,7 @@ void main() { final Platform windowsPlatform = FakePlatform( operatingSystem: 'windows', environment: const { - 'FLUTTER_ROOT': '/' + 'FLUTTER_ROOT': '/', }, ); FakeFuchsiaSdk fuchsiaSdk; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart index 9cd15a4c58626..071f0f4b5c040 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart @@ -87,7 +87,7 @@ void main() { } const FakeCommand xattrCommand = FakeCommand(command: [ - 'xattr', '-r', '-d', 'com.apple.FinderInfo', '/' + 'xattr', '-r', '-d', 'com.apple.FinderInfo', '/', ]); FakeCommand _setUpRsyncCommand({void Function() onRun}) { diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart index 68bce82851f50..6f31be30790f8 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart @@ -83,7 +83,7 @@ void main() { } const FakeCommand xattrCommand = FakeCommand(command: [ - 'xattr', '-r', '-d', 'com.apple.FinderInfo', '/' + 'xattr', '-r', '-d', 'com.apple.FinderInfo', '/', ]); FakeCommand _setUpXCResultCommand({String stdout = '', void Function() onRun}) { @@ -296,8 +296,8 @@ void main() { _exportOptionsPlist, ], exitCode: 1, - stderr: 'error: exportArchive: "Runner.app" requires a provisioning profile.' - ) + stderr: 'error: exportArchive: "Runner.app" requires a provisioning profile.', + ), ]); _createMinimalMockProjectFiles(); diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart index 0d73157cd1c1d..12755e61c8f06 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart @@ -299,7 +299,7 @@ ERROR: No file or variants found for asset: images/a_dot_burr.jpeg cmakeCommand('debug'), ninjaCommand('debug', environment: const { - 'VERBOSE_SCRIPT_LOGGING': 'true' + 'VERBOSE_SCRIPT_LOGGING': 'true', }, stdout: 'STDOUT STUFF', ), diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart index cc8b1b4d332bd..a5b0bf639f197 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart @@ -202,7 +202,7 @@ STDERR STUFF }, overrides: { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ - setUpFakeXcodeBuildHandler('Debug') + setUpFakeXcodeBuildHandler('Debug'), ]), Platform: () => macosPlatform, FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true), @@ -218,7 +218,7 @@ STDERR STUFF }, overrides: { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ - setUpFakeXcodeBuildHandler('Debug') + setUpFakeXcodeBuildHandler('Debug'), ]), Platform: () => macosPlatform, FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true), @@ -234,7 +234,7 @@ STDERR STUFF }, overrides: { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ - setUpFakeXcodeBuildHandler('Debug', verbose: true) + setUpFakeXcodeBuildHandler('Debug', verbose: true), ]), Platform: () => macosPlatform, FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true), @@ -251,7 +251,7 @@ STDERR STUFF }, overrides: { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ - setUpFakeXcodeBuildHandler('Profile') + setUpFakeXcodeBuildHandler('Profile'), ]), Platform: () => macosPlatform, XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithProfile(), @@ -268,7 +268,7 @@ STDERR STUFF }, overrides: { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ - setUpFakeXcodeBuildHandler('Release') + setUpFakeXcodeBuildHandler('Release'), ]), Platform: () => macosPlatform, FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true), @@ -323,7 +323,7 @@ STDERR STUFF }, overrides: { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ - setUpFakeXcodeBuildHandler('Release') + setUpFakeXcodeBuildHandler('Release'), ]), Platform: () => macosPlatform, FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true), @@ -333,7 +333,7 @@ STDERR STUFF testUsingContext('build settings contains Flutter Xcode environment variables', () async { macosPlatformCustomEnv.environment = Map.unmodifiable({ - 'FLUTTER_XCODE_ASSETCATALOG_COMPILER_APPICON_NAME': 'AppIcon.special' + 'FLUTTER_XCODE_ASSETCATALOG_COMPILER_APPICON_NAME': 'AppIcon.special', }); final FlutterProject flutterProject = FlutterProject.fromDirectory(fileSystem.currentDirectory); @@ -398,7 +398,7 @@ STDERR STUFF }, overrides: { FileSystem: () => fileSystem, ProcessManager: () => FakeProcessManager.list([ - setUpFakeXcodeBuildHandler('Debug') + setUpFakeXcodeBuildHandler('Debug'), ]), Platform: () => macosPlatform, FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true), diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart index 8eddeb6defafd..254b26dd76653 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart @@ -26,8 +26,8 @@ void main() { FileSystem fileSystem; final Platform fakePlatform = FakePlatform( environment: { - 'FLUTTER_ROOT': '/' - } + 'FLUTTER_ROOT': '/', + }, ); setUpAll(() { diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart index eec556b9c359f..cfa19cbfe7414 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart @@ -10,7 +10,6 @@ import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/platform.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/build_windows.dart'; -import 'package:flutter_tools/src/commands/build_winuwp.dart'; import 'package:flutter_tools/src/features.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; import 'package:flutter_tools/src/windows/visual_studio.dart'; @@ -23,7 +22,6 @@ import '../../src/test_flutter_command_runner.dart'; const String flutterRoot = r'C:\flutter'; const String buildFilePath = r'C:\windows\CMakeLists.txt'; -const String buildUwpFilePath = r'C:\winuwp\CMakeLists.txt'; const String visualStudioPath = r'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community'; const String _cmakePath = visualStudioPath + r'\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe'; const String _defaultGenerator = 'Visual Studio 16 2019'; @@ -72,31 +70,19 @@ void main() { setUpMockCoreProjectFiles(); } - void setUpMockUwpFilesForBuild(int version) { - final Directory projectDirectory = (fileSystem.file(buildUwpFilePath) - ..createSync(recursive: true)) - .parent; - projectDirectory.childFile('project_version').writeAsString(version.toString()); - setUpMockCoreProjectFiles(); - } - // Returns the command matching the build_windows call to generate CMake // files. FakeCommand cmakeGenerationCommand({ void Function() onRun, - bool winuwp = false, String generator = _defaultGenerator, }) { return FakeCommand( command: [ _cmakePath, '-S', - fileSystem.path.dirname(winuwp ? buildUwpFilePath : buildFilePath), + fileSystem.path.dirname(buildFilePath), '-B', - if (winuwp) - r'build\winuwp' - else - r'build\windows', + r'build\windows', '-G', generator, ], @@ -109,26 +95,21 @@ void main() { bool verbose = false, void Function() onRun, String stdout = '', - bool winuwp = false, }) { return FakeCommand( command: [ _cmakePath, '--build', - if (winuwp) - r'build\winuwp' - else - r'build\windows', + r'build\windows', '--config', buildMode, - if (!winuwp) - ...['--target', 'INSTALL'], + ...['--target', 'INSTALL'], if (verbose) - '--verbose' + '--verbose', ], environment: { if (verbose) - 'VERBOSE_SCRIPT_LOGGING': 'true' + 'VERBOSE_SCRIPT_LOGGING': 'true', }, onRun: onRun, stdout: stdout, @@ -615,125 +596,6 @@ if %errorlevel% neq 0 goto :VCEnd FileSystemUtils: () => FileSystemUtils(fileSystem: fileSystem, platform: windowsPlatform), Usage: () => usage, }); - - testUsingContext('Windows UWP build fails when there is no windows project', () async { - final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsUwpCommand command = BuildWindowsUwpCommand() - ..visualStudioOverride = fakeVisualStudio; - setUpMockCoreProjectFiles(); - - expect(createTestCommandRunner(command).run( - const ['winuwp', '--no-pub'] - ), throwsToolExit(message: 'No Windows UWP desktop project configured. See ' - 'https://docs.flutter.dev/desktop#add-desktop-support-to-an-existing-flutter-app ' - 'to learn about adding Windows support to a project.')); - }, overrides: { - Platform: () => windowsPlatform, - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - FeatureFlags: () => TestFeatureFlags(isWindowsUwpEnabled: true), - }); - - testUsingContext('Windows build fails on non windows platform', () async { - final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsUwpCommand command = BuildWindowsUwpCommand() - ..visualStudioOverride = fakeVisualStudio; - setUpMockUwpFilesForBuild(0); - - expect(createTestCommandRunner(command).run( - const ['winuwp', '--no-pub'] - ), throwsToolExit()); - }, overrides: { - Platform: () => notWindowsPlatform, - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - FeatureFlags: () => TestFeatureFlags(isWindowsUwpEnabled: true), - }); - - testUsingContext('Windows UWP build fails on non windows platform', () async { - final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsUwpCommand command = BuildWindowsUwpCommand() - ..visualStudioOverride = fakeVisualStudio; - setUpMockProjectFilesForBuild(); - - expect(createTestCommandRunner(command).run( - const ['winuwp', '--no-pub'] - ), throwsToolExit(message: '"build winuwp" only supported on Windows hosts.')); - }, overrides: { - Platform: () => notWindowsPlatform, - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - FeatureFlags: () => TestFeatureFlags(isWindowsUwpEnabled: true), - }); - - testUsingContext('Windows UWP build fails when the project version is out of date', () async { - final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsUwpCommand command = BuildWindowsUwpCommand() - ..visualStudioOverride = fakeVisualStudio; - setUpMockUwpFilesForBuild(-1); - - expect(createTestCommandRunner(command).run( - const ['winuwp', '--no-pub'] - ), throwsToolExit(message: 'The Windows UWP project template and build process has changed. ' - 'In order to build you must delete the winuwp directory and re-create the project')); - }, overrides: { - Platform: () => windowsPlatform, - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - FeatureFlags: () => TestFeatureFlags(isWindowsUwpEnabled: true), - }); - - testUsingContext('Windows UWP build fails when feature is disabled', () async { - final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsUwpCommand command = BuildWindowsUwpCommand() - ..visualStudioOverride = fakeVisualStudio; - setUpMockProjectFilesForBuild(); - - // This message should include 'To enable, run "flutter config --enable-windows-uwp-desktop"." - // once the `windowsUwpEmbedding` feature is available on all channels. - expect(createTestCommandRunner(command).run( - const ['winuwp', '--no-pub'] - ), throwsToolExit(message: RegExp(r'"build winuwp" is not currently supported\.$'))); - }, overrides: { - Platform: () => windowsPlatform, - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - FeatureFlags: () => TestFeatureFlags(), - }); - - testUsingContext('Windows UWP build completes successfully', () async { - final FakeVisualStudio fakeVisualStudio = FakeVisualStudio(); - final BuildWindowsUwpCommand command = BuildWindowsUwpCommand() - ..visualStudioOverride = fakeVisualStudio; - setUpMockUwpFilesForBuild(0); - - await createTestCommandRunner(command).run( - const ['winuwp', '--no-pub'] - ); - }, overrides: { - Platform: () => windowsPlatform, - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.list([ - const FakeCommand( - command: [ - r'C:\flutter\bin\flutter', - 'assemble', - '--no-version-check', - '--output=build', - '-dTargetPlatform=windows-uwp-x64', - '-dTrackWidgetCreation=true', - '-dBuildMode=release', - r'-dTargetFile=lib\main.dart', - '-dTreeShakeIcons="true"', - '-dDartObfuscation=false', - 'release_bundle_windows_assets_uwp' - ], - ), - cmakeGenerationCommand(winuwp: true), - buildCommand('Release', stdout: 'STDOUT STUFF', winuwp: true), - ]), - FeatureFlags: () => TestFeatureFlags(isWindowsUwpEnabled: true), - }); } class FakeVisualStudio extends Fake implements VisualStudio { diff --git a/packages/flutter_tools/test/commands.shard/hermetic/config_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/config_test.dart index 25d9f044dc356..8c4377d3d237d 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/config_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/config_test.dart @@ -156,7 +156,7 @@ void main() { await commandRunner.run([ 'config', - '--enable-web' + '--enable-web', ]); expect( diff --git a/packages/flutter_tools/test/commands.shard/hermetic/create_usage_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/create_usage_test.dart index 6616b0ac25867..523c3b2defd37 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/create_usage_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/create_usage_test.dart @@ -142,7 +142,8 @@ void main() { final CommandRunner runner = createTestCommandRunner(command); await runner.run([ - 'create', '--no-pub', '--template=app', 'testy']); + 'create', '--no-pub', '--template=app', 'testy', + ]); expect((await command.usageValues).commandCreateIosLanguage, 'swift'); await runner.run([ diff --git a/packages/flutter_tools/test/commands.shard/hermetic/custom_devices_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/custom_devices_test.dart index 3799d9a944e81..28da76116029c 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/custom_devices_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/custom_devices_test.dart @@ -283,7 +283,7 @@ class FakeCommandRunner extends FlutterCommandRunner { return context.run( overrides: { - Logger: () => logger + Logger: () => logger, }, body: () { Cache.flutterRoot ??= Cache.defaultFlutterRoot( @@ -552,7 +552,7 @@ void main() { 'ping', '-c', '1', '-w', '1', - 'testhostname' + 'testhostname', ], postBuildCommand: null, // ignore: avoid_redundant_argument_values installCommand: const [ @@ -560,19 +560,19 @@ void main() { '-r', '-o', 'BatchMode=yes', r'${localPath}', - r'testuser@testhostname:/tmp/${appName}' + r'testuser@testhostname:/tmp/${appName}', ], uninstallCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - r'rm -rf "/tmp/${appName}"' + r'rm -rf "/tmp/${appName}"', ], runDebugCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - 'testrundebug' + 'testrundebug', ], forwardPortCommand: const [ 'ssh', @@ -580,14 +580,14 @@ void main() { '-o', 'ExitOnForwardFailure=yes', '-L', r'127.0.0.1:${hostPort}:127.0.0.1:${devicePort}', 'testuser@testhostname', - "echo 'Port forwarding success'; read" + "echo 'Port forwarding success'; read", ], forwardPortSuccessRegex: RegExp('Port forwarding success'), screenshotCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - 'testscreenshot' + 'testscreenshot', ], ) ) @@ -642,7 +642,7 @@ void main() { 'ping', '-c', '1', '-w', '1', - '192.168.178.1' + '192.168.178.1', ], postBuildCommand: null, // ignore: avoid_redundant_argument_values installCommand: const [ @@ -650,19 +650,19 @@ void main() { '-r', '-o', 'BatchMode=yes', r'${localPath}', - r'testuser@192.168.178.1:/tmp/${appName}' + r'testuser@192.168.178.1:/tmp/${appName}', ], uninstallCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@192.168.178.1', - r'rm -rf "/tmp/${appName}"' + r'rm -rf "/tmp/${appName}"', ], runDebugCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@192.168.178.1', - 'testrundebug' + 'testrundebug', ], forwardPortCommand: const [ 'ssh', @@ -670,19 +670,19 @@ void main() { '-o', 'ExitOnForwardFailure=yes', '-L', r'127.0.0.1:${hostPort}:127.0.0.1:${devicePort}', 'testuser@192.168.178.1', - "echo 'Port forwarding success'; read" + "echo 'Port forwarding success'; read", ], forwardPortSuccessRegex: RegExp('Port forwarding success'), screenshotCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@192.168.178.1', - 'testscreenshot' - ] - ) - ) + 'testscreenshot', + ], + ), + ), ); - } + }, ); testUsingContext( @@ -732,7 +732,7 @@ void main() { '-6', '-c', '1', '-w', '1', - '::1' + '::1', ], postBuildCommand: null, // ignore: avoid_redundant_argument_values installCommand: const [ @@ -741,21 +741,21 @@ void main() { '-o', 'BatchMode=yes', '-6', r'${localPath}', - r'testuser@[::1]:/tmp/${appName}' + r'testuser@[::1]:/tmp/${appName}', ], uninstallCommand: const [ 'ssh', '-o', 'BatchMode=yes', '-6', 'testuser@[::1]', - r'rm -rf "/tmp/${appName}"' + r'rm -rf "/tmp/${appName}"', ], runDebugCommand: const [ 'ssh', '-o', 'BatchMode=yes', '-6', 'testuser@[::1]', - 'testrundebug' + 'testrundebug', ], forwardPortCommand: const [ 'ssh', @@ -764,7 +764,7 @@ void main() { '-6', '-L', r'[::1]:${hostPort}:[::1]:${devicePort}', 'testuser@[::1]', - "echo 'Port forwarding success'; read" + "echo 'Port forwarding success'; read", ], forwardPortSuccessRegex: RegExp('Port forwarding success'), screenshotCommand: const [ @@ -772,12 +772,12 @@ void main() { '-o', 'BatchMode=yes', '-6', 'testuser@[::1]', - 'testscreenshot' - ] - ) - ) + 'testscreenshot', + ], + ), + ), ); - } + }, ); testUsingContext( @@ -826,7 +826,7 @@ void main() { 'ping', '-c', '1', '-w', '1', - 'testhostname' + 'testhostname', ], postBuildCommand: null, // ignore: avoid_redundant_argument_values installCommand: [ @@ -834,30 +834,30 @@ void main() { '-r', '-o', 'BatchMode=yes', r'${localPath}', - r'testuser@testhostname:/tmp/${appName}' + r'testuser@testhostname:/tmp/${appName}', ], uninstallCommand: [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - r'rm -rf "/tmp/${appName}"' + r'rm -rf "/tmp/${appName}"', ], runDebugCommand: [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - 'testrundebug' + 'testrundebug', ], screenshotCommand: [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - 'testscreenshot' - ] - ) - ) + 'testscreenshot', + ], + ), + ), ); - } + }, ); testUsingContext( @@ -880,12 +880,12 @@ void main() { apply: 'y', ), fileSystem: fs, - featureEnabled: true + featureEnabled: true, ); await expectLater( runner.run(const ['custom-devices', 'add', '--no-check']), - completes + completes, ); final CustomDevicesConfig config = CustomDevicesConfig.test( @@ -906,7 +906,7 @@ void main() { 'ping', '-c', '1', '-w', '1', - 'testhostname' + 'testhostname', ], postBuildCommand: null, // ignore: avoid_redundant_argument_values installCommand: const [ @@ -914,19 +914,19 @@ void main() { '-r', '-o', 'BatchMode=yes', r'${localPath}', - r'testuser@testhostname:/tmp/${appName}' + r'testuser@testhostname:/tmp/${appName}', ], uninstallCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - r'rm -rf "/tmp/${appName}"' + r'rm -rf "/tmp/${appName}"', ], runDebugCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - 'testrundebug' + 'testrundebug', ], forwardPortCommand: const [ 'ssh', @@ -934,7 +934,7 @@ void main() { '-o', 'ExitOnForwardFailure=yes', '-L', r'127.0.0.1:${hostPort}:127.0.0.1:${devicePort}', 'testuser@testhostname', - "echo 'Port forwarding success'; read" + "echo 'Port forwarding success'; read", ], forwardPortSuccessRegex: RegExp('Port forwarding success'), ) @@ -1230,7 +1230,7 @@ void main() { 'ping', '-n', '1', '-w', '500', - 'testhostname' + 'testhostname', ], pingSuccessRegex: RegExp(r'[<=]\d+ms'), postBuildCommand: null, // ignore: avoid_redundant_argument_values @@ -1239,19 +1239,19 @@ void main() { '-r', '-o', 'BatchMode=yes', r'${localPath}', - r'testuser@testhostname:/tmp/${appName}' + r'testuser@testhostname:/tmp/${appName}', ], uninstallCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - r'rm -rf "/tmp/${appName}"' + r'rm -rf "/tmp/${appName}"', ], runDebugCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - 'testrundebug' + 'testrundebug', ], forwardPortCommand: const [ 'ssh', @@ -1259,17 +1259,17 @@ void main() { '-o', 'ExitOnForwardFailure=yes', '-L', r'127.0.0.1:${hostPort}:127.0.0.1:${devicePort}', 'testuser@testhostname', - "echo 'Port forwarding success'; read" + "echo 'Port forwarding success'; read", ], forwardPortSuccessRegex: RegExp('Port forwarding success'), screenshotCommand: const [ 'ssh', '-o', 'BatchMode=yes', 'testuser@testhostname', - 'testscreenshot' - ] - ) - ) + 'testscreenshot', + ], + ), + ), ); }, ); diff --git a/packages/flutter_tools/test/commands.shard/hermetic/devices_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/devices_test.dart index 427f66cfadc74..ca3ffe87c21f8 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/devices_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/devices_test.dart @@ -82,8 +82,8 @@ void main() { 'fastStart': false, 'flutterExit': true, 'hardwareRendering': true, - 'startPaused': true - } + 'startPaused': true, + }, }, { 'name': 'webby', @@ -99,10 +99,10 @@ void main() { 'fastStart': false, 'flutterExit': true, 'hardwareRendering': true, - 'startPaused': true - } - } - ] + 'startPaused': true, + }, + }, + ], ); }, overrides: { DeviceManager: () => _FakeDeviceManager(), diff --git a/packages/flutter_tools/test/commands.shard/hermetic/downgrade_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/downgrade_test.dart index 127744eaa1f0f..a2ad7121d0a8d 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/downgrade_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/downgrade_test.dart @@ -68,10 +68,10 @@ void main() { processManager: FakeProcessManager.list([ const FakeCommand( command: [ - 'git', 'describe', '--tags', 'abcd' + 'git', 'describe', '--tags', 'abcd', ], - stdout: 'v1.2.3' - ) + stdout: 'v1.2.3', + ), ]), terminal: terminal, stdio: stdio, @@ -96,10 +96,10 @@ void main() { processManager: FakeProcessManager.list([ const FakeCommand( command: [ - 'git', 'describe', '--tags', 'invalid' + 'git', 'describe', '--tags', 'invalid', ], exitCode: 1, - ) + ), ]), terminal: terminal, stdio: stdio, @@ -188,19 +188,19 @@ void main() { processManager: FakeProcessManager.list([ const FakeCommand( command: [ - 'git', 'describe', '--tags', 'g6b00b5e88' + 'git', 'describe', '--tags', 'g6b00b5e88', ], stdout: 'v1.2.3', ), const FakeCommand( command: [ - 'git', 'reset', '--hard', 'g6b00b5e88' + 'git', 'reset', '--hard', 'g6b00b5e88', ], ), const FakeCommand( command: [ - 'git', 'checkout', 'master', '--' - ] + 'git', 'checkout', 'master', '--', + ], ), ]), terminal: terminal, diff --git a/packages/flutter_tools/test/commands.shard/hermetic/proxy_validator_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/proxy_validator_test.dart index be600cba5fa67..012c8b149e114 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/proxy_validator_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/proxy_validator_test.dart @@ -22,11 +22,11 @@ void main() { }) async { final List interfaces = [ FakeNetworkInterface([ - const FakeInternetAddress('127.0.0.1') + const FakeInternetAddress('127.0.0.1'), ]), FakeNetworkInterface([ - const FakeInternetAddress('::1') - ]) + const FakeInternetAddress('::1'), + ]), ]; return Future>.value(interfaces); diff --git a/packages/flutter_tools/test/commands.shard/hermetic/symbolize_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/symbolize_test.dart index 493f046fa0a08..c58c14aab74f8 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/symbolize_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/symbolize_test.dart @@ -128,7 +128,8 @@ void main() { expect( createTestCommandRunner(command).run(const [ - 'symbolize', '--debug-info=app.debug', '--input=foo.stack', '--output=results/foo.result']), + 'symbolize', '--debug-info=app.debug', '--input=foo.stack', '--output=results/foo.result', + ]), throwsToolExit(message: 'test'), ); }, overrides: { diff --git a/packages/flutter_tools/test/commands.shard/hermetic/test_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/test_test.dart index 17762d3954e4d..58004aad2be9f 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/test_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/test_test.dart @@ -40,18 +40,18 @@ final String _packageConfigContents = json.encode({ 'name': 'test_api', 'rootUri': 'file:///path/to/pubcache/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.19', 'packageUri': 'lib/', - 'languageVersion': '2.12' + 'languageVersion': '2.12', }, { 'name': 'integration_test', 'rootUri': 'file:///path/to/flutter/packages/integration_test', 'packageUri': 'lib/', - 'languageVersion': '2.12' + 'languageVersion': '2.12', }, ], 'generated': '2021-02-24T07:55:20.084834Z', 'generator': 'pub', - 'generatorVersion': '2.13.0-68.0.dev' + 'generatorVersion': '2.13.0-68.0.dev', }); void main() { @@ -108,12 +108,12 @@ dev_dependencies: 'name': 'test_api', 'rootUri': 'file:///path/to/pubcache/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.19', 'packageUri': 'lib/', - 'languageVersion': '2.12' + 'languageVersion': '2.12', }, ], 'generated': '2021-02-24T07:55:20.084834Z', 'generator': 'pub', - 'generatorVersion': '2.13.0-68.0.dev' + 'generatorVersion': '2.13.0-68.0.dev', })); final FakePackageTest fakePackageTest = FakePackageTest(); final TestCommand testCommand = TestCommand(testWrapper: fakePackageTest); @@ -122,7 +122,7 @@ dev_dependencies: expect(() => commandRunner.run(const [ 'test', '--no-pub', - 'integration_test' + 'integration_test', ]), throwsToolExit()); }, overrides: { FileSystem: () => fs, @@ -510,7 +510,7 @@ dev_dependencies: await commandRunner.run(const [ 'test', '--no-pub', - '--platform=chrome' + '--platform=chrome', ]); expect(await testCommand.requiredArtifacts, [DevelopmentArtifact.web]); diff --git a/packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart b/packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart index d2beafda51707..27c26878e489d 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart @@ -170,7 +170,7 @@ void main() { '--split-debug-info', '/project-name/v1.2.3/', '--obfuscate', - '--dart-define=foo=bar' + '--dart-define=foo=bar', ], ); diff --git a/packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart b/packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart index 8bb4cc8503753..b114d4a100420 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart @@ -53,7 +53,7 @@ void main() { 'bundle', ...?arguments, '--target=$projectPath/lib/main.dart', - '--no-pub' + '--no-pub', ]); return command; } @@ -215,7 +215,7 @@ void main() { '--no-pub', '--debug', '--target-platform=android-arm', - '--track-widget-creation' + '--track-widget-creation', ]); }, overrides: { BuildSystem: () => TestBuildSystem.all(BuildResult(success: true), (Target target, Environment environment) { @@ -245,7 +245,7 @@ void main() { '--no-pub', '--debug', '--target-platform=android-arm', - '--dart-define=foo=bar' + '--dart-define=foo=bar', ]); }, overrides: { BuildSystem: () => TestBuildSystem.all(BuildResult(success: true), (Target target, Environment environment) { @@ -306,7 +306,7 @@ void main() { '--no-pub', '--debug', '--target-platform=android-arm', - '--filesystem-root=test1,test2' + '--filesystem-root=test1,test2', ]); }, overrides: { BuildSystem: () => TestBuildSystem.all(BuildResult(success: true), (Target target, Environment environment) { @@ -337,7 +337,7 @@ void main() { '--no-pub', '--debug', '--target-platform=android-arm', - '--extra-front-end-options=--testflag,--testflag2' + '--extra-front-end-options=--testflag,--testflag2', ]); }, overrides: { BuildSystem: () => TestBuildSystem.all(BuildResult(success: true), (Target target, Environment environment) { @@ -368,7 +368,7 @@ void main() { '--no-pub', '--debug', '--target-platform=android-arm', - '--extra-gen-snapshot-options=--testflag,--testflag2' + '--extra-gen-snapshot-options=--testflag,--testflag2', ]); }, overrides: { BuildSystem: () => TestBuildSystem.all(BuildResult(success: true), (Target target, Environment environment) { diff --git a/packages/flutter_tools/test/commands.shard/permeable/create_test.dart b/packages/flutter_tools/test/commands.shard/permeable/create_test.dart index 705bb44cd8b38..fe69d009f3da3 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/create_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/create_test.dart @@ -811,7 +811,6 @@ void main() { expect(projectDir.childDirectory('macos'), isNot(exists)); expect(projectDir.childDirectory('windows'), isNot(exists)); expect(projectDir.childDirectory('web'), isNot(exists)); - expect(projectDir.childDirectory('winuwp'), isNot(exists)); }, overrides: { FeatureFlags: () => TestFeatureFlags(), }); @@ -830,42 +829,14 @@ void main() { expect(projectDir.childDirectory('macos'), isNot(exists)); expect(projectDir.childDirectory('windows'), isNot(exists)); expect(projectDir.childDirectory('web'), isNot(exists)); - expect(projectDir.childDirectory('winuwp'), isNot(exists)); expect(projectDir.childDirectory('example').childDirectory('linux'), isNot(exists)); expect(projectDir.childDirectory('example').childDirectory('macos'), isNot(exists)); expect(projectDir.childDirectory('example').childDirectory('windows'), isNot(exists)); expect(projectDir.childDirectory('example').childDirectory('web'), isNot(exists)); - expect(projectDir.childDirectory('example').childDirectory('winuwp'), isNot(exists)); }, overrides: { FeatureFlags: () => TestFeatureFlags(), }); - testUsingContext('app supports Windows UWP if requested', () async { - Cache.flutterRoot = '../..'; - - final CreateCommand command = CreateCommand(); - final CommandRunner runner = createTestCommandRunner(command); - - await runner.run([ - 'create', - '--no-pub', - '--platform=winuwp', - projectDir.path, - ]); - - expect(projectDir.childDirectory('linux'), isNot(exists)); - expect(projectDir.childDirectory('android'), isNot(exists)); - expect(projectDir.childDirectory('ios'), isNot(exists)); - expect(projectDir.childDirectory('windows'), isNot(exists)); - expect(projectDir.childDirectory('macos'), isNot(exists)); - expect(projectDir.childDirectory('web'), isNot(exists)); - expect(projectDir.childDirectory('winuwp'), exists); - expect(logger.errorText, isNot(contains(_kNoPlatformsMessage))); - }, overrides: { - FeatureFlags: () => TestFeatureFlags(isWindowsUwpEnabled: true), - Logger: () => logger, - }); - testUsingContext('app supports Linux if requested', () async { Cache.flutterRoot = '../..'; @@ -885,7 +856,6 @@ void main() { expect(projectDir.childDirectory('windows'), isNot(exists)); expect(projectDir.childDirectory('macos'), isNot(exists)); expect(projectDir.childDirectory('web'), isNot(exists)); - expect(projectDir.childDirectory('winuwp'), isNot(exists)); expect(logger.errorText, isNot(contains(_kNoPlatformsMessage))); }, overrides: { FeatureFlags: () => TestFeatureFlags(isLinuxEnabled: true), @@ -1064,7 +1034,7 @@ void main() { projectDir.childDirectory('example').childDirectory('web'), isNot(exists)); validatePubspecForPlugin(projectDir: projectDir.absolute.path, expectedPlatforms: const [ - 'windows' + 'windows', ], pluginClass: 'FlutterProjectPluginCApi', unexpectedPlatforms: ['some_platform']); expect(logger.errorText, isNot(contains(_kNoPlatformsMessage))); @@ -1347,7 +1317,7 @@ void main() { command: const ['openssl', 'x509', '-subject'], stdin: IOSink(controller.sink), stdout: 'subject= /CN=iPhone Developer: Profile 1 (1111AAAA11)/OU=3333CCCC33/O=My Team/C=US', - ) + ), ]); controller.stream.listen((List chunk) { @@ -1794,7 +1764,7 @@ void main() { '--org', 'com.bar.foo', '-i', 'objc', '-a', 'java', - '--platforms', 'ios,android' + '--platforms', 'ios,android', ], [], ); @@ -1948,7 +1918,7 @@ void main() { FakeRequest( Uri.parse('https://master-api.flutter.dev/snippets/foo.bar.Baz.dart'), response: FakeResponse(body: utf8.encode('void main() {}')), - ) + ), ]); }; }, @@ -1971,7 +1941,7 @@ void main() { FakeRequest( Uri.parse('https://master-api.flutter.dev/snippets/foo.bar.Baz.dart'), response: FakeResponse(body: utf8.encode('void main() { String? foo; print(foo); } // ignore: avoid_print')), - ) + ), ]); }; }, @@ -1998,7 +1968,7 @@ void main() { FakeRequest( Uri.parse('https://master-api.flutter.dev/snippets/index.json'), response: FakeResponse(body: utf8.encode(samplesIndexJson)), - ) + ), ]); }; }, @@ -2026,7 +1996,7 @@ void main() { return FakeHttpClient.list([ FakeRequest( Uri.parse('https://master-api.flutter.dev/snippets/index.json'), - ) + ), ]); }; }, @@ -2051,7 +2021,7 @@ void main() { FakeRequest( Uri.parse('https://master-api.flutter.dev/snippets/index.json'), response: const FakeResponse(statusCode: HttpStatus.notFound), - ) + ), ]); }; }, @@ -2085,7 +2055,7 @@ void main() { expect(projectDir.childDirectory('example').childDirectory('macos'), isNot(exists)); validatePubspecForPlugin(projectDir: projectDir.absolute.path, expectedPlatforms: [ - 'some_platform' + 'some_platform', ], pluginClass: 'somePluginClass', unexpectedPlatforms: [ 'ios', 'android', 'web', 'linux', 'windows', 'macos']); }, overrides: { @@ -2171,7 +2141,7 @@ void main() { expect( projectDir.childDirectory('example').childDirectory('android'), exists); validatePubspecForPlugin(projectDir: projectDir.absolute.path, expectedPlatforms: const [ - 'android' + 'android', ], pluginClass: 'FlutterProjectPlugin', unexpectedPlatforms: ['some_platform'], androidIdentifier: 'com.example.flutter_project'); @@ -2192,7 +2162,7 @@ void main() { projectDir.childDirectory('lib').childFile('flutter_project_web.dart'), exists); validatePubspecForPlugin(projectDir: projectDir.absolute.path, expectedPlatforms: const [ - 'web' + 'web', ], pluginClass: 'FlutterProjectWeb', unexpectedPlatforms: ['some_platform'], androidIdentifier: 'com.example.flutter_project', @@ -2218,7 +2188,7 @@ void main() { projectDir.childDirectory('lib').childFile('flutter_project_web.dart'), isNot(exists)); validatePubspecForPlugin(projectDir: projectDir.absolute.path, expectedPlatforms: const [ - 'some_platform' + 'some_platform', ], pluginClass: 'somePluginClass', unexpectedPlatforms: ['web']); expect(logger.errorText, contains(_kNoPlatformsMessage)); @@ -2354,7 +2324,7 @@ void main() { expect(projectDir.childDirectory('ios'), exists); expect(projectDir.childDirectory('example').childDirectory('ios'), exists); validatePubspecForPlugin(projectDir: projectDir.absolute.path, expectedPlatforms: const [ - 'ios', 'android' + 'ios', 'android', ], pluginClass: 'FlutterProjectPlugin', unexpectedPlatforms: ['some_platform'], androidIdentifier: 'com.example.flutter_project'); diff --git a/packages/flutter_tools/test/commands.shard/permeable/devices_test.dart b/packages/flutter_tools/test/commands.shard/permeable/devices_test.dart index 8df718fa17617..a73f7a1b198fe 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/devices_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/devices_test.dart @@ -71,9 +71,9 @@ void main() { 'fastStart': false, 'flutterExit': false, 'hardwareRendering': false, - 'startPaused': true - } - } + 'startPaused': true, + }, + }, )), ); }, overrides: { diff --git a/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart b/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart index 590c65a030d8d..8ca503852b29e 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart @@ -503,8 +503,10 @@ void main() { globals.fs.file('pubspec.yaml').createSync(); final IOSink stdin = IOSink(StreamController>().sink); processManager.addCommand( - FakeCommand(command: const [ - '/bin/cache/dart-sdk/bin/dart', '__deprecated_pub', 'run', '--foo', 'bar'], + FakeCommand( + command: const [ + '/bin/cache/dart-sdk/bin/dart', '__deprecated_pub', 'run', '--foo', 'bar', + ], stdin: stdin, ), ); @@ -531,8 +533,10 @@ void main() { globals.fs.file('pubspec.yaml').createSync(); final IOSink stdin = IOSink(StreamController>().sink); processManager.addCommand( - FakeCommand(command: const [ - '/bin/cache/dart-sdk/bin/dart', '__deprecated_pub', 'token', 'list'], + FakeCommand( + command: const [ + '/bin/cache/dart-sdk/bin/dart', '__deprecated_pub', 'token', 'list', + ], stdin: stdin, ), ); @@ -557,8 +561,10 @@ void main() { testUsingContext('upgrade does not check for pubspec.yaml if -h/--help is passed', () async { Cache.flutterRoot = ''; processManager.addCommand( - FakeCommand(command: const [ - '/bin/cache/dart-sdk/bin/dart', '__deprecated_pub', 'upgrade', '-h'], + FakeCommand( + command: const [ + '/bin/cache/dart-sdk/bin/dart', '__deprecated_pub', 'upgrade', '-h', + ], stdin: IOSink(StreamController>().sink), ), ); diff --git a/packages/flutter_tools/test/commands.shard/permeable/upgrade_test.dart b/packages/flutter_tools/test/commands.shard/permeable/upgrade_test.dart index c98fe640801dc..b905b8aaa240b 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/upgrade_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/upgrade_test.dart @@ -157,7 +157,7 @@ void main() { processManager.addCommands([ const FakeCommand(command: [ - 'git', 'fetch', '--tags' + 'git', 'fetch', '--tags', ]), const FakeCommand(command: [ 'git', 'rev-parse', '--verify', '@{upstream}', @@ -185,7 +185,7 @@ void main() { testUsingContext('fetchLatestVersion throws toolExit if HEAD is detached', () async { processManager.addCommands(const [ FakeCommand(command: [ - 'git', 'fetch', '--tags' + 'git', 'fetch', '--tags', ]), FakeCommand( command: ['git', 'rev-parse', '--verify', '@{upstream}'], @@ -214,7 +214,7 @@ void main() { testUsingContext('fetchLatestVersion throws toolExit if no upstream configured', () async { processManager.addCommands(const [ FakeCommand(command: [ - 'git', 'fetch', '--tags' + 'git', 'fetch', '--tags', ]), FakeCommand( command: ['git', 'rev-parse', '--verify', '@{upstream}'], diff --git a/packages/flutter_tools/test/general.shard/android/adb_log_reader_test.dart b/packages/flutter_tools/test/general.shard/android/adb_log_reader_test.dart index 8c284c083b2d7..31de85406c5b9 100644 --- a/packages/flutter_tools/test/general.shard/android/adb_log_reader_test.dart +++ b/packages/flutter_tools/test/general.shard/android/adb_log_reader_test.dart @@ -34,7 +34,7 @@ void main() { '-T', "'$kLastLogcatTimestamp'", ], - ) + ), ]); await AdbLogReader.createLogReader( createFakeDevice(kLollipopVersionCode), @@ -57,7 +57,7 @@ void main() { '-v', 'time', ], - ) + ), ]); await AdbLogReader.createLogReader( createFakeDevice(kLollipopVersionCode - 1), @@ -80,7 +80,7 @@ void main() { '-v', 'time', ], - ) + ), ]); await AdbLogReader.createLogReader( createFakeDevice(null), @@ -105,7 +105,7 @@ void main() { '-s', 'flutter', ], - ) + ), ]); await AdbLogReader.createLogReader( createFakeDevice(null), @@ -131,7 +131,7 @@ void main() { ], completer: Completer.sync(), stdout: 'Hello There\n', - ) + ), ]); final AdbLogReader logReader = await AdbLogReader.createLogReader( createFakeDevice(null), @@ -165,7 +165,7 @@ void main() { '05-11 12:54:46.665 E/AndroidRuntime(11787): Process: com.example.foobar, PID: 11787\n' '05-11 12:54:46.665 java.lang.RuntimeException: Unable to instantiate application ' 'io.flutter.app.FlutterApplication2: java.lang.ClassNotFoundException:\n', - ) + ), ]); final AdbLogReader logReader = await AdbLogReader.createLogReader( createFakeDevice(null), diff --git a/packages/flutter_tools/test/general.shard/android/android_device_discovery_test.dart b/packages/flutter_tools/test/general.shard/android/android_device_discovery_test.dart index 986e12411b594..bf04c5637fa9a 100644 --- a/packages/flutter_tools/test/general.shard/android/android_device_discovery_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_device_discovery_test.dart @@ -93,7 +93,7 @@ void main() { const FakeCommand( command: ['adb', 'devices', '-l'], exitCode: 1, - ) + ), ]); final AndroidDevices androidDevices = AndroidDevices( androidSdk: FakeAndroidSdk(), @@ -143,7 +143,7 @@ List of devices attached 05a02bac device usb:336592896X product:razor model:Nexus_7 device:flo ''', - ) + ), ]), platform: FakePlatform(), fileSystem: MemoryFileSystem.test(), @@ -172,7 +172,7 @@ localhost:36790 device emulator-5612 host features:shell_2 ''', - ) + ), ]), platform: FakePlatform(), fileSystem: MemoryFileSystem.test(), @@ -200,7 +200,7 @@ List of devices attached ZX1G22JJWR device usb:3-3 product:shamu model:Nexus_6 device:shamu features:cmd,shell_v2 ''', - ) + ), ]), platform: FakePlatform(), fileSystem: MemoryFileSystem.test(), @@ -226,7 +226,7 @@ It appears you do not have 'Android SDK Platform-tools' installed. Use the 'android' tool to install them: android update sdk --no-ui --filter 'platform-tools' ''', - ) + ), ]), platform: FakePlatform(), fileSystem: MemoryFileSystem.test(), diff --git a/packages/flutter_tools/test/general.shard/android/android_device_port_forwarder_test.dart b/packages/flutter_tools/test/general.shard/android/android_device_port_forwarder_test.dart index 8197ccdd917d9..410a02c93d320 100644 --- a/packages/flutter_tools/test/general.shard/android/android_device_port_forwarder_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_device_port_forwarder_test.dart @@ -19,7 +19,7 @@ void main() { const FakeCommand( command: ['adb', '-s', '1', 'forward', 'tcp:0', 'tcp:123'], stdout: '456', - ) + ), ]), logger: BufferLogger.test(), ); @@ -35,7 +35,7 @@ void main() { processManager: FakeProcessManager.list([ const FakeCommand( command: ['adb', '-s', '1', 'forward', 'tcp:456', 'tcp:123'], - ) + ), ]), logger: BufferLogger.test(), ); @@ -52,7 +52,7 @@ void main() { const FakeCommand( command: ['adb', '-s', '1', 'forward', 'tcp:456', 'tcp:123'], stdout: '456', - ) + ), ]), logger: BufferLogger.test(), ); @@ -69,7 +69,7 @@ void main() { const FakeCommand( command: ['adb', '-s', '1', 'forward', 'tcp:456', 'tcp:123'], stdout: '123456', - ) + ), ]), logger: BufferLogger.test(), ); @@ -86,7 +86,7 @@ void main() { const FakeCommand( command: ['adb', '-s', '1', 'forward', '--list'], exitCode: 1, - ) + ), ]), logger: BufferLogger.test(), ); @@ -106,7 +106,7 @@ void main() { ), const FakeCommand( command: ['adb', '-s', '1', 'forward', '--remove', 'tcp:456'], - ) + ), ]); final AndroidDevicePortForwarder forwarder = AndroidDevicePortForwarder( adbPath: 'adb', @@ -128,7 +128,7 @@ void main() { command: ['adb', '-s', '1', 'forward', '--remove', 'tcp:456'], stderr: "error: listener 'tcp:456' not found", exitCode: 1, - ) + ), ]); final AndroidDevicePortForwarder forwarder = AndroidDevicePortForwarder( adbPath: 'adb', @@ -146,7 +146,7 @@ void main() { command: ['adb', '-s', '1', 'forward', '--remove', 'tcp:456'], stderr: 'error: everything is broken!', exitCode: 1, - ) + ), ]); final BufferLogger logger = BufferLogger.test(); final AndroidDevicePortForwarder forwarder = AndroidDevicePortForwarder( diff --git a/packages/flutter_tools/test/general.shard/android/android_device_start_test.dart b/packages/flutter_tools/test/general.shard/android/android_device_start_test.dart index 030af3fbdae80..da058687d1309 100644 --- a/packages/flutter_tools/test/general.shard/android/android_device_start_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_device_start_test.dart @@ -198,7 +198,7 @@ void main() { '-r', '--user', '10', - 'app.apk' + 'app.apk', ], stdout: '\n\nThe Dart VM service is listening on http://127.0.0.1:456\n\n', )); diff --git a/packages/flutter_tools/test/general.shard/android/android_device_test.dart b/packages/flutter_tools/test/general.shard/android/android_device_test.dart index d8450d8a275f1..b6bfdca661e48 100644 --- a/packages/flutter_tools/test/general.shard/android/android_device_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_device_test.dart @@ -45,7 +45,7 @@ void main() { stdout: '[ro.hardware]: [goldfish]\n[ro.build.characteristics]: [unused]', // Heap corruption exit code. exitCode: -1073740940, - ) + ), ]; final AndroidDevice windowsDevice = setUpAndroidDevice( @@ -88,8 +88,8 @@ void main() { FakeCommand( command: const ['adb', '-s', '1234', 'shell', 'getprop'], stdout: '[ro.product.cpu.abi]: [${entry.key.first}]\n' - '[ro.product.cpu.abilist]: [${entry.key.last}]' - ) + '[ro.product.cpu.abilist]: [${entry.key.last}]', + ), ]), ); @@ -117,7 +117,7 @@ void main() { command: const ['adb', '-s', '1234', 'shell', 'getprop'], stdout: '[ro.product.cpu.abi]: [${entry.key.first}]\n' '[ro.product.cpu.abilist]: [${entry.key.last}]' - ) + ), ]), ); @@ -234,7 +234,7 @@ flutter: const FakeCommand( command: ['adb', '-s', 'emulator-5555', 'shell', 'getprop'], stdout: '[ro.hardware]: [goldfish]' - ) + ), ]), id: 'emulator-5555', androidConsoleSocketFactory: (String host, int port) async => @@ -256,7 +256,7 @@ flutter: const FakeCommand( command: ['adb', '-s', 'emulator-5555', 'shell', 'getprop'], stdout: '[ro.hardware]: [samsungexynos7420]' - ) + ), ]), androidConsoleSocketFactory: (String host, int port) async { socketWasCreated = true; @@ -275,7 +275,7 @@ flutter: const FakeCommand( command: ['adb', '-s', '1234', 'shell', 'getprop'], stdout: '[ro.hardware]: [goldfish]' - ) + ), ]), androidConsoleSocketFactory: (String host, int port) async { socketWasCreated = true; @@ -293,7 +293,7 @@ flutter: const FakeCommand( command: ['adb', '-s', '1234', 'shell', 'getprop'], stdout: '[ro.hardware]: [goldfish]' - ) + ), ]), androidConsoleSocketFactory: (String host, int port) => throw Exception('Fake socket error'), ); @@ -307,7 +307,7 @@ flutter: const FakeCommand( command: ['adb', '-s', '1234', 'shell', 'getprop'], stdout: '[ro.hardware]: [goldfish]' - ) + ), ]), androidConsoleSocketFactory: (String host, int port) async => FakeUnresponsiveAndroidConsoleSocket(), @@ -322,7 +322,7 @@ flutter: const FakeCommand( command: ['adb', '-s', '1234', 'shell', 'getprop'], stdout: '[ro.hardware]: [goldfish]' - ) + ), ]), androidConsoleSocketFactory: (String host, int port) async => FakeDisconnectingAndroidConsoleSocket() @@ -337,7 +337,7 @@ flutter: const FakeCommand( command: ['adb', '-s', '1234', 'shell', '-x', 'logcat', '-v', 'time', '-t', '1'], exitCode: 1, - ) + ), ]) ); @@ -357,7 +357,7 @@ flutter: ), const FakeCommand( command: ['adb', '-s', '1234', 'shell', '-x', 'logcat', '-v', 'time'], - ) + ), ]) ); diff --git a/packages/flutter_tools/test/general.shard/android/android_emulator_test.dart b/packages/flutter_tools/test/general.shard/android/android_emulator_test.dart index c85b6e2c0a366..027164dcc3d7a 100644 --- a/packages/flutter_tools/test/general.shard/android/android_emulator_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_emulator_test.dart @@ -145,7 +145,7 @@ void main() { testWithoutContext('succeeds with coldboot launch', () async { final List kEmulatorLaunchColdBootCommand = [ ...kEmulatorLaunchCommand, - '-no-snapshot-load' + '-no-snapshot-load', ]; final AndroidEmulator emulator = AndroidEmulator(emulatorID, processManager: FakeProcessManager.list([ diff --git a/packages/flutter_tools/test/general.shard/android/android_gradle_builder_test.dart b/packages/flutter_tools/test/general.shard/android/android_gradle_builder_test.dart index bd90fa1730346..37246c9362b4f 100644 --- a/packages/flutter_tools/test/general.shard/android/android_gradle_builder_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_gradle_builder_test.dart @@ -60,7 +60,7 @@ void main() { '-Pdart-obfuscation=false', '-Ptrack-widget-creation=false', '-Ptree-shake-icons=false', - 'assembleRelease' + 'assembleRelease', ], exitCode: 1, stderr: '\nSome gradle message\n', @@ -150,7 +150,7 @@ void main() { '-Pdart-obfuscation=false', '-Ptrack-widget-creation=false', '-Ptree-shake-icons=false', - 'assembleRelease' + 'assembleRelease', ], )); @@ -656,7 +656,7 @@ void main() { '-Pdart-obfuscation=false', '-Ptrack-widget-creation=false', '-Ptree-shake-icons=false', - 'assembleRelease' + 'assembleRelease', ], )); fileSystem.directory('android') @@ -788,7 +788,7 @@ void main() { '-Ptrack-widget-creation=false', '-Ptree-shake-icons=false', '-Ptarget-platform=android-arm,android-arm64,android-x64', - 'assembleAarRelease' + 'assembleAarRelease', ], )); @@ -841,7 +841,7 @@ void main() { '-Ptrack-widget-creation=false', '-Ptree-shake-icons=false', '-Ptarget-platform=android-arm,android-arm64,android-x64', - 'assembleAarRelease' + 'assembleAarRelease', ], exitCode: 108, stderr: 'Gradle task assembleAarRelease failed with exit code 108.', @@ -1119,7 +1119,7 @@ void main() { '-Pdart-obfuscation=false', '-Ptrack-widget-creation=false', '-Ptree-shake-icons=false', - 'assembleRelease' + 'assembleRelease', ], exitCode: 1, )); @@ -1192,7 +1192,7 @@ void main() { '-Pdart-obfuscation=false', '-Ptrack-widget-creation=false', '-Ptree-shake-icons=false', - 'assembleRelease' + 'assembleRelease', ], )); fileSystem.file('android/gradlew').createSync(recursive: true); @@ -1253,7 +1253,7 @@ void main() { '-Plocal-engine-build-mode=release', '-Plocal-engine-out=out/android_arm', '-Ptarget-platform=android-arm', - 'assembleAarRelease' + 'assembleAarRelease', ], )); @@ -1337,7 +1337,7 @@ void main() { '-Plocal-engine-build-mode=release', '-Plocal-engine-out=out/android_arm64', '-Ptarget-platform=android-arm64', - 'assembleAarRelease' + 'assembleAarRelease', ], )); @@ -1421,7 +1421,7 @@ void main() { '-Plocal-engine-build-mode=release', '-Plocal-engine-out=out/android_x86', '-Ptarget-platform=android-x86', - 'assembleAarRelease' + 'assembleAarRelease', ], )); @@ -1505,7 +1505,7 @@ void main() { '-Plocal-engine-build-mode=release', '-Plocal-engine-out=out/android_x64', '-Ptarget-platform=android-x64', - 'assembleAarRelease' + 'assembleAarRelease', ], )); diff --git a/packages/flutter_tools/test/general.shard/android/android_install_test.dart b/packages/flutter_tools/test/general.shard/android/android_install_test.dart index 8e889d852ddc0..ca6fc9670da99 100644 --- a/packages/flutter_tools/test/general.shard/android/android_install_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_install_test.dart @@ -31,7 +31,7 @@ const FakeCommand kInstallCommand = FakeCommand( '-r', '--user', '10', - 'app.apk' + 'app.apk', ], ); const FakeCommand kStoreShaCommand = FakeCommand( @@ -182,7 +182,7 @@ void main() { '-r', '--user', 'jane', - 'app.apk' + 'app.apk', ], exitCode: 1, stderr: 'Exception occurred while executing: java.lang.IllegalArgumentException: Bad user number: jane', diff --git a/packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart b/packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart index 9276230d043ba..219c945974244 100644 --- a/packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart +++ b/packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart @@ -427,7 +427,7 @@ Execution failed for task ':app:mergeDexDebug'. }, overrides: { FileSystem: () => MemoryFileSystem.test(), ProcessManager: () => FakeProcessManager.any(), - AnsiTerminal: () => _TestPromptTerminal('y') + AnsiTerminal: () => _TestPromptTerminal('y'), }); testUsingContext('exits if multidex support skipped', () async { @@ -493,7 +493,7 @@ Execution failed for task ':app:mergeDexDebug'. }, overrides: { FileSystem: () => MemoryFileSystem.test(), ProcessManager: () => FakeProcessManager.any(), - AnsiTerminal: () => _TestPromptTerminal('n') + AnsiTerminal: () => _TestPromptTerminal('n'), }); testUsingContext('exits if multidex support disabled', () async { diff --git a/packages/flutter_tools/test/general.shard/android/template_test.dart b/packages/flutter_tools/test/general.shard/android/template_test.dart index 138e7d505c883..4b6e031fb9d4b 100644 --- a/packages/flutter_tools/test/general.shard/android/template_test.dart +++ b/packages/flutter_tools/test/general.shard/android/template_test.dart @@ -36,7 +36,7 @@ void main() { ); final Map context = { - 'androidIdentifier': 'in.when.there' + 'androidIdentifier': 'in.when.there', }; template.render(destination, context); diff --git a/packages/flutter_tools/test/general.shard/artifact_updater_test.dart b/packages/flutter_tools/test/general.shard/artifact_updater_test.dart index 12bfef989b393..1470c0ed746e1 100644 --- a/packages/flutter_tools/test/general.shard/artifact_updater_test.dart +++ b/packages/flutter_tools/test/general.shard/artifact_updater_test.dart @@ -123,7 +123,7 @@ void main() { headers: >{ 'x-goog-hash': [ 'foo-bar-baz', - 'md5=k7iFrf4NoInN9jSQT9WfcQ==' + 'md5=k7iFrf4NoInN9jSQT9WfcQ==', ], } )), @@ -159,7 +159,7 @@ void main() { headers: >{ 'x-goog-hash': [ 'foo-bar-baz', - 'md5=k7iFrf4SQT9WfcQ==' + 'md5=k7iFrf4SQT9WfcQ==', ], } )), @@ -167,7 +167,7 @@ void main() { headers: >{ 'x-goog-hash': [ 'foo-bar-baz', - 'md5=k7iFrf4SQT9WfcQ==' + 'md5=k7iFrf4SQT9WfcQ==', ], } )), @@ -254,11 +254,11 @@ void main() { operatingSystemUtils: operatingSystemUtils, platform: FakePlatform( environment: { - 'FLUTTER_STORAGE_BASE_URL': 'foo-bar' + 'FLUTTER_STORAGE_BASE_URL': 'foo-bar', }, ), httpClient: FakeHttpClient.list([ - FakeRequest(Uri.parse('http://foo-bar/test.zip'), responseError: ArgumentError()) + FakeRequest(Uri.parse('http://foo-bar/test.zip'), responseError: ArgumentError()), ]), tempStorage: fileSystem.currentDirectory.childDirectory('temp') ..createSync(), diff --git a/packages/flutter_tools/test/general.shard/artifacts_test.dart b/packages/flutter_tools/test/general.shard/artifacts_test.dart index d906511a159e4..aed3eb9285104 100644 --- a/packages/flutter_tools/test/general.shard/artifacts_test.dart +++ b/packages/flutter_tools/test/general.shard/artifacts_test.dart @@ -141,18 +141,6 @@ void main() { artifacts.getArtifactPath(Artifact.flutterTester, platform: TargetPlatform.linux_arm64), fileSystem.path.join('root', 'bin', 'cache', 'artifacts', 'engine', 'linux-arm64', 'flutter_tester'), ); - expect( - artifacts.getArtifactPath(Artifact.windowsUwpDesktopPath, platform: TargetPlatform.windows_uwp_x64, mode: BuildMode.debug), - fileSystem.path.join('root', 'bin', 'cache', 'artifacts', 'engine', 'windows-uwp-x64-debug'), - ); - expect( - artifacts.getArtifactPath(Artifact.windowsUwpDesktopPath, platform: TargetPlatform.windows_uwp_x64, mode: BuildMode.profile), - fileSystem.path.join('root', 'bin', 'cache', 'artifacts', 'engine', 'windows-uwp-x64-profile'), - ); - expect( - artifacts.getArtifactPath(Artifact.windowsUwpDesktopPath, platform: TargetPlatform.windows_uwp_x64, mode: BuildMode.release), - fileSystem.path.join('root', 'bin', 'cache', 'artifacts', 'engine', 'windows-uwp-x64-release'), - ); expect( artifacts.getArtifactPath(Artifact.frontendServerSnapshotForEngineDartSdk), fileSystem.path.join('root', 'bin', 'cache', 'dart-sdk', 'bin', 'snapshots', 'frontend_server.dart.snapshot') @@ -327,6 +315,14 @@ void main() { fileSystem.path.join('/out', 'host_debug_unopt', 'dart-sdk', 'bin', 'snapshots', 'frontend_server.dart.snapshot') ); + expect( + artifacts.getHostArtifact(HostArtifact.impellerc).path, + fileSystem.path.join('/out', 'host_debug_unopt', 'impellerc'), + ); + expect( + artifacts.getHostArtifact(HostArtifact.libtessellator).path, + fileSystem.path.join('/out', 'host_debug_unopt', 'libtessellator.so'), + ); }); testWithoutContext('getEngineType', () { @@ -358,20 +354,6 @@ void main() { expect(artifacts.getHostArtifact(HostArtifact.engineDartBinary).path, contains('.exe')); }); - testWithoutContext('Looks up windows UWP artifacts in host engine', () async { - artifacts = LocalEngineArtifacts( - fileSystem.path.join(fileSystem.currentDirectory.path, 'out', 'winuwp_debug_unopt'), - fileSystem.path.join(fileSystem.currentDirectory.path, 'out', 'winuwp_debug_unopt'), - cache: cache, - fileSystem: fileSystem, - platform: FakePlatform(operatingSystem: 'windows'), - processManager: FakeProcessManager.any(), - operatingSystemUtils: FakeOperatingSystemUtils(), - ); - - expect(artifacts.getArtifactPath(Artifact.windowsUwpDesktopPath), '/out/winuwp_debug_unopt'); - }); - testWithoutContext('Looks up dart on linux platforms', () async { expect(artifacts.getHostArtifact(HostArtifact.engineDartBinary).path, isNot(contains('.exe'))); }); diff --git a/packages/flutter_tools/test/general.shard/asset_bundle_test.dart b/packages/flutter_tools/test/general.shard/asset_bundle_test.dart index 5400ddddade71..238f12c12d8a0 100644 --- a/packages/flutter_tools/test/general.shard/asset_bundle_test.dart +++ b/packages/flutter_tools/test/general.shard/asset_bundle_test.dart @@ -521,7 +521,7 @@ flutter: Platform: () => FakePlatform(), }); - testUsingContext('does not include material design assets if uses-material-design: true is ' + testUsingContext('does not include Material Design assets if uses-material-design: true is ' 'specified only by a dependency', () async { globals.fs.file('.packages').writeAsStringSync(r''' example:lib/ diff --git a/packages/flutter_tools/test/general.shard/base/build_test.dart b/packages/flutter_tools/test/general.shard/base/build_test.dart index b5d95d554312f..39161065f8d81 100644 --- a/packages/flutter_tools/test/general.shard/base/build_test.dart +++ b/packages/flutter_tools/test/general.shard/base/build_test.dart @@ -76,7 +76,7 @@ void main() { FakeCommand( command: [ artifacts.getArtifactPath(Artifact.genSnapshot, platform: TargetPlatform.android_x64, mode: BuildMode.release), - '--additional_arg' + '--additional_arg', ], ), ); diff --git a/packages/flutter_tools/test/general.shard/build_info_test.dart b/packages/flutter_tools/test/general.shard/build_info_test.dart index 5ad63db9044c2..53a4e2578b581 100644 --- a/packages/flutter_tools/test/general.shard/build_info_test.dart +++ b/packages/flutter_tools/test/general.shard/build_info_test.dart @@ -210,7 +210,7 @@ void main() { '-Pbundle-sksl-path=foo/bar/baz.sksl.json', '-Pcode-size-directory=foo/code-size', '-Pfoo=bar', - '-Pfizz=bazz' + '-Pfizz=bazz', ]); }); @@ -224,19 +224,19 @@ void main() { testWithoutContext('decodeDartDefines decodes base64 encoded dart defines', () { expect(decodeDartDefines({ - kDartDefines: 'ImhlbGxvIg==' + kDartDefines: 'ImhlbGxvIg==', }, kDartDefines), ['"hello"']); expect(decodeDartDefines({ - kDartDefines: 'aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbQ==' + kDartDefines: 'aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbQ==', }, kDartDefines), ['https://www.google.com']); expect(decodeDartDefines({ - kDartDefines: 'MiwzLDQ=,NQ==' + kDartDefines: 'MiwzLDQ=,NQ==', }, kDartDefines), ['2,3,4', '5']); expect(decodeDartDefines({ - kDartDefines: 'dHJ1ZQ==,ZmFsc2U=,Zmxhc2U=' + kDartDefines: 'dHJ1ZQ==,ZmFsc2U=,Zmxhc2U=', }, kDartDefines), ['true', 'false', 'flase']); expect(decodeDartDefines({ - kDartDefines: 'MTIzMiw0NTY=,Mg==' + kDartDefines: 'MTIzMiw0NTY=,Mg==', }, kDartDefines), ['1232,456', '2']); }); } diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/android_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/android_test.dart index 574949724e3d4..d5b873280653e 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/android_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/android_test.dart @@ -78,7 +78,7 @@ void main() { kBuildMode: 'debug', }, inputs: { - kBundleSkSLPath: 'bundle.sksl' + kBundleSkSLPath: 'bundle.sksl', }, processManager: processManager, artifacts: artifacts, @@ -93,8 +93,8 @@ void main() { 'platform': 'android', 'data': { 'A': 'B', - } - } + }, + }, )); // create pre-requisites. @@ -265,7 +265,7 @@ void main() { '--snapshot_kind=app-aot-elf', '--elf=${environment.buildDir.childDirectory('arm64-v8a').childFile('app.so').path}', '--strip', - environment.buildDir.childFile('app.dill').path + environment.buildDir.childFile('app.dill').path, ], )); environment.buildDir.createSync(recursive: true); @@ -303,7 +303,7 @@ void main() { 'bar', '--snapshot_kind=app-aot-elf', '--elf=${environment.buildDir.childDirectory('arm64-v8a').childFile('app.so').path}', - environment.buildDir.childFile('app.dill').path + environment.buildDir.childFile('app.dill').path, ], )); environment.buildDir.createSync(recursive: true); diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/assets_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/assets_test.dart index 4d5f6a266de78..ed20556a8cbd4 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/assets_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/assets_test.dart @@ -181,8 +181,8 @@ flutter: final BufferLogger logger = BufferLogger.test(); fileSystem.file('bundle.sksl').writeAsStringSync(json.encode( { - 'engineRevision': '1' - } + 'engineRevision': '1', + }, )); expect(() => processSkSLBundle( @@ -204,7 +204,7 @@ flutter: { 'engineRevision': '2', 'platform': 'fuchsia-arm64', - 'data': {} + 'data': {}, } )); @@ -228,8 +228,8 @@ flutter: { 'engineRevision': '2', 'platform': 'android', - 'data': {} - } + 'data': {}, + }, )); final DevFSContent content = processSkSLBundle( diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/common_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/common_test.dart index 257f1f70f1213..a4c34293b6a21 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/common_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/common_test.dart @@ -369,7 +369,7 @@ void main() { '--no-sim-use-hardfp', '--no-use-integer-division', '$build/app.dill', - ]) + ]), ]); androidEnvironment.buildDir.childFile('app.dill').createSync(recursive: true); @@ -397,7 +397,7 @@ void main() { '--no-sim-use-hardfp', '--no-use-integer-division', '$build/app.dill', - ]) + ]), ]); androidEnvironment.buildDir.childFile('app.dill').createSync(recursive: true); diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/dart_plugin_registrant_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/dart_plugin_registrant_test.dart index 6b97b1ed411b5..9ede15b792084 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/dart_plugin_registrant_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/dart_plugin_registrant_test.dart @@ -131,7 +131,6 @@ void main() { 'linux-x64': false, 'linux-arm64': false, 'windows-x64': false, - 'windows-uwp-x64': false, 'web-javascript': true, 'ios': false, 'android': false, diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/ios_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/ios_test.dart index 38bdb0501736e..2603e69425a5b 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/ios_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/ios_test.dart @@ -186,8 +186,8 @@ void main() { 'platform': 'ios', 'data': { 'A': 'B', - } - } + }, + }, )); final Directory frameworkDirectory = environment.outputDir.childDirectory('App.framework'); diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/linux_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/linux_test.dart index 4f29ea1a74740..963c217e9c03a 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/linux_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/linux_test.dart @@ -123,8 +123,8 @@ void main() { 'platform': 'ios', 'data': { 'A': 'B', - } - } + }, + }, )); await const DebugBundleLinuxAssets(TargetPlatform.linux_x64).build(testEnvironment); diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/macos_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/macos_test.dart index ff8463760a4cf..6922195b9c9f6 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/macos_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/macos_test.dart @@ -229,8 +229,8 @@ void main() { 'platform': 'ios', 'data': { 'A': 'B', - } - } + }, + }, )); final String inputKernel = '${environment.buildDir.path}/app.dill'; @@ -389,7 +389,7 @@ void main() { '--snapshot_kind=app-aot-assembly', '--assembly=${environment.buildDir.childFile('arm64/snapshot_assembly.S').path}', '--strip', - environment.buildDir.childFile('app.dill').path + environment.buildDir.childFile('app.dill').path, ]), FakeCommand(command: [ 'Artifact.genSnapshot.TargetPlatform.darwin.release_x64', @@ -397,17 +397,17 @@ void main() { '--snapshot_kind=app-aot-assembly', '--assembly=${environment.buildDir.childFile('x86_64/snapshot_assembly.S').path}', '--strip', - environment.buildDir.childFile('app.dill').path + environment.buildDir.childFile('app.dill').path, ]), FakeCommand(command: [ 'xcrun', 'cc', '-arch', 'arm64', '-c', environment.buildDir.childFile('arm64/snapshot_assembly.S').path, - '-o', environment.buildDir.childFile('arm64/snapshot_assembly.o').path + '-o', environment.buildDir.childFile('arm64/snapshot_assembly.o').path, ]), FakeCommand(command: [ 'xcrun', 'cc', '-arch', 'x86_64', '-c', environment.buildDir.childFile('x86_64/snapshot_assembly.S').path, - '-o', environment.buildDir.childFile('x86_64/snapshot_assembly.o').path + '-o', environment.buildDir.childFile('x86_64/snapshot_assembly.o').path, ]), FakeCommand(command: [ 'xcrun', 'clang', '-arch', 'arm64', '-dynamiclib', '-Xlinker', '-rpath', @@ -415,7 +415,7 @@ void main() { '-Xlinker', '@loader_path/Frameworks', '-install_name', '@rpath/App.framework/App', '-o', environment.buildDir.childFile('arm64/App.framework/App').path, - environment.buildDir.childFile('arm64/snapshot_assembly.o').path + environment.buildDir.childFile('arm64/snapshot_assembly.o').path, ]), FakeCommand(command: [ 'xcrun', 'clang', '-arch', 'x86_64', '-dynamiclib', '-Xlinker', '-rpath', @@ -423,7 +423,7 @@ void main() { '-Xlinker', '@loader_path/Frameworks', '-install_name', '@rpath/App.framework/App', '-o', environment.buildDir.childFile('x86_64/App.framework/App').path, - environment.buildDir.childFile('x86_64/snapshot_assembly.o').path + environment.buildDir.childFile('x86_64/snapshot_assembly.o').path, ]), FakeCommand(command: [ 'lipo', diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart index 978901882a096..e3f09feb55194 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/windows_test.dart @@ -125,107 +125,6 @@ void main() { ])); }); - testWithoutContext('UnpackWindowsUwp copies files to the correct winuwp/ cache directory', () async { - final Artifacts artifacts = Artifacts.test(); - final FileSystem fileSystem = MemoryFileSystem.test(style: FileSystemStyle.windows); - final Environment environment = Environment.test( - fileSystem.currentDirectory, - artifacts: artifacts, - processManager: FakeProcessManager.any(), - fileSystem: fileSystem, - logger: BufferLogger.test(), - defines: { - kBuildMode: 'debug', - }, - ); - final DepfileService depfileService = DepfileService( - logger: BufferLogger.test(), - fileSystem: fileSystem, - ); - environment.buildDir.createSync(recursive: true); - - final String windowsDesktopPath = artifacts.getArtifactPath(Artifact.windowsUwpDesktopPath, platform: TargetPlatform.windows_x64, mode: BuildMode.debug); - final String windowsCppClientWrapper = artifacts.getArtifactPath(Artifact.windowsUwpCppClientWrapper, platform: TargetPlatform.windows_x64, mode: BuildMode.debug); - final String icuData = artifacts.getArtifactPath(Artifact.icuData, platform: TargetPlatform.windows_x64); - final List requiredFiles = [ - '$windowsDesktopPath\\flutter_export.h', - '$windowsDesktopPath\\flutter_messenger.h', - '$windowsDesktopPath\\flutter_windows_winuwp.dll', - '$windowsDesktopPath\\flutter_windows_winuwp.dll.exp', - '$windowsDesktopPath\\flutter_windows_winuwp.dll.lib', - '$windowsDesktopPath\\flutter_windows_winuwp.dll.pdb', - '$windowsDesktopPath\\flutter_plugin_registrar.h', - '$windowsDesktopPath\\flutter_texture_registrar.h', - '$windowsDesktopPath\\flutter_windows.h', - icuData, - '$windowsCppClientWrapper\\foo', - r'C:\packages\flutter_tools\lib\src\build_system\targets\windows.dart', - ]; - - for (final String path in requiredFiles) { - fileSystem.file(path).createSync(recursive: true); - } - fileSystem.directory('windows').createSync(); - - await const UnpackWindowsUwp().build(environment); - - // Output files are copied correctly. - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_export.h'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_messenger.h'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_windows_winuwp.dll'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_windows_winuwp.dll.exp'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_windows_winuwp.dll.lib'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_windows_winuwp.dll.pdb'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_export.h'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_messenger.h'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_plugin_registrar.h'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_texture_registrar.h'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\ephemeral\flutter_windows.h'), exists); - expect(fileSystem.file(r'C:\winuwp\flutter\flutter_windows.h'), exists); - expect(fileSystem.file('C:\\winuwp\\flutter\\ephemeral\\$icuData'), exists); - expect(fileSystem.file('C:\\winuwp\\flutter\\ephemeral\\$windowsCppClientWrapper\\foo'), exists); - - final File outputDepfile = environment.buildDir - .childFile('windows_uwp_engine_sources.d'); - - // Depfile is created correctly. - expect(outputDepfile, exists); - - final List inputPaths = depfileService.parse(outputDepfile) - .inputs.map((File file) => file.path).toList(); - final List outputPaths = depfileService.parse(outputDepfile) - .outputs.map((File file) => file.path).toList(); - - // Depfile has expected sources. - expect(inputPaths, unorderedEquals([ - '$windowsDesktopPath\\flutter_export.h', - '$windowsDesktopPath\\flutter_messenger.h', - '$windowsDesktopPath\\flutter_windows_winuwp.dll', - '$windowsDesktopPath\\flutter_windows_winuwp.dll.exp', - '$windowsDesktopPath\\flutter_windows_winuwp.dll.lib', - '$windowsDesktopPath\\flutter_windows_winuwp.dll.pdb', - '$windowsDesktopPath\\flutter_plugin_registrar.h', - '$windowsDesktopPath\\flutter_texture_registrar.h', - '$windowsDesktopPath\\flutter_windows.h', - icuData, - '$windowsCppClientWrapper\\foo', - ])); - expect(outputPaths, unorderedEquals([ - r'C:\winuwp\flutter\ephemeral\flutter_export.h', - r'C:\winuwp\flutter\ephemeral\flutter_messenger.h', - r'C:\winuwp\flutter\ephemeral\flutter_windows_winuwp.dll', - r'C:\winuwp\flutter\ephemeral\flutter_windows_winuwp.dll.exp', - r'C:\winuwp\flutter\ephemeral\flutter_windows_winuwp.dll.lib', - r'C:\winuwp\flutter\ephemeral\flutter_windows_winuwp.dll.pdb', - r'C:\winuwp\flutter\ephemeral\flutter_plugin_registrar.h', - r'C:\winuwp\flutter\ephemeral\flutter_texture_registrar.h', - r'C:\winuwp\flutter\ephemeral\flutter_windows.h', - r'C:\winuwp\flutter\flutter_windows.h', - 'C:\\winuwp\\flutter\\ephemeral\\$icuData', - 'C:\\winuwp\\flutter\\ephemeral\\$windowsCppClientWrapper\\foo', - ])); - }); - // AssetBundleFactory still uses context injection FileSystem fileSystem; @@ -257,8 +156,8 @@ void main() { 'platform': 'ios', 'data': { 'A': 'B', - } - } + }, + }, )); await const DebugBundleWindowsAssets().build(environment); @@ -288,7 +187,7 @@ void main() { environment.buildDir.childFile('app.so').createSync(recursive: true); - await const WindowsAotBundle(AotElfProfile(TargetPlatform.windows_x64), uwp: false).build(environment); + await const WindowsAotBundle(AotElfProfile(TargetPlatform.windows_x64)).build(environment); await const ProfileBundleWindowsAssets().build(environment); // Depfile is created and so is copied. @@ -301,60 +200,6 @@ void main() { ProcessManager: () => FakeProcessManager.any(), }); - testUsingContext('ReleaseBundleWindowsAssets creates correct bundle structure with UWP', () async { - final Environment environment = Environment.test( - fileSystem.currentDirectory, - artifacts: Artifacts.test(), - processManager: FakeProcessManager.any(), - fileSystem: fileSystem, - logger: BufferLogger.test(), - defines: { - kBuildMode: 'release', - } - ); - - environment.buildDir.childFile('app.so').createSync(recursive: true); - - await const WindowsAotBundle(AotElfRelease(TargetPlatform.windows_x64), uwp: true).build(environment); - await const ReleaseBundleWindowsAssets().build(environment); - - // Depfile is created and so is copied. - expect(environment.buildDir.childFile('flutter_assets.d'), exists); - expect(fileSystem.file(r'C:\winuwp\app.so'), exists); - expect(fileSystem.file(r'C:\flutter_assets\kernel_blob.bin').existsSync(), false); - expect(fileSystem.file(r'C:\flutter_assets\AssetManifest.json'), exists); - }, overrides: { - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - }); - - testUsingContext('ProfileBundleWindowsAssets creates correct bundle structure with UWP', () async { - final Environment environment = Environment.test( - fileSystem.currentDirectory, - artifacts: Artifacts.test(), - processManager: FakeProcessManager.any(), - fileSystem: fileSystem, - logger: BufferLogger.test(), - defines: { - kBuildMode: 'profile', - } - ); - - environment.buildDir.childFile('app.so').createSync(recursive: true); - - await const WindowsAotBundle(AotElfProfile(TargetPlatform.windows_x64), uwp: true).build(environment); - await const ProfileBundleWindowsAssets().build(environment); - - // Depfile is created and so is copied. - expect(environment.buildDir.childFile('flutter_assets.d'), exists); - expect(fileSystem.file(r'C:\winuwp\app.so'), exists); - expect(fileSystem.file(r'C:\flutter_assets\kernel_blob.bin').existsSync(), false); - expect(fileSystem.file(r'C:\flutter_assets\AssetManifest.json'), exists); - }, overrides: { - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - }); - testUsingContext('ReleaseBundleWindowsAssets creates correct bundle structure', () async { final Environment environment = Environment.test( fileSystem.currentDirectory, @@ -369,7 +214,7 @@ void main() { environment.buildDir.childFile('app.so').createSync(recursive: true); - await const WindowsAotBundle(AotElfRelease(TargetPlatform.windows_x64), uwp: false).build(environment); + await const WindowsAotBundle(AotElfRelease(TargetPlatform.windows_x64)).build(environment); await const ReleaseBundleWindowsAssets().build(environment); // Depfile is created and so is copied. diff --git a/packages/flutter_tools/test/general.shard/cache_test.dart b/packages/flutter_tools/test/general.shard/cache_test.dart index 283c498563c64..9de6f614c203b 100644 --- a/packages/flutter_tools/test/general.shard/cache_test.dart +++ b/packages/flutter_tools/test/general.shard/cache_test.dart @@ -499,7 +499,7 @@ void main() { const FakeCommand( command: [ 'which', - 'sysctl' + 'sysctl', ], stdout: '/sbin/sysctl', ), @@ -604,20 +604,6 @@ void main() { ])); }); - testWithoutContext('Windows UWP desktop artifacts include profile, debug, and release artifacts', () { - final Cache cache = Cache.test(processManager: FakeProcessManager.any()); - final WindowsUwpEngineArtifacts artifacts = WindowsUwpEngineArtifacts( - cache, - platform: FakePlatform(operatingSystem: 'windows'), - ); - - expect(artifacts.getBinaryDirs(), containsAll([ - contains(contains('profile')), - contains(contains('release')), - contains(contains('debug')), - ])); - }); - testWithoutContext('Linux desktop artifacts ignore filtering when requested', () { fakeProcessManager.addCommand(unameCommandForX64); @@ -812,7 +798,7 @@ void main() { fileSystem: fileSystem, platform: FakePlatform( environment: { - 'FLUTTER_STORAGE_BASE_URL': 'https://flutter.storage.com/override' + 'FLUTTER_STORAGE_BASE_URL': 'https://flutter.storage.com/override', }, ), ); @@ -834,7 +820,7 @@ void main() { expect(downloads, [ 'https://flutter.storage.com/override/flutter_infra_release/flutter/hijklmnop/flutter-web-sdk-linux-x64.zip', - 'https://flutter.storage.com/override/flutter_infra_release/cipd/flutter/web/canvaskit_bundle/+/abcdefg' + 'https://flutter.storage.com/override/flutter_infra_release/cipd/flutter/web/canvaskit_bundle/+/abcdefg', ]); }); @@ -1020,9 +1006,9 @@ void main() { '--project-cache-dir', 'cache/bin/cache/flutter_gradle_wrapper.rand0', 'resolveDependencies', - ]) + ]), ]), - AndroidSdk: () => fakeAndroidSdk + AndroidSdk: () => fakeAndroidSdk, }); testUsingContext('AndroidMavenArtifacts is a no-op if the Android SDK is absent', () async { @@ -1036,7 +1022,7 @@ void main() { Cache: () => cache, FileSystem: () => memoryFileSystem, ProcessManager: () => FakeProcessManager.empty(), - AndroidSdk: () => null // Android SDK was not located. + AndroidSdk: () => null, // Android SDK was not located. }); }); } diff --git a/packages/flutter_tools/test/general.shard/commands/flutter_root_test.dart b/packages/flutter_tools/test/general.shard/commands/flutter_root_test.dart index 5a44537f3eded..0a5aa8c1fd80d 100644 --- a/packages/flutter_tools/test/general.shard/commands/flutter_root_test.dart +++ b/packages/flutter_tools/test/general.shard/commands/flutter_root_test.dart @@ -13,13 +13,13 @@ import '../../src/common.dart'; void main() { testWithoutContext('Cache can initialize flutter root from environment variable', () { final String defaultFlutterRoot = Cache.defaultFlutterRoot( - fileSystem: MemoryFileSystem.test(), - userMessages: UserMessages(), - platform: FakePlatform( - environment: { - 'FLUTTER_ROOT': 'path/to/flutter' - } - ) + fileSystem: MemoryFileSystem.test(), + userMessages: UserMessages(), + platform: FakePlatform( + environment: { + 'FLUTTER_ROOT': 'path/to/flutter', + }, + ), ); expect(defaultFlutterRoot, '/path/to/flutter'); diff --git a/packages/flutter_tools/test/general.shard/compile_batch_test.dart b/packages/flutter_tools/test/general.shard/compile_batch_test.dart index cb2700305742f..3c9d3f4b07747 100644 --- a/packages/flutter_tools/test/general.shard/compile_batch_test.dart +++ b/packages/flutter_tools/test/general.shard/compile_batch_test.dart @@ -66,7 +66,7 @@ void main() { '--no-link-platform', '--packages', '.packages', - 'file:///path/to/main.dart' + 'file:///path/to/main.dart', ], completer: completer), ]), stdoutHandler: stdoutHandler, @@ -111,7 +111,7 @@ void main() { '--no-link-platform', '--packages', '.packages', - 'file:///path/to/main.dart' + 'file:///path/to/main.dart', ], completer: completer), ]), stdoutHandler: stdoutHandler, @@ -156,7 +156,7 @@ void main() { '--no-link-platform', '--packages', '.packages', - 'file:///path/to/main.dart' + 'file:///path/to/main.dart', ], completer: completer, exitCode: 127), ]), stdoutHandler: stdoutHandler, @@ -202,7 +202,7 @@ void main() { '--tfa', '--packages', '.packages', - 'file:///path/to/main.dart' + 'file:///path/to/main.dart', ], completer: completer), ]), stdoutHandler: stdoutHandler, @@ -249,7 +249,7 @@ void main() { '--tfa', '--packages', '.packages', - 'file:///path/to/main.dart' + 'file:///path/to/main.dart', ], completer: completer), ]), stdoutHandler: stdoutHandler, diff --git a/packages/flutter_tools/test/general.shard/compile_expression_test.dart b/packages/flutter_tools/test/general.shard/compile_expression_test.dart index 981989eb1f5b0..c91e04380906b 100644 --- a/packages/flutter_tools/test/general.shard/compile_expression_test.dart +++ b/packages/flutter_tools/test/general.shard/compile_expression_test.dart @@ -68,7 +68,9 @@ void main() { processManager.process.stdout = Stream>.fromFutures( >>[ compileResponseCompleter.future, - compileExpressionResponseCompleter.future]); + compileExpressionResponseCompleter.future, + ], + ); compileResponseCompleter.complete(Future>.value(utf8.encode( 'result abc\nline1\nline2\nabc\nabc /path/to/main.dart.dill 0\n' ))); diff --git a/packages/flutter_tools/test/general.shard/coverage_collector_test.dart b/packages/flutter_tools/test/general.shard/coverage_collector_test.dart index 488ba6c8fd0bf..df502786f6fdc 100644 --- a/packages/flutter_tools/test/general.shard/coverage_collector_test.dart +++ b/packages/flutter_tools/test/general.shard/coverage_collector_test.dart @@ -23,7 +23,7 @@ void main() { jsonResponse: (VM.parse({}) ..isolates = [ IsolateRef.parse({ - 'id': '1' + 'id': '1', }), ] ).toJson(), @@ -34,9 +34,9 @@ void main() { 'isolateId': '1', }, jsonResponse: { - 'type': 'Sentinel' - } - ) + 'type': 'Sentinel', + }, + ), ], ); @@ -64,7 +64,7 @@ void main() { jsonResponse: (VM.parse({}) ..isolates = [ IsolateRef.parse({ - 'id': '1' + 'id': '1', }), ] ).toJson(), @@ -131,19 +131,22 @@ void main() { }, ); - expect(result, {'type': 'CodeCoverage', 'coverage': [ - { - 'source': 'foo.dart', - 'script': { - 'type': '@Script', - 'fixedId': true, - 'id': 'libraries/1/scripts/foo.dart', - 'uri': 'foo.dart', - '_kind': 'library', + expect(result, { + 'type': 'CodeCoverage', + 'coverage': [ + { + 'source': 'foo.dart', + 'script': { + 'type': '@Script', + 'fixedId': true, + 'id': 'libraries/1/scripts/foo.dart', + 'uri': 'foo.dart', + '_kind': 'library', + }, + 'hits': [], }, - 'hits': [], - }, - ]}); + ], + }); expect(fakeVmServiceHost.hasRemainingExpectations, false); }); @@ -159,7 +162,7 @@ void main() { jsonResponse: (VM.parse({}) ..isolates = [ IsolateRef.parse({ - 'id': '1' + 'id': '1', }), ] ).toJson(), @@ -214,19 +217,22 @@ void main() { }, ); - expect(result, {'type': 'CodeCoverage', 'coverage': [ - { - 'source': 'foo.dart', - 'script': { - 'type': '@Script', - 'fixedId': true, - 'id': 'libraries/1/scripts/foo.dart', - 'uri': 'foo.dart', - '_kind': 'library', + expect(result, { + 'type': 'CodeCoverage', + 'coverage': [ + { + 'source': 'foo.dart', + 'script': { + 'type': '@Script', + 'fixedId': true, + 'id': 'libraries/1/scripts/foo.dart', + 'uri': 'foo.dart', + '_kind': 'library', + }, + 'hits': [1, 1, 3, 1, 2, 0], }, - 'hits': [1, 1, 3, 1, 2, 0], - }, - ]}); + ], + }); expect(fakeVmServiceHost.hasRemainingExpectations, false); }); } diff --git a/packages/flutter_tools/test/general.shard/custom_devices/custom_device_test.dart b/packages/flutter_tools/test/general.shard/custom_devices/custom_device_test.dart index 53c32cba22f8f..34e550abb59b7 100644 --- a/packages/flutter_tools/test/general.shard/custom_devices/custom_device_test.dart +++ b/packages/flutter_tools/test/general.shard/custom_devices/custom_device_test.dart @@ -36,7 +36,7 @@ void _writeCustomDevicesConfigFile(Directory dir, List confi final File file = dir.childFile('.flutter_custom_devices.json'); file.writeAsStringSync(jsonEncode( { - 'custom-devices': configs.map((CustomDeviceConfig c) => c.toJson()).toList() + 'custom-devices': configs.map((CustomDeviceConfig c) => c.toJson()).toList(), } )); } @@ -56,11 +56,11 @@ void main() { ['scp', r'${localPath}', r'/tmp/${appName}', 'pi@raspberrypi'], { 'localPath': 'build/flutter_assets', - 'appName': 'hello_world' - } + 'appName': 'hello_world', + }, ), [ - 'scp', 'build/flutter_assets', '/tmp/hello_world', 'pi@raspberrypi' + 'scp', 'build/flutter_assets', '/tmp/hello_world', 'pi@raspberrypi', ] ); @@ -69,11 +69,11 @@ void main() { [r'${test1}', r' ${test2}', r'${test3}'], { 'test1': '_test1', - 'test2': '_test2' - } + 'test2': '_test2', + }, ), [ - '_test1', ' _test2', r'' + '_test1', ' _test2', r'', ] ); @@ -82,15 +82,15 @@ void main() { [r'${test1}', r' ${test2}', r'${test3}'], { 'test1': '_test1', - 'test2': '_test2' + 'test2': '_test2', }, additionalReplacementValues: { 'test2': '_nottest2', - 'test3': '_test3' + 'test3': '_test3', } ), [ - '_test1', ' _test2', r'_test3' + '_test1', ' _test2', r'_test3', ] ); }); @@ -108,7 +108,7 @@ void main() { runDebugCommand: const ['testrundebug'], forwardPortCommand: const ['testforwardport'], forwardPortSuccessRegex: RegExp('testforwardportsuccess'), - screenshotCommand: const ['testscreenshot'] + screenshotCommand: const ['testscreenshot'], ); const String testConfigPingSuccessOutput = 'testpingsuccess\n'; @@ -150,7 +150,7 @@ void main() { }, overrides: { FileSystem: () => MemoryFileSystem.test(), - ProcessManager: () => FakeProcessManager.any() + ProcessManager: () => FakeProcessManager.any(), } ); @@ -321,7 +321,7 @@ void main() { logger: BufferLogger.test(), processManager: FakeProcessManager.list([ FakeCommand(command: testConfig.uninstallCommand), - FakeCommand(command: testConfig.installCommand, onRun: () => bothCommandsWereExecuted = true) + FakeCommand(command: testConfig.installCommand, onRun: () => bothCommandsWereExecuted = true), ]) ); @@ -330,7 +330,7 @@ void main() { }, overrides: { FileSystem: () => MemoryFileSystem.test(), - ProcessManager: () => FakeProcessManager.any() + ProcessManager: () => FakeProcessManager.any(), } ); @@ -346,8 +346,8 @@ void main() { FakeCommand( command: testConfig.forwardPortCommand, stdout: testConfigForwardPortSuccessOutput, - completer: forwardPortCommandCompleter - ) + completer: forwardPortCommandCompleter, + ), ]) ); @@ -376,7 +376,7 @@ void main() { command: testConfig.forwardPortCommand, completer: forwardPortCompleter, stdout: testConfigForwardPortSuccessOutput, - ) + ), ]); final CustomDeviceAppSession appSession = CustomDeviceAppSession( @@ -461,8 +461,8 @@ void main() { FakeCommand( command: testConfig.forwardPortCommand, completer: forwardPortCompleter, - stdout: testConfigForwardPortSuccessOutput - ) + stdout: testConfigForwardPortSuccessOutput, + ), ] ); @@ -515,7 +515,7 @@ void main() { }, overrides: { FileSystem: () => MemoryFileSystem.test(), - ProcessManager: () => FakeProcessManager.any() + ProcessManager: () => FakeProcessManager.any(), } ); @@ -526,7 +526,7 @@ void main() { FakeCommand( command: testConfig.screenshotCommand, onRun: () => screenshotCommandWasExecuted = true, - ) + ), ]); final MemoryFileSystem fs = MemoryFileSystem.test(); @@ -552,7 +552,7 @@ void main() { FakeCommand( command: testConfig.screenshotCommand, onRun: () => screenshotCommandWasExecuted = true, - ) + ), ]); final MemoryFileSystem fs = MemoryFileSystem.test(); diff --git a/packages/flutter_tools/test/general.shard/custom_devices/custom_devices_config_test.dart b/packages/flutter_tools/test/general.shard/custom_devices/custom_devices_config_test.dart index 38eefe97c53d0..bc7fbc03c66b5 100644 --- a/packages/flutter_tools/test/general.shard/custom_devices/custom_devices_config_test.dart +++ b/packages/flutter_tools/test/general.shard/custom_devices/custom_devices_config_test.dart @@ -44,7 +44,7 @@ void main() { writeCustomDevicesConfigFile( directory, json: { - 'test': 'testvalue' + 'test': 'testvalue', } ); @@ -78,7 +78,7 @@ void main() { writeCustomDevicesConfigFile( directory, json: [ - testConfigJson + testConfigJson, ], ); @@ -105,7 +105,7 @@ void main() { copyJsonObjectWith( testConfigJson, { - 'id': null + 'id': null, }, ), ], @@ -114,7 +114,7 @@ void main() { final CustomDevicesConfig customDevicesConfig = CustomDevicesConfig.test( fileSystem: fileSystem, directory: directory, - logger: logger + logger: logger, ); const String msg = 'Could not load custom device from config index 0: Expected id to be a string.'; @@ -133,7 +133,7 @@ void main() { copyJsonObjectWith( testConfigJson, { - 'id': 1 + 'id': 1, }, ), ], @@ -142,7 +142,7 @@ void main() { final CustomDevicesConfig customDevicesConfig = CustomDevicesConfig.test( fileSystem: fileSystem, directory: directory, - logger: logger + logger: logger, ); const String msg = 'Could not load custom device from config index 0: Expected id to be a string.'; @@ -161,7 +161,7 @@ void main() { copyJsonObjectWith( testConfigJson, { - 'label': 1 + 'label': 1, }, ), ], @@ -170,7 +170,7 @@ void main() { final CustomDevicesConfig customDevicesConfig = CustomDevicesConfig.test( fileSystem: fileSystem, directory: directory, - logger: logger + logger: logger, ); const String msg = 'Could not load custom device from config index 0: Expected label to be a string.'; @@ -189,7 +189,7 @@ void main() { copyJsonObjectWith( testConfigJson, { - 'postBuild': null + 'postBuild': null, }, ), ], @@ -216,7 +216,7 @@ void main() { testConfigJson, { 'forwardPort': null, - 'forwardPortSuccessRegex': null + 'forwardPortSuccessRegex': null, }, ), ], @@ -245,7 +245,7 @@ void main() { copyJsonObjectWith( testConfigJson, { - 'forwardPortSuccessRegex': null + 'forwardPortSuccessRegex': null, }, ), ], diff --git a/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart b/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart index 2876f8cf4ce1c..9770183e3c1e9 100644 --- a/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart +++ b/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart @@ -55,7 +55,7 @@ void main() { '--verbosity=warning', 'get', '--no-precompile', - ]) + ]), ]); final BufferLogger logger = BufferLogger.test(); final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -102,7 +102,7 @@ void main() { '--verbosity=warning', 'get', '--no-precompile', - ]) + ]), ]); final BufferLogger logger = BufferLogger.test(); final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -149,7 +149,7 @@ void main() { '--verbosity=warning', 'get', '--no-precompile', - ]) + ]), ]); final BufferLogger logger = BufferLogger.test(); final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -259,7 +259,7 @@ void main() { '--verbosity=warning', 'get', '--no-precompile', - ]) + ]), ]); final BufferLogger logger = BufferLogger.test(); final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -297,7 +297,7 @@ void main() { '--verbosity=warning', 'get', '--no-precompile', - ]) + ]), ]); final BufferLogger logger = BufferLogger.test(); final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -336,7 +336,7 @@ void main() { '--no-precompile', ], onRun: () { fileSystem.file('.dart_tool/package_config.json').createSync(recursive: true); - }) + }), ]); final BufferLogger logger = BufferLogger.test(); @@ -406,7 +406,7 @@ void main() { '--verbosity=warning', 'get', '--no-precompile', - ]) + ]), ]); final BufferLogger logger = BufferLogger.test(); final MemoryFileSystem fileSystem = MemoryFileSystem.test(); @@ -444,7 +444,7 @@ void main() { '--verbosity=warning', 'get', '--no-precompile', - ]) + ]), ]); final BufferLogger logger = BufferLogger.test(); final MemoryFileSystem fileSystem = MemoryFileSystem.test(); diff --git a/packages/flutter_tools/test/general.shard/dart_plugin_test.dart b/packages/flutter_tools/test/general.shard/dart_plugin_test.dart index 5cbea5fc0b927..74c1de28bf921 100644 --- a/packages/flutter_tools/test/general.shard/dart_plugin_test.dart +++ b/packages/flutter_tools/test/general.shard/dart_plugin_test.dart @@ -669,7 +669,7 @@ void main() { platforms: macos: dartPluginClass: AwesomeMacOS -''' +''', }); final Directory libDir = flutterProject.directory.childDirectory('lib'); @@ -803,7 +803,7 @@ void main() { platforms: macos: invalid: -''' +''', }); final Directory libDir = flutterProject.directory.childDirectory('lib'); @@ -844,7 +844,7 @@ void main() { flutter: plugin: implements: url_launcher -''' +''', }); final Directory libDir = flutterProject.directory.childDirectory('lib'); @@ -944,7 +944,7 @@ void main() { platforms: macos: dartPluginClass: MacOSPlugin -''' +''', }); final Directory libDir = flutterProject.directory.childDirectory('lib'); @@ -1054,7 +1054,4 @@ class FakeFlutterProject extends Fake implements FlutterProject { @override WindowsProject windows; - - @override - WindowsUwpProject windowsUwp; } diff --git a/packages/flutter_tools/test/general.shard/desktop_device_test.dart b/packages/flutter_tools/test/general.shard/desktop_device_test.dart index 764049493e107..bd19c1b8956af 100644 --- a/packages/flutter_tools/test/general.shard/desktop_device_test.dart +++ b/packages/flutter_tools/test/general.shard/desktop_device_test.dart @@ -162,7 +162,7 @@ void main() { 'FLUTTER_ENGINE_SWITCH_17': 'dart-flags=--null_assertions', 'FLUTTER_ENGINE_SWITCH_18': 'use-test-fonts=true', 'FLUTTER_ENGINE_SWITCH_19': 'verbose-logging=true', - 'FLUTTER_ENGINE_SWITCHES': '19' + 'FLUTTER_ENGINE_SWITCHES': '19', } ), ]); @@ -209,7 +209,7 @@ void main() { 'FLUTTER_ENGINE_SWITCH_2': 'trace-startup=true', 'FLUTTER_ENGINE_SWITCH_3': 'trace-allowlist=foo,bar', 'FLUTTER_ENGINE_SWITCH_4': 'cache-sksl=true', - 'FLUTTER_ENGINE_SWITCHES': '4' + 'FLUTTER_ENGINE_SWITCHES': '4', } ), ]); diff --git a/packages/flutter_tools/test/general.shard/devfs_test.dart b/packages/flutter_tools/test/general.shard/devfs_test.dart index 620dd7ee8004e..9d1d2401554d5 100644 --- a/packages/flutter_tools/test/general.shard/devfs_test.dart +++ b/packages/flutter_tools/test/general.shard/devfs_test.dart @@ -212,7 +212,7 @@ void main() { FakeRequest(Uri.parse('http://localhost'), method: HttpMethod.put, responseError: const OSError('Connection Reset by peer')), FakeRequest(Uri.parse('http://localhost'), method: HttpMethod.put, responseError: const OSError('Connection Reset by peer')), // This is the value of `[1, 2, 3, 4, 5]` run through `osUtils.gzipLevel1Stream`. - FakeRequest(Uri.parse('http://localhost'), method: HttpMethod.put, body: [for (List chunk in expectedEncoded) ...chunk]) + FakeRequest(Uri.parse('http://localhost'), method: HttpMethod.put, body: [for (List chunk in expectedEncoded) ...chunk]), ]), uploadRetryThrottle: Duration.zero, ); diff --git a/packages/flutter_tools/test/general.shard/device_test.dart b/packages/flutter_tools/test/general.shard/device_test.dart index 3b498cd09cc3c..a21e3410e0569 100644 --- a/packages/flutter_tools/test/general.shard/device_test.dart +++ b/packages/flutter_tools/test/general.shard/device_test.dart @@ -222,7 +222,7 @@ void main() { final List filtered = await deviceManager.findTargetDevices(FakeFlutterProject()); expect(filtered, [ - nonEphemeralOne + nonEphemeralOne, ]); }); @@ -242,7 +242,7 @@ void main() { final List filtered = await deviceManager.findTargetDevices(FakeFlutterProject()); expect(filtered, [ - nonEphemeralTwo + nonEphemeralTwo, ]); }); @@ -263,7 +263,7 @@ void main() { final List filtered = await deviceManager.findTargetDevices(FakeFlutterProject()); expect(filtered, [ - ephemeralOne + ephemeralOne, ]); }); @@ -283,7 +283,7 @@ void main() { final List filtered = await deviceManager.findTargetDevices(FakeFlutterProject()); expect(filtered, [ - ephemeralTwo + ephemeralTwo, ]); }); @@ -307,7 +307,7 @@ void main() { final List filtered = await deviceManager.findTargetDevices(FakeFlutterProject()); expect(filtered, [ - nonEphemeralOne + nonEphemeralOne, ]); }); @@ -450,7 +450,7 @@ void main() { final DeviceManager deviceManager = TestDeviceManager( [], deviceDiscoveryOverrides: [ - deviceDiscovery + deviceDiscovery, ], logger: BufferLogger.test(), terminal: Terminal.test(), @@ -476,7 +476,7 @@ void main() { final DeviceManager deviceManager = TestDeviceManager( [], deviceDiscoveryOverrides: [ - deviceDiscovery + deviceDiscovery, ], logger: BufferLogger.test(), terminal: Terminal.test(), diff --git a/packages/flutter_tools/test/general.shard/devtools_launcher_test.dart b/packages/flutter_tools/test/general.shard/devtools_launcher_test.dart index 4b835cc0aa6b2..dfdfc3e639011 100644 --- a/packages/flutter_tools/test/general.shard/devtools_launcher_test.dart +++ b/packages/flutter_tools/test/general.shard/devtools_launcher_test.dart @@ -86,7 +86,7 @@ void main() { 'devtools', '--no-launch-browser', '--vm-uri=localhost:8181/abcdefg', - '--profile-memory=foo' + '--profile-memory=foo', ], stdout: 'Serving DevTools at http://127.0.0.1:9100\n', ), @@ -118,7 +118,7 @@ void main() { '--vm-uri=http://127.0.0.1:1234/abcdefg', ], exception: ProcessException('pub', []), - ) + ), ]), ); diff --git a/packages/flutter_tools/test/general.shard/drive/drive_service_test.dart b/packages/flutter_tools/test/general.shard/drive/drive_service_test.dart index 16d453af7c4ba..a10344e5c46d8 100644 --- a/packages/flutter_tools/test/general.shard/drive/drive_service_test.dart +++ b/packages/flutter_tools/test/general.shard/drive/drive_service_test.dart @@ -141,7 +141,7 @@ void main() { exitCode: 23, environment: { 'FOO': 'BAR', - 'VM_SERVICE_URL': 'http://127.0.0.1:1234/' // dds forwarded URI + 'VM_SERVICE_URL': 'http://127.0.0.1:1234/', // dds forwarded URI }, ), ]); @@ -166,7 +166,7 @@ void main() { exitCode: 23, environment: { 'FOO': 'BAR', - 'VM_SERVICE_URL': 'http://127.0.0.1:1234/' // dds forwarded URI + 'VM_SERVICE_URL': 'http://127.0.0.1:1234/', // dds forwarded URI }, ), ]); @@ -196,7 +196,7 @@ void main() { exitCode: 23, environment: { 'FOO': 'BAR', - 'VM_SERVICE_URL': 'http://127.0.0.1:1234/' // dds forwarded URI + 'VM_SERVICE_URL': 'http://127.0.0.1:1234/', // dds forwarded URI }, ), ]); @@ -229,7 +229,7 @@ void main() { exitCode: 23, environment: { 'FOO': 'BAR', - 'VM_SERVICE_URL': 'http://127.0.0.1:1234/' // dds forwarded URI + 'VM_SERVICE_URL': 'http://127.0.0.1:1234/', // dds forwarded URI }, ), ]); @@ -259,7 +259,7 @@ void main() { command: ['dart', 'foo.test', '-rexpanded'], exitCode: 11, environment: { - 'VM_SERVICE_URL': 'http://127.0.0.1:63426/1UasC_ihpXY=/' + 'VM_SERVICE_URL': 'http://127.0.0.1:63426/1UasC_ihpXY=/', }, ), ]); @@ -311,13 +311,13 @@ void main() { const FakeVmServiceRequest( method: '_flutter.getSkSLs', args: { - 'viewId': 'a' + 'viewId': 'a', }, jsonResponse: { 'SkSLs': { 'A': 'B', - } - } + }, + }, ), ]); final FakeProcessManager processManager = FakeProcessManager.empty(); @@ -335,10 +335,10 @@ void main() { 'platform': 'android', 'name': 'test', 'engineRevision': 'abcdefghijklmnopqrstuvwxyz', - 'data': {'A': 'B'} + 'data': {'A': 'B'}, }); }, overrides: { - FlutterVersion: () => FakeFlutterVersion() + FlutterVersion: () => FakeFlutterVersion(), }); testWithoutContext('Can connect to existing application and stop it during cleanup', () async { @@ -349,8 +349,8 @@ void main() { method: 'ext.flutter.exit', args: { 'isolateId': '1', - } - ) + }, + ), ]); final FakeProcessManager processManager = FakeProcessManager.empty(); final DriverService driverService = setUpDriverService(processManager: processManager, vmService: fakeVmServiceHost.vmService); @@ -373,8 +373,8 @@ void main() { method: 'ext.flutter.exit', args: { 'isolateId': '1', - } - ) + }, + ), ]); final FakeProcessManager processManager = FakeProcessManager.empty(); final DriverService driverService = setUpDriverService(processManager: processManager, vmService: fakeVmServiceHost.vmService); @@ -397,8 +397,8 @@ void main() { method: 'ext.flutter.exit', args: { 'isolateId': '1', - } - ) + }, + ), ]); final FakeProcessManager processManager = FakeProcessManager.empty(); final DriverService driverService = setUpDriverService(processManager: processManager, vmService: fakeVmServiceHost.vmService); @@ -421,8 +421,8 @@ void main() { method: 'ext.flutter.exit', args: { 'isolateId': '1', - } - ) + }, + ), ]); final FakeProcessManager processManager = FakeProcessManager.empty(); final DriverService driverService = setUpDriverService(processManager: processManager, vmService: fakeVmServiceHost.vmService); diff --git a/packages/flutter_tools/test/general.shard/drive/web_driver_service_test.dart b/packages/flutter_tools/test/general.shard/drive/web_driver_service_test.dart index af6adb2359dbe..dad555c138214 100644 --- a/packages/flutter_tools/test/general.shard/drive/web_driver_service_test.dart +++ b/packages/flutter_tools/test/general.shard/drive/web_driver_service_test.dart @@ -45,15 +45,15 @@ void main() { '--no-default-browser-check', '--no-sandbox', '--no-first-run', - '--headless' + '--headless', ], 'perfLoggingPrefs': { 'traceCategories': 'devtools.timeline,' - 'v8,blink.console,benchmark,blink,' - 'blink.user_timing' - } - } + 'v8,blink.console,benchmark,blink,' + 'blink.user_timing', + }, + }, }; expect(getDesiredCapabilities(Browser.chrome, true), expected); @@ -85,10 +85,10 @@ void main() { 'perfLoggingPrefs': { 'traceCategories': 'devtools.timeline,' - 'v8,blink.console,benchmark,blink,' - 'blink.user_timing' - } - } + 'v8,blink.console,benchmark,blink,' + 'blink.user_timing', + }, + }, }; expect(getDesiredCapabilities(Browser.chrome, false, chromeBinary), expected); @@ -109,10 +109,10 @@ void main() { 'media.gmp-provider.enabled': false, 'network.captive-portal-service.enabled': false, 'security.insecure_field_warning.contextual.enabled': false, - 'test.currentTimeOffsetSeconds': 11491200 + 'test.currentTimeOffsetSeconds': 11491200, }, - 'log': {'level': 'trace'} - } + 'log': {'level': 'trace'}, + }, }; expect(getDesiredCapabilities(Browser.firefox, true), expected); @@ -132,10 +132,10 @@ void main() { 'media.gmp-provider.enabled': false, 'network.captive-portal-service.enabled': false, 'security.insecure_field_warning.contextual.enabled': false, - 'test.currentTimeOffsetSeconds': 11491200 + 'test.currentTimeOffsetSeconds': 11491200, }, - 'log': {'level': 'trace'} - } + 'log': {'level': 'trace'}, + }, }; expect(getDesiredCapabilities(Browser.firefox, false), expected); @@ -162,7 +162,7 @@ void main() { final Map expected = { 'platformName': 'ios', 'browserName': 'safari', - 'safari:useSimulator': true + 'safari:useSimulator': true, }; expect(getDesiredCapabilities(Browser.iosSafari, false), expected); @@ -174,7 +174,7 @@ void main() { 'platformName': 'android', 'goog:chromeOptions': { 'androidPackage': 'com.android.chrome', - 'args': ['--disable-fullscreen'] + 'args': ['--disable-fullscreen'], }, }; diff --git a/packages/flutter_tools/test/general.shard/emulator_test.dart b/packages/flutter_tools/test/general.shard/emulator_test.dart index d8ab35ef4bba3..2dd966e7392a5 100644 --- a/packages/flutter_tools/test/general.shard/emulator_test.dart +++ b/packages/flutter_tools/test/general.shard/emulator_test.dart @@ -170,7 +170,7 @@ void main() { '-d', 'pixel', ], - ) + ), ]), androidSdk: sdk, androidWorkflow: AndroidWorkflow( @@ -207,7 +207,7 @@ void main() { '-d', 'pixel', ], - ) + ), ]), androidSdk: sdk, androidWorkflow: AndroidWorkflow( @@ -245,8 +245,8 @@ void main() { ], exitCode: 1, stderr: "Error: Android Virtual Device 'existing-avd-1' already exists.\n" - 'Use --force if you want to replace it.' - ) + 'Use --force if you want to replace it.', + ), ]), androidSdk: sdk, androidWorkflow: AndroidWorkflow( @@ -288,7 +288,7 @@ void main() { '-d', 'pixel', ], - ) + ), ]), androidSdk: sdk, androidWorkflow: AndroidWorkflow( @@ -323,7 +323,7 @@ void main() { 'open', '-a', '/fake/Xcode.app/Contents/Developer/Applications/Simulator.app', - ]) + ]), ], ); diff --git a/packages/flutter_tools/test/general.shard/features_test.dart b/packages/flutter_tools/test/general.shard/features_test.dart index d8a460a581bf2..c7dcf5261d234 100644 --- a/packages/flutter_tools/test/general.shard/features_test.dart +++ b/packages/flutter_tools/test/general.shard/features_test.dart @@ -366,37 +366,5 @@ void main() { expect(featureFlags.isWindowsEnabled, true); }); - - // Windows UWP desktop - - testWithoutContext('Flutter Windows UWP desktop off by default on master', () { - final FeatureFlags featureFlags = createFlags('master'); - - expect(featureFlags.isWindowsUwpEnabled, false); - }); - - testWithoutContext('Flutter Windows UWP desktop enabled with config on master', () { - final FeatureFlags featureFlags = createFlags('master'); - testConfig.setValue('enable-windows-uwp-desktop', true); - - expect(featureFlags.isWindowsUwpEnabled, true); - }); - - testWithoutContext('Flutter Windows UWP desktop config includes removal warning', () { - expect(windowsUwpEmbedding.extraHelpText, contains('Windows UWP support is obsolete and will be removed')); - }); - - testWithoutContext('Flutter Windows UWP desktop off by default on stable', () { - final FeatureFlags featureFlags = createFlags('stable'); - - expect(featureFlags.isWindowsUwpEnabled, false); - }); - - testWithoutContext('Flutter Windows UWP desktop not enabled with config on stable', () { - final FeatureFlags featureFlags = createFlags('stable'); - testConfig.setValue('enable-windows-uwp-desktop', true); - - expect(featureFlags.isWindowsUwpEnabled, false); - }); }); } diff --git a/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart b/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart index b2817aec32aba..0a084a9aa6082 100644 --- a/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart +++ b/packages/flutter_tools/test/general.shard/flutter_manifest_test.dart @@ -65,7 +65,7 @@ dependencies: expect(flutterManifest.assets, isEmpty); }); - testWithoutContext('FlutterManifest knows if material design is used', () async { + testWithoutContext('FlutterManifest knows if Material Design is used', () async { const String manifest = ''' name: test dependencies: @@ -1066,11 +1066,11 @@ flutter: expect(flutterManifest.isPlugin, true); final Map validSupportedPlatforms = flutterManifest.validSupportedPlatforms!; - expect(validSupportedPlatforms['ios'], - {'pluginClass': 'SomeClass'}); - expect(validSupportedPlatforms['android'], - {'pluginClass': 'SomeClass', - 'package': 'com.example'}); + expect(validSupportedPlatforms['ios'], {'pluginClass': 'SomeClass'}); + expect(validSupportedPlatforms['android'], { + 'pluginClass': 'SomeClass', + 'package': 'com.example', + }); }); testWithoutContext('FlutterManifest validates a platform section that is a list ' diff --git a/packages/flutter_tools/test/general.shard/flutter_tester_device_test.dart b/packages/flutter_tools/test/general.shard/flutter_tester_device_test.dart index 57965ed2fa6f6..a2adeca2cda21 100644 --- a/packages/flutter_tools/test/general.shard/flutter_tester_device_test.dart +++ b/packages/flutter_tools/test/general.shard/flutter_tester_device_test.dart @@ -132,7 +132,7 @@ void main() { '--non-interactive', '--use-test-fonts', '--packages=.dart_tool/package_config.json', - 'example.dill' + 'example.dill', ], environment: { 'FLUTTER_TEST': expectedFlutterTestValue, 'FONTCONFIG_FILE': device.fontConfigManager.fontConfigFile.path, @@ -206,11 +206,11 @@ void main() { '--packages=.dart_tool/package_config.json', '--foo', '--bar', - 'example.dill' + 'example.dill', ], stdout: 'success', stderr: 'failure', - ) + ), ]); device = createDevice(dartEntrypointArgs: ['--foo', '--bar']); }); @@ -245,11 +245,11 @@ void main() { '--non-interactive', '--use-test-fonts', '--packages=.dart_tool/package_config.json', - 'example.dill' + 'example.dill', ], stdout: 'The Dart VM service is listening on http://localhost:1234', stderr: 'failure', - ) + ), ]); device = createDevice(enableObservatory: true); }); diff --git a/packages/flutter_tools/test/general.shard/flutter_validator_test.dart b/packages/flutter_tools/test/general.shard/flutter_validator_test.dart index fa8db110cc471..abb7e95c5c136 100644 --- a/packages/flutter_tools/test/general.shard/flutter_validator_test.dart +++ b/packages/flutter_tools/test/general.shard/flutter_validator_test.dart @@ -54,7 +54,7 @@ void main() { const FakeCommand( command: ['Artifact.genSnapshot'], exitCode: 1, - ) + ), ]) ); fileSystem.file(artifacts.getArtifactPath(Artifact.genSnapshot)).createSync(recursive: true); diff --git a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_start_test.dart b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_start_test.dart index a395ab2aa2b7e..f87718c4b5fbe 100644 --- a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_start_test.dart +++ b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_start_test.dart @@ -267,7 +267,7 @@ void main() { '--deterministic', '--snapshot_kind=app-aot-elf', '--elf=build/fuchsia/elf.aotsnapshot', - 'build/fuchsia/app_name.dil' + 'build/fuchsia/app_name.dil', ], ), FakeCommand( @@ -300,7 +300,7 @@ void main() { '--deterministic', '--snapshot_kind=app-aot-elf', '--elf=build/fuchsia/elf.aotsnapshot', - 'build/fuchsia/app_name.dil' + 'build/fuchsia/app_name.dil', ], ), FakeCommand( diff --git a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_test.dart b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_test.dart index be5f9b5fdd350..8a4361d171c4a 100644 --- a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_test.dart +++ b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_test.dart @@ -657,7 +657,7 @@ void main() { jsonResponse: { 'views': [ for (FlutterView view in views) - view.toJson() + view.toJson(), ], }, ), diff --git a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_pm_test.dart b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_pm_test.dart index 26cba71d67655..834e023d50256 100644 --- a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_pm_test.dart +++ b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_pm_test.dart @@ -55,7 +55,7 @@ void main() { '-l', '[fe80::ec4:7aff:fecc:ea8f%eno2]:43819', '-c', - '2' + '2', ])); await FuchsiaPM().serve('', 'fe80::ec4:7aff:fecc:ea8f%eno2', 43819); diff --git a/packages/flutter_tools/test/general.shard/intellij/intellij_validator_test.dart b/packages/flutter_tools/test/general.shard/intellij/intellij_validator_test.dart index 3792c0474c31f..c8b91054186ba 100644 --- a/packages/flutter_tools/test/general.shard/intellij/intellij_validator_test.dart +++ b/packages/flutter_tools/test/general.shard/intellij/intellij_validator_test.dart @@ -22,7 +22,7 @@ final Platform macPlatform = FakePlatform( ); final Platform linuxPlatform = FakePlatform( environment: { - 'HOME': '/foo/bar' + 'HOME': '/foo/bar', }, ); final Platform windowsPlatform = FakePlatform( @@ -30,7 +30,7 @@ final Platform windowsPlatform = FakePlatform( environment: { 'USERPROFILE': r'C:\Users\foo', 'APPDATA': r'C:\Users\foo\AppData\Roaming', - 'LOCALAPPDATA': r'C:\Users\foo\AppData\Local' + 'LOCALAPPDATA': r'C:\Users\foo\AppData\Local', }, ); @@ -49,7 +49,7 @@ void main() { ValidationMessage.error('Flutter plugin version 0.1.3 - the recommended minimum version is 16.0.0'), ValidationMessage('Dart plugin version 162.2485'), ValidationMessage('For information about installing plugins, see\n' - 'https://flutter.dev/intellij-setup/#installing-the-plugins') + 'https://flutter.dev/intellij-setup/#installing-the-plugins'), ]); }); diff --git a/packages/flutter_tools/test/general.shard/ios/code_signing_test.dart b/packages/flutter_tools/test/general.shard/ios/code_signing_test.dart index ef23d3b6fb140..d22ee5ec214df 100644 --- a/packages/flutter_tools/test/general.shard/ios/code_signing_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/code_signing_test.dart @@ -174,7 +174,7 @@ void main() { stdin: IOSink(controller.sink), stdout: 'subject= /CN=iPhone Developer: Profile 1 (1111AAAA11)/OU=3333CCCC33/O=My Team/C=US', completer: completer, - ) + ), ]); // Verify that certificate value is passed into openssl command. @@ -228,7 +228,7 @@ void main() { stdin: IOSink(controller.sink), stdout: 'subject= /CN=iPhone Developer: Profile 1 (1111AAAA11)/OU=3333CCCC33/O=My Team/C=US', completer: completer, - ) + ), ]); // Verify that certificate value is passed into openssl command. @@ -279,7 +279,7 @@ void main() { stdin: IOSink(controller.sink), stdout: 'subject= /CN=iPhone Developer: Profile 1 (1111AAAA11)/OU=3333CCCC33/O=My Team/C=US', completer: completer, - ) + ), ]); // Verify that certificate value is passed into openssl command. @@ -328,7 +328,7 @@ void main() { stdin: IOSink(controller.sink), stdout: 'subject= /CN=iPhone Developer: Profile 3 (3333CCCC33)/OU=4444DDDD44/O=My Team/C=US', completer: completer, - ) + ), ]); // Verify that certificate value is passed into openssl command. @@ -385,7 +385,7 @@ void main() { stdin: IOSink(controller.sink), stdout: 'subject= /CN=iPhone Developer: Profile 3 (1111AAAA11)/OU=5555EEEE55/O=My Team/C=US', completer: completer, - ) + ), ]); // Verify that certificate value is passed into openssl command. @@ -437,7 +437,7 @@ void main() { stdin: IOSink(controller.sink), stdout: 'subject= /CN=iPhone Developer: Profile 3 (3333CCCC33)/OU=4444DDDD44/O=My Team/C=US', completer: completer, - ) + ), ]); // Verify that certificate value is passed into openssl command. @@ -494,7 +494,7 @@ void main() { stdin: IOSink(controller.sink), stdout: 'subject= /CN=iPhone Developer: Profile 3 (3333CCCC33)/OU=4444DDDD44/O=My Team/C=US', completer: completer, - ) + ), ]); // Verify that certificate value is passed into openssl command. diff --git a/packages/flutter_tools/test/general.shard/ios/devices_test.dart b/packages/flutter_tools/test/general.shard/ios/devices_test.dart index 9a892ef64d31c..c7964f13fe571 100644 --- a/packages/flutter_tools/test/general.shard/ios/devices_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/devices_test.dart @@ -436,7 +436,7 @@ void main() { expect(xcdevice.deviceEventController.hasListener, isTrue); xcdevice.deviceEventController.add({ - XCDeviceEvent.attach: 'd83d5bc53967baa0ee18626ba87b6254b2ab5418' + XCDeviceEvent.attach: 'd83d5bc53967baa0ee18626ba87b6254b2ab5418', }); await added.future; expect(iosDevices.deviceNotifier!.items.length, 2); @@ -444,7 +444,7 @@ void main() { expect(iosDevices.deviceNotifier!.items, contains(device2)); xcdevice.deviceEventController.add({ - XCDeviceEvent.detach: 'd83d5bc53967baa0ee18626ba87b6254b2ab5418' + XCDeviceEvent.detach: 'd83d5bc53967baa0ee18626ba87b6254b2ab5418', }); await removed.future; expect(iosDevices.deviceNotifier!.items, [device2]); @@ -452,7 +452,7 @@ void main() { // Remove stream will throw over-completion if called more than once // which proves this is ignored. xcdevice.deviceEventController.add({ - XCDeviceEvent.detach: 'bogus' + XCDeviceEvent.detach: 'bogus', }); expect(addedCount, 2); diff --git a/packages/flutter_tools/test/general.shard/ios/ios_deploy_test.dart b/packages/flutter_tools/test/general.shard/ios/ios_deploy_test.dart index b313e690f74c5..76dce321ccea7 100644 --- a/packages/flutter_tools/test/general.shard/ios/ios_deploy_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/ios_deploy_test.dart @@ -114,7 +114,7 @@ void main () { 'Log on attach2', '', '', - 'Log after process stop' + 'Log after process stop', ])); expect(stdin.stream.transform(const Utf8Decoder()), emitsInOrder([ 'thread backtrace all', @@ -409,7 +409,7 @@ process continue '--uninstall_only', '--bundle_id', bundleId, - ]) + ]), ]); final IOSDeploy iosDeploy = setUpIOSDeploy(processManager, artifacts: artifacts); final int exitCode = await iosDeploy.uninstallApp( @@ -432,7 +432,7 @@ process continue '--uninstall_only', '--bundle_id', bundleId, - ], exitCode: 1) + ], exitCode: 1), ]); final IOSDeploy iosDeploy = setUpIOSDeploy(processManager, artifacts: artifacts); final int exitCode = await iosDeploy.uninstallApp( @@ -452,7 +452,7 @@ IOSDeploy setUpIOSDeploy(ProcessManager processManager, { final FakePlatform macPlatform = FakePlatform( operatingSystem: 'macos', environment: { - 'PATH': '/usr/local/bin:/usr/bin' + 'PATH': '/usr/local/bin:/usr/bin', } ); final Cache cache = Cache.test( diff --git a/packages/flutter_tools/test/general.shard/ios/ios_device_install_test.dart b/packages/flutter_tools/test/general.shard/ios/ios_device_install_test.dart index 846ccde0a2c62..4a69d1763afe5 100644 --- a/packages/flutter_tools/test/general.shard/ios/ios_device_install_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/ios_device_install_test.dart @@ -47,17 +47,20 @@ void main() { applicationPackage: bundleDirectory, ); final FakeProcessManager processManager = FakeProcessManager.list([ - FakeCommand(command: [ - iosDeployPath, - '--id', - '1234', - '--bundle', - '/', - '--no-wifi', - ], environment: const { - 'PATH': '/usr/bin:null', - ...kDyLdLibEntry, - }) + FakeCommand( + command: [ + iosDeployPath, + '--id', + '1234', + '--bundle', + '/', + '--no-wifi', + ], + environment: const { + 'PATH': '/usr/bin:null', + ...kDyLdLibEntry, + }, + ), ]); final IOSDevice device = setUpIOSDevice( processManager: processManager, @@ -78,16 +81,19 @@ void main() { applicationPackage: bundleDirectory, ); final FakeProcessManager processManager = FakeProcessManager.list([ - FakeCommand(command: [ - iosDeployPath, - '--id', - '1234', - '--bundle', - '/', - ], environment: const { - 'PATH': '/usr/bin:null', - ...kDyLdLibEntry, - }) + FakeCommand( + command: [ + iosDeployPath, + '--id', + '1234', + '--bundle', + '/', + ], + environment: const { + 'PATH': '/usr/bin:null', + ...kDyLdLibEntry, + }, + ), ]); final IOSDevice device = setUpIOSDevice( processManager: processManager, @@ -108,17 +114,20 @@ void main() { applicationPackage: bundleDirectory, ); final FakeProcessManager processManager = FakeProcessManager.list([ - FakeCommand(command: [ - iosDeployPath, - '--id', - '1234', - '--uninstall_only', - '--bundle_id', - 'app', - ], environment: const { - 'PATH': '/usr/bin:null', - ...kDyLdLibEntry, - }) + FakeCommand( + command: [ + iosDeployPath, + '--id', + '1234', + '--uninstall_only', + '--bundle_id', + 'app', + ], + environment: const { + 'PATH': '/usr/bin:null', + ...kDyLdLibEntry, + }, + ), ]); final IOSDevice device = setUpIOSDevice(processManager: processManager, artifacts: artifacts); final bool wasUninstalled = await device.uninstallApp(iosApp); @@ -163,19 +172,22 @@ void main() { applicationPackage: bundleDirectory, ); final FakeProcessManager processManager = FakeProcessManager.list([ - FakeCommand(command: [ - iosDeployPath, - '--id', - '1234', - '--exists', - '--timeout', - '10', - '--bundle_id', - 'app', - ], environment: const { - 'PATH': '/usr/bin:null', - ...kDyLdLibEntry, - }) + FakeCommand( + command: [ + iosDeployPath, + '--id', + '1234', + '--exists', + '--timeout', + '10', + '--bundle_id', + 'app', + ], + environment: const { + 'PATH': '/usr/bin:null', + ...kDyLdLibEntry, + }, + ), ]); final IOSDevice device = setUpIOSDevice(processManager: processManager, artifacts: artifacts); final bool isAppInstalled = await device.isAppInstalled(iosApp); @@ -191,19 +203,23 @@ void main() { applicationPackage: bundleDirectory, ); final FakeProcessManager processManager = FakeProcessManager.list([ - FakeCommand(command: [ - iosDeployPath, - '--id', - '1234', - '--exists', - '--timeout', - '10', - '--bundle_id', - 'app', - ], environment: const { - 'PATH': '/usr/bin:null', - ...kDyLdLibEntry, - }, exitCode: 255) + FakeCommand( + command: [ + iosDeployPath, + '--id', + '1234', + '--exists', + '--timeout', + '10', + '--bundle_id', + 'app', + ], + environment: const { + 'PATH': '/usr/bin:null', + ...kDyLdLibEntry, + }, + exitCode: 255, + ), ]); final BufferLogger logger = BufferLogger.test(); final IOSDevice device = setUpIOSDevice(processManager: processManager, logger: logger, artifacts: artifacts); @@ -222,20 +238,24 @@ void main() { ); const String stderr = '2020-03-26 17:48:43.484 ios-deploy[21518:5501783] [ !! ] Timed out waiting for device'; final FakeProcessManager processManager = FakeProcessManager.list([ - FakeCommand(command: [ - iosDeployPath, - '--id', - '1234', - '--exists', - '--timeout', - '10', - '--bundle_id', - 'app', - ], environment: const { - 'PATH': '/usr/bin:null', - ...kDyLdLibEntry, - }, stderr: stderr, - exitCode: 253) + FakeCommand( + command: [ + iosDeployPath, + '--id', + '1234', + '--exists', + '--timeout', + '10', + '--bundle_id', + 'app', + ], + environment: const { + 'PATH': '/usr/bin:null', + ...kDyLdLibEntry, + }, + stderr: stderr, + exitCode: 253, + ), ]); final BufferLogger logger = BufferLogger.test(); final IOSDevice device = setUpIOSDevice(processManager: processManager, logger: logger, artifacts: artifacts); diff --git a/packages/flutter_tools/test/general.shard/ios/ios_device_logger_test.dart b/packages/flutter_tools/test/general.shard/ios/ios_device_logger_test.dart index 61601e93c8379..1ea8d69eee622 100644 --- a/packages/flutter_tools/test/general.shard/ios/ios_device_logger_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/ios_device_logger_test.dart @@ -231,7 +231,7 @@ Runner(libsystem_asl.dylib)[297] : libMobileGestalt iosDeployDebugger.debuggerAttached = true; final Stream debuggingLogs = Stream.fromIterable([ - 'Message from debugger' + 'Message from debugger', ]); iosDeployDebugger.logLines = debuggingLogs; logReader.debuggerStream = iosDeployDebugger; diff --git a/packages/flutter_tools/test/general.shard/ios/ios_device_start_nonprebuilt_test.dart b/packages/flutter_tools/test/general.shard/ios/ios_device_start_nonprebuilt_test.dart index 0acb7ec80ce79..24ec5fbaf1e2c 100644 --- a/packages/flutter_tools/test/general.shard/ios/ios_device_start_nonprebuilt_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/ios_device_start_nonprebuilt_test.dart @@ -209,7 +209,7 @@ void main() { const [ '--enable-dart-profiling', '--disable-service-auth-codes', - ].join(' ') + ].join(' '), ]) ); @@ -265,7 +265,7 @@ void main() { const [ '--enable-dart-profiling', '--disable-service-auth-codes', - ].join(' ') + ].join(' '), ]) ); diff --git a/packages/flutter_tools/test/general.shard/ios/ios_device_start_prebuilt_test.dart b/packages/flutter_tools/test/general.shard/ios/ios_device_start_prebuilt_test.dart index 0bac487f5abcc..896721306d42b 100644 --- a/packages/flutter_tools/test/general.shard/ios/ios_device_start_prebuilt_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/ios_device_start_prebuilt_test.dart @@ -58,7 +58,7 @@ const FakeCommand kLaunchDebugCommand = FakeCommand(command: [ '--no-wifi', '--justlaunch', '--args', - '--enable-dart-profiling --disable-service-auth-codes --enable-checked-mode --verify-entry-points' + '--enable-dart-profiling --disable-service-auth-codes --enable-checked-mode --verify-entry-points', ], environment: { 'PATH': '/usr/bin:null', 'DYLD_LIBRARY_PATH': '/path/to/libraries', @@ -299,12 +299,13 @@ void main() { '--purge-persistent-cache', '--enable-impeller', ].join(' '), - ], environment: const { - 'PATH': '/usr/bin:null', - 'DYLD_LIBRARY_PATH': '/path/to/libraries', - }, + ], + environment: const { + 'PATH': '/usr/bin:null', + 'DYLD_LIBRARY_PATH': '/path/to/libraries', + }, stdout: '(lldb) run\nsuccess', - ) + ), ]); final IOSDevice device = setUpIOSDevice( sdkVersion: '13.3', diff --git a/packages/flutter_tools/test/general.shard/ios/mac_test.dart b/packages/flutter_tools/test/general.shard/ios/mac_test.dart index 44845eae805f8..bcc4713ee85f3 100644 --- a/packages/flutter_tools/test/general.shard/ios/mac_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/mac_test.dart @@ -388,7 +388,7 @@ Could not build the precompiled application for the device.''', '-d', 'com.apple.FinderInfo', projectDirectory.path, - ]) + ]), ]); await removeFinderExtendedAttributes(projectDirectory, ProcessUtils(processManager: processManager, logger: logger), logger); @@ -397,14 +397,16 @@ Could not build the precompiled application for the device.''', testWithoutContext('ignores errors', () async { final FakeProcessManager processManager = FakeProcessManager.list([ - FakeCommand(command: [ - 'xattr', - '-r', - '-d', - 'com.apple.FinderInfo', - projectDirectory.path, - ], exitCode: 1, - ) + FakeCommand( + command: [ + 'xattr', + '-r', + '-d', + 'com.apple.FinderInfo', + projectDirectory.path, + ], + exitCode: 1, + ), ]); await removeFinderExtendedAttributes(projectDirectory, ProcessUtils(processManager: processManager, logger: logger), logger); diff --git a/packages/flutter_tools/test/general.shard/ios/simulators_test.dart b/packages/flutter_tools/test/general.shard/ios/simulators_test.dart index 5f389bc9c63a3..f943ce552973c 100644 --- a/packages/flutter_tools/test/general.shard/ios/simulators_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/simulators_test.dart @@ -29,7 +29,7 @@ import '../../src/fakes.dart'; final Platform macosPlatform = FakePlatform( operatingSystem: 'macos', environment: { - 'HOME': '/' + 'HOME': '/', }, ); @@ -604,7 +604,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text''' 'Multi line message again', ' and it goes...', ' and goes...', - 'Single line message, not the part of the above' + 'Single line message, not the part of the above', ]); expect(fakeProcessManager.hasRemainingExpectations, isFalse); }, overrides: { @@ -670,7 +670,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text''' final List lines = await logReader.logLines.toList(); expect(lines, [ 'Single line message', 'Multi line message\n continues...\n continues...', - 'Single line message, not the part of the above' + 'Single line message, not the part of the above', ]); expect(fakeProcessManager.hasRemainingExpectations, isFalse); }, overrides: { diff --git a/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart b/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart index 0eacb84f692d2..52046d48d8795 100644 --- a/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart @@ -364,7 +364,7 @@ void main() { testUsingContext('xcodebuild build settings contains Flutter Xcode environment variables', () async { platform.environment = const { 'FLUTTER_XCODE_CODE_SIGN_STYLE': 'Manual', - 'FLUTTER_XCODE_ARCHS': 'arm64' + 'FLUTTER_XCODE_ARCHS': 'arm64', }; fakeProcessManager.addCommands([ kWhichSysctlCommand, @@ -382,7 +382,7 @@ void main() { '-showBuildSettings', 'BUILD_DIR=${fileSystem.path.absolute('build', 'ios')}', 'CODE_SIGN_STYLE=Manual', - 'ARCHS=arm64' + 'ARCHS=arm64', ], ), ]); @@ -398,7 +398,7 @@ void main() { testWithoutContext('xcodebuild clean contains Flutter Xcode environment variables', () async { platform.environment = const { 'FLUTTER_XCODE_CODE_SIGN_STYLE': 'Manual', - 'FLUTTER_XCODE_ARCHS': 'arm64' + 'FLUTTER_XCODE_ARCHS': 'arm64', }; fakeProcessManager.addCommands(const [ @@ -415,7 +415,7 @@ void main() { '-quiet', 'clean', 'CODE_SIGN_STYLE=Manual', - 'ARCHS=arm64' + 'ARCHS=arm64', ], ), ]); @@ -669,7 +669,7 @@ Information about project "Runner": 'Ignored': 'Bogus', 'FLUTTER_NOT_XCODE': 'Bogus', 'FLUTTER_XCODE_CODE_SIGN_STYLE': 'Manual', - 'FLUTTER_XCODE_ARCHS': 'arm64' + 'FLUTTER_XCODE_ARCHS': 'arm64', }; final List environmentVariablesAsBuildSettings = environmentVariablesAsXcodeBuildSettings(platform); expect(environmentVariablesAsBuildSettings, ['CODE_SIGN_STYLE=Manual', 'ARCHS=arm64']); diff --git a/packages/flutter_tools/test/general.shard/license_collector_test.dart b/packages/flutter_tools/test/general.shard/license_collector_test.dart index 8ba90228ecd2f..5bc1a3419e59e 100644 --- a/packages/flutter_tools/test/general.shard/license_collector_test.dart +++ b/packages/flutter_tools/test/general.shard/license_collector_test.dart @@ -271,19 +271,19 @@ void main() { 'name': 'foo', 'rootUri': 'file:///foo/', 'packageUri': 'lib/', - 'languageVersion': '2.2' + 'languageVersion': '2.2', }, { 'name': 'bar', 'rootUri': 'file:///bar/', 'packageUri': 'lib/', - 'languageVersion': '2.2' + 'languageVersion': '2.2', }, { 'name': 'fizz', 'rootUri': 'file:///fizz/', 'packageUri': 'lib/', - 'languageVersion': '2.2' + 'languageVersion': '2.2', }, ], } @@ -306,7 +306,7 @@ void main() { expect(filePaths, unorderedEquals([ '/foo/NOTICES', '/bar/NOTICES', - '/fizz/LICENSE' + '/fizz/LICENSE', ])); }); @@ -329,13 +329,13 @@ void main() { 'name': 'foo', 'rootUri': 'file:///foo/', 'packageUri': 'lib/', - 'languageVersion': '2.2' + 'languageVersion': '2.2', }, { 'name': 'bar', 'rootUri': 'file:///bar/', 'packageUri': 'lib/', - 'languageVersion': '2.2' + 'languageVersion': '2.2', }, ], } @@ -376,7 +376,7 @@ void main() { 'name': 'foo', 'rootUri': 'file:///foo/', 'packageUri': 'lib/', - 'languageVersion': '2.2' + 'languageVersion': '2.2', }, ], } @@ -391,7 +391,7 @@ void main() { expect(licenseResult.dependencies, isEmpty); expect(licenseResult.errorMessages, [ 'package foo specified an additional license at /foo.txt, but this file does not exist.', - 'package foo specified an additional license at /foo_2.txt, but this file does not exist.' + 'package foo specified an additional license at /foo_2.txt, but this file does not exist.', ]); }); @@ -412,7 +412,7 @@ void main() { 'name': 'foo', 'rootUri': 'file:///foo/', 'packageUri': 'lib/', - 'languageVersion': '2.2' + 'languageVersion': '2.2', }, ], } diff --git a/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart b/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart index fba1bc5fda40d..abc5ee704f7af 100644 --- a/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart +++ b/packages/flutter_tools/test/general.shard/macos/macos_device_test.dart @@ -61,7 +61,7 @@ void main() { stdout: 'Hello World\n', stderr: 'Goodnight, Moon\n', completer: completer, - ) + ), ]), logger: BufferLogger.test(), operatingSystemUtils: FakeOperatingSystemUtils(), diff --git a/packages/flutter_tools/test/general.shard/plugin_parsing_test.dart b/packages/flutter_tools/test/general.shard/plugin_parsing_test.dart index 18950258f985d..40ea7cea7031c 100644 --- a/packages/flutter_tools/test/general.shard/plugin_parsing_test.dart +++ b/packages/flutter_tools/test/general.shard/plugin_parsing_test.dart @@ -272,8 +272,7 @@ void main() { ' windows:\n' ' pluginClass: WinSamplePlugin\n' ' supportedVariants:\n' - ' - win32\n' - ' - uwp\n'; + ' - win32\n'; final YamlMap pluginYaml = loadYaml(pluginYamlRaw) as YamlMap; final Plugin plugin = Plugin.fromYaml( @@ -288,7 +287,6 @@ void main() { final WindowsPlugin windowsPlugin = plugin.platforms[WindowsPlugin.kConfigKey]! as WindowsPlugin; expect(windowsPlugin.supportedVariants, [ PluginPlatformVariant.win32, - PluginPlatformVariant.winuwp, ]); }); @@ -322,8 +320,7 @@ void main() { ' windows:\n' ' pluginClass: WinSamplePlugin\n' ' supportedVariants:\n' - ' - not_yet_invented_variant\n' - ' - uwp\n'; + ' - not_yet_invented_variant\n'; final YamlMap pluginYaml = loadYaml(pluginYamlRaw) as YamlMap; final Plugin plugin = Plugin.fromYaml( @@ -336,9 +333,7 @@ void main() { ); final WindowsPlugin windowsPlugin = plugin.platforms[WindowsPlugin.kConfigKey]! as WindowsPlugin; - expect(windowsPlugin.supportedVariants, { - PluginPlatformVariant.winuwp, - }); + expect(windowsPlugin.supportedVariants, {}); }); testWithoutContext('Plugin parsing throws a fatal error on an empty plugin', () { diff --git a/packages/flutter_tools/test/general.shard/plugins_test.dart b/packages/flutter_tools/test/general.shard/plugins_test.dart index a51ffc89a366d..521795cbc2d22 100644 --- a/packages/flutter_tools/test/general.shard/plugins_test.dart +++ b/packages/flutter_tools/test/general.shard/plugins_test.dart @@ -476,7 +476,7 @@ dependencies: 'plugin_d', 'plugin_a', '/local_plugins/plugin_c', - '/local_plugins/plugin_b' + '/local_plugins/plugin_b', ]); iosProject.testExists = true; @@ -530,7 +530,7 @@ dependencies: 'native_build': true, 'dependencies': [ 'plugin-b', - 'plugin-c' + 'plugin-c', ], }, { @@ -538,7 +538,7 @@ dependencies: 'path': '${pluginB.path}/', 'native_build': true, 'dependencies': [ - 'plugin-c' + 'plugin-c', ], }, { @@ -560,18 +560,18 @@ dependencies: 'name': 'plugin-a', 'dependencies': [ 'plugin-b', - 'plugin-c' - ] + 'plugin-c', + ], }, { 'name': 'plugin-b', 'dependencies': [ - 'plugin-c' - ] + 'plugin-c', + ], }, { 'name': 'plugin-c', - 'dependencies': [] + 'dependencies': [], }, ]; @@ -592,7 +592,7 @@ dependencies: FileSystem: () => fs, ProcessManager: () => FakeProcessManager.any(), SystemClock: () => systemClock, - FlutterVersion: () => flutterVersion + FlutterVersion: () => flutterVersion, }); testUsingContext( @@ -637,7 +637,7 @@ dependencies: FileSystem: () => fs, ProcessManager: () => FakeProcessManager.any(), SystemClock: () => systemClock, - FlutterVersion: () => flutterVersion + FlutterVersion: () => flutterVersion, }); testUsingContext('Changes to the plugin list invalidates the Cocoapod lockfiles', () async { @@ -654,7 +654,7 @@ dependencies: FileSystem: () => fs, ProcessManager: () => FakeProcessManager.any(), SystemClock: () => systemClock, - FlutterVersion: () => flutterVersion + FlutterVersion: () => flutterVersion, }); testUsingContext('No changes to the plugin list does not invalidate the Cocoapod lockfiles', () async { @@ -677,7 +677,7 @@ dependencies: FileSystem: () => fs, ProcessManager: () => FakeProcessManager.any(), SystemClock: () => systemClock, - FlutterVersion: () => flutterVersion + FlutterVersion: () => flutterVersion, }); }); @@ -1291,7 +1291,7 @@ flutter: 'plugin_d', 'plugin_a', '/local_plugins/plugin_c', - '/local_plugins/plugin_b' + '/local_plugins/plugin_b', ]); await injectPlugins(flutterProject, linuxPlatform: true); @@ -1376,7 +1376,7 @@ flutter: 'plugin_d', 'plugin_a', '/local_plugins/plugin_c', - '/local_plugins/plugin_b' + '/local_plugins/plugin_b', ]); await injectPlugins(flutterProject, windowsPlatform: true); @@ -1583,21 +1583,21 @@ flutter: '''; _createPubspecFile(pluginYaml); validatePubspecForPlugin(projectDir: projectDir.absolute.path, pluginClass: 'SomePlugin', expectedPlatforms: [ - 'ios', 'macos', 'windows', 'linux', 'android', 'web' + 'ios', 'macos', 'windows', 'linux', 'android', 'web', ], androidIdentifier: 'AndroidPackage', webFileName: 'lib/SomeFile.dart'); }); testUsingContext('createPlatformsYamlMap should create the correct map', () async { final YamlMap map = Plugin.createPlatformsYamlMap(['ios', 'android', 'linux'], 'PluginClass', 'some.android.package'); expect(map['ios'], { - 'pluginClass' : 'PluginClass' + 'pluginClass' : 'PluginClass', }); expect(map['android'], { 'pluginClass' : 'PluginClass', 'package': 'some.android.package', }); expect(map['linux'], { - 'pluginClass' : 'PluginClass' + 'pluginClass' : 'PluginClass', }); }); @@ -1682,9 +1682,6 @@ class FakeFlutterProject extends Fake implements FlutterProject { @override WindowsProject windows; - - @override - WindowsUwpProject windowsUwp; } class FakeMacOSProject extends Fake implements MacOSProject { diff --git a/packages/flutter_tools/test/general.shard/preview_device_test.dart b/packages/flutter_tools/test/general.shard/preview_device_test.dart index ff6e9f34736f7..440d6e29856b7 100644 --- a/packages/flutter_tools/test/general.shard/preview_device_test.dart +++ b/packages/flutter_tools/test/general.shard/preview_device_test.dart @@ -59,11 +59,11 @@ void main() { processManager: FakeProcessManager.list([ FakeCommand( command: const [ - '/.tmp_rand0/flutter_preview.rand0/splash' + '/.tmp_rand0/flutter_preview.rand0/splash', ], stdout: 'The Dart VM service is listening on http://127.0.0.1:64494/fZ_B2N6JRwY=/\n', completer: completer, - ) + ), ]), logger: logger, platform: FakePlatform(), diff --git a/packages/flutter_tools/test/general.shard/project_test.dart b/packages/flutter_tools/test/general.shard/project_test.dart index 12dbd9a298703..66478c729a592 100644 --- a/packages/flutter_tools/test/general.shard/project_test.dart +++ b/packages/flutter_tools/test/general.shard/project_test.dart @@ -571,14 +571,14 @@ apply plugin: 'kotlin-android' }, overrides: { FileSystem: () => fs, ProcessManager: () => FakeProcessManager.any(), - XcodeProjectInterpreter: () => mockXcodeProjectInterpreter + XcodeProjectInterpreter: () => mockXcodeProjectInterpreter, }); testUsingContext('app product name xcodebuild settings', () async { final FlutterProject project = await someProject(); project.ios.xcodeProject.createSync(); mockXcodeProjectInterpreter.buildSettings = { - 'FULL_PRODUCT_NAME': 'My App.app' + 'FULL_PRODUCT_NAME': 'My App.app', }; mockXcodeProjectInterpreter.xcodeProjectInfo = XcodeProjectInfo([], [], ['Runner'], logger); @@ -586,7 +586,7 @@ apply plugin: 'kotlin-android' }, overrides: { FileSystem: () => fs, ProcessManager: () => FakeProcessManager.any(), - XcodeProjectInterpreter: () => mockXcodeProjectInterpreter + XcodeProjectInterpreter: () => mockXcodeProjectInterpreter, }); }); @@ -888,7 +888,7 @@ void _testInMemory(String description, Future Function() testMethod) { 'name': 'flutter_template_images', 'rootUri': dummyTemplateImagesDirectory.uri.toString(), 'packageUri': 'lib/', - 'languageVersion': '2.6' + 'languageVersion': '2.6', }, ], })); diff --git a/packages/flutter_tools/test/general.shard/resident_devtools_handler_test.dart b/packages/flutter_tools/test/general.shard/resident_devtools_handler_test.dart index 9e11593f00cca..95c90749117b6 100644 --- a/packages/flutter_tools/test/general.shard/resident_devtools_handler_test.dart +++ b/packages/flutter_tools/test/general.shard/resident_devtools_handler_test.dart @@ -70,7 +70,7 @@ final FakeVmServiceRequest listViews = FakeVmServiceRequest( FlutterView( id: 'a', uiIsolate: isolate, - ).toJson() + ).toJson(), ], }, ); diff --git a/packages/flutter_tools/test/general.shard/resident_runner_test.dart b/packages/flutter_tools/test/general.shard/resident_runner_test.dart index 3204ff58b458f..092476d222406 100644 --- a/packages/flutter_tools/test/general.shard/resident_runner_test.dart +++ b/packages/flutter_tools/test/general.shard/resident_runner_test.dart @@ -587,7 +587,7 @@ void main() { args: { 'isolateId': '1', 'pause': false, - 'rootLibUri': 'main.dart.incremental.dill' + 'rootLibUri': 'main.dart.incremental.dill', }, jsonResponse: { 'type': 'ReloadReport', @@ -647,15 +647,15 @@ void main() { args: { 'isolateId': '1', 'pause': false, - 'rootLibUri': 'main.dart.incremental.dill' + 'rootLibUri': 'main.dart.incremental.dill', }, jsonResponse: { 'type': 'ReloadReport', 'success': false, 'notices': [ { - 'message': 'Failed to hot reload' - } + 'message': 'Failed to hot reload', + }, ], 'details': {}, }, @@ -711,7 +711,7 @@ void main() { args: { 'isolateId': '1', 'pause': false, - 'rootLibUri': 'main.dart.incremental.dill' + 'rootLibUri': 'main.dart.incremental.dill', }, jsonResponse: { 'type': 'ReloadReport', @@ -883,7 +883,7 @@ void main() { timestamp: 0, kind: vm_service.EventKind.kIsolateRunnable, ) - ) + ), ]); final Completer futureConnectionInfo = Completer.sync(); final Completer futureAppStart = Completer.sync(); @@ -962,8 +962,8 @@ void main() { event: vm_service.Event( timestamp: 0, kind: vm_service.EventKind.kIsolateRunnable, - ) - ) + ), + ), ]); final Completer futureConnectionInfo = Completer.sync(); final Completer futureAppStart = Completer.sync(); @@ -1084,7 +1084,7 @@ void main() { timestamp: 0, kind: vm_service.EventKind.kIsolateRunnable, ), - ) + ), ]); final Completer futureConnectionInfo = Completer.sync(); final Completer futureAppStart = Completer.sync(); @@ -1404,7 +1404,7 @@ flutter: commandHelp.hWithDetails, commandHelp.c, commandHelp.q, - '' + '', ].join('\n') )); })); @@ -1437,7 +1437,7 @@ flutter: commandHelp.hWithoutDetails, commandHelp.c, commandHelp.q, - '' + '', ].join('\n') )); })); @@ -1451,7 +1451,7 @@ flutter: 'viewId': fakeFlutterView.id, }, jsonResponse: { - 'SkSLs': {} + 'SkSLs': {}, } ), ]); @@ -1472,9 +1472,9 @@ flutter: jsonResponse: { 'SkSLs': { 'A': 'B', - } - } - ) + }, + }, + ), ]); await residentRunner.writeSkSL(); @@ -1484,7 +1484,7 @@ flutter: 'platform': 'android', 'name': 'FakeDevice', 'engineRevision': 'abcdefg', - 'data': {'A': 'B'} + 'data': {'A': 'B'}, }); expect(fakeVmServiceHost.hasRemainingExpectations, false); }, overrides: { @@ -1492,7 +1492,7 @@ flutter: fileSystem: globals.fs, platform: globals.platform, ), - FlutterVersion: () => FakeFlutterVersion(engineRevision: 'abcdefg') + FlutterVersion: () => FakeFlutterVersion(engineRevision: 'abcdefg'), })); testUsingContext('ResidentRunner ignores DevtoolsLauncher when attaching with enableDevTools: false - cold mode', () => testbed.run(() async { @@ -1868,7 +1868,7 @@ flutter: Artifacts: () => Artifacts.test(), FileSystem: () => MemoryFileSystem.test(), ProcessManager: () => FakeProcessManager.any(), - FeatureFlags: () => TestFeatureFlags(isSingleWidgetReloadEnabled: true) + FeatureFlags: () => TestFeatureFlags(isSingleWidgetReloadEnabled: true), }); testUsingContext('FlutterDevice passes alternative-invalidation-strategy flag', () async { diff --git a/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart b/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart index 87a9fd14a2897..0bf8dcdebbf92 100644 --- a/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart +++ b/packages/flutter_tools/test/general.shard/resident_web_runner_test.dart @@ -55,14 +55,14 @@ const List kAttachLogExpectations = args: { 'streamId': 'Stderr', }, - ) + ), ]; const List kAttachIsolateExpectations = [ FakeVmServiceRequest( method: 'streamListen', args: { - 'streamId': 'Isolate' + 'streamId': 'Isolate', } ), FakeVmServiceRequest( @@ -732,8 +732,8 @@ void main() { method: 'hotRestart', jsonResponse: { 'type': 'Failed', - } - ) + }, + ), ]); _setupMocks(); final Completer connectionInfoCompleter = Completer(); diff --git a/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart b/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart index c3dcd006bdeb3..7522d37fbb255 100644 --- a/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart +++ b/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart @@ -415,7 +415,7 @@ void main() { subForSigTerm: signalUnderTest, exitSignals: [signalUnderTest], ), - Usage: () => usage + Usage: () => usage, }); }); diff --git a/packages/flutter_tools/test/general.shard/runner/local_engine_test.dart b/packages/flutter_tools/test/general.shard/runner/local_engine_test.dart index feff223c64319..55328826dccd6 100644 --- a/packages/flutter_tools/test/general.shard/runner/local_engine_test.dart +++ b/packages/flutter_tools/test/general.shard/runner/local_engine_test.dart @@ -93,31 +93,6 @@ void main() { expect(logger.traceText, contains('Local engine source at /arbitrary/engine/src')); }); - testWithoutContext('treats winuwp_debug_unopt as a host engine', () async { - final FileSystem fileSystem = MemoryFileSystem.test(); - final Directory localEngine = fileSystem - .directory('$kArbitraryEngineRoot/src/out/winuwp_debug_unopt/') - ..createSync(recursive: true); - fileSystem.directory('$kArbitraryEngineRoot/src/out/winuwp_debug_unopt/').createSync(recursive: true); - - final BufferLogger logger = BufferLogger.test(); - final LocalEngineLocator localEngineLocator = LocalEngineLocator( - fileSystem: fileSystem, - flutterRoot: 'flutter/flutter', - logger: logger, - userMessages: UserMessages(), - platform: FakePlatform(environment: {}), - ); - - expect( - await localEngineLocator.findEnginePath(null, localEngine.path, null), - matchesEngineBuildPaths( - hostEngine: '/arbitrary/engine/src/out/winuwp_debug_unopt', - targetEngine: '/arbitrary/engine/src/out/winuwp_debug_unopt', - ), - ); - }); - testWithoutContext('works if --local-engine is specified and --local-engine-src-path ' 'is determined by --local-engine', () async { final FileSystem fileSystem = MemoryFileSystem.test(); diff --git a/packages/flutter_tools/test/general.shard/runner/runner_test.dart b/packages/flutter_tools/test/general.shard/runner/runner_test.dart index 12177b2a17755..cef421e083192 100644 --- a/packages/flutter_tools/test/general.shard/runner/runner_test.dart +++ b/packages/flutter_tools/test/general.shard/runner/runner_test.dart @@ -98,7 +98,7 @@ void main() { ProcessManager: () => FakeProcessManager.any(), Usage: () => CrashingUsage(), Artifacts: () => Artifacts.test(), - HttpClientFactory: () => () => FakeHttpClient.any() + HttpClientFactory: () => () => FakeHttpClient.any(), }); // This Completer completes when CrashingFlutterCommand.runCommand @@ -141,7 +141,7 @@ void main() { ProcessManager: () => FakeProcessManager.any(), CrashReporter: () => WaitingCrashReporter(commandCompleter.future), Artifacts: () => Artifacts.test(), - HttpClientFactory: () => () => FakeHttpClient.any() + HttpClientFactory: () => () => FakeHttpClient.any(), }); testUsingContext('create local report', () async { @@ -211,7 +211,7 @@ void main() { UserMessages: () => CustomBugInstructions(), Artifacts: () => Artifacts.test(), CrashReporter: () => WaitingCrashReporter(Future.value()), - HttpClientFactory: () => () => FakeHttpClient.any() + HttpClientFactory: () => () => FakeHttpClient.any(), }); }); } diff --git a/packages/flutter_tools/test/general.shard/terminal_handler_test.dart b/packages/flutter_tools/test/general.shard/terminal_handler_test.dart index bc86f07a01e5d..b821ec8ab43f0 100644 --- a/packages/flutter_tools/test/general.shard/terminal_handler_test.dart +++ b/packages/flutter_tools/test/general.shard/terminal_handler_test.dart @@ -148,17 +148,17 @@ void main() { 'isolateId': '1', }, jsonResponse: { - 'enabled': 'false' + 'enabled': 'false', }, ), const FakeVmServiceRequest( method: 'ext.flutter.profileWidgetBuilds', args: { 'isolateId': '1', - 'enabled': 'true' + 'enabled': 'true', }, jsonResponse: { - 'enabled': 'true' + 'enabled': 'true', }, ), ]); @@ -175,17 +175,17 @@ void main() { 'isolateId': '1', }, jsonResponse: { - 'enabled': 'false' + 'enabled': 'false', }, ), const FakeVmServiceRequest( method: 'ext.flutter.profileWidgetBuilds', args: { 'isolateId': '1', - 'enabled': 'true' + 'enabled': 'true', }, jsonResponse: { - 'enabled': 'true' + 'enabled': 'true', }, ), ], web: true); @@ -420,7 +420,7 @@ void main() { 'isolateId': '1', }, jsonResponse: { - 'value': 'iOS' + 'value': 'iOS', }, ), listViews, @@ -431,7 +431,7 @@ void main() { 'value': 'fuchsia', }, jsonResponse: { - 'value': 'fuchsia' + 'value': 'fuchsia', }, ), // Request 2. @@ -442,7 +442,7 @@ void main() { 'isolateId': '1', }, jsonResponse: { - 'value': 'android' + 'value': 'android', }, ), listViews, @@ -453,7 +453,7 @@ void main() { 'value': 'iOS', }, jsonResponse: { - 'value': 'iOS' + 'value': 'iOS', }, ), ]); @@ -474,7 +474,7 @@ void main() { 'isolateId': '1', }, jsonResponse: { - 'value': 'iOS' + 'value': 'iOS', }, ), listViews, @@ -485,7 +485,7 @@ void main() { 'value': 'fuchsia', }, jsonResponse: { - 'value': 'fuchsia' + 'value': 'fuchsia', }, ), // Request 2. @@ -496,7 +496,7 @@ void main() { 'isolateId': '1', }, jsonResponse: { - 'value': 'android' + 'value': 'android', }, ), listViews, @@ -507,7 +507,7 @@ void main() { 'value': 'iOS', }, jsonResponse: { - 'value': 'iOS' + 'value': 'iOS', }, ), ], web: true); @@ -971,7 +971,7 @@ void main() { 'isolateId': fakeUnpausedIsolate.id, 'enabled': 'true', }, - ) + ), ], logger: logger, supportsScreenshot: true); await terminalHandler.processTerminalInput('s'); @@ -1004,7 +1004,7 @@ void main() { 'isolateId': fakeUnpausedIsolate.id, 'enabled': 'true', }, - ) + ), ], logger: logger, fileSystem: fileSystem); await terminalHandler.processTerminalInput('s'); @@ -1038,7 +1038,7 @@ void main() { 'isolateId': fakeUnpausedIsolate.id, 'enabled': 'true', }, - ) + ), ], logger: logger, web: true, fileSystem: fileSystem); await terminalHandler.processTerminalInput('s'); diff --git a/packages/flutter_tools/test/general.shard/tracing_test.dart b/packages/flutter_tools/test/general.shard/tracing_test.dart index a3bf74aae0e50..966d979bc015e 100644 --- a/packages/flutter_tools/test/general.shard/tracing_test.dart +++ b/packages/flutter_tools/test/general.shard/tracing_test.dart @@ -71,7 +71,7 @@ final List vmServiceSetup = [ 'isolateId': '1', }, jsonResponse: { - 'enabled': 'true' + 'enabled': 'true', }, ), ]; diff --git a/packages/flutter_tools/test/general.shard/update_packages_test.dart b/packages/flutter_tools/test/general.shard/update_packages_test.dart index 52b7044fa37a4..a6fd150e6b351 100644 --- a/packages/flutter_tools/test/general.shard/update_packages_test.dart +++ b/packages/flutter_tools/test/general.shard/update_packages_test.dart @@ -190,7 +190,7 @@ void main() { 'sky_engine: ', 'gallery: ', 'flutter_test: ', - 'flutter_goldens: ' + 'flutter_goldens: ', })); expect( pubspecYaml.dependencies @@ -202,7 +202,7 @@ void main() { 'typed_data: 1.1.6', 'vector_math: 2.0.8', 'sky_engine: ', - 'gallery: ' + 'gallery: ', })); }); } diff --git a/packages/flutter_tools/test/general.shard/vmservice_test.dart b/packages/flutter_tools/test/general.shard/vmservice_test.dart index d391a8e8b03dd..3d1cda85d9a77 100644 --- a/packages/flutter_tools/test/general.shard/vmservice_test.dart +++ b/packages/flutter_tools/test/general.shard/vmservice_test.dart @@ -254,7 +254,7 @@ void main() { containsPair('viewId', 'abc'), containsPair('assetDirectory', '/abc'), containsPair('isolateId', 'def'), - ])) + ])), ])); }); @@ -276,7 +276,7 @@ void main() { containsPair('method', kGetSkSLsMethod), containsPair('params', allOf([ containsPair('viewId', 'abc'), - ])) + ])), ])); }); @@ -298,7 +298,7 @@ void main() { containsPair('method', kFlushUIThreadTasksMethod), containsPair('params', allOf([ containsPair('isolateId', 'def'), - ])) + ])), ])); }); @@ -306,7 +306,7 @@ void main() { final FakeVmServiceHost fakeVmServiceHost = FakeVmServiceHost( requests: [ const FakeVmServiceRequest(method: 'streamListen', args: { - 'streamId': 'Isolate' + 'streamId': 'Isolate', }), const FakeVmServiceRequest(method: kRunInViewMethod, args: { 'viewId': '1234', @@ -337,7 +337,7 @@ void main() { const FakeVmServiceRequest( method: 'ext.flutter.debugDumpSemanticsTreeInTraversalOrder', args: { - 'isolateId': '1' + 'isolateId': '1', }, errorCode: RPCErrorCodes.kMethodNotFound, ), @@ -356,7 +356,7 @@ void main() { const FakeVmServiceRequest( method: 'ext.flutter.debugDumpSemanticsTreeInInverseHitTestOrder', args: { - 'isolateId': '1' + 'isolateId': '1', }, errorCode: RPCErrorCodes.kMethodNotFound, ), @@ -375,7 +375,7 @@ void main() { const FakeVmServiceRequest( method: 'ext.flutter.debugDumpLayerTree', args: { - 'isolateId': '1' + 'isolateId': '1', }, errorCode: RPCErrorCodes.kMethodNotFound, ), @@ -394,7 +394,7 @@ void main() { const FakeVmServiceRequest( method: 'ext.flutter.debugDumpRenderTree', args: { - 'isolateId': '1' + 'isolateId': '1', }, errorCode: RPCErrorCodes.kMethodNotFound, ), @@ -413,7 +413,7 @@ void main() { const FakeVmServiceRequest( method: 'ext.flutter.debugDumpApp', args: { - 'isolateId': '1' + 'isolateId': '1', }, errorCode: RPCErrorCodes.kMethodNotFound, ), @@ -523,7 +523,7 @@ void main() { { 'layer_unique_id':1512, 'duration_micros':477, - 'snapshot':'' + 'snapshot':'', }, ], }; diff --git a/packages/flutter_tools/test/general.shard/web/devfs_web_test.dart b/packages/flutter_tools/test/general.shard/web/devfs_web_test.dart index cc0f158caecc7..ec9c38ab55b8a 100644 --- a/packages/flutter_tools/test/general.shard/web/devfs_web_test.dart +++ b/packages/flutter_tools/test/general.shard/web/devfs_web_test.dart @@ -45,7 +45,7 @@ void main() { setUpAll(() async { packages = PackageConfig([ - Package('flutter_tools', Uri.file('/flutter_tools/lib/').normalizePath()) + Package('flutter_tools', Uri.file('/flutter_tools/lib/').normalizePath()), ]); }); @@ -110,17 +110,21 @@ void main() { // Missing ending offset. final File manifestMissingOffset = globals.fs.file('manifestA') - ..writeAsStringSync(json.encode({'/foo.js': { - 'code': [0], - 'sourcemap': [0], - 'metadata': [0], - }})); + ..writeAsStringSync(json.encode({ + '/foo.js': { + 'code': [0], + 'sourcemap': [0], + 'metadata': [0], + }, + })); final File manifestOutOfBounds = globals.fs.file('manifest') - ..writeAsStringSync(json.encode({'/foo.js': { - 'code': [0, 100], - 'sourcemap': [0], - 'metadata': [0], - }})); + ..writeAsStringSync(json.encode({ + '/foo.js': { + 'code': [0, 100], + 'sourcemap': [0], + 'metadata': [0], + }, + })); expect(webAssetServer.write(source, manifestMissingOffset, sourcemap, metadata), isEmpty); expect(webAssetServer.write(source, manifestOutOfBounds, sourcemap, metadata), isEmpty); @@ -134,11 +138,13 @@ void main() { final File metadata = globals.fs.file('metadata') ..writeAsStringSync('{}'); final File manifest = globals.fs.file('manifest') - ..writeAsStringSync(json.encode({'/foo.js': { - 'code': [0, source.lengthSync()], - 'sourcemap': [0, 2], - 'metadata': [0, 2], - }})); + ..writeAsStringSync(json.encode({ + '/foo.js': { + 'code': [0, source.lengthSync()], + 'sourcemap': [0, 2], + 'metadata': [0, 2], + }, + })); webAssetServer.write(source, manifest, sourcemap, metadata); final Response response = await webAssetServer @@ -147,7 +153,7 @@ void main() { expect(response.headers, allOf([ containsPair(HttpHeaders.contentLengthHeader, source.lengthSync().toString()), containsPair(HttpHeaders.contentTypeHeader, 'application/javascript'), - containsPair(HttpHeaders.etagHeader, isNotNull) + containsPair(HttpHeaders.etagHeader, isNotNull), ])); expect((await response.read().toList()).first, source.readAsBytesSync()); }, overrides: { @@ -163,11 +169,13 @@ void main() { final File metadata = globals.fs.file('metadata') ..writeAsStringSync(metadataContents); final File manifest = globals.fs.file('manifest') - ..writeAsStringSync(json.encode({'/foo.js': { - 'code': [0, source.lengthSync()], - 'sourcemap': [0, sourcemap.lengthSync()], - 'metadata': [0, metadata.lengthSync()], - }})); + ..writeAsStringSync(json.encode({ + '/foo.js': { + 'code': [0, source.lengthSync()], + 'sourcemap': [0, sourcemap.lengthSync()], + 'metadata': [0, metadata.lengthSync()], + }, + })); webAssetServer.write(source, manifest, sourcemap, metadata); final String merged = await webAssetServer.metadataContents('main_module.ddc_merged_metadata'); @@ -195,7 +203,7 @@ void main() { containsPair(HttpHeaders.contentLengthHeader, source.lengthSync().toString()), containsPair(HttpHeaders.contentTypeHeader, 'image/png'), containsPair(HttpHeaders.etagHeader, isNotNull), - containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate') + containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate'), ])); expect((await response.read().toList()).first, source.readAsBytesSync()); })); @@ -219,7 +227,7 @@ void main() { containsPair(HttpHeaders.contentLengthHeader, source.lengthSync().toString()), containsPair(HttpHeaders.contentTypeHeader, 'image/png'), containsPair(HttpHeaders.etagHeader, isNotNull), - containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate') + containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate'), ])); expect((await response.read().toList()).first, source.readAsBytesSync()); })); @@ -357,7 +365,7 @@ void main() { containsPair(HttpHeaders.contentLengthHeader, '9'), containsPair(HttpHeaders.contentTypeHeader, 'application/javascript'), containsPair(HttpHeaders.etagHeader, isNotNull), - containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate') + containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate'), ])); expect((await response.read().toList()).first, utf8.encode('main() {}')); })); @@ -371,7 +379,7 @@ void main() { final Response cachedResponse = await webAssetServer .handleRequest(Request('GET', Uri.parse('http://foobar/foo.js'), headers: { - HttpHeaders.ifNoneMatchHeader: etag + HttpHeaders.ifNoneMatchHeader: etag, })); expect(cachedResponse.statusCode, HttpStatus.notModified); @@ -450,11 +458,13 @@ void main() { final File metadata = globals.fs.file('metadata') ..writeAsStringSync('{}'); final File manifest = globals.fs.file('manifest') - ..writeAsStringSync(json.encode({'/foo.dart.lib.js': { - 'code': [0, source.lengthSync()], - 'sourcemap': [0, 2], - 'metadata': [0, 2], - }})); + ..writeAsStringSync(json.encode({ + '/foo.dart.lib.js': { + 'code': [0, source.lengthSync()], + 'sourcemap': [0, 2], + 'metadata': [0, 2], + }, + })); webAssetServer.write(source, manifest, sourcemap, metadata); final Response response = await webAssetServer @@ -471,11 +481,13 @@ void main() { final File metadata = globals.fs.file('metadata') ..writeAsStringSync('{}'); final File manifest = globals.fs.file('manifest') - ..writeAsStringSync(json.encode({'/foo.js': { - 'code': [0, source.lengthSync()], - 'sourcemap': [0, 2], - 'metadata': [0, 2], - }})); + ..writeAsStringSync(json.encode({ + '/foo.js': { + 'code': [0, source.lengthSync()], + 'sourcemap': [0, 2], + 'metadata': [0, 2], + }, + })); webAssetServer.write(source, manifest, sourcemap, metadata); final Response response = await webAssetServer .handleRequest(Request('GET', Uri.parse('http://localhost/foo.js'))); @@ -484,7 +496,7 @@ void main() { containsPair(HttpHeaders.contentLengthHeader, source.lengthSync().toString()), containsPair(HttpHeaders.contentTypeHeader, 'application/javascript'), containsPair(HttpHeaders.etagHeader, isNotNull), - containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate') + containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate'), ])); expect((await response.read().toList()).first, source.readAsBytesSync()); }, overrides: { @@ -502,7 +514,7 @@ void main() { containsPair(HttpHeaders.contentLengthHeader, source.lengthSync().toString()), containsPair(HttpHeaders.contentTypeHeader, 'image/png'), containsPair(HttpHeaders.etagHeader, isNotNull), - containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate') + containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate'), ])); expect((await response.read().toList()).first, source.readAsBytesSync()); })); @@ -517,7 +529,7 @@ void main() { containsPair(HttpHeaders.contentLengthHeader, source.lengthSync().toString()), containsPair(HttpHeaders.contentTypeHeader, 'image/png'), containsPair(HttpHeaders.etagHeader, isNotNull), - containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate') + containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate'), ])); expect((await response.read().toList()).first, source.readAsBytesSync()); })); @@ -533,7 +545,7 @@ void main() { containsPair(HttpHeaders.contentLengthHeader, source.lengthSync().toString()), containsPair(HttpHeaders.contentTypeHeader, 'image/png'), containsPair(HttpHeaders.etagHeader, isNotNull), - containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate') + containsPair(HttpHeaders.cacheControlHeader, 'max-age=0, must-revalidate'), ])); expect((await response.read().toList()).first, source.readAsBytesSync()); }, overrides: { diff --git a/packages/flutter_tools/test/general.shard/web/devices_test.dart b/packages/flutter_tools/test/general.shard/web/devices_test.dart index 6f618b07c1b8a..79ce303d92aa9 100644 --- a/packages/flutter_tools/test/general.shard/web/devices_test.dart +++ b/packages/flutter_tools/test/general.shard/web/devices_test.dart @@ -197,8 +197,8 @@ void main() { kLinuxExecutable, '--version', ], - stdout: 'ABC' - ) + stdout: 'ABC', + ), ]); final WebDevices webDevices = WebDevices( featureFlags: TestFeatureFlags(isWebEnabled: true), @@ -243,7 +243,7 @@ void main() { 'version', ], stdout: r'HKEY_CURRENT_USER\Software\Google\Chrome\BLBeacon\ version REG_SZ 74.0.0 A', - ) + ), ]); final WebDevices webDevices = WebDevices( featureFlags: TestFeatureFlags(isWebEnabled: true), diff --git a/packages/flutter_tools/test/general.shard/web/golden_comparator_test.dart b/packages/flutter_tools/test/general.shard/web/golden_comparator_test.dart index e1e5069c8736f..b5913c8723535 100644 --- a/packages/flutter_tools/test/general.shard/web/golden_comparator_test.dart +++ b/packages/flutter_tools/test/general.shard/web/golden_comparator_test.dart @@ -45,7 +45,7 @@ void main() { '--disable-observatory', '--non-interactive', '--packages=.dart_tool/package_config.json', - 'compiler_output' + 'compiler_output', ], stdout: '${jsonEncode(expectedResponse)}\n', environment: const { @@ -79,7 +79,7 @@ void main() { '--disable-observatory', '--non-interactive', '--packages=.dart_tool/package_config.json', - 'compiler_output' + 'compiler_output', ], stdout: '${jsonEncode(expectedResponse)}\n', )); @@ -112,7 +112,7 @@ void main() { '--disable-observatory', '--non-interactive', '--packages=.dart_tool/package_config.json', - 'compiler_output' + 'compiler_output', ], stdout: '${jsonEncode(expectedResponse1)}\n${jsonEncode(expectedResponse2)}\n', )); @@ -148,7 +148,7 @@ void main() { '--disable-observatory', '--non-interactive', '--packages=.dart_tool/package_config.json', - 'compiler_output' + 'compiler_output', ], stdout: '${jsonEncode(expectedResponse1)}\n', )); processManager.addCommand(FakeCommand( @@ -157,7 +157,7 @@ void main() { '--disable-observatory', '--non-interactive', '--packages=.dart_tool/package_config.json', - 'compiler_output' + 'compiler_output', ], stdout: '${jsonEncode(expectedResponse2)}\n', )); @@ -191,7 +191,7 @@ void main() { '--disable-observatory', '--non-interactive', '--packages=.dart_tool/package_config.json', - 'compiler_output' + 'compiler_output', ], stdout: '${jsonEncode(expectedResponse)}\n', stdin: stdin, )); diff --git a/packages/flutter_tools/test/general.shard/web/memory_fs_test.dart b/packages/flutter_tools/test/general.shard/web/memory_fs_test.dart index 0a44755c50469..1626ed4bd156d 100644 --- a/packages/flutter_tools/test/general.shard/web/memory_fs_test.dart +++ b/packages/flutter_tools/test/general.shard/web/memory_fs_test.dart @@ -20,11 +20,13 @@ void main() { final File metadata = fileSystem.file('metadata') ..writeAsStringSync('{}'); final File manifest = fileSystem.file('manifest') - ..writeAsStringSync(json.encode({'/foo.js': { - 'code': [0, source.lengthSync()], - 'sourcemap': [0, 2], - 'metadata': [0, 2], - }})); + ..writeAsStringSync(json.encode({ + '/foo.js': { + 'code': [0, source.lengthSync()], + 'sourcemap': [0, 2], + 'metadata': [0, 2], + }, + })); final WebMemoryFS webMemoryFS = WebMemoryFS(); webMemoryFS.write(source, manifest, sourcemap, metadata); diff --git a/packages/flutter_tools/test/general.shard/web/web_asset_server_test.dart b/packages/flutter_tools/test/general.shard/web/web_asset_server_test.dart index 38764b78b70c0..97fb1dd63759f 100644 --- a/packages/flutter_tools/test/general.shard/web/web_asset_server_test.dart +++ b/packages/flutter_tools/test/general.shard/web/web_asset_server_test.dart @@ -23,7 +23,7 @@ const List kTransparentImage = [ final Platform platform = FakePlatform( environment: { - 'HOME': '/' + 'HOME': '/', }, ); diff --git a/packages/flutter_tools/test/general.shard/windows/install_manifest_test.dart b/packages/flutter_tools/test/general.shard/windows/install_manifest_test.dart deleted file mode 100644 index 2b7fdb8528226..0000000000000 --- a/packages/flutter_tools/test/general.shard/windows/install_manifest_test.dart +++ /dev/null @@ -1,144 +0,0 @@ -// Copyright 2014 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// @dart = 2.8 - -import 'package:file/memory.dart'; -import 'package:file_testing/file_testing.dart'; -import 'package:flutter_tools/src/base/file_system.dart'; -import 'package:flutter_tools/src/base/logger.dart'; -import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/build_info.dart'; -import 'package:flutter_tools/src/project.dart'; -import 'package:flutter_tools/src/windows/install_manifest.dart'; - -import '../../src/common.dart'; -import '../../src/context.dart'; - -final Platform platform = FakePlatform(operatingSystem: 'windows'); - -void main() { - FileSystem fileSystem; - - setUp(() { - fileSystem = MemoryFileSystem.test(style: FileSystemStyle.windows); - }); - - testUsingContext('Generates install manifest for a debug build', () async { - final Logger logger = BufferLogger.test(); - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - final Directory buildDirectory = fileSystem.currentDirectory - .childDirectory('build') - .childDirectory('winuwp'); - - await createManifest( - logger: logger, - fileSystem: fileSystem, - platform: platform, - project: flutterProject.windowsUwp, - buildDirectory: buildDirectory, - buildInfo: BuildInfo.debug, - ); - - final File manifest = flutterProject.windowsUwp.ephemeralDirectory.childFile('install_manifest'); - expect(manifest, exists); - expect(manifest.readAsLinesSync(), unorderedEquals([ - 'C:/build/flutter_assets/kernel_blob.bin', - 'C:/build/flutter_assets/AssetManifest.json', - 'C:/winuwp/flutter/ephemeral/flutter_windows_winuwp.dll', - 'C:/winuwp/flutter/ephemeral/flutter_windows_winuwp.dll.pdb', - 'C:/winuwp/flutter/ephemeral/icudtl.dat', - ])); - }, overrides: { - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - }); - - testUsingContext('Generates install manifest for a release build', () async { - final Logger logger = BufferLogger.test(); - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - final Directory buildDirectory = fileSystem.currentDirectory - .childDirectory('build') - .childDirectory('winuwp'); - - await createManifest( - logger: logger, - fileSystem: fileSystem, - platform: platform, - project: flutterProject.windowsUwp, - buildDirectory: buildDirectory, - buildInfo: BuildInfo.release, - ); - - final File manifest = flutterProject.windowsUwp.ephemeralDirectory.childFile('install_manifest'); - expect(manifest, exists); - expect(manifest.readAsLinesSync(), unorderedEquals([ - 'C:/build/winuwp/app.so', - 'C:/build/flutter_assets/AssetManifest.json', - 'C:/winuwp/flutter/ephemeral/flutter_windows_winuwp.dll', - 'C:/winuwp/flutter/ephemeral/flutter_windows_winuwp.dll.pdb', - 'C:/winuwp/flutter/ephemeral/icudtl.dat' - ])); - }, overrides: { - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - }); - - testUsingContext('Generates install manifest for a release build with assets', () async { - final BufferLogger logger = BufferLogger.test(); - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - final Directory buildDirectory = fileSystem.currentDirectory - .childDirectory('build') - .childDirectory('winuwp'); - - fileSystem.currentDirectory.childDirectory('.dart_tool').childFile('package_config.json') - ..createSync(recursive: true) - ..writeAsStringSync(''' -{ - "configVersion": 2, - "packages": [] -} - -'''); - fileSystem.currentDirectory.childFile('pubspec.yaml') - ..createSync() - ..writeAsStringSync(''' -name: foo - -flutter: - assets: - - assets/foo.png - -'''); - fileSystem.currentDirectory - .childDirectory('assets') - .childFile('foo.png') - .createSync(recursive: true); - - await createManifest( - logger: logger, - fileSystem: fileSystem, - platform: platform, - project: flutterProject.windowsUwp, - buildDirectory: buildDirectory, - buildInfo: BuildInfo.release, - ); - - final File manifest = flutterProject.windowsUwp.ephemeralDirectory.childFile('install_manifest'); - expect(manifest, exists); - expect(manifest.readAsLinesSync(), unorderedEquals([ - 'C:/build/winuwp/app.so', - 'C:/build/flutter_assets/assets/foo.png', - 'C:/build/flutter_assets/AssetManifest.json', - 'C:/build/flutter_assets/FontManifest.json', - 'C:/build/flutter_assets/NOTICES.Z', - 'C:/winuwp/flutter/ephemeral/flutter_windows_winuwp.dll', - 'C:/winuwp/flutter/ephemeral/flutter_windows_winuwp.dll.pdb', - 'C:/winuwp/flutter/ephemeral/icudtl.dat' - ])); - }, overrides: { - FileSystem: () => fileSystem, - ProcessManager: () => FakeProcessManager.any(), - }); -} diff --git a/packages/flutter_tools/test/general.shard/windows/plugins_test.dart b/packages/flutter_tools/test/general.shard/windows/plugins_test.dart index 68337306a2f48..78497d60b2282 100644 --- a/packages/flutter_tools/test/general.shard/windows/plugins_test.dart +++ b/packages/flutter_tools/test/general.shard/windows/plugins_test.dart @@ -13,7 +13,6 @@ import 'package:flutter_tools/src/plugins.dart'; import 'package:flutter_tools/src/project.dart'; import '../../src/common.dart'; -import '../../src/fakes.dart'; const TemplateRenderer renderer = MustacheTemplateRenderer(); @@ -49,7 +48,8 @@ void main() { name: 'test', pluginClass: 'Foo', variants: {PluginPlatformVariant.win32}, - )}, + ), + }, dependencies: [], isDirectDependency: true, ), @@ -63,94 +63,8 @@ void main() { contains('#include '), ); }); - - testWithoutContext('UWP injects plugins marked as UWP-compatible', () async { - final FileSystem fileSystem = MemoryFileSystem.test(); - setUpProject(fileSystem); - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - - await writeWindowsUwpPluginFiles(flutterProject, [ - Plugin( - name: 'test', - path: 'foo', - defaultPackagePlatforms: const {}, - pluginDartClassPlatforms: const {}, - platforms: const { - WindowsPlugin.kConfigKey: WindowsPlugin( - name: 'test', - pluginClass: 'Foo', - variants: {PluginPlatformVariant.winuwp}, - )}, - dependencies: [], - isDirectDependency: true, - ), - ], renderer); - - final Directory managed = flutterProject.windowsUwp.managedDirectory; - expect(flutterProject.windowsUwp.generatedPluginCmakeFile, exists); - expect(managed.childFile('generated_plugin_registrant.h'), exists); - expect( - managed.childFile('generated_plugin_registrant.cc').readAsStringSync(), - contains('#include '), - ); - }); - - testWithoutContext('UWP does not inject Win32-only plugins', () async { - final FileSystem fileSystem = MemoryFileSystem.test(); - setUpProject(fileSystem); - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - - await writeWindowsUwpPluginFiles(flutterProject, [ - Plugin( - name: 'test', - path: 'foo', - defaultPackagePlatforms: const {}, - pluginDartClassPlatforms: const {}, - platforms: const { - WindowsPlugin.kConfigKey: WindowsPlugin( - name: 'test', - pluginClass: 'Foo', - variants: {PluginPlatformVariant.win32}, - )}, - dependencies: [], - isDirectDependency: true, - ), - ], renderer); - - final Directory managed = flutterProject.windowsUwp.managedDirectory; - expect(flutterProject.windowsUwp.generatedPluginCmakeFile, exists); - expect(managed.childFile('generated_plugin_registrant.h'), exists); - expect( - managed.childFile('generated_plugin_registrant.cc').readAsStringSync(), - isNot(contains('#include ')), - ); - }); - - testWithoutContext('Symlink injection treats UWP as Win32', () { - final FileSystem fileSystem = MemoryFileSystem.test(); - setUpProject(fileSystem); - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - flutterProject.flutterPluginsDependenciesFile.writeAsStringSync(kPluginDependencies); - - createPluginSymlinks( - flutterProject, - featureFlagsOverride: TestFeatureFlags(isWindowsUwpEnabled: true), - ); - - expect(flutterProject.windowsUwp.pluginSymlinkDirectory, exists); - - final Link link = flutterProject.windowsUwp.pluginSymlinkDirectory.listSync().single as Link; - - expect(link.path, '/winuwp/flutter/ephemeral/.plugin_symlinks/example'); - expect(link.targetSync(), r'C:\\example\\'); - }); } void setUpProject(FileSystem fileSystem) { fileSystem.file('pubspec.yaml').createSync(); - fileSystem.file('winuwp/CMakeLists.txt') - .createSync(recursive: true); - fileSystem.file('winuwp/project_version') - ..createSync(recursive: true) - ..writeAsStringSync('0'); } diff --git a/packages/flutter_tools/test/general.shard/windows/project_test.dart b/packages/flutter_tools/test/general.shard/windows/project_test.dart deleted file mode 100644 index 5a77c287c356b..0000000000000 --- a/packages/flutter_tools/test/general.shard/windows/project_test.dart +++ /dev/null @@ -1,138 +0,0 @@ -// Copyright 2014 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:file/file.dart'; -import 'package:file/memory.dart'; -import 'package:flutter_tools/src/project.dart'; - -import '../../src/common.dart'; - -const String kExampleManifest = r''' - - - - - - - - @SHORT_NAME@ - CMake Test Cert - Assets/StoreLogo.png - - - - - - - - - - - - - - - - - - - - - - -'''; - -void main() { - testWithoutContext('Project can parse the app version from the appx manifest', () { - final FileSystem fileSystem = MemoryFileSystem.test(); - fileSystem.file('winuwp/runner_uwp/appxmanifest.in') - ..createSync(recursive: true) - ..writeAsStringSync(kExampleManifest); - - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - - expect(flutterProject.windowsUwp.packageVersion, '2.3.1.4'); - }); - - testWithoutContext('Project returns null if appx manifest does not exist', () { - final FileSystem fileSystem = MemoryFileSystem.test(); - - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - - expect(flutterProject.windowsUwp.packageVersion, null); - }); - - testWithoutContext('Project throws a tool exit if appxmanifest is not valid xml', () { - final FileSystem fileSystem = MemoryFileSystem.test(); - fileSystem.file('winuwp/runner_uwp/appxmanifest.in') - ..createSync(recursive: true) - ..writeAsStringSync('['); - - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - - expect(() => flutterProject.windowsUwp.packageVersion, throwsToolExit()); - }); - - testWithoutContext('Can parse the PACKAGE_GUID from the Cmake manifest', () { - final FileSystem fileSystem = MemoryFileSystem.test(); - fileSystem.file('winuwp/runner_uwp/CMakeLists.txt') - ..createSync(recursive: true) - ..writeAsStringSync(r''' -cmake_minimum_required (VERSION 3.8) -set(CMAKE_SYSTEM_NAME WindowsStore) -set(CMAKE_SYSTEM_VERSION 10.0) -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED YES) - -include(CMakePrintHelpers) - -project ("TestBedUWP") - -set(APP_MANIFEST_NAME Package.appxmanifest) -set(APP_MANIFEST_TARGET_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${APP_MANIFEST_NAME}) -set(SHORT_NAME ${BINARY_NAME}) -set(PACKAGE_GUID "F941A77F-8AE1-4E3E-9611-68FBD3C62AE8") - -'''); - - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - - expect(flutterProject.windowsUwp.packageGuid, 'F941A77F-8AE1-4E3E-9611-68FBD3C62AE8'); - }); - - testWithoutContext('Returns null if the PACKAGE_GUID cannot be found in the Cmake file', () { - final FileSystem fileSystem = MemoryFileSystem.test(); - fileSystem.file('winuwp/runner_uwp/CMakeLists.txt') - ..createSync(recursive: true) - ..writeAsStringSync(r''' -cmake_minimum_required (VERSION 3.8) -set(CMAKE_SYSTEM_NAME WindowsStore) -set(CMAKE_SYSTEM_VERSION 10.0) -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED YES) - -include(CMakePrintHelpers) - -project ("TestBedUWP") - -set(APP_MANIFEST_NAME Package.appxmanifest) -set(APP_MANIFEST_TARGET_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${APP_MANIFEST_NAME}) -set(SHORT_NAME ${BINARY_NAME}) -'''); - - final FlutterProject flutterProject = FlutterProject.fromDirectoryTest(fileSystem.currentDirectory); - - expect(flutterProject.windowsUwp.packageGuid, null); - }); -} diff --git a/packages/flutter_tools/test/general.shard/windows/windows_device_test.dart b/packages/flutter_tools/test/general.shard/windows/windows_device_test.dart index 4646884aecfef..9152d8201fee3 100644 --- a/packages/flutter_tools/test/general.shard/windows/windows_device_test.dart +++ b/packages/flutter_tools/test/general.shard/windows/windows_device_test.dart @@ -9,12 +9,9 @@ import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/platform.dart'; import 'package:flutter_tools/src/build_info.dart'; -import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/device.dart'; -import 'package:flutter_tools/src/features.dart'; import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/windows/application_package.dart'; -import 'package:flutter_tools/src/windows/uwptool.dart'; import 'package:flutter_tools/src/windows/windows_device.dart'; import 'package:flutter_tools/src/windows/windows_workflow.dart'; import 'package:test/fake.dart'; @@ -42,46 +39,16 @@ void main() { expect(windowsDevice.supportsRuntimeMode(BuildMode.jitRelease), false); }); - testWithoutContext('WindowsUwpDevice defaults', () async { - final FakeUwpTool uwptool = FakeUwpTool(); - final FileSystem fileSystem = MemoryFileSystem.test(); - final WindowsUWPDevice windowsDevice = setUpWindowsUwpDevice( - fileSystem: fileSystem, - uwptool: uwptool, - ); - final FakeBuildableUwpApp package = FakeBuildableUwpApp(); - - final String packagePath = fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_x64_Debug_Test', 'testapp_1.2.3.4_x64_Debug.msix', - ); - fileSystem.file(packagePath).createSync(recursive:true); - expect(await windowsDevice.targetPlatform, TargetPlatform.windows_uwp_x64); - expect(windowsDevice.name, 'Windows (UWP)'); - expect(await windowsDevice.installApp(package), true); - expect(await windowsDevice.uninstallApp(package), true); - expect(await windowsDevice.isLatestBuildInstalled(package), false); - expect(await windowsDevice.isAppInstalled(package), false); - expect(windowsDevice.category, Category.desktop); - - expect(windowsDevice.supportsRuntimeMode(BuildMode.debug), true); - expect(windowsDevice.supportsRuntimeMode(BuildMode.profile), true); - expect(windowsDevice.supportsRuntimeMode(BuildMode.release), true); - expect(windowsDevice.supportsRuntimeMode(BuildMode.jitRelease), false); - }); - testWithoutContext('WindowsDevices does not list devices if the workflow is unsupported', () async { expect(await WindowsDevices( windowsWorkflow: WindowsWorkflow( featureFlags: TestFeatureFlags(), platform: FakePlatform(operatingSystem: 'windows'), ), - featureFlags: TestFeatureFlags(), operatingSystemUtils: FakeOperatingSystemUtils(), logger: BufferLogger.test(), processManager: FakeProcessManager.any(), fileSystem: MemoryFileSystem.test(), - uwptool: FakeUwpTool(), ).devices, []); }); @@ -95,61 +62,9 @@ void main() { logger: BufferLogger.test(), processManager: FakeProcessManager.any(), fileSystem: MemoryFileSystem.test(), - featureFlags: TestFeatureFlags(isWindowsEnabled: true), - uwptool: FakeUwpTool(), ).devices, hasLength(1)); }); - testWithoutContext('WindowsDevices lists a UWP Windows device if feature is enabled', () async { - final FeatureFlags featureFlags = TestFeatureFlags(isWindowsEnabled: true, isWindowsUwpEnabled: true); - expect(await WindowsDevices( - windowsWorkflow: WindowsWorkflow( - featureFlags: featureFlags, - platform: FakePlatform(operatingSystem: 'windows') - ), - operatingSystemUtils: FakeOperatingSystemUtils(), - logger: BufferLogger.test(), - processManager: FakeProcessManager.any(), - fileSystem: MemoryFileSystem.test(), - featureFlags: featureFlags, - uwptool: FakeUwpTool(), - ).devices, hasLength(2)); - }); - - testWithoutContext('WindowsDevices has windows and winuwp well known devices', () async { - final FeatureFlags featureFlags = TestFeatureFlags(isWindowsEnabled: true, isWindowsUwpEnabled: true); - expect(WindowsDevices( - windowsWorkflow: WindowsWorkflow( - featureFlags: featureFlags, - platform: FakePlatform(operatingSystem: 'windows') - ), - operatingSystemUtils: FakeOperatingSystemUtils(), - logger: BufferLogger.test(), - processManager: FakeProcessManager.any(), - fileSystem: MemoryFileSystem.test(), - featureFlags: featureFlags, - uwptool: FakeUwpTool(), - ).wellKnownIds, ['windows', 'winuwp']); - }); - - testWithoutContext('WindowsDevices ignores the timeout provided to discoverDevices', () async { - final WindowsDevices windowsDevices = WindowsDevices( - windowsWorkflow: WindowsWorkflow( - featureFlags: TestFeatureFlags(isWindowsEnabled: true), - platform: FakePlatform(operatingSystem: 'windows') - ), - operatingSystemUtils: FakeOperatingSystemUtils(), - logger: BufferLogger.test(), - processManager: FakeProcessManager.any(), - fileSystem: MemoryFileSystem.test(), - featureFlags: TestFeatureFlags(isWindowsEnabled: true), - uwptool: FakeUwpTool(), - ); - // Timeout ignored. - final List devices = await windowsDevices.discoverDevices(timeout: const Duration(seconds: 10)); - expect(devices, hasLength(1)); - }); - testWithoutContext('isSupportedForProject is true with editable host app', () async { final FileSystem fileSystem = MemoryFileSystem.test(); final WindowsDevice windowsDevice = setUpWindowsDevice(fileSystem: fileSystem); @@ -191,196 +106,6 @@ void main() { expect(windowsDevice.executablePathForDevice(fakeApp, BuildMode.profile), 'profile/executable'); expect(windowsDevice.executablePathForDevice(fakeApp, BuildMode.release), 'release/executable'); }); - - testWithoutContext('WinUWPDevice installs cert if not installed', () async { - Cache.flutterRoot = ''; - final FakeUwpTool uwptool = FakeUwpTool(); - final FileSystem fileSystem = MemoryFileSystem.test(); - final WindowsUWPDevice windowsDevice = setUpWindowsUwpDevice( - fileSystem: fileSystem, - uwptool: uwptool, - ); - final FakeBuildableUwpApp package = FakeBuildableUwpApp(); - - uwptool.hasValidSignature = false; - final String packagePath = fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_x64_Debug_Test', 'testapp_1.2.3.4_x64_Debug.msix', - ); - fileSystem.file(packagePath).createSync(recursive:true); - final bool result = await windowsDevice.installApp(package); - - expect(result, isTrue); - expect(uwptool.installCertRequests, hasLength(1)); - expect(uwptool.installAppRequests, hasLength(1)); - }); - - testWithoutContext('WinUWPDevice does not install cert if not installed', () async { - Cache.flutterRoot = ''; - final FakeUwpTool uwptool = FakeUwpTool(); - final FileSystem fileSystem = MemoryFileSystem.test(); - final WindowsUWPDevice windowsDevice = setUpWindowsUwpDevice( - fileSystem: fileSystem, - uwptool: uwptool, - ); - final FakeBuildableUwpApp package = FakeBuildableUwpApp(); - - uwptool.hasValidSignature = true; - final String packagePath = fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_x64_Debug_Test', 'testapp_1.2.3.4_x64_Debug.msix', - ); - fileSystem.file(packagePath).createSync(recursive:true); - final bool result = await windowsDevice.installApp(package); - - expect(result, isTrue); - expect(uwptool.installCertRequests, isEmpty); - expect(uwptool.installAppRequests, hasLength(1)); - }); - - testWithoutContext('WinUWPDevice prefers installing multi-arch binaries', () async { - Cache.flutterRoot = ''; - final FakeUwpTool uwptool = FakeUwpTool(); - final FileSystem fileSystem = MemoryFileSystem.test(); - final WindowsUWPDevice windowsDevice = setUpWindowsUwpDevice( - fileSystem: fileSystem, - uwptool: uwptool, - ); - final FakeBuildableUwpApp package = FakeBuildableUwpApp(); - - final String singleArchPath = fileSystem.path.absolute(fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_x64_Debug_Test', 'testapp_1.2.3.4_x64_Debug.msix', - )); - fileSystem.file(singleArchPath).createSync(recursive:true); - final String multiArchPath = fileSystem.path.absolute(fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_Debug_Test', 'testapp_1.2.3.4_Debug.msix', - )); - fileSystem.file(multiArchPath).createSync(recursive:true); - final bool result = await windowsDevice.installApp(package); - - expect(result, isTrue); - expect(uwptool.installAppRequests.single.packageUri, Uri.file(multiArchPath).toString()); - }); - - testWithoutContext('WinUWPDevice falls back to installing single-arch binaries', () async { - Cache.flutterRoot = ''; - final FakeUwpTool uwptool = FakeUwpTool(); - final FileSystem fileSystem = MemoryFileSystem.test(); - final WindowsUWPDevice windowsDevice = setUpWindowsUwpDevice( - fileSystem: fileSystem, - uwptool: uwptool, - ); - final FakeBuildableUwpApp package = FakeBuildableUwpApp(); - - final String singleArchPath = fileSystem.path.absolute(fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_x64_Debug_Test', 'testapp_1.2.3.4_x64_Debug.msix', - )); - fileSystem.file(singleArchPath).createSync(recursive:true); - final bool result = await windowsDevice.installApp(package); - - expect(result, isTrue); - expect(uwptool.installAppRequests.single.packageUri, Uri.file(singleArchPath).toString()); - }); - - testWithoutContext('WinUWPDevice can launch application if cert is installed', () async { - Cache.flutterRoot = ''; - final FakeUwpTool uwptool = FakeUwpTool(); - final FileSystem fileSystem = MemoryFileSystem.test(); - final WindowsUWPDevice windowsDevice = setUpWindowsUwpDevice( - fileSystem: fileSystem, - uwptool: uwptool, - ); - final FakeBuildableUwpApp package = FakeBuildableUwpApp(); - - uwptool.hasValidSignature = true; - final String packagePath = fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_x64_Debug_Test', 'testapp_1.2.3.4_x64_Debug.msix', - ); - fileSystem.file(packagePath).createSync(recursive:true); - final LaunchResult result = await windowsDevice.startApp( - package, - debuggingOptions: DebuggingOptions.enabled(BuildInfo.debug), - prebuiltApplication: true, - platformArgs: {}, - ); - - expect(result.started, true); - expect(uwptool.installCertRequests, isEmpty); - expect(uwptool.launchAppRequests.single.packageFamily, 'PACKAGE-ID_publisher'); - expect(uwptool.launchAppRequests.single.args, [ - '--observatory-port=12345', - '--disable-service-auth-codes', - '--enable-dart-profiling', - '--enable-checked-mode', - '--verify-entry-points', - ]); - }); - - testWithoutContext('WinUWPDevice installs cert and can launch application if cert not installed', () async { - Cache.flutterRoot = ''; - final FakeUwpTool uwptool = FakeUwpTool(); - final FileSystem fileSystem = MemoryFileSystem.test(); - final WindowsUWPDevice windowsDevice = setUpWindowsUwpDevice( - fileSystem: fileSystem, - uwptool: uwptool, - ); - final FakeBuildableUwpApp package = FakeBuildableUwpApp(); - - uwptool.hasValidSignature = false; - final String packagePath = fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_x64_Debug_Test', 'testapp_1.2.3.4_x64_Debug.msix', - ); - fileSystem.file(packagePath).createSync(recursive:true); - final LaunchResult result = await windowsDevice.startApp( - package, - debuggingOptions: DebuggingOptions.enabled(BuildInfo.debug), - prebuiltApplication: true, - platformArgs: {}, - ); - - expect(result.started, true); - expect(uwptool.installCertRequests, isNotEmpty); - expect(uwptool.launchAppRequests.single.packageFamily, 'PACKAGE-ID_publisher'); - expect(uwptool.launchAppRequests.single.args, [ - '--observatory-port=12345', - '--disable-service-auth-codes', - '--enable-dart-profiling', - '--enable-checked-mode', - '--verify-entry-points', - ]); - }); - - testWithoutContext('WinUWPDevice can launch application in release mode', () async { - Cache.flutterRoot = ''; - final FakeUwpTool uwptool = FakeUwpTool(); - final FileSystem fileSystem = MemoryFileSystem.test(); - final WindowsUWPDevice windowsDevice = setUpWindowsUwpDevice( - fileSystem: fileSystem, - uwptool: uwptool, - ); - final FakeBuildableUwpApp package = FakeBuildableUwpApp(); - - final String packagePath = fileSystem.path.join( - 'build', 'winuwp', 'runner_uwp', 'AppPackages', 'testapp', - 'testapp_1.2.3.4_x64_Release_Test', 'testapp_1.2.3.4_x64_Release.msix', - ); - fileSystem.file(packagePath).createSync(recursive:true); - final LaunchResult result = await windowsDevice.startApp( - package, - debuggingOptions: DebuggingOptions.enabled(BuildInfo.release), - prebuiltApplication: true, - platformArgs: {}, - ); - - expect(result.started, true); - expect(uwptool.launchAppRequests.single.packageFamily, 'PACKAGE-ID_publisher'); - expect(uwptool.launchAppRequests.single.args, []); - }); } FlutterProject setUpFlutterProject(Directory directory) { @@ -404,119 +129,7 @@ WindowsDevice setUpWindowsDevice({ ); } -WindowsUWPDevice setUpWindowsUwpDevice({ - FileSystem fileSystem, - Logger logger, - ProcessManager processManager, - UwpTool uwptool, -}) { - return WindowsUWPDevice( - fileSystem: fileSystem ?? MemoryFileSystem.test(), - logger: logger ?? BufferLogger.test(), - processManager: processManager ?? FakeProcessManager.any(), - operatingSystemUtils: FakeOperatingSystemUtils(), - uwptool: uwptool ?? FakeUwpTool(), - ); -} - class FakeWindowsApp extends Fake implements WindowsApp { @override String executable(BuildMode buildMode) => '${buildMode.name}/executable'; } - -class FakeBuildableUwpApp extends Fake implements BuildableUwpApp { - @override - String get id => 'PACKAGE-ID'; - @override - String get name => 'testapp'; - @override - String get projectVersion => '1.2.3.4'; - - // Test helper to get the expected package family. - static const String packageFamily = 'PACKAGE-ID_publisher'; -} - -class FakeUwpTool implements UwpTool { - bool isInstalled = false; - bool hasValidSignature = false; - final List<_GetPackageFamilyRequest> getPackageFamilyRequests = <_GetPackageFamilyRequest>[]; - final List<_LaunchAppRequest> launchAppRequests = <_LaunchAppRequest>[]; - final List<_InstallCertRequest> installCertRequests = <_InstallCertRequest>[]; - final List<_InstallAppRequest> installAppRequests = <_InstallAppRequest>[]; - final List<_UninstallAppRequest> uninstallAppRequests = <_UninstallAppRequest>[]; - - @override - Future> listApps() async { - return isInstalled ? [FakeBuildableUwpApp.packageFamily] : []; - } - - @override - Future getPackageFamilyName(String packageName) async { - getPackageFamilyRequests.add(_GetPackageFamilyRequest(packageName)); - return isInstalled ? FakeBuildableUwpApp.packageFamily : null; - } - - @override - Future launchApp(String packageFamily, List args) async { - launchAppRequests.add(_LaunchAppRequest(packageFamily, args)); - return 42; - } - - @override - Future isSignatureValid(String packagePath) async { - return hasValidSignature; - } - - @override - Future installCertificate(String certificatePath) async { - installCertRequests.add(_InstallCertRequest(certificatePath)); - return true; - } - - @override - Future installApp(String packageUri, List dependencyUris) async { - installAppRequests.add(_InstallAppRequest(packageUri, dependencyUris)); - isInstalled = true; - return true; - } - - @override - Future uninstallApp(String packageFamily) async { - uninstallAppRequests.add(_UninstallAppRequest(packageFamily)); - isInstalled = false; - return true; - } -} - -class _GetPackageFamilyRequest { - const _GetPackageFamilyRequest(this.packageId); - - final String packageId; -} - -class _LaunchAppRequest { - const _LaunchAppRequest(this.packageFamily, this.args); - - final String packageFamily; - final List args; -} - -class _InstallCertRequest { - const _InstallCertRequest(this.certificatePath); - - final String certificatePath; -} - - -class _InstallAppRequest { - const _InstallAppRequest(this.packageUri, this.dependencyUris); - - final String packageUri; - final List dependencyUris; -} - -class _UninstallAppRequest { - const _UninstallAppRequest(this.packageFamily); - - final String packageFamily; -} diff --git a/packages/flutter_tools/test/integration.shard/analyze_once_test.dart b/packages/flutter_tools/test/integration.shard/analyze_once_test.dart index 7418a848a742a..21c2c67743bb7 100644 --- a/packages/flutter_tools/test/integration.shard/analyze_once_test.dart +++ b/packages/flutter_tools/test/integration.shard/analyze_once_test.dart @@ -119,7 +119,7 @@ void main() { 'Analyzing error.dart', "error $analyzerSeparator Target of URI doesn't exist", "error $analyzerSeparator Expected to find ';'", - 'error $analyzerSeparator Unterminated string literal' + 'error $analyzerSeparator Unterminated string literal', ], exitMessageContains: '3 issues found', exitCode: 1 @@ -133,7 +133,7 @@ void main() { 'Analyzing 2 items', "error $analyzerSeparator Target of URI doesn't exist", "error $analyzerSeparator Expected to find ';'", - 'error $analyzerSeparator Unterminated string literal' + 'error $analyzerSeparator Unterminated string literal', ], exitMessageContains: '3 issues found', exitCode: 1 diff --git a/packages/flutter_tools/test/integration.shard/analyze_size_test.dart b/packages/flutter_tools/test/integration.shard/analyze_size_test.dart index 949bf6fe30803..c6b08fa22dc51 100644 --- a/packages/flutter_tools/test/integration.shard/analyze_size_test.dart +++ b/packages/flutter_tools/test/integration.shard/analyze_size_test.dart @@ -26,7 +26,7 @@ void main() { 'build', 'apk', '--analyze-size', - '--target-platform=android-arm64' + '--target-platform=android-arm64', ], workingDirectory: workingDirectory); printOnFailure('Output of flutter build apk:'); @@ -165,7 +165,7 @@ void main() { 'apk', '--analyze-size', '--target-platform=android-arm64', - '--split-debug-info=infos' + '--split-debug-info=infos', ], workingDirectory: fileSystem.path.join(getFlutterRoot(), 'examples', 'hello_world')); expect(result.stderr.toString(), contains('"--analyze-size" cannot be combined with "--split-debug-info"')); diff --git a/packages/flutter_tools/test/integration.shard/debug_adapter/test_adapter_test.dart b/packages/flutter_tools/test/integration.shard/debug_adapter/test_adapter_test.dart index f1827a7778720..b3c2fe67dd6c5 100644 --- a/packages/flutter_tools/test/integration.shard/debug_adapter/test_adapter_test.dart +++ b/packages/flutter_tools/test/integration.shard/debug_adapter/test_adapter_test.dart @@ -50,7 +50,7 @@ void main() { output, [ startsWith('Connecting to VM Service at'), - ..._testsProjectExpectedOutput + ..._testsProjectExpectedOutput, ], allowExtras: true, // Allow for printed call stack etc. ); diff --git a/packages/flutter_tools/test/integration.shard/deferred_components_test.dart b/packages/flutter_tools/test/integration.shard/deferred_components_test.dart index 359059ba9d7e8..dc3fb5517a144 100644 --- a/packages/flutter_tools/test/integration.shard/deferred_components_test.dart +++ b/packages/flutter_tools/test/integration.shard/deferred_components_test.dart @@ -35,7 +35,7 @@ void main() { ...getLocalEngineArguments(), 'build', 'appbundle', - '--target-platform=android-arm64' + '--target-platform=android-arm64', ], workingDirectory: tempDir.path); expect(result.exitCode, 0); @@ -113,7 +113,7 @@ void main() { ...getLocalEngineArguments(), 'build', 'appbundle', - '--no-deferred-components' + '--no-deferred-components', ], workingDirectory: tempDir.path); expect(result.stdout.toString().contains('app-release.aab'), true); diff --git a/packages/flutter_tools/test/integration.shard/downgrade_upgrade_integration_test.dart b/packages/flutter_tools/test/integration.shard/downgrade_upgrade_integration_test.dart index 07497676fdc3c..395a117653400 100644 --- a/packages/flutter_tools/test/integration.shard/downgrade_upgrade_integration_test.dart +++ b/packages/flutter_tools/test/integration.shard/downgrade_upgrade_integration_test.dart @@ -86,7 +86,7 @@ void main() { flutterBin, 'upgrade', '--verbose', - '--working-directory=${testDirectory.path}' + '--working-directory=${testDirectory.path}', ], workingDirectory: testDirectory.path, trace: true); expect(exitCode, 0); @@ -107,7 +107,7 @@ void main() { flutterBin, 'downgrade', '--no-prompt', - '--working-directory=${testDirectory.path}' + '--working-directory=${testDirectory.path}', ], workingDirectory: testDirectory.path, trace: true); expect(exitCode, 0); diff --git a/packages/flutter_tools/test/integration.shard/test_data/deferred_components_project.dart b/packages/flutter_tools/test/integration.shard/test_data/deferred_components_project.dart index ea8af435671ac..27040a4115511 100644 --- a/packages/flutter_tools/test/integration.shard/test_data/deferred_components_project.dart +++ b/packages/flutter_tools/test/integration.shard/test_data/deferred_components_project.dart @@ -477,7 +477,7 @@ class BasicDeferredComponentsConfig extends DeferredComponentsConfig { 0xe5, 0x87, 0x64, 0x4d, 0x36, 0x12, 0x40, 0xc4, 0x67, 0x78, 0xce, 0x38, 0x60, 0x24, 0xdf, 0x3c, 0xc0, 0xbb, 0xf7, 0x7d, 0x2f, 0x66, 0x56, 0xfb, 0xfa, 0x75, 0x2a, 0xe5, 0x23, 0x7a, 0xad, 0x5c, 0xef, 0x2d, 0xa1, 0xb6, 0x7c, 0xbd, 0xfa, 0xb3, 0xdc, 0x68, 0x55, 0xd1, 0xa0, 0xac, 0x8c, 0x06, - 0x62, 0x21, 0xe9, 0x7d, 0x64, 0xd0, 0x60, 0xb3, 0x12, 0x2e, 0x6a, 0x50, 0xf4 + 0x62, 0x21, 0xe9, 0x7d, 0x64, 0xd0, 0x60, 0xb3, 0x12, 0x2e, 0x6a, 0x50, 0xf4, ]; @override diff --git a/packages/flutter_tools/test/integration.shard/test_driver.dart b/packages/flutter_tools/test/integration.shard/test_driver.dart index 71ebbc27a200f..9ae3dc115a840 100644 --- a/packages/flutter_tools/test/integration.shard/test_driver.dart +++ b/packages/flutter_tools/test/integration.shard/test_driver.dart @@ -520,7 +520,7 @@ class FlutterRunTestDriver extends FlutterTestDriver { ...[ 'chrome', '--web-run-headless', - if (!expressionEvaluation) '--no-web-enable-expression-evaluation' + if (!expressionEvaluation) '--no-web-enable-expression-evaluation', ] else 'flutter-tester', diff --git a/packages/flutter_tools/test/integration.shard/test_test.dart b/packages/flutter_tools/test/integration.shard/test_test.dart index c8aef8f09df4a..778b2171211e7 100644 --- a/packages/flutter_tools/test/integration.shard/test_test.dart +++ b/packages/flutter_tools/test/integration.shard/test_test.dart @@ -37,7 +37,7 @@ void main() { [ flutterBin, 'pub', - 'get' + 'get', ], workingDirectory: flutterTestDirectory ); @@ -45,7 +45,7 @@ void main() { [ flutterBin, 'pub', - 'get' + 'get', ], workingDirectory: missingDependencyDirectory ); diff --git a/packages/flutter_tools/test/src/custom_devices_common.dart b/packages/flutter_tools/test/src/custom_devices_common.dart index 18c2178a23685..4dcb19e5fb391 100644 --- a/packages/flutter_tools/test/src/custom_devices_common.dart +++ b/packages/flutter_tools/test/src/custom_devices_common.dart @@ -18,7 +18,7 @@ void writeCustomDevicesConfigFile( { 'custom-devices': configs != null ? configs.map((CustomDeviceConfig c) => c.toJson()).toList() : - json + json, }, )); } @@ -58,5 +58,5 @@ const Map testConfigJson = { 'uninstall': ['testuninstall'], 'runDebug': ['testrundebug'], 'forwardPort': ['testforwardport'], - 'forwardPortSuccessRegex': 'testforwardportsuccess' + 'forwardPortSuccessRegex': 'testforwardportsuccess', }; diff --git a/packages/flutter_tools/test/src/fake_devices.dart b/packages/flutter_tools/test/src/fake_devices.dart index ffa74fadc742f..7109d998a5fa4 100644 --- a/packages/flutter_tools/test/src/fake_devices.dart +++ b/packages/flutter_tools/test/src/fake_devices.dart @@ -28,8 +28,8 @@ List fakeDevices = [ 'fastStart': false, 'flutterExit': true, 'hardwareRendering': true, - 'startPaused': true - } + 'startPaused': true, + }, } ), FakeDeviceJsonData( @@ -50,9 +50,9 @@ List fakeDevices = [ 'fastStart': false, 'flutterExit': true, 'hardwareRendering': true, - 'startPaused': true - } - } + 'startPaused': true, + }, + }, ), ]; diff --git a/packages/flutter_tools/test/src/fake_vm_services.dart b/packages/flutter_tools/test/src/fake_vm_services.dart index 7a40580daf35d..f90bc3cd58e03 100644 --- a/packages/flutter_tools/test/src/fake_vm_services.dart +++ b/packages/flutter_tools/test/src/fake_vm_services.dart @@ -53,7 +53,7 @@ class FakeVmServiceHost { 'error': { 'code': fakeRequest.errorCode, 'message': 'error', - } + }, })); } _applyStreamListen(); diff --git a/packages/flutter_tools/test/src/fakes.dart b/packages/flutter_tools/test/src/fakes.dart index 8ace19f6ade14..0233240c1f788 100644 --- a/packages/flutter_tools/test/src/fakes.dart +++ b/packages/flutter_tools/test/src/fakes.dart @@ -22,7 +22,7 @@ class FakeDyldEnvironmentArtifact extends ArtifactSet { FakeDyldEnvironmentArtifact() : super(DevelopmentArtifact.iOS); @override Map get environment => { - 'DYLD_LIBRARY_PATH': '/path/to/libraries' + 'DYLD_LIBRARY_PATH': '/path/to/libraries', }; @override @@ -425,7 +425,6 @@ class TestFeatureFlags implements FeatureFlags { this.isIOSEnabled = true, this.isFuchsiaEnabled = false, this.areCustomDevicesEnabled = false, - this.isWindowsUwpEnabled = false, }); @override @@ -455,9 +454,6 @@ class TestFeatureFlags implements FeatureFlags { @override final bool areCustomDevicesEnabled; - @override - final bool isWindowsUwpEnabled; - @override bool isEnabled(Feature feature) { switch (feature) { @@ -479,8 +475,6 @@ class TestFeatureFlags implements FeatureFlags { return isFuchsiaEnabled; case flutterCustomDevicesFeature: return areCustomDevicesEnabled; - case windowsUwpEmbedding: - return isWindowsUwpEnabled; } return false; } diff --git a/packages/flutter_tools/test/web.shard/chrome_test.dart b/packages/flutter_tools/test/web.shard/chrome_test.dart index 56225b365b62a..12d498d650379 100644 --- a/packages/flutter_tools/test/web.shard/chrome_test.dart +++ b/packages/flutter_tools/test/web.shard/chrome_test.dart @@ -214,7 +214,7 @@ void main() { 'example_url', ], stderr: kDevtoolsStderr, - ) + ), ]); await expectReturnsNormallyLater( @@ -253,7 +253,7 @@ void main() { 'example_url', ], stderr: kDevtoolsStderr, - ) + ), ]); await expectReturnsNormallyLater( diff --git a/packages/flutter_tools/test/web.shard/vm_service_web_test.dart b/packages/flutter_tools/test/web.shard/vm_service_web_test.dart index a0f5bd7a01ddf..6c81d04bcacf5 100644 --- a/packages/flutter_tools/test/web.shard/vm_service_web_test.dart +++ b/packages/flutter_tools/test/web.shard/vm_service_web_test.dart @@ -60,8 +60,8 @@ void main() { await Future.wait(>[ validateFlutterVersion(client1), - validateFlutterVersion(client2)] - ); + validateFlutterVersion(client2), + ]); }, skip: true); // https://github.com/flutter/flutter/issues/99003 }); diff --git a/packages/flutter_tools/tool/daemon_client.dart b/packages/flutter_tools/tool/daemon_client.dart index 8e31d7f155263..bb9ebefc05ac2 100644 --- a/packages/flutter_tools/tool/daemon_client.dart +++ b/packages/flutter_tools/tool/daemon_client.dart @@ -73,7 +73,7 @@ Future main() async { 'params': { 'emulatorId': words[1], if (words.contains('coldBoot')) - 'coldBoot': true + 'coldBoot': true, }, }); } else if (line == 'enable') { diff --git a/packages/fuchsia_remote_debug_protocol/test/src/common/network_test.dart b/packages/fuchsia_remote_debug_protocol/test/src/common/network_test.dart index cd250280dfa51..46477c57c2bbf 100644 --- a/packages/fuchsia_remote_debug_protocol/test/src/common/network_test.dart +++ b/packages/fuchsia_remote_debug_protocol/test/src/common/network_test.dart @@ -8,8 +8,11 @@ import '../../common.dart'; void main() { final List ipv4Addresses = ['127.0.0.1', '8.8.8.8']; - final List ipv6Addresses = ['::1', - 'fe80::8eae:4cff:fef4:9247', 'fe80::8eae:4cff:fef4:9247%e0']; + final List ipv6Addresses = [ + '::1', + 'fe80::8eae:4cff:fef4:9247', + 'fe80::8eae:4cff:fef4:9247%e0', + ]; group('test validation', () { test('isIpV4Address', () { diff --git a/packages/integration_test/lib/common.dart b/packages/integration_test/lib/common.dart index 67a61c3f22f54..6e0f818bae729 100644 --- a/packages/integration_test/lib/common.dart +++ b/packages/integration_test/lib/common.dart @@ -65,7 +65,7 @@ class Response { String toJson() => json.encode({ 'result': allTestsPassed.toString(), 'failureDetails': _failureDetailsAsString(), - if (data != null) 'data': data + if (data != null) 'data': data, }); /// Deserializes the result from JSON. diff --git a/packages/integration_test/lib/integration_test.dart b/packages/integration_test/lib/integration_test.dart index 157ea497e886e..d4fe3a3309055 100644 --- a/packages/integration_test/lib/integration_test.dart +++ b/packages/integration_test/lib/integration_test.dart @@ -60,7 +60,7 @@ class IntegrationTestWidgetsFlutterBinding extends LiveTestWidgetsFlutterBinding return MapEntry(name, result.details); } return MapEntry(name, result); - }) + }), }, ); } on MissingPluginException { diff --git a/packages/integration_test/test/binding_fail_test.dart b/packages/integration_test/test/binding_fail_test.dart index d293f56cc0625..f28d1f9dd98b4 100644 --- a/packages/integration_test/test/binding_fail_test.dart +++ b/packages/integration_test/test/binding_fail_test.dart @@ -80,7 +80,7 @@ Future?> _runTest(String scriptPath) async { } return >[ if (json != null) - json as Map + json as Map, ]; }) .where((Map testEvent) => testEvent['type'] == 'print')