@@ -42,6 +42,18 @@ void main() {
42
42
d.file ('foo.dart' , 'final foo = "bar";' ),
43
43
]),
44
44
]).create ();
45
+
46
+ await d.dir ('sdk' , [
47
+ d.dir ('io' , [
48
+ d.file ('io.dart' , 'final io = "hello";' ),
49
+ ]),
50
+ d.dir ('io_patch' , [
51
+ d.file ('io.dart' , 'final patch = true;' ),
52
+ ]),
53
+ d.dir ('io_dev' , [
54
+ d.file ('io.dart' , 'final dev = true;' ),
55
+ ]),
56
+ ]).create ();
45
57
});
46
58
47
59
test ('can be created from a package_config.json' , () async {
@@ -68,6 +80,41 @@ void main() {
68
80
d.sandbox, 'foo' , '.dart_tool' , 'bad_package_config.json' )),
69
81
throwsA (isA <FormatException >()));
70
82
});
83
+
84
+ test ('resolves dart: URIs' , () async {
85
+ final resolver = await Resolver .create (
86
+ packagePath: p.join (d.sandbox, 'foo' ),
87
+ sdkRoot: p.join (d.sandbox, 'sdk' ));
88
+ expect (resolver.resolve ('dart:io' ),
89
+ p.join (d.sandbox, 'sdk' , 'io' , 'io.dart' ));
90
+ expect (resolver.resolve ('dart:io-patch/io.dart' ), null );
91
+ expect (resolver.resolve ('dart:io-dev/io.dart' ),
92
+ p.join (d.sandbox, 'sdk' , 'io_dev' , 'io.dart' ));
93
+ });
94
+
95
+ test ('cannot resolve SDK URIs if sdkRoot is null' , () async {
96
+ final resolver =
97
+ await Resolver .create (packagePath: p.join (d.sandbox, 'foo' ));
98
+ expect (resolver.resolve ('dart:convert' ), null );
99
+ });
100
+
101
+ test ('cannot resolve package URIs if packagePath is null' , () async {
102
+ // ignore: deprecated_member_use_from_same_package
103
+ final resolver = Resolver ();
104
+ expect (resolver.resolve ('package:foo/foo.dart' ), null );
105
+ });
106
+
107
+ test ('cannot resolve package URIs if packagePath is not found' , () async {
108
+ final resolver =
109
+ await Resolver .create (packagePath: p.join (d.sandbox, 'foo' ));
110
+ expect (resolver.resolve ('package:baz/baz.dart' ), null );
111
+ });
112
+
113
+ test ('cannot resolve unexpected URI schemes' , () async {
114
+ final resolver =
115
+ await Resolver .create (packagePath: p.join (d.sandbox, 'foo' ));
116
+ expect (resolver.resolve ('thing:foo/foo.dart' ), null );
117
+ });
71
118
});
72
119
73
120
group ('Bazel resolver' , () {
0 commit comments