blob: 739d55f7dc0d710c392ffdfa168488a10115c226 [file] [log] [blame]
// 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 {}