Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: test/hosted/offline_test.dart

Issue 1226133003: Fix several problems with offline mode. (Closed) Base URL: git@github.com:dart-lang/pub.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/src/source/hosted.dart ('k') | test/test_pub.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 pub_tests; 5 library pub_tests;
6 6
7 import 'package:pub/src/exit_codes.dart' as exit_codes;
8
7 import '../descriptor.dart' as d; 9 import '../descriptor.dart' as d;
8 import '../test_pub.dart'; 10 import '../test_pub.dart';
9 11
10 main() { 12 main() {
11 forBothPubGetAndUpgrade((command) { 13 forBothPubGetAndUpgrade((command) {
12 integration('upgrades a package using the cache', () { 14 integration('upgrades a package using the cache', () {
13 // Run the server so that we know what URL to use in the system cache. 15 // Run the server so that we know what URL to use in the system cache.
14 serveNoPackages(); 16 serveErrors();
15 17
16 d.cacheDir({ 18 d.cacheDir({
17 "foo": ["1.2.2", "1.2.3"], 19 "foo": ["1.2.2", "1.2.3"],
18 "bar": ["1.2.3"] 20 "bar": ["1.2.3"]
19 }, includePubspecs: true).create(); 21 }, includePubspecs: true).create();
20 22
21 d.appDir({ 23 d.appDir({
22 "foo": "any", 24 "foo": "any",
23 "bar": "any" 25 "bar": "any"
24 }).create(); 26 }).create();
25 27
26 var warning = null; 28 var warning = null;
27 if (command == RunCommand.upgrade) { 29 if (command == RunCommand.upgrade) {
28 warning = "Warning: Upgrading when offline may not update you " 30 warning = "Warning: Upgrading when offline may not update you "
29 "to the latest versions of your dependencies."; 31 "to the latest versions of your dependencies.";
30 } 32 }
31 33
32 pubCommand(command, args: ['--offline'], warning: warning); 34 pubCommand(command, args: ['--offline'], warning: warning);
33 35
34 d.packagesDir({ 36 d.packagesDir({
35 "foo": "1.2.3", 37 "foo": "1.2.3",
36 "bar": "1.2.3" 38 "bar": "1.2.3"
37 }).validate(); 39 }).validate();
38 }); 40 });
39 41
40 integration('fails gracefully if a dependency is not cached', () { 42 integration('fails gracefully if a dependency is not cached', () {
41 // Run the server so that we know what URL to use in the system cache. 43 // Run the server so that we know what URL to use in the system cache.
42 serveNoPackages(); 44 serveErrors();
43 45
44 d.appDir({"foo": "any"}).create(); 46 d.appDir({"foo": "any"}).create();
45 47
46 pubCommand(command, args: ['--offline'], 48 pubCommand(command, args: ['--offline'],
47 error: "Could not find package foo in cache."); 49 exitCode: exit_codes.UNAVAILABLE,
50 error: "Could not find package foo in cache.\n"
51 "Depended on by:\n"
52 "- myapp");
48 }); 53 });
49 54
50 integration('fails gracefully no cached versions match', () { 55 integration('fails gracefully if no cached versions match', () {
51 // Run the server so that we know what URL to use in the system cache. 56 // Run the server so that we know what URL to use in the system cache.
52 serveNoPackages(); 57 serveErrors();
53 58
54 d.cacheDir({ 59 d.cacheDir({
55 "foo": ["1.2.2", "1.2.3"] 60 "foo": ["1.2.2", "1.2.3"]
56 }, includePubspecs: true).create(); 61 }, includePubspecs: true).create();
57 62
58 d.appDir({"foo": ">2.0.0"}).create(); 63 d.appDir({"foo": ">2.0.0"}).create();
59 64
60 pubCommand(command, args: ['--offline'], error: 65 pubCommand(command, args: ['--offline'], error:
61 "Package foo has no versions that match >2.0.0 derived from:\n" 66 "Package foo has no versions that match >2.0.0 derived from:\n"
62 "- myapp depends on version >2.0.0"); 67 "- myapp depends on version >2.0.0");
63 }); 68 });
69
70 integration('fails gracefully if a dependency is not cached and a lockfile '
71 'exists', () {
72 // Run the server so that we know what URL to use in the system cache.
73 serveErrors();
74
75 d.appDir({"foo": "any"}).create();
76
77 createLockFile('myapp', hosted: {'foo': '1.2.4'});
78
79 pubCommand(command, args: ['--offline'],
80 exitCode: exit_codes.UNAVAILABLE,
81 error: "Could not find package foo in cache.\n"
82 "Depended on by:\n"
83 "- myapp");
84 });
85
86 integration('downgrades to the version in the cache if necessary', () {
87 // Run the server so that we know what URL to use in the system cache.
88 serveErrors();
89
90 d.cacheDir({
91 "foo": ["1.2.2", "1.2.3"]
92 }, includePubspecs: true).create();
93
94 d.appDir({"foo": "any"}).create();
95
96 createLockFile('myapp', hosted: {'foo': '1.2.4'});
97
98 pubCommand(command, args: ['--offline']);
99
100 d.packagesDir({"foo": "1.2.3"}).validate();
101 });
64 }); 102 });
65 } 103 }
OLDNEW
« no previous file with comments | « lib/src/source/hosted.dart ('k') | test/test_pub.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698