Index: test/parse_test.dart |
diff --git a/test/test_packagemap.dart b/test/parse_test.dart |
similarity index 60% |
rename from test/test_packagemap.dart |
rename to test/parse_test.dart |
index bce20d4b82647776c2dfab2a0b5ee46a956ac0c2..f7f68f10d7825115cfe8e16d7ec4c8feb6805a63 100644 |
--- a/test/test_packagemap.dart |
+++ b/test/parse_test.dart |
@@ -4,61 +4,62 @@ |
library test_all; |
-import "package:package_config/packagemap.dart"; |
+import "package:package_config/packages.dart"; |
+import "package:package_config/packages_file.dart" show parse; |
import "package:test/test.dart"; |
main() { |
var base = Uri.parse("file:///one/two/three/packages.map"); |
test("empty", () { |
- var packages = Packages.parse(emptySample, base); |
- expect(packages.packageMapping, isEmpty); |
+ var packages = doParse(emptySample, base); |
+ expect(packages.asMap(), isEmpty); |
}); |
test("comment only", () { |
- var packages = Packages.parse(commentOnlySample, base); |
- expect(packages.packageMapping, isEmpty); |
+ var packages = doParse(commentOnlySample, base); |
+ expect(packages.asMap(), isEmpty); |
}); |
test("empty lines only", () { |
- var packages = Packages.parse(emptyLinesSample, base); |
- expect(packages.packageMapping, isEmpty); |
+ var packages = doParse(emptyLinesSample, base); |
+ expect(packages.asMap(), isEmpty); |
}); |
test("empty lines only", () { |
- var packages = Packages.parse(emptyLinesSample, base); |
- expect(packages.packageMapping, isEmpty); |
+ var packages = doParse(emptyLinesSample, base); |
+ expect(packages.asMap(), isEmpty); |
}); |
test("single", () { |
- var packages = Packages.parse(singleRelativeSample, base); |
- expect(packages.packageMapping.keys.toList(), equals(["foo"])); |
+ var packages = doParse(singleRelativeSample, base); |
+ expect(packages.packages.toList(), equals(["foo"])); |
expect(packages.resolve(Uri.parse("package:foo/bar/baz.dart")), |
equals(base.resolve("../test/").resolve("bar/baz.dart"))); |
}); |
test("single no slash", () { |
- var packages = Packages.parse(singleRelativeSampleNoSlash, base); |
- expect(packages.packageMapping.keys.toList(), equals(["foo"])); |
+ var packages = doParse(singleRelativeSampleNoSlash, base); |
+ expect(packages.packages.toList(), equals(["foo"])); |
expect(packages.resolve(Uri.parse("package:foo/bar/baz.dart")), |
equals(base.resolve("../test/").resolve("bar/baz.dart"))); |
}); |
test("single no newline", () { |
- var packages = Packages.parse(singleRelativeSampleNoNewline, base); |
- expect(packages.packageMapping.keys.toList(), equals(["foo"])); |
+ var packages = doParse(singleRelativeSampleNoNewline, base); |
+ expect(packages.packages.toList(), equals(["foo"])); |
expect(packages.resolve(Uri.parse("package:foo/bar/baz.dart")), |
equals(base.resolve("../test/").resolve("bar/baz.dart"))); |
}); |
test("single absolute", () { |
- var packages = Packages.parse(singleAbsoluteSample, base); |
- expect(packages.packageMapping.keys.toList(), equals(["foo"])); |
+ var packages = doParse(singleAbsoluteSample, base); |
+ expect(packages.packages.toList(), equals(["foo"])); |
expect(packages.resolve(Uri.parse("package:foo/bar/baz.dart")), |
equals(Uri.parse("http://example.com/some/where/bar/baz.dart"))); |
}); |
test("multiple", () { |
- var packages = Packages.parse(multiRelativeSample, base); |
+ var packages = doParse(multiRelativeSample, base); |
expect( |
- packages.packageMapping.keys.toList()..sort(), equals(["bar", "foo"])); |
+ packages.packages.toList()..sort(), equals(["bar", "foo"])); |
expect(packages.resolve(Uri.parse("package:foo/bar/baz.dart")), |
equals(base.resolve("../test/").resolve("bar/baz.dart"))); |
expect(packages.resolve(Uri.parse("package:bar/foo/baz.dart")), |
@@ -66,51 +67,51 @@ main() { |
}); |
test("dot-dot 1", () { |
- var packages = Packages.parse(singleRelativeSample, base); |
- expect(packages.packageMapping.keys.toList(), equals(["foo"])); |
+ var packages = doParse(singleRelativeSample, base); |
+ expect(packages.packages.toList(), equals(["foo"])); |
expect(packages.resolve(Uri.parse("package:foo/qux/../bar/baz.dart")), |
equals(base.resolve("../test/").resolve("bar/baz.dart"))); |
}); |
test("dot-dot 2", () { |
- var packages = Packages.parse(singleRelativeSample, base); |
- expect(packages.packageMapping.keys.toList(), equals(["foo"])); |
+ var packages = doParse(singleRelativeSample, base); |
+ expect(packages.packages.toList(), equals(["foo"])); |
expect(packages.resolve(Uri.parse("package:qux/../foo/bar/baz.dart")), |
equals(base.resolve("../test/").resolve("bar/baz.dart"))); |
}); |
test("all valid chars", () { |
- var packages = Packages.parse(allValidCharsSample, base); |
- expect(packages.packageMapping.keys.toList(), equals([allValidChars])); |
+ var packages = doParse(allValidCharsSample, base); |
+ expect(packages.packages.toList(), equals([allValidChars])); |
expect(packages.resolve(Uri.parse("package:$allValidChars/bar/baz.dart")), |
equals(base.resolve("../test/").resolve("bar/baz.dart"))); |
}); |
test("no escapes", () { |
- expect(() => Packages.parse("x%41x=x", base), throws); |
+ expect(() => doParse("x%41x=x", base), throws); |
}); |
test("not identifiers", () { |
- expect(() => Packages.parse("1x=x", base), throws); |
- expect(() => Packages.parse(" x=x", base), throws); |
- expect(() => Packages.parse("\\x41x=x", base), throws); |
- expect(() => Packages.parse("x@x=x", base), throws); |
- expect(() => Packages.parse("x[x=x", base), throws); |
- expect(() => Packages.parse("x`x=x", base), throws); |
- expect(() => Packages.parse("x{x=x", base), throws); |
- expect(() => Packages.parse("x/x=x", base), throws); |
- expect(() => Packages.parse("x:x=x", base), throws); |
+ expect(() => doParse("1x=x", base), throws); |
+ expect(() => doParse(" x=x", base), throws); |
+ expect(() => doParse("\\x41x=x", base), throws); |
+ expect(() => doParse("x@x=x", base), throws); |
+ expect(() => doParse("x[x=x", base), throws); |
+ expect(() => doParse("x`x=x", base), throws); |
+ expect(() => doParse("x{x=x", base), throws); |
+ expect(() => doParse("x/x=x", base), throws); |
+ expect(() => doParse("x:x=x", base), throws); |
}); |
test("same name twice", () { |
- expect(() => Packages.parse(singleRelativeSample * 2, base), throws); |
+ expect(() => doParse(singleRelativeSample * 2, base), throws); |
}); |
for (String invalidSample in invalid) { |
test("invalid '$invalidSample'", () { |
var result; |
try { |
- result = Packages.parse(invalidSample, base); |
+ result = doParse(invalidSample, base); |
} on FormatException { |
// expected |
return; |
@@ -120,6 +121,11 @@ main() { |
} |
} |
+Packages doParse(String sample, Uri baseUri) { |
+ Map<String, Uri> map = parse(sample.codeUnits, baseUri); |
+ return new Packages(map); |
+} |
+ |
// Valid samples. |
var emptySample = ""; |
var commentOnlySample = "# comment only\n"; |