mirror of
https://github.com/hanzoai/protobuf.js.git
synced 2026-09-24 17:02:08 +00:00
81 lines
3.1 KiB
JavaScript
81 lines
3.1 KiB
JavaScript
var tape = require("tape");
|
|
|
|
var path = require("../src/util/path");
|
|
|
|
tape.test("path", function(test) {
|
|
|
|
test.ok(path.isAbsolute("X:\\some\\path\\file.js"), "should identify absolute windows paths");
|
|
test.ok(path.isAbsolute("/some/path/file.js"), "should identify absolute unix paths");
|
|
|
|
test.notOk(path.isAbsolute("some\\path\\file.js"), "should identify relative windows paths");
|
|
test.notOk(path.isAbsolute("some/path/file.js"), "should identify relative unix paths");
|
|
|
|
test.ok(path.isAbsolute("\\\\some-unc\\path\\file.js"), "should identify windows unc paths");
|
|
|
|
var paths = [
|
|
{
|
|
actual: "X:\\some\\..\\.\\path\\\\file.js",
|
|
normal: "X:/path/file.js",
|
|
resolve: {
|
|
origin: "X:/path/origin.js",
|
|
expected: "X:/path/file.js"
|
|
}
|
|
}, {
|
|
actual: "some\\..\\.\\path\\\\file.js",
|
|
normal: "path/file.js",
|
|
resolve: {
|
|
origin: "X:/path/origin.js",
|
|
expected: "X:/path/path/file.js"
|
|
}
|
|
}, {
|
|
actual: "/some/.././path//file.js",
|
|
normal: "/path/file.js",
|
|
resolve: {
|
|
origin: "/path/origin.js",
|
|
expected: "/path/file.js"
|
|
}
|
|
}, {
|
|
actual: "some/.././path//file.js",
|
|
normal: "path/file.js",
|
|
resolve: {
|
|
origin: "",
|
|
expected: "path/file.js"
|
|
}
|
|
}, {
|
|
actual: ".././path//file.js",
|
|
normal: "../path/file.js"
|
|
}, {
|
|
actual: "/.././path//file.js",
|
|
normal: "/path/file.js"
|
|
}, {
|
|
actual: "\\\\some-unc\\path\\file.js",
|
|
normal: "\\\\some-unc/path/file.js",
|
|
resolve: {
|
|
origin: "\\\\some-unc\\path\\origin.js",
|
|
expected: "\\\\some-unc/path/file.js"
|
|
}
|
|
}, {
|
|
actual: "\\\\some-unc\\path\\..\\file.js",
|
|
normal: "\\\\some-unc/file.js",
|
|
resolve: {
|
|
origin: "\\\\some-unc\\path\\..\\origin.js",
|
|
expected: "\\\\some-unc/file.js"
|
|
}
|
|
}
|
|
];
|
|
|
|
paths.forEach(function(p) {
|
|
test.equal(path.normalize(p.actual), p.normal, "should normalize " + p.actual);
|
|
if (p.resolve) {
|
|
test.equal(path.resolve(p.resolve.origin, p.actual), p.resolve.expected, "should resolve " + p.actual);
|
|
test.equal(path.resolve(p.resolve.origin, p.normal, true), p.resolve.expected, "should resolve " + p.normal + " (already normalized)");
|
|
}
|
|
});
|
|
|
|
test.equal(path.normalize("http://example.com/protos/../file.proto"), "http://example.com/file.proto", "should normalize http urls");
|
|
test.equal(path.resolve("https://example.com/protos/origin.proto", "file.proto"), "https://example.com/protos/file.proto", "should resolve relative paths against urls");
|
|
test.equal(path.resolve("https://example.com/protos/origin.proto", "/file.proto"), "https://example.com/file.proto", "should resolve root-relative paths against urls");
|
|
|
|
test.end();
|
|
});
|