OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 /// Test infrastructure for testing pub. Unlike typical unit tests, most pub | 5 /// Test infrastructure for testing pub. Unlike typical unit tests, most pub |
6 /// tests are integration tests that stage some stuff on the file system, run | 6 /// tests are integration tests that stage some stuff on the file system, run |
7 /// pub, and then validate the results. This library provides an API to build | 7 /// pub, and then validate the results. This library provides an API to build |
8 /// tests like that. | 8 /// tests like that. |
9 library test_pub; | 9 library test_pub; |
10 | 10 |
11 import 'dart:async'; | 11 import 'dart:async'; |
12 import 'dart:collection' show Queue; | 12 import 'dart:collection' show Queue; |
13 import 'dart:io' hide sleep; | 13 import 'dart:io' hide sleep; |
14 import 'dart:json' as json; | 14 import 'dart:json' as json; |
15 import 'dart:math'; | 15 import 'dart:math'; |
16 import 'dart:utf'; | 16 import 'dart:utf'; |
17 | 17 |
18 import 'package:http/testing.dart'; | 18 import 'package:http/testing.dart'; |
19 import 'package:oauth2/oauth2.dart' as oauth2; | 19 import 'package:oauth2/oauth2.dart' as oauth2; |
20 import 'package:pathos/path.dart' as path; | 20 import 'package:path/path.dart' as path; |
21 import 'package:scheduled_test/scheduled_process.dart'; | 21 import 'package:scheduled_test/scheduled_process.dart'; |
22 import 'package:scheduled_test/scheduled_server.dart'; | 22 import 'package:scheduled_test/scheduled_server.dart'; |
23 import 'package:scheduled_test/scheduled_test.dart'; | 23 import 'package:scheduled_test/scheduled_test.dart'; |
24 import 'package:unittest/compact_vm_config.dart'; | 24 import 'package:unittest/compact_vm_config.dart'; |
25 import 'package:yaml/yaml.dart'; | 25 import 'package:yaml/yaml.dart'; |
26 | 26 |
27 import '../lib/src/entrypoint.dart'; | 27 import '../lib/src/entrypoint.dart'; |
28 // TODO(rnystrom): Using "gitlib" as the prefix here is ugly, but "git" collides | 28 // TODO(rnystrom): Using "gitlib" as the prefix here is ugly, but "git" collides |
29 // with the git descriptor method. Maybe we should try to clean up the top level | 29 // with the git descriptor method. Maybe we should try to clean up the top level |
30 // scope a bit? | 30 // scope a bit? |
(...skipping 599 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
630 }); | 630 }); |
631 } | 631 } |
632 | 632 |
633 /// Return the name for the package described by [description] and from | 633 /// Return the name for the package described by [description] and from |
634 /// [sourceName]. | 634 /// [sourceName]. |
635 String _packageName(String sourceName, description) { | 635 String _packageName(String sourceName, description) { |
636 switch (sourceName) { | 636 switch (sourceName) { |
637 case "git": | 637 case "git": |
638 var url = description is String ? description : description['url']; | 638 var url = description is String ? description : description['url']; |
639 // TODO(rnystrom): Using path.basename on a URL is hacky. If we add URL | 639 // TODO(rnystrom): Using path.basename on a URL is hacky. If we add URL |
640 // support to pkg/pathos, should use an explicit builder for that. | 640 // support to pkg/path, should use an explicit builder for that. |
641 return path.basename(url.replaceFirst(new RegExp(r"(\.git)?/?$"), "")); | 641 return path.basename(url.replaceFirst(new RegExp(r"(\.git)?/?$"), "")); |
642 case "hosted": | 642 case "hosted": |
643 if (description is String) return description; | 643 if (description is String) return description; |
644 return description['name']; | 644 return description['name']; |
645 case "path": | 645 case "path": |
646 return path.basename(description); | 646 return path.basename(description); |
647 case "sdk": | 647 case "sdk": |
648 return description; | 648 return description; |
649 default: | 649 default: |
650 return description; | 650 return description; |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
791 bool matches(item, Map matchState) { | 791 bool matches(item, Map matchState) { |
792 if (item is! Pair) return false; | 792 if (item is! Pair) return false; |
793 return _firstMatcher.matches(item.first, matchState) && | 793 return _firstMatcher.matches(item.first, matchState) && |
794 _lastMatcher.matches(item.last, matchState); | 794 _lastMatcher.matches(item.last, matchState); |
795 } | 795 } |
796 | 796 |
797 Description describe(Description description) { | 797 Description describe(Description description) { |
798 description.addAll("(", ", ", ")", [_firstMatcher, _lastMatcher]); | 798 description.addAll("(", ", ", ")", [_firstMatcher, _lastMatcher]); |
799 } | 799 } |
800 } | 800 } |
OLD | NEW |