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