| 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 var constraint = barback.pubConstraints["barback"]; | 12 var constraint = barback.pubConstraints["barback"]; |
| 13 var current = constraint.min.toString(); | 13 var current = constraint.min.toString(); |
| 14 var previous = new Version(constraint.min.major, constraint.min.minor - 1, 0) | 14 var previous = new Version(constraint.min.major, constraint.min.minor - 1, 0) |
| 15 .toString(); | 15 .toString(); |
| 16 var nextPatch = constraint.min.nextPatch.toString(); | 16 var nextPatch = constraint.min.nextPatch.toString(); |
| 17 var max = constraint.max.toString(); | 17 var max = constraint.max.toString(); |
| 18 | 18 |
| 19 var sourceSpanVersion = barback.pubConstraints["source_span"].min.toString(); | 19 var sourceSpanVersion = barback.pubConstraints["source_span"].min.toString(); |
| 20 var stackTraceVersion = barback.pubConstraints["stack_trace"].min.toString(); | 20 var stackTraceVersion = barback.pubConstraints["stack_trace"].min.toString(); |
| 21 var asyncVersion = barback.pubConstraints["async"].min.toString(); |
| 21 | 22 |
| 22 forBothPubGetAndUpgrade((command) { | 23 forBothPubGetAndUpgrade((command) { |
| 23 integration("implicitly constrains barback to versions pub supports", () { | 24 integration("implicitly constrains barback to versions pub supports", () { |
| 24 servePackages((builder) { | 25 servePackages((builder) { |
| 25 builder.serve("barback", previous); | 26 builder.serve("barback", previous); |
| 26 builder.serve("barback", current); | 27 builder.serve("barback", current); |
| 27 builder.serve("barback", nextPatch); | 28 builder.serve("barback", nextPatch); |
| 28 builder.serve("barback", max); | 29 builder.serve("barback", max); |
| 29 builder.serve("source_span", sourceSpanVersion); | 30 builder.serve("source_span", sourceSpanVersion); |
| 30 builder.serve("stack_trace", stackTraceVersion); | 31 builder.serve("stack_trace", stackTraceVersion); |
| 32 builder.serve("async", asyncVersion); |
| 31 }); | 33 }); |
| 32 | 34 |
| 33 d.appDir({ | 35 d.appDir({ |
| 34 "barback": "any" | 36 "barback": "any" |
| 35 }).create(); | 37 }).create(); |
| 36 | 38 |
| 37 pubCommand(command); | 39 pubCommand(command); |
| 38 | 40 |
| 39 d.packagesDir({ | 41 d.packagesDir({ |
| 40 "barback": nextPatch | 42 "barback": nextPatch |
| 41 }).validate(); | 43 }).validate(); |
| 42 }); | 44 }); |
| 43 | 45 |
| 44 integration("discovers transitive dependency on barback", () { | 46 integration("discovers transitive dependency on barback", () { |
| 45 servePackages((builder) { | 47 servePackages((builder) { |
| 46 builder.serve("barback", previous); | 48 builder.serve("barback", previous); |
| 47 builder.serve("barback", current); | 49 builder.serve("barback", current); |
| 48 builder.serve("barback", nextPatch); | 50 builder.serve("barback", nextPatch); |
| 49 builder.serve("barback", max); | 51 builder.serve("barback", max); |
| 50 builder.serve("source_span", sourceSpanVersion); | 52 builder.serve("source_span", sourceSpanVersion); |
| 51 builder.serve("stack_trace", stackTraceVersion); | 53 builder.serve("stack_trace", stackTraceVersion); |
| 54 builder.serve("async", asyncVersion); |
| 52 }); | 55 }); |
| 53 | 56 |
| 54 d.dir("foo", [ | 57 d.dir("foo", [ |
| 55 d.libDir("foo", "foo 0.0.1"), | 58 d.libDir("foo", "foo 0.0.1"), |
| 56 d.libPubspec("foo", "0.0.1", deps: { | 59 d.libPubspec("foo", "0.0.1", deps: { |
| 57 "barback": "any" | 60 "barback": "any" |
| 58 }) | 61 }) |
| 59 ]).create(); | 62 ]).create(); |
| 60 | 63 |
| 61 d.appDir({ | 64 d.appDir({ |
| 62 "foo": {"path": "../foo"} | 65 "foo": {"path": "../foo"} |
| 63 }).create(); | 66 }).create(); |
| 64 | 67 |
| 65 pubCommand(command); | 68 pubCommand(command); |
| 66 | 69 |
| 67 d.packagesDir({ | 70 d.packagesDir({ |
| 68 "barback": nextPatch, | 71 "barback": nextPatch, |
| 69 "foo": "0.0.1" | 72 "foo": "0.0.1" |
| 70 }).validate(); | 73 }).validate(); |
| 71 }); | 74 }); |
| 72 | 75 |
| 73 integration("pub's implicit constraint uses the same source and " | 76 integration("pub's implicit constraint uses the same source and " |
| 74 "description as a dependency override", () { | 77 "description as a dependency override", () { |
| 75 servePackages((builder) { | 78 servePackages((builder) { |
| 76 builder.serve("source_span", sourceSpanVersion); | 79 builder.serve("source_span", sourceSpanVersion); |
| 77 builder.serve("stack_trace", stackTraceVersion); | 80 builder.serve("stack_trace", stackTraceVersion); |
| 81 builder.serve("async", asyncVersion); |
| 78 }); | 82 }); |
| 79 | 83 |
| 80 d.dir('barback', [ | 84 d.dir('barback', [ |
| 81 d.libDir('barback', 'barback $current'), | 85 d.libDir('barback', 'barback $current'), |
| 82 d.libPubspec('barback', current), | 86 d.libPubspec('barback', current), |
| 83 ]).create(); | 87 ]).create(); |
| 84 | 88 |
| 85 d.dir(appPath, [ | 89 d.dir(appPath, [ |
| 86 d.pubspec({ | 90 d.pubspec({ |
| 87 "name": "myapp", | 91 "name": "myapp", |
| (...skipping 10 matching lines...) Expand all Loading... |
| 98 }).validate(); | 102 }).validate(); |
| 99 }); | 103 }); |
| 100 }); | 104 }); |
| 101 | 105 |
| 102 integration("unlock if the locked version doesn't meet pub's constraint", () { | 106 integration("unlock if the locked version doesn't meet pub's constraint", () { |
| 103 servePackages((builder) { | 107 servePackages((builder) { |
| 104 builder.serve("barback", previous); | 108 builder.serve("barback", previous); |
| 105 builder.serve("barback", current); | 109 builder.serve("barback", current); |
| 106 builder.serve("source_span", sourceSpanVersion); | 110 builder.serve("source_span", sourceSpanVersion); |
| 107 builder.serve("stack_trace", stackTraceVersion); | 111 builder.serve("stack_trace", stackTraceVersion); |
| 112 builder.serve("async", asyncVersion); |
| 108 }); | 113 }); |
| 109 | 114 |
| 110 d.appDir({"barback": "any"}).create(); | 115 d.appDir({"barback": "any"}).create(); |
| 111 | 116 |
| 112 // Hand-create a lockfile to pin barback to an older version. | 117 // Hand-create a lockfile to pin barback to an older version. |
| 113 createLockFile("myapp", hosted: { | 118 createLockFile("myapp", hosted: { |
| 114 "barback": previous | 119 "barback": previous |
| 115 }); | 120 }); |
| 116 | 121 |
| 117 pubGet(); | 122 pubGet(); |
| 118 | 123 |
| 119 // It should be upgraded. | 124 // It should be upgraded. |
| 120 d.packagesDir({ | 125 d.packagesDir({ |
| 121 "barback": current | 126 "barback": current |
| 122 }).validate(); | 127 }).validate(); |
| 123 }); | 128 }); |
| 124 | 129 |
| 125 integration("includes pub in the error if a solve failed because there " | 130 integration("includes pub in the error if a solve failed because there " |
| 126 "is no version available", () { | 131 "is no version available", () { |
| 127 servePackages((builder) { | 132 servePackages((builder) { |
| 128 builder.serve("barback", previous); | 133 builder.serve("barback", previous); |
| 129 builder.serve("source_span", sourceSpanVersion); | 134 builder.serve("source_span", sourceSpanVersion); |
| 130 builder.serve("stack_trace", stackTraceVersion); | 135 builder.serve("stack_trace", stackTraceVersion); |
| 136 builder.serve("async", asyncVersion); |
| 131 }); | 137 }); |
| 132 | 138 |
| 133 d.appDir({"barback": "any"}).create(); | 139 d.appDir({"barback": "any"}).create(); |
| 134 | 140 |
| 135 pubGet(error: """ | 141 pubGet(error: """ |
| 136 Package barback has no versions that match >=$current <$max derived from: | 142 Package barback has no versions that match >=$current <$max derived from: |
| 137 - myapp depends on version any | 143 - myapp depends on version any |
| 138 - pub itself depends on version >=$current <$max"""); | 144 - pub itself depends on version >=$current <$max"""); |
| 139 }); | 145 }); |
| 140 | 146 |
| 141 integration("includes pub in the error if a solve failed because there " | 147 integration("includes pub in the error if a solve failed because there " |
| 142 "is a disjoint constraint", () { | 148 "is a disjoint constraint", () { |
| 143 servePackages((builder) { | 149 servePackages((builder) { |
| 144 builder.serve("barback", previous); | 150 builder.serve("barback", previous); |
| 145 builder.serve("barback", current); | 151 builder.serve("barback", current); |
| 146 builder.serve("source_span", sourceSpanVersion); | 152 builder.serve("source_span", sourceSpanVersion); |
| 147 builder.serve("stack_trace", stackTraceVersion); | 153 builder.serve("stack_trace", stackTraceVersion); |
| 154 builder.serve("async", asyncVersion); |
| 148 }); | 155 }); |
| 149 | 156 |
| 150 d.appDir({"barback": previous}).create(); | 157 d.appDir({"barback": previous}).create(); |
| 151 | 158 |
| 152 pubGet(error: """ | 159 pubGet(error: """ |
| 153 Incompatible version constraints on barback: | 160 Incompatible version constraints on barback: |
| 154 - myapp depends on version $previous | 161 - myapp depends on version $previous |
| 155 - pub itself depends on version >=$current <$max"""); | 162 - pub itself depends on version >=$current <$max"""); |
| 156 }); | 163 }); |
| 157 } | 164 } |
| OLD | NEW |