| Index: net/ftp/ftp_util_unittest.cc
|
| diff --git a/net/ftp/ftp_util_unittest.cc b/net/ftp/ftp_util_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2ccb75bba4268d4e6b79bf2dc2f1c10539acf0b4
|
| --- /dev/null
|
| +++ b/net/ftp/ftp_util_unittest.cc
|
| @@ -0,0 +1,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
|
|
|