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 library pub_tests; | 5 library pub_tests; |
6 | 6 |
7 import 'package:scheduled_test/scheduled_test.dart'; | 7 import 'package:scheduled_test/scheduled_test.dart'; |
8 | 8 |
9 import '../../../lib/src/exit_codes.dart' as exit_codes; | 9 import '../../../lib/src/exit_codes.dart' as exit_codes; |
10 import '../../descriptor.dart' as d; | 10 import '../../descriptor.dart' as d; |
11 import '../../test_pub.dart'; | 11 import '../../test_pub.dart'; |
12 | 12 |
13 main() { | 13 main() { |
14 initConfig(); | 14 initConfig(); |
15 integration('handles failure to reinstall some packages', () { | 15 integration('handles failure to reinstall some packages', () { |
16 // Only serve two packages so repairing will have a failure. | 16 // Only serve two packages so repairing will have a failure. |
17 servePackages((builder) { | 17 servePackages((builder) { |
18 builder.serve("foo", "1.2.3"); | 18 builder.serve("foo", "1.2.3"); |
19 builder.serve("foo", "1.2.5"); | 19 builder.serve("foo", "1.2.5"); |
20 }); | 20 }); |
21 | 21 |
22 // Set up a cache with some packages. | 22 // Set up a cache with some packages. |
23 d.dir(cachePath, [ | 23 d.dir( |
24 d.dir('hosted', [ | 24 cachePath, |
25 d.async(port.then((p) => d.dir('localhost%58$p', [ | 25 [ |
26 d.dir("foo-1.2.3", [ | 26 d.dir( |
27 d.libPubspec("foo", "1.2.3"), | 27 'hosted', |
28 d.file("broken.txt") | 28 [ |
29 ]), | 29 d.async( |
30 d.dir("foo-1.2.4", [ | 30 port.then( |
31 d.libPubspec("foo", "1.2.4"), | 31 (p) => |
32 d.file("broken.txt") | 32 d.dir( |
33 ]), | 33 'localhost%58$p', |
34 d.dir("foo-1.2.5", [ | 34 [ |
35 d.libPubspec("foo", "1.2.5"), | 35 d.dir("foo-1.2.3", [d.libPubspec("foo",
"1.2.3"), d.file("broken.txt")]), |
36 d.file("broken.txt") | 36 d.dir("foo-1.2.4", [d.libPubspec("foo",
"1.2.4"), d.file("broken.txt")]), |
37 ]) | 37 d.dir( |
38 ]))) | 38 "foo-1.2.5", |
39 ]) | 39 [d.libPubspec("foo", "1.2.5"), d.fil
e("broken.txt")])])))])]).create(); |
40 ]).create(); | |
41 | 40 |
42 // Repair them. | 41 // Repair them. |
43 var pub = startPub(args: ["cache", "repair"]); | 42 var pub = startPub(args: ["cache", "repair"]); |
44 | 43 |
45 pub.stdout.expect("Downloading foo 1.2.3..."); | 44 pub.stdout.expect("Downloading foo 1.2.3..."); |
46 pub.stdout.expect("Downloading foo 1.2.4..."); | 45 pub.stdout.expect("Downloading foo 1.2.4..."); |
47 pub.stdout.expect("Downloading foo 1.2.5..."); | 46 pub.stdout.expect("Downloading foo 1.2.5..."); |
48 | 47 |
49 pub.stderr.expect(startsWith("Failed to repair foo 1.2.4. Error:")); | 48 pub.stderr.expect(startsWith("Failed to repair foo 1.2.4. Error:")); |
50 pub.stderr.expect("HTTP error 404: Not Found"); | 49 pub.stderr.expect("HTTP error 404: Not Found"); |
51 | 50 |
52 pub.stdout.expect("Reinstalled 2 packages."); | 51 pub.stdout.expect("Reinstalled 2 packages."); |
53 pub.stdout.expect("Failed to reinstall 1 package."); | 52 pub.stdout.expect("Failed to reinstall 1 package."); |
54 | 53 |
55 pub.shouldExit(exit_codes.UNAVAILABLE); | 54 pub.shouldExit(exit_codes.UNAVAILABLE); |
56 }); | 55 }); |
57 } | 56 } |
OLD | NEW |