@@ -13,6 +13,7 @@ import 'package:path/path.dart' as p;
1313import 'package:test/test.dart' ;
1414
1515import 'fixtures/fakes.dart' ;
16+ import 'fixtures/logging.dart' ;
1617
1718class TestStrategy extends FakeStrategy {
1819 @override
@@ -109,5 +110,58 @@ void main() {
109110 expect (unresolved, 'dart:io' );
110111 });
111112 });
113+
114+ group ('initialized with other SDK directory with no libraries spec' , () {
115+ Directory outputDir;
116+ var logs = < String > [];
117+
118+ void logWriter (level, message,
119+ {String error, String loggerName, String stackTrace}) {
120+ var errorMessage = error == null ? '' : ':\n $error ' ;
121+ var stackMessage = stackTrace == null ? '' : ':\n $stackTrace ' ;
122+ logs.add ('[$level ] $loggerName : $message '
123+ '$errorMessage '
124+ '$stackMessage ' );
125+ }
126+
127+ setUpAll (() async {
128+ configureLogWriter (customLogWriter: logWriter);
129+ var systemTempDir = Directory .systemTemp;
130+ outputDir = systemTempDir.createTempSync ('foo bar' );
131+
132+ var fakeSdkDir = outputDir.path;
133+ var fakeLibrariesDir = p.join (fakeSdkDir, 'lib' );
134+ var fakeLibrariesPath = p.join (fakeLibrariesDir, 'libraries.json' );
135+
136+ await DartUri .initialize (
137+ sdkDir: Uri .file (fakeSdkDir),
138+ librariesPath: Uri .file (fakeLibrariesPath));
139+ await DartUri .recordAbsoluteUris (['dart:io' , 'dart:html' ]);
140+
141+ expect (
142+ logs,
143+ containsAll ([
144+ contains ('[WARNING] DartUri: Cannot read libraries spec:' ),
145+ contains ('[WARNING] DartUri: Unresolved uri: dart:io' ),
146+ contains ('[WARNING] DartUri: Unresolved uri: dart:html' ),
147+ ]));
148+ });
149+
150+ tearDownAll (() async {
151+ DartUri .clear ();
152+ await outputDir? .delete (recursive: true );
153+ });
154+
155+ test ('cannot resolve uris' , () {
156+ var resolved = DartUri .toResolvedUri ('dart:io' );
157+ expect (resolved, null );
158+ });
159+
160+ test ('cannot unresolve uris' , () {
161+ var unresolved =
162+ DartUri .toPackageUri ('org-dartlang-sdk:///sdk/lib/io/io.dart' );
163+ expect (unresolved, null );
164+ });
165+ });
112166 });
113167}
0 commit comments