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
|
// Copyright (c) 2009 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "net/ftp/ftp_util.h"
#include "base/basictypes.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace {
TEST(FtpUtilTest, UnixFilePathToVMS) {
const struct {
const char* input;
const char* expected_output;
} kTestCases[] = {
{ "", "" },
{ "/", "[]" },
{ "/a", "a" },
{ "/a/b", "a:[000000]b" },
{ "/a/b/c", "a:[b]c" },
{ "/a/b/c/d", "a:[b.c]d" },
{ "/a/b/c/d/e", "a:[b.c.d]e" },
{ "a", "a" },
{ "a/b", "[.a]b" },
{ "a/b/c", "[.a.b]c" },
{ "a/b/c/d", "[.a.b.c]d" },
};
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestCases); i++) {
EXPECT_EQ(kTestCases[i].expected_output,
net::FtpUtil::UnixFilePathToVMS(kTestCases[i].input))
<< kTestCases[i].input;
}
}
TEST(FtpUtilTest, UnixDirectoryPathToVMS) {
const struct {
const char* input;
const char* expected_output;
} kTestCases[] = {
{ "", "" },
{ "/", "" },
{ "/a", "a:[000000]" },
{ "/a/", "a:[000000]" },
{ "/a/b", "a:[b]" },
{ "/a/b/", "a:[b]" },
{ "/a/b/c", "a:[b.c]" },
{ "/a/b/c/", "a:[b.c]" },
{ "/a/b/c/d", "a:[b.c.d]" },
{ "/a/b/c/d/", "a:[b.c.d]" },
{ "/a/b/c/d/e", "a:[b.c.d.e]" },
{ "/a/b/c/d/e/", "a:[b.c.d.e]" },
{ "a", "[.a]" },
{ "a/", "[.a]" },
{ "a/b", "[.a.b]" },
{ "a/b/", "[.a.b]" },
{ "a/b/c", "[.a.b.c]" },
{ "a/b/c/", "[.a.b.c]" },
{ "a/b/c/d", "[.a.b.c.d]" },
{ "a/b/c/d/", "[.a.b.c.d]" },
};
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestCases); i++) {
EXPECT_EQ(kTestCases[i].expected_output,
net::FtpUtil::UnixDirectoryPathToVMS(kTestCases[i].input))
<< kTestCases[i].input;
}
}
TEST(FtpUtilTest, VMSPathToUnix) {
const struct {
const char* input;
const char* expected_output;
} kTestCases[] = {
{ "", "." },
{ "[]", "/" },
{ "a", "/a" },
{ "a:[000000]", "/a" },
{ "a:[000000]b", "/a/b" },
{ "a:[b]", "/a/b" },
{ "a:[b]c", "/a/b/c" },
{ "a:[b.c]", "/a/b/c" },
{ "a:[b.c]d", "/a/b/c/d" },
{ "a:[b.c.d]", "/a/b/c/d" },
{ "a:[b.c.d]e", "/a/b/c/d/e" },
{ "a:[b.c.d.e]", "/a/b/c/d/e" },
{ "[.a]", "a" },
{ "[.a]b", "a/b" },
{ "[.a.b]", "a/b" },
{ "[.a.b]c", "a/b/c" },
{ "[.a.b.c]", "a/b/c" },
{ "[.a.b.c]d", "a/b/c/d" },
{ "[.a.b.c.d]", "a/b/c/d" },
};
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestCases); i++) {
EXPECT_EQ(kTestCases[i].expected_output,
net::FtpUtil::VMSPathToUnix(kTestCases[i].input))
<< kTestCases[i].input;
}
}
} // namespace
|