| // 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:build/build.dart'; |
| import 'package:flutter_tools/src/build_runner/build_script.dart'; |
| import 'package:mockito/mockito.dart'; |
| |
| import '../../src/common.dart'; |
| |
| void main() { |
| MockBuildStep mockBuildStep; |
| AssetId inputId; |
| |
| setUp(() { |
| mockBuildStep = MockBuildStep(); |
| inputId = AssetId('hello_world', 'lib/main.dart'); |
| when(mockBuildStep.inputId).thenReturn(inputId); |
| when(mockBuildStep.readAsString(any)).thenAnswer((Invocation invocation) async { |
| return 'void main() { }'; |
| }); |
| |
| }); |
| |
| test('FlutterWebShellBuilder correctly configures platform', () async { |
| const FlutterWebShellBuilder builder = FlutterWebShellBuilder( |
| hasPlugins: false, |
| initializePlatform: true, |
| ); |
| |
| await builder.build(mockBuildStep); |
| |
| verify(mockBuildStep.writeAsString(any, argThat(contains('if (true) ' |
| '{\n await ui.webOnlyInitializePlatform')))).called(1); |
| }); |
| |
| test('FlutterWebShellBuilder correctly configures does not platform', () async { |
| const FlutterWebShellBuilder builder = FlutterWebShellBuilder( |
| hasPlugins: false, |
| initializePlatform: false, |
| ); |
| |
| await builder.build(mockBuildStep); |
| |
| verify(mockBuildStep.writeAsString(any, argThat(contains('if (false) ' |
| '{\n await ui.webOnlyInitializePlatform')))).called(1); |
| }); |
| |
| test('FlutterWebShellBuilder correctly configures plugins', () async { |
| const FlutterWebShellBuilder builder = FlutterWebShellBuilder( |
| hasPlugins: true, |
| initializePlatform: true, |
| ); |
| |
| await builder.build(mockBuildStep); |
| |
| verify(mockBuildStep.writeAsString(any, |
| argThat(contains('registerPlugins(webPluginRegistry)')))).called(1); |
| }); |
| |
| test('FlutterWebShellBuilder correctly does not configure plugins', () async { |
| const FlutterWebShellBuilder builder = FlutterWebShellBuilder( |
| hasPlugins: false, |
| initializePlatform: true, |
| ); |
| |
| await builder.build(mockBuildStep); |
| |
| verify(mockBuildStep.writeAsString(any, |
| argThat(isNot(contains('registerPlugins(webPluginRegistry)'))))).called(1); |
| }); |
| } |
| |
| class MockBuildStep extends Mock implements BuildStep {} |