| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| @Skip() |
| |
| import 'package:test/test.dart'; |
| |
| import '../../test_pub.dart'; |
| |
| main() { |
| test('enables default-on features by default', () async { |
| await servePackages((builder) { |
| builder.serve("foo", "1.0.0", pubspec: { |
| "features": { |
| "stuff": { |
| "dependencies": {"bar": "1.0.0"} |
| }, |
| "things": { |
| "default": false, |
| "dependencies": {"baz": "1.0.0"} |
| } |
| } |
| }); |
| |
| builder.serve("bar", "1.0.0"); |
| builder.serve("baz", "1.0.0"); |
| }); |
| |
| await runPub(args: ["global", "activate", "foo"], output: contains(""" |
| Resolving dependencies... |
| + bar 1.0.0 |
| + foo 1.0.0 |
| Downloading""")); |
| }); |
| |
| test('can enable default-off features', () async { |
| await servePackages((builder) { |
| builder.serve("foo", "1.0.0", pubspec: { |
| "features": { |
| "stuff": { |
| "dependencies": {"bar": "1.0.0"} |
| }, |
| "things": { |
| "default": false, |
| "dependencies": {"baz": "1.0.0"} |
| } |
| } |
| }); |
| |
| builder.serve("bar", "1.0.0"); |
| builder.serve("baz", "1.0.0"); |
| }); |
| |
| await runPub( |
| args: ["global", "activate", "foo", "--features", "things"], |
| output: contains(""" |
| Resolving dependencies... |
| + bar 1.0.0 |
| + baz 1.0.0 |
| + foo 1.0.0 |
| Downloading""")); |
| }); |
| |
| test('can disable default-on features', () async { |
| await servePackages((builder) { |
| builder.serve("foo", "1.0.0", pubspec: { |
| "features": { |
| "stuff": { |
| "dependencies": {"bar": "1.0.0"} |
| }, |
| "things": { |
| "default": false, |
| "dependencies": {"baz": "1.0.0"} |
| } |
| } |
| }); |
| |
| builder.serve("bar", "1.0.0"); |
| builder.serve("baz", "1.0.0"); |
| }); |
| |
| await runPub( |
| args: ["global", "activate", "foo", "--omit-features", "stuff"], |
| output: contains(""" |
| Resolving dependencies... |
| + foo 1.0.0 |
| Downloading""")); |
| }); |
| |
| test('supports multiple arguments', () async { |
| await servePackages((builder) { |
| builder.serve("foo", "1.0.0", pubspec: { |
| "features": { |
| "stuff": { |
| "default": false, |
| "dependencies": {"bar": "1.0.0"} |
| }, |
| "things": { |
| "default": false, |
| "dependencies": {"baz": "1.0.0"} |
| } |
| } |
| }); |
| |
| builder.serve("bar", "1.0.0"); |
| builder.serve("baz", "1.0.0"); |
| }); |
| |
| await runPub( |
| args: ["global", "activate", "foo", "--features", "things,stuff"], |
| output: contains(""" |
| Resolving dependencies... |
| + bar 1.0.0 |
| + baz 1.0.0 |
| + foo 1.0.0 |
| Downloading""")); |
| }); |
| |
| test('can both enable and disable', () async { |
| await servePackages((builder) { |
| builder.serve("foo", "1.0.0", pubspec: { |
| "features": { |
| "stuff": { |
| "dependencies": {"bar": "1.0.0"} |
| }, |
| "things": { |
| "default": false, |
| "dependencies": {"baz": "1.0.0"} |
| } |
| } |
| }); |
| |
| builder.serve("bar", "1.0.0"); |
| builder.serve("baz", "1.0.0"); |
| }); |
| |
| await runPub(args: [ |
| "global", |
| "activate", |
| "foo", |
| "--features", |
| "things", |
| "--omit-features", |
| "stuff" |
| ], output: contains(""" |
| Resolving dependencies... |
| + baz 1.0.0 |
| + foo 1.0.0 |
| Downloading""")); |
| }); |
| } |