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

Unified Diff: utils/tests/pub/pub_tests.dart

Issue 9950005: First check in for pub package manager. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: utils/tests/pub/pub_tests.dart
diff --git a/utils/tests/pub/pub_tests.dart b/utils/tests/pub/pub_tests.dart
index 53456fd48cdff396c75090e8c39e45b90674bb78..055e06c31392371fc5ece8b9c9b0506e18f234c2 100644
--- a/utils/tests/pub/pub_tests.dart
+++ b/utils/tests/pub/pub_tests.dart
@@ -4,11 +4,66 @@
#library('pub_tests');
-// TODO(rnystrom): Better path to unittest.
+#import('dart:io');
+
+#import('test_pub.dart');
#import('../../../lib/unittest/unittest_vm.dart');
main() {
- test('should pass', () {
- expect(1).equals(1);
+ group('running pub with no command', () {
+ testOutput('displays usage',
+ [],
+ '''
+ Pub is a package manager for Dart.
+
+ Usage:
+
+ pub command [arguments]
+
+ The commands are:
+
+ version print Pub version
+
+ Use "pub help [command]" for more information about a command.''');
+ });
+
+ group('the version command', () {
+ testOutput('displays the current version',
+ ['version'], 'Pub 0.0.0');
});
+
+ group('an unknown command', () {
+ testOutput('displays an error message',
+ ['quylthulg'],
+ '''
+ Unknown command "quylthulg".
+ Run "pub help" to see available commands.''',
+ exitCode: 64);
+ });
+}
+
+void testPub(String description, List<String> arguments, String expectedOutput) {
nweiz 2012/03/30 00:38:37 This name doesn't match that being used in main(),
Bob Nystrom 2012/03/30 01:06:17 Oops, old code. Deleted.
+ // TODO(bob): Figure out how to invoke pub correctly.
+ Expect.fail('args = ${new Options().script}');
nweiz 2012/03/30 00:38:37 Debugging line?
+
+ final process = new Process.start('pub', arguments);
+
+ final output = <String>[];
+ final outStream = new StringInputStream(process.stdout);
+ outStream.onLine = () {
+ var line = outStream.readLine();
+ while (line != null) {
+ output.add(line);
+ line = outStream.readLine();
+ }
+ };
+
+ process.onError = (error) {
+ Expect.fail('Failed to run pub: $error');
+ };
+
+ process.onExit = (exitCode) {
+ Expect.equals(exitCode, 0, 'Pub returned non-zero exit code.');
+ validateOutput(expectedOutput, output);
+ };
}
nweiz 2012/03/30 00:38:37 How does this async stuff integrate into the testi
Bob Nystrom 2012/03/30 01:06:17 Yeah, this is dead code. The real code is in test_
« utils/pub/pub.dart ('K') | « utils/pub/utils.dart ('k') | utils/tests/pub/test_pub.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698