OLD | NEW |
---|---|
(Empty) | |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | |
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. | |
4 | |
5 library check_sdk_test; | |
6 | |
7 import "test_pub.dart"; | |
8 import "../../../pkg/unittest/lib/unittest.dart"; | |
9 | |
10 main() { | |
11 initConfig(); | |
12 | |
13 for (var command in ["install", "update"]) { | |
14 var success = "Dependencies installed!\$"; | |
nweiz
2013/01/31 22:38:53
I'd make these RegExps, and use r""-style strings.
Bob Nystrom
2013/02/01 16:53:29
Done.
| |
15 if (command == "update") { | |
16 success = "Dependencies updated!\$"; | |
17 } | |
18 | |
19 integration("gives a friendly message if there are no constraints", () { | |
20 dir(appPath, [ | |
21 pubspec({"name": "myapp"}), | |
22 ]).scheduleCreate(); | |
23 | |
24 schedulePub(args: [command], | |
25 output: new RegExp(success)); | |
26 }); | |
27 | |
28 integration("gives an error if the root package does not match", () { | |
29 dir(appPath, [ | |
30 pubspec({ | |
31 "name": "myapp", | |
32 "environment": {"sdk": ">2.0.0"} | |
33 }) | |
34 ]).scheduleCreate(); | |
35 | |
36 schedulePub(args: [command], | |
37 error: | |
38 """ | |
39 Some packages are not compatible with SDK version 0.1.2+3: | |
40 - 'myapp' requires >2.0.0 | |
41 | |
42 You may be able to resolve this by upgrading to the latest Dart SDK | |
43 or adding a version constraint to use an older version of a package. | |
44 """); | |
45 }); | |
46 | |
47 integration("gives an error if some dependencies do not match", () { | |
48 // Using an SDK source, but this should be true of all sources. | |
49 dir(sdkPath, [ | |
50 dir("pkg", [ | |
51 dir("foo", [ | |
52 libPubspec("foo", "0.0.1", sdk: ">0.1.3"), | |
53 libDir("foo") | |
54 ]), | |
55 dir("bar", [ | |
56 libPubspec("bar", "0.0.1", sdk: ">0.1.1"), | |
57 libDir("bar") | |
58 ]) | |
59 ]) | |
60 ]).scheduleCreate(); | |
61 | |
62 dir(appPath, [ | |
63 pubspec({ | |
64 "name": "myapp", | |
65 "dependencies": { | |
66 "foo": { "sdk": "foo" }, | |
67 "bar": { "sdk": "bar" } | |
68 }, | |
69 "environment": {"sdk": ">2.0.0"} | |
70 }) | |
71 ]).scheduleCreate(); | |
72 | |
73 schedulePub(args: [command], | |
74 error: | |
75 """ | |
76 Some packages are not compatible with SDK version 0.1.2+3: | |
77 - 'myapp' requires >2.0.0 | |
78 - 'foo' requires >0.1.3 | |
79 | |
80 You may be able to resolve this by upgrading to the latest Dart SDK | |
81 or adding a version constraint to use an older version of a package. | |
82 """); | |
83 }); | |
84 | |
85 integration("gives an error if a transitive dependency doesn't match", () { | |
86 // Using an SDK source, but this should be true of all sources. | |
87 dir(sdkPath, [ | |
88 dir("pkg", [ | |
89 dir("foo", [ | |
90 libPubspec("foo", "0.0.1", deps: [ | |
91 {"sdk": "bar"} | |
92 ]), | |
93 libDir("foo") | |
94 ]), | |
95 dir("bar", [ | |
96 libPubspec("bar", "0.0.1", sdk: "<0.1.1"), | |
97 libDir("bar") | |
98 ]) | |
99 ]) | |
100 ]).scheduleCreate(); | |
101 | |
102 dir(appPath, [ | |
103 pubspec({ | |
104 "name": "myapp", | |
105 "dependencies": { | |
106 "foo": { "sdk": "foo" } | |
107 } | |
108 }) | |
109 ]).scheduleCreate(); | |
110 | |
111 schedulePub(args: [command], | |
112 error: | |
113 """ | |
114 Some packages are not compatible with SDK version 0.1.2+3: | |
115 - 'bar' requires <0.1.1 | |
116 | |
117 You may be able to resolve this by upgrading to the latest Dart SDK | |
118 or adding a version constraint to use an older version of a package. | |
119 """); | |
120 }); | |
121 } | |
122 } | |
OLD | NEW |