| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 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 | 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 library pubspec_test; | 5 library pubspec_test; | 
| 6 | 6 | 
| 7 import 'package:unittest/unittest.dart'; | 7 import 'package:unittest/unittest.dart'; | 
| 8 | 8 | 
| 9 import '../lib/src/pubspec.dart'; | 9 import '../lib/src/pubspec.dart'; | 
| 10 import '../lib/src/source.dart'; | 10 import '../lib/src/source.dart'; | 
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 234           (pubspec) => pubspec.transformers, | 234           (pubspec) => pubspec.transformers, | 
| 235           '"transformers" field must be a string or map'); | 235           '"transformers" field must be a string or map'); | 
| 236     }); | 236     }); | 
| 237 | 237 | 
| 238     test("throws if a transformer's configuration isn't a map", () { | 238     test("throws if a transformer's configuration isn't a map", () { | 
| 239       expectPubspecException('transformers: [{pkg: 12}]', | 239       expectPubspecException('transformers: [{pkg: 12}]', | 
| 240           (pubspec) => pubspec.transformers, | 240           (pubspec) => pubspec.transformers, | 
| 241           '"transformers.pkg" field must be a map'); | 241           '"transformers.pkg" field must be a map'); | 
| 242     }); | 242     }); | 
| 243 | 243 | 
| 244     test("throws if a transformer's configuration contains a top-level key " | 244     test("throws if a transformer's configuration contains an unknown " | 
| 245         "beginning with a dollar sign", () { | 245         "reserved key at the top level", () { | 
| 246       expectPubspecException(''' | 246       expectPubspecException(''' | 
| 247 name: pkg | 247 name: pkg | 
| 248 transformers: [{pkg: {\$key: "value"}}]''', | 248 transformers: [{pkg: {\$key: "value"}}]''', | 
| 249           (pubspec) => pubspec.transformers, | 249           (pubspec) => pubspec.transformers, | 
| 250           '"transformers.pkg" field cannot contain reserved field "\$key"'); | 250           'Invalid transformer configuration for "transformers.pkg": ' | 
|  | 251           'Unknown reserved field "\$key"'); | 
| 251     }); | 252     }); | 
| 252 | 253 | 
| 253     test("doesn't throw if a transformer's configuration contains a " | 254     test("doesn't throw if a transformer's configuration contains a " | 
| 254         "non-top-level key beginning with a dollar sign", () { | 255         "non-top-level key beginning with a dollar sign", () { | 
| 255       var pubspec = new Pubspec.parse(''' | 256       var pubspec = new Pubspec.parse(''' | 
| 256 name: pkg | 257 name: pkg | 
| 257 transformers: | 258 transformers: | 
| 258 - pkg: {outer: {\$inner: value}} | 259 - pkg: {outer: {\$inner: value}} | 
| 259 ''', sources); | 260 ''', sources); | 
| 260 | 261 | 
| 261       var pkg = pubspec.transformers[0].single; | 262       var pkg = pubspec.transformers[0].single; | 
| 262       expect(pkg.configuration["outer"]["\$inner"], equals("value")); | 263       expect(pkg.configuration["outer"]["\$inner"], equals("value")); | 
| 263     }); | 264     }); | 
| 264 | 265 | 
|  | 266     test("throws if the \$include value is not a string or list", () { | 
|  | 267       expectPubspecException(''' | 
|  | 268 name: pkg | 
|  | 269 transformers: | 
|  | 270 - pkg: {\$include: 123}''', | 
|  | 271           (pubspec) => pubspec.transformers, | 
|  | 272           'Invalid transformer configuration for "transformers.pkg": ' | 
|  | 273           '"\$include" field must be a string or list, but was "123"'); | 
|  | 274     }); | 
|  | 275 | 
|  | 276     test("throws if the \$include list contains a non-string", () { | 
|  | 277       expectPubspecException(''' | 
|  | 278 name: pkg | 
|  | 279 transformers: | 
|  | 280 - pkg: {\$include: ["ok", 123, "alright", null]}''', | 
|  | 281         (pubspec) => pubspec.transformers, | 
|  | 282         'Invalid transformer configuration for "transformers.pkg": ' | 
|  | 283         '"\$include" list field may only contain strings, but contained ' | 
|  | 284         '"123" and "null"'); | 
|  | 285     }); | 
|  | 286 | 
|  | 287     test("throws if the \$exclude value is not a string or list", () { | 
|  | 288       expectPubspecException(''' | 
|  | 289 name: pkg | 
|  | 290 transformers: | 
|  | 291 - pkg: {\$exclude: 123}''', | 
|  | 292         (pubspec) => pubspec.transformers, | 
|  | 293         'Invalid transformer configuration for "transformers.pkg": ' | 
|  | 294         '"\$exclude" field must be a string or list, but was "123"'); | 
|  | 295     }); | 
|  | 296 | 
|  | 297     test("throws if the \$exclude list contains a non-string", () { | 
|  | 298       expectPubspecException(''' | 
|  | 299 name: pkg | 
|  | 300 transformers: | 
|  | 301 - pkg: {\$exclude: ["ok", 123, "alright", null]}''', | 
|  | 302         (pubspec) => pubspec.transformers, | 
|  | 303         'Invalid transformer configuration for "transformers.pkg": ' | 
|  | 304         '"\$exclude" list field may only contain strings, but contained ' | 
|  | 305         '"123" and "null"'); | 
|  | 306     }); | 
|  | 307 | 
| 265     test("throws if a transformer is not from a dependency", () { | 308     test("throws if a transformer is not from a dependency", () { | 
| 266       expectPubspecException(''' | 309       expectPubspecException(''' | 
| 267 name: pkg | 310 name: pkg | 
| 268 transformers: [foo] | 311 transformers: [foo] | 
| 269 ''', | 312 ''', | 
| 270           (pubspec) => pubspec.transformers, | 313         (pubspec) => pubspec.transformers, | 
| 271           '"transformers.foo" refers to a package that\'s not a dependency.'); | 314         '"transformers.foo" refers to a package that\'s not a dependency.'); | 
| 272     }); | 315     }); | 
| 273 | 316 | 
| 274     test("allows a transformer from a normal dependency", () { | 317     test("allows a transformer from a normal dependency", () { | 
| 275       var pubspec = new Pubspec.parse(''' | 318       var pubspec = new Pubspec.parse(''' | 
| 276 name: pkg | 319 name: pkg | 
| 277 dependencies: | 320 dependencies: | 
| 278   foo: | 321   foo: | 
| 279     mock: ok | 322     mock: ok | 
| 280 transformers: | 323 transformers: | 
| 281 - foo''', sources); | 324 - foo''', sources); | 
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 352             (pubspec) => pubspec.environment); | 395             (pubspec) => pubspec.environment); | 
| 353       }); | 396       }); | 
| 354 | 397 | 
| 355       test("throws if the sdk isn't a valid version constraint", () { | 398       test("throws if the sdk isn't a valid version constraint", () { | 
| 356         expectPubspecException('environment: {sdk: "oopies"}', | 399         expectPubspecException('environment: {sdk: "oopies"}', | 
| 357             (pubspec) => pubspec.environment); | 400             (pubspec) => pubspec.environment); | 
| 358       }); | 401       }); | 
| 359     }); | 402     }); | 
| 360   }); | 403   }); | 
| 361 } | 404 } | 
| OLD | NEW | 
|---|