deno.land / std@0.166.0 / path / join_test.ts

نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.import { assertEquals } from "../testing/asserts.ts";import * as path from "./mod.ts";
const backslashRE = /\\/g;
const joinTests = // arguments result [ [[".", "x/b", "..", "/b/c.js"], "x/b/c.js"], [[], "."], [["/.", "x/b", "..", "/b/c.js"], "/x/b/c.js"], [["/foo", "../../../bar"], "/bar"], [["foo", "../../../bar"], "../../bar"], [["foo/", "../../../bar"], "../../bar"], [["foo/x", "../../../bar"], "../bar"], [["foo/x", "./bar"], "foo/x/bar"], [["foo/x/", "./bar"], "foo/x/bar"], [["foo/x/", ".", "bar"], "foo/x/bar"], [["./"], "./"], [[".", "./"], "./"], [[".", ".", "."], "."], [[".", "./", "."], "."], [[".", "/./", "."], "."], [[".", "/////./", "."], "."], [["."], "."], [["", "."], "."], [["", "foo"], "foo"], [["foo", "/bar"], "foo/bar"], [["", "/foo"], "/foo"], [["", "", "/foo"], "/foo"], [["", "", "foo"], "foo"], [["foo", ""], "foo"], [["foo/", ""], "foo/"], [["foo", "", "/bar"], "foo/bar"], [["./", "..", "/foo"], "../foo"], [["./", "..", "..", "/foo"], "../../foo"], [[".", "..", "..", "/foo"], "../../foo"], [["", "..", "..", "/foo"], "../../foo"], [["/"], "/"], [["/", "."], "/"], [["/", ".."], "/"], [["/", "..", ".."], "/"], [[""], "."], [["", ""], "."], [[" /foo"], " /foo"], [[" ", "foo"], " /foo"], [[" ", "."], " "], [[" ", "/"], " /"], [[" ", ""], " "], [["/", "foo"], "/foo"], [["/", "/foo"], "/foo"], [["/", "//foo"], "/foo"], [["/", "", "/foo"], "/foo"], [["", "/", "foo"], "/foo"], [["", "/", "/foo"], "/foo"], ];
// Windows-specific join testsconst windowsJoinTests = [ // arguments result // UNC path expected [["//foo/bar"], "\\\\foo\\bar\\"], [["\\/foo/bar"], "\\\\foo\\bar\\"], [["\\\\foo/bar"], "\\\\foo\\bar\\"], // UNC path expected - server and share separate [["//foo", "bar"], "\\\\foo\\bar\\"], [["//foo/", "bar"], "\\\\foo\\bar\\"], [["//foo", "/bar"], "\\\\foo\\bar\\"], // UNC path expected - questionable [["//foo", "", "bar"], "\\\\foo\\bar\\"], [["//foo/", "", "bar"], "\\\\foo\\bar\\"], [["//foo/", "", "/bar"], "\\\\foo\\bar\\"], // UNC path expected - even more questionable [["", "//foo", "bar"], "\\\\foo\\bar\\"], [["", "//foo/", "bar"], "\\\\foo\\bar\\"], [["", "//foo/", "/bar"], "\\\\foo\\bar\\"], // No UNC path expected (no double slash in first component) [["\\", "foo/bar"], "\\foo\\bar"], [["\\", "/foo/bar"], "\\foo\\bar"], [["", "/", "/foo/bar"], "\\foo\\bar"], // No UNC path expected (no non-slashes in first component - // questionable) [["//", "foo/bar"], "\\foo\\bar"], [["//", "/foo/bar"], "\\foo\\bar"], [["\\\\", "/", "/foo/bar"], "\\foo\\bar"], [["//"], "\\"], // No UNC path expected (share name missing - questionable). [["//foo"], "\\foo"], [["//foo/"], "\\foo\\"], [["//foo", "/"], "\\foo\\"], [["//foo", "", "/"], "\\foo\\"], // No UNC path expected (too many leading slashes - questionable) [["///foo/bar"], "\\foo\\bar"], [["////foo", "bar"], "\\foo\\bar"], [["\\\\\\/foo/bar"], "\\foo\\bar"], // Drive-relative vs drive-absolute paths. This merely describes the // status quo, rather than being obviously right [["c:"], "c:."], [["c:."], "c:."], [["c:", ""], "c:."], [["", "c:"], "c:."], [["c:.", "/"], "c:.\\"], [["c:.", "file"], "c:file"], [["c:", "/"], "c:\\"], [["c:", "file"], "c:\\file"],];
Deno.test("join", function () { joinTests.forEach(function (p) { const _p = p[0] as string[]; const actual = path.posix.join.apply(null, _p); assertEquals(actual, p[1]); });});
Deno.test("joinWin32", function () { joinTests.forEach(function (p) { const _p = p[0] as string[]; const actual = path.win32.join.apply(null, _p).replace(backslashRE, "/"); assertEquals(actual, p[1]); }); windowsJoinTests.forEach(function (p) { const _p = p[0] as string[]; const actual = path.win32.join.apply(null, _p); assertEquals(actual, p[1]); });});
std
Deno standard library
GitHub Repositorydenoland/deno_std
GitHub Stars
2458

Version Info

Tagged at
2 months ago