Files
2026-01-15 17:36:22 -08:00

71 lines
2.1 KiB
Dart

// Copyright 2017 Google Inc.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd
import 'dart:convert';
import 'package:ngflutter/src/exceptions.dart';
import 'package:ngflutter/src/file_reader.dart';
import 'package:ngflutter/src/package_uri_resolver.dart';
import 'package:path/path.dart' as path;
import 'package:test/test.dart';
void main() {
group('PackageUriResolver', () {
FileReader.reader = new FileReaderMock();
PackageUriResolver resolver;
setUp(() {
resolver = new PackageUriResolver('.packages');
});
test('should parse dependent package URI', () {
var filePath = resolver.resolve('package:some_package/some_file.dart');
expect(
filePath,
equals(path.join(
path.separator,
path.join(
'home',
'someone',
'.pub-cache',
'hosted',
'pub.dartlang.org',
'some_package-1.0.0',
'lib',
'some_file.dart'))));
});
test('should parse current project URI', () {
var filePath = resolver.resolve('package:ngflutter/some_file.dart');
expect(filePath, equals(path.join('lib', 'some_file.dart')));
});
test('should throw for unknow package', () {
expect(() => resolver.resolve('package:unknown/some_file.dart'),
throwsA(const TypeMatcher<UsageException>()));
});
});
}
class FileReaderMock implements FileReader {
static const List<String> _dotPackages = const [
'# Generated by pub on 2017-05-01 00:00:00.00001.',
'some_package:file:///home/someone/.pub-cache/hosted/'
'pub.dartlang.org/some_package-1.0.0/lib/',
'ngflutter:lib/'
];
@override
List<String> readAsLines(Object uri, {Encoding encoding = utf8}) {
if (uri is String && uri == '.packages') return _dotPackages;
return null;
}
@override
String readAsString(Object uri, {Encoding encoding = utf8}) => null;
}