mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
54 lines
2.3 KiB
Dart
54 lines
2.3 KiB
Dart
// Copyright 2019 The Chromium 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:flutter_tools/src/artifacts.dart';
|
|
import 'package:flutter_tools/src/base/file_system.dart';
|
|
import 'package:flutter_tools/src/base/io.dart';
|
|
import 'package:flutter_tools/src/base/logger.dart';
|
|
import 'package:flutter_tools/src/globals.dart';
|
|
import 'package:flutter_tools/src/web/compile.dart';
|
|
import 'package:mockito/mockito.dart';
|
|
import 'package:process/process.dart';
|
|
|
|
import '../src/context.dart';
|
|
|
|
void main() {
|
|
final MockProcessManager mockProcessManager = MockProcessManager();
|
|
final MockProcess mockProcess = MockProcess();
|
|
final BufferLogger mockLogger = BufferLogger();
|
|
|
|
testUsingContext('invokes dart2js with correct arguments', () async {
|
|
const WebCompiler webCompiler = WebCompiler();
|
|
final String engineDartPath = artifacts.getArtifactPath(Artifact.engineDartBinary);
|
|
final String dart2jsPath = artifacts.getArtifactPath(Artifact.dart2jsSnapshot);
|
|
final String flutterPatchedSdkPath = artifacts.getArtifactPath(Artifact.flutterPatchedSdkPath);
|
|
final String librariesPath = fs.path.join(flutterPatchedSdkPath, 'libraries.json');
|
|
|
|
when(mockProcess.stdout).thenAnswer((Invocation invocation) => const Stream<List<int>>.empty());
|
|
when(mockProcess.stderr).thenAnswer((Invocation invocation) => const Stream<List<int>>.empty());
|
|
when(mockProcess.exitCode).thenAnswer((Invocation invocation) async => 0);
|
|
when(mockProcessManager.start(any)).thenAnswer((Invocation invocation) async => mockProcess);
|
|
when(mockProcessManager.canRun(engineDartPath)).thenReturn(true);
|
|
|
|
await webCompiler.compile(target: 'lib/main.dart');
|
|
|
|
final String outputPath = fs.path.join('build', 'web', 'main.dart.js');
|
|
verify(mockProcessManager.start(<String>[
|
|
engineDartPath,
|
|
dart2jsPath,
|
|
'lib/main.dart',
|
|
'-o',
|
|
outputPath,
|
|
'--libraries-spec=$librariesPath',
|
|
'--platform-binaries=$flutterPatchedSdkPath',
|
|
'-m',
|
|
])).called(1);
|
|
}, overrides: <Type, Generator>{
|
|
ProcessManager: () => mockProcessManager,
|
|
Logger: () => mockLogger,
|
|
});
|
|
}
|
|
|
|
class MockProcessManager extends Mock implements ProcessManager {}
|
|
class MockProcess extends Mock implements Process {} |