| 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 import 'package:pub/src/entrypoint.dart'; | 5 import 'package:pub/src/entrypoint.dart'; | 
| 6 import 'package:pub/src/validator.dart'; | 6 import 'package:pub/src/validator.dart'; | 
| 7 import 'package:pub/src/validator/sdk_constraint.dart'; | 7 import 'package:pub/src/validator/sdk_constraint.dart'; | 
| 8 import 'package:scheduled_test/scheduled_test.dart'; | 8 import 'package:scheduled_test/scheduled_test.dart'; | 
| 9 | 9 | 
| 10 import '../descriptor.dart' as d; | 10 import '../descriptor.dart' as d; | 
| 11 import '../test_pub.dart'; | 11 import '../test_pub.dart'; | 
| 12 import 'utils.dart'; | 12 import 'utils.dart'; | 
| 13 | 13 | 
| 14 Validator sdkConstraint(Entrypoint entrypoint) => | 14 Validator sdkConstraint(Entrypoint entrypoint) => | 
| 15   new SdkConstraintValidator(entrypoint); | 15   new SdkConstraintValidator(entrypoint); | 
| 16 | 16 | 
| 17 main() { | 17 main() { | 
| 18   group('should consider a package valid if it', () { | 18   group('should consider a package valid if it', () { | 
| 19     integration('has no SDK constraint', () { | 19     integration('has no SDK constraint', () { | 
| 20       d.validPackage.create(); | 20       d.validPackage.create(); | 
| 21       expectNoValidationError(sdkConstraint); | 21       expectNoValidationError(sdkConstraint); | 
| 22     }); | 22     }); | 
| 23 | 23 | 
| 24     integration('has an SDK constraint without ^', () { | 24     integration('has an SDK constraint without ^', () { | 
| 25       d.dir(appPath, [ | 25       d.dir(appPath, [ | 
| 26         d.libPubspec("test_pkg", "1.0.0", sdk: ">=1.8.0 <2.0.0") | 26         d.libPubspec("test_pkg", "1.0.0", sdk: ">=1.8.0 <2.0.0") | 
| 27       ]).create(); | 27       ]).create(); | 
| 28       expectNoValidationError(sdkConstraint); | 28       expectNoValidationError(sdkConstraint); | 
| 29     }); | 29     }); | 
|  | 30 | 
|  | 31     integration('has a Flutter SDK constraint with an appropriate Dart SDK ' | 
|  | 32         'constraint', () { | 
|  | 33       d.dir(appPath, [ | 
|  | 34         d.pubspec({ | 
|  | 35           "name": "test_pkg", | 
|  | 36           "version": "1.0.0", | 
|  | 37           "environment": { | 
|  | 38             "sdk": ">=1.19.0 <2.0.0", | 
|  | 39             "flutter": "^1.2.3" | 
|  | 40           } | 
|  | 41         }) | 
|  | 42       ]).create(); | 
|  | 43       expectNoValidationError(sdkConstraint); | 
|  | 44     }); | 
| 30   }); | 45   }); | 
| 31 | 46 | 
| 32   test("should consider a package invalid if it has an SDK constraint with " | 47   group("should consider a package invalid if it", () { | 
| 33       "^", () { | 48     integration("has an SDK constraint with ^", () { | 
| 34     d.dir(appPath, [ | 49       d.dir(appPath, [ | 
| 35       d.libPubspec("test_pkg", "1.0.0", sdk: "^1.8.0") | 50         d.libPubspec("test_pkg", "1.0.0", sdk: "^1.8.0") | 
| 36     ]).create(); | 51       ]).create(); | 
| 37     expect(schedulePackageValidation(sdkConstraint), | 52       expect( | 
| 38         completion(pairOf(anyElement(contains('">=1.8.0 <2.0.0"')), isEmpty))); | 53           schedulePackageValidation(sdkConstraint), | 
|  | 54           completion(pairOf( | 
|  | 55               anyElement(contains('">=1.8.0 <2.0.0"')), | 
|  | 56               isEmpty))); | 
|  | 57     }); | 
|  | 58 | 
|  | 59     integration("has a Flutter SDK constraint with a too-broad SDK " | 
|  | 60         "constraint", () { | 
|  | 61       d.dir(appPath, [ | 
|  | 62         d.pubspec({ | 
|  | 63           "name": "test_pkg", | 
|  | 64           "version": "1.0.0", | 
|  | 65           "environment": { | 
|  | 66             "sdk": ">=1.18.0 <1.50.0", | 
|  | 67             "flutter": "^1.2.3" | 
|  | 68           } | 
|  | 69         }) | 
|  | 70       ]).create(); | 
|  | 71       expect( | 
|  | 72           schedulePackageValidation(sdkConstraint), | 
|  | 73           completion(pairOf( | 
|  | 74               anyElement(contains('">=1.19.0 <1.50.0"')), | 
|  | 75               isEmpty))); | 
|  | 76     }); | 
|  | 77 | 
|  | 78     integration("has a Flutter SDK constraint with no SDK " | 
|  | 79         "constraint", () { | 
|  | 80       d.dir(appPath, [ | 
|  | 81         d.pubspec({ | 
|  | 82           "name": "test_pkg", | 
|  | 83           "version": "1.0.0", | 
|  | 84           "environment": {"flutter": "^1.2.3"} | 
|  | 85         }) | 
|  | 86       ]).create(); | 
|  | 87       expect( | 
|  | 88           schedulePackageValidation(sdkConstraint), | 
|  | 89           completion(pairOf( | 
|  | 90               anyElement(contains('">=1.19.0 <2.0.0"')), | 
|  | 91               isEmpty))); | 
|  | 92     }); | 
| 39   }); | 93   }); | 
| 40 } | 94 } | 
| OLD | NEW | 
|---|