// 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:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/build_system/build_system.dart'; import 'package:flutter_tools/src/bundle.dart'; import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import '../src/common.dart'; import '../src/context.dart'; import '../src/fakes.dart'; // Tests for the temporary flutter assemble/bundle shim. void main() { testUsingContext('Copies assets to expected directory after building', () async { await buildWithAssemble( buildMode: BuildMode.debug, flutterProject: FlutterProject.fromDirectoryTest(globals.fs.currentDirectory), mainPath: globals.fs.path.join('lib', 'main.dart'), outputDir: 'example', targetPlatform: TargetPlatform.ios, depfilePath: 'example.d', treeShakeIcons: false, ); expect(globals.fs.file(globals.fs.path.join('example', 'kernel_blob.bin')).existsSync(), true); expect(globals.fs.file(globals.fs.path.join('example', 'LICENSE')).existsSync(), true); expect(globals.fs.file(globals.fs.path.join('example.d')).existsSync(), false); }, overrides: { FileSystem: () => MemoryFileSystem.test(), ProcessManager: () => FakeProcessManager.any(), BuildSystem: () => TestBuildSystem.all(BuildResult(success: true), (Target target, Environment environment) { environment.outputDir.childFile('kernel_blob.bin').createSync(recursive: true); environment.outputDir.childFile('isolate_snapshot_data').createSync(); environment.outputDir.childFile('vm_snapshot_data').createSync(); environment.outputDir.childFile('LICENSE').createSync(recursive: true); }), }); testUsingContext('Handles build system failure', () { expect(() => buildWithAssemble( buildMode: BuildMode.debug, flutterProject: FlutterProject.fromDirectoryTest(globals.fs.currentDirectory), mainPath: 'lib/main.dart', outputDir: 'example', targetPlatform: TargetPlatform.linux_x64, depfilePath: 'example.d', treeShakeIcons: false, ), throwsToolExit()); }, overrides: { FileSystem: () => MemoryFileSystem.test(), ProcessManager: () => FakeProcessManager.any(), BuildSystem: () => TestBuildSystem.all(BuildResult(success: false)), }); }