OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 'package:pub/src/barback.dart' as barback; | 5 import 'package:pub/src/barback.dart' as barback; |
6 import 'package:pub_semver/pub_semver.dart'; | 6 import 'package:pub_semver/pub_semver.dart'; |
7 | 7 |
8 import 'descriptor.dart' as d; | 8 import 'descriptor.dart' as d; |
9 import 'test_pub.dart'; | 9 import 'test_pub.dart'; |
10 | 10 |
11 main() { | 11 main() { |
12 forBothPubGetAndUpgrade((command) { | 12 forBothPubGetAndUpgrade((command) { |
13 integration("implicitly constrains it to versions pub supports", () { | 13 integration("implicitly constrains it to versions pub supports", () { |
14 servePackages((builder) { | 14 servePackages((builder) { |
15 builder.serve("barback", current("barback")); | 15 builder.serve("barback", current("barback")); |
16 builder.serve("stack_trace", previous("stack_trace")); | 16 builder.serve("stack_trace", previous("stack_trace")); |
17 builder.serve("stack_trace", current("stack_trace")); | 17 builder.serve("stack_trace", current("stack_trace")); |
18 builder.serve("stack_trace", nextPatch("stack_trace")); | 18 builder.serve("stack_trace", nextPatch("stack_trace")); |
19 builder.serve("stack_trace", max("stack_trace")); | 19 builder.serve("stack_trace", max("stack_trace")); |
20 builder.serve("source_span", current("source_span")); | 20 builder.serve("source_span", current("source_span")); |
21 builder.serve("async", current("async")); | 21 builder.serve("async", current("async")); |
22 }); | 22 }); |
23 | 23 |
24 d.appDir({ | 24 d.appDir({ |
25 "barback": "any" | 25 "barback": "any" |
26 }).create(); | 26 }).create(); |
27 | 27 |
28 pubCommand(command); | 28 pubCommand(command); |
29 | 29 |
30 d.packagesDir({"stack_trace": nextPatch("stack_trace")}).validate(); | 30 d.appPackagesFile({ |
| 31 "async": current("async"), |
| 32 "barback": current("barback"), |
| 33 "source_span": current("source_span"), |
| 34 "stack_trace": nextPatch("stack_trace") |
| 35 }).validate(); |
31 }); | 36 }); |
32 | 37 |
33 integration("pub's implicit constraint uses the same source and " | 38 integration("pub's implicit constraint uses the same source and " |
34 "description as a dependency override", () { | 39 "description as a dependency override", () { |
35 servePackages((builder) { | 40 servePackages((builder) { |
36 builder.serve("barback", current("barback")); | 41 builder.serve("barback", current("barback")); |
37 builder.serve("stack_trace", nextPatch("stack_trace")); | 42 builder.serve("stack_trace", nextPatch("stack_trace")); |
38 builder.serve("source_span", current("source_span")); | 43 builder.serve("source_span", current("source_span")); |
39 builder.serve("async", current("async")); | 44 builder.serve("async", current("async")); |
40 }); | 45 }); |
(...skipping 10 matching lines...) Expand all Loading... |
51 "dependency_overrides": { | 56 "dependency_overrides": { |
52 "stack_trace": {"path": "../stack_trace"}, | 57 "stack_trace": {"path": "../stack_trace"}, |
53 } | 58 } |
54 }) | 59 }) |
55 ]).create(); | 60 ]).create(); |
56 | 61 |
57 pubCommand(command); | 62 pubCommand(command); |
58 | 63 |
59 // Validate that we're using the path dependency version of stack_trace | 64 // Validate that we're using the path dependency version of stack_trace |
60 // rather than the hosted version. | 65 // rather than the hosted version. |
61 d.packagesDir({ | 66 d.appPackagesFile({ |
62 "stack_trace": current("stack_trace") | 67 "async": current("async"), |
| 68 "barback": current("barback"), |
| 69 "source_span": current("source_span"), |
| 70 "stack_trace": "../stack_trace" |
63 }).validate(); | 71 }).validate(); |
64 }); | 72 }); |
65 | 73 |
66 integration("doesn't add a constraint if barback isn't in the package " | 74 integration("doesn't add a constraint if barback isn't in the package " |
67 "graph", () { | 75 "graph", () { |
68 servePackages((builder) { | 76 servePackages((builder) { |
69 builder.serve("stack_trace", previous("stack_trace")); | 77 builder.serve("stack_trace", previous("stack_trace")); |
70 builder.serve("stack_trace", current("stack_trace")); | 78 builder.serve("stack_trace", current("stack_trace")); |
71 builder.serve("stack_trace", nextPatch("stack_trace")); | 79 builder.serve("stack_trace", nextPatch("stack_trace")); |
72 builder.serve("stack_trace", max("stack_trace")); | 80 builder.serve("stack_trace", max("stack_trace")); |
73 builder.serve("source_span", current("source_span")); | 81 builder.serve("source_span", current("source_span")); |
74 builder.serve("async", current("async")); | 82 builder.serve("async", current("async")); |
75 }); | 83 }); |
76 | 84 |
77 d.appDir({ | 85 d.appDir({ |
78 "stack_trace": "any" | 86 "stack_trace": "any" |
79 }).create(); | 87 }).create(); |
80 | 88 |
81 pubCommand(command); | 89 pubCommand(command); |
82 | 90 |
83 d.packagesDir({"stack_trace": max("stack_trace")}).validate(); | 91 d.appPackagesFile({"stack_trace": max("stack_trace")}).validate(); |
84 }); | 92 }); |
85 }); | 93 }); |
86 | 94 |
87 integration("unlocks if the locked version doesn't meet pub's " | 95 integration("unlocks if the locked version doesn't meet pub's " |
88 "constraint", () { | 96 "constraint", () { |
89 servePackages((builder) { | 97 servePackages((builder) { |
90 builder.serve("barback", current("barback")); | 98 builder.serve("barback", current("barback")); |
91 builder.serve("stack_trace", previous("stack_trace")); | 99 builder.serve("stack_trace", previous("stack_trace")); |
92 builder.serve("stack_trace", current("stack_trace")); | 100 builder.serve("stack_trace", current("stack_trace")); |
93 builder.serve("source_span", current("source_span")); | 101 builder.serve("source_span", current("source_span")); |
94 builder.serve("async", current("async")); | 102 builder.serve("async", current("async")); |
95 }); | 103 }); |
96 | 104 |
97 d.appDir({"barback": "any"}).create(); | 105 d.appDir({"barback": "any"}).create(); |
98 | 106 |
99 // Hand-create a lockfile to pin the package to an older version. | 107 // Hand-create a lockfile to pin the package to an older version. |
100 createLockFile("myapp", hosted: { | 108 createLockFile("myapp", hosted: { |
101 "barback": current("barback"), | 109 "barback": current("barback"), |
102 "stack_trace": previous("stack_trace") | 110 "stack_trace": previous("stack_trace") |
103 }); | 111 }); |
104 | 112 |
105 pubGet(); | 113 pubGet(); |
106 | 114 |
107 // It should be upgraded. | 115 // It should be upgraded. |
108 d.packagesDir({ | 116 d.appPackagesFile({ |
| 117 "async": current("async"), |
| 118 "barback": current("barback"), |
| 119 "source_span": current("source_span"), |
109 "stack_trace": current("stack_trace") | 120 "stack_trace": current("stack_trace") |
110 }).validate(); | 121 }).validate(); |
111 }); | 122 }); |
112 } | 123 } |
113 | 124 |
114 String current(String packageName) => | 125 String current(String packageName) => |
115 barback.pubConstraints[packageName].min.toString(); | 126 barback.pubConstraints[packageName].min.toString(); |
116 | 127 |
117 String previous(String packageName) { | 128 String previous(String packageName) { |
118 var constraint = barback.pubConstraints[packageName]; | 129 var constraint = barback.pubConstraints[packageName]; |
119 return new Version(constraint.min.major, constraint.min.minor - 1, 0) | 130 return new Version(constraint.min.major, constraint.min.minor - 1, 0) |
120 .toString(); | 131 .toString(); |
121 } | 132 } |
122 | 133 |
123 String nextPatch(String packageName) => | 134 String nextPatch(String packageName) => |
124 barback.pubConstraints[packageName].min.nextPatch.toString(); | 135 barback.pubConstraints[packageName].min.nextPatch.toString(); |
125 | 136 |
126 String max(String packageName) => | 137 String max(String packageName) => |
127 barback.pubConstraints[packageName].max.toString(); | 138 barback.pubConstraints[packageName].max.toString(); |
OLD | NEW |