| // Copyright (c) 2013, 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. |
| |
| import 'package:path/path.dart' as path; |
| import 'package:pub/src/io.dart'; |
| import 'package:test/test.dart'; |
| |
| import '../descriptor.dart' as d; |
| import '../test_pub.dart'; |
| |
| void main() { |
| test('running pub cache clean when there is no cache', () async { |
| final cache = path.join(d.sandbox, cachePath); |
| |
| await runPub(args: ['cache', 'clean'], output: 'No pub cache at $cache.'); |
| }); |
| |
| test('running pub cache clean --force deletes cache', () async { |
| await servePackages() |
| ..serve('foo', '1.1.2') |
| ..serve('bar', '1.2.3'); |
| await d.appDir({'foo': 'any', 'bar': 'any'}).create(); |
| await pubGet(); |
| final cache = path.join(d.sandbox, cachePath); |
| expect(listDir(cache, includeHidden: true), isNotEmpty); |
| await runPub( |
| args: ['cache', 'clean', '--force'], |
| output: 'Removing pub cache directory $cache.'); |
| expect(listDir(cache, includeHidden: true), isEmpty); |
| }); |
| |
| test('running pub cache clean deletes cache only with confirmation', |
| () async { |
| await servePackages() |
| ..serve('foo', '1.1.2') |
| ..serve('bar', '1.2.3'); |
| await d.appDir({'foo': 'any', 'bar': 'any'}).create(); |
| await pubGet(); |
| final cache = path.join(d.sandbox, cachePath); |
| expect(listDir(cache, includeHidden: true), isNotEmpty); |
| { |
| final process = await startPub( |
| args: ['cache', 'clean'], |
| ); |
| process.stdin.writeln('n'); |
| expect(await process.exitCode, 0); |
| } |
| expect(listDir(cache, includeHidden: true), isNotEmpty); |
| |
| { |
| final process = await startPub( |
| args: ['cache', 'clean'], |
| ); |
| process.stdin.writeln('y'); |
| expect(await process.exitCode, 0); |
| } |
| expect(listDir(cache, includeHidden: true), isEmpty); |
| }); |
| } |