OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 import 'dart:io'; | 5 import 'dart:io'; |
6 | 6 |
7 import 'package:path/path.dart' as path; | 7 import 'package:path/path.dart' as path; |
8 import 'package:async_helper/async_helper.dart'; | 8 import 'package:async_helper/async_helper.dart'; |
9 import 'package:expect/expect.dart'; | 9 import 'package:expect/expect.dart'; |
10 import 'source_map_validator_helper.dart'; | 10 import 'source_map_validator_helper.dart'; |
11 | 11 |
12 void main() { | 12 void main() { |
13 asyncTest(() async { | 13 asyncTest(() async { |
14 Directory tmpDir = await createTempDir(); | 14 Directory tmpDir = await createTempDir(); |
15 try { | 15 try { |
16 Directory sunflowerDir = new Directory.fromUri( | 16 Directory sunflowerDir = new Directory.fromUri( |
17 Platform.script.resolve('../../../third_party/sunflower')); | 17 Platform.script.resolve('../../../third_party/sunflower')); |
18 | 18 |
19 print("Copying '${sunflowerDir.path}' to '${tmpDir.path}'."); | 19 print("Copying '${sunflowerDir.path}' to '${tmpDir.path}'."); |
20 copyDirectory(sunflowerDir, tmpDir); | 20 copyDirectory(sunflowerDir, tmpDir); |
21 String ext = Platform.isWindows ? '.bat' : ''; | 21 String ext = Platform.isWindows ? '.bat' : ''; |
22 String command = path.normalize(path.join( | 22 String command = path.normalize(path.join( |
23 path.fromUri(Platform.script), '../../../../sdk/bin/pub${ext}')); | 23 path.fromUri(Platform.script), '../../../../sdk/bin/pub${ext}')); |
24 String file = path.join(tmpDir.path, 'build/web/sunflower.dart.js'); | 24 String file = path.join(tmpDir.path, 'build/web/sunflower.dart.js'); |
25 | 25 |
26 print("Running '$command get' from '${tmpDir}'."); | 26 // sunflower/pubspec.yaml only depends on package:browser for Dartium, we |
27 ProcessResult getResult = | 27 // override the file to remove this dependency and make pub-get --offline |
28 await Process.run(command, ['get'], workingDirectory: tmpDir.path); | 28 // trivially succeed. |
| 29 print("Overriding '${tmpDir.path}/pubspec.yaml'."); |
| 30 new File(path.join(tmpDir.path, "pubspec.yaml")) |
| 31 .writeAsStringSync(_newPubspec); |
| 32 |
| 33 print("Running '$command get --offline' from '${tmpDir}'."); |
| 34 ProcessResult getResult = await Process.run(command, ['get', '--offline'], |
| 35 workingDirectory: tmpDir.path); |
29 print(getResult.stdout); | 36 print(getResult.stdout); |
30 print(getResult.stderr); | 37 print(getResult.stderr); |
31 Expect.equals(0, getResult.exitCode, 'Unexpected exitCode from pub get'); | 38 Expect.equals(0, getResult.exitCode, 'Unexpected exitCode from pub get'); |
32 | 39 |
33 print("Running '$command build --mode=debug' from '${tmpDir}'."); | 40 print("Running '$command build --mode=debug' from '${tmpDir}'."); |
34 ProcessResult buildResult = await Process.run( | 41 ProcessResult buildResult = await Process.run( |
35 command, ['build', '--mode=debug'], | 42 command, ['build', '--mode=debug'], |
36 workingDirectory: tmpDir.path); | 43 workingDirectory: tmpDir.path); |
37 print(buildResult.stdout); | 44 print(buildResult.stdout); |
38 print(buildResult.stderr); | 45 print(buildResult.stderr); |
39 Expect.equals(0, buildResult.exitCode, 'Unexpected exitCode from pub'); | 46 Expect.equals(0, buildResult.exitCode, 'Unexpected exitCode from pub'); |
40 validateSourceMap(new Uri.file(file, windows: Platform.isWindows)); | 47 validateSourceMap(new Uri.file(file, windows: Platform.isWindows)); |
41 print("Deleting '${tmpDir.path}'."); | 48 print("Deleting '${tmpDir.path}'."); |
42 } finally { | 49 } finally { |
43 tmpDir.deleteSync(recursive: true); | 50 tmpDir.deleteSync(recursive: true); |
44 } | 51 } |
45 }); | 52 }); |
46 } | 53 } |
| 54 |
| 55 String _newPubspec = ''' |
| 56 # Generated by test |
| 57 name: sunflower |
| 58 version: 0.0.0 |
| 59 '''; |
OLD | NEW |