/** * Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org) * Distributed under a Modified BSD License. * See accompanying file LICENSE.txt or * http://www.opengeosys.org/project/license */ #include "gtest.h" #include "FileTools.h" TEST(BaseLib, FindLastPathSeparatorWin) { ASSERT_EQ ( BaseLib::findLastPathSeparator("file"), std::string::npos ); ASSERT_EQ ( BaseLib::findLastPathSeparator("\\file"), 0 ); ASSERT_EQ ( BaseLib::findLastPathSeparator("path\\"), 4 ); ASSERT_EQ ( BaseLib::findLastPathSeparator("\\path\\"), 5 ); ASSERT_EQ ( BaseLib::findLastPathSeparator("path\\file"), 4 ); ASSERT_EQ ( BaseLib::findLastPathSeparator("\\path\\file"), 5 ); ASSERT_EQ ( BaseLib::findLastPathSeparator("\\path\\path\\file"), 10 ); ASSERT_EQ ( BaseLib::findLastPathSeparator("\\path\\path\\path\\"), 15 ); } TEST(BaseLib, FindLastPathSeparatorUnix) { ASSERT_EQ ( BaseLib::findLastPathSeparator("file"), std::string::npos ); ASSERT_EQ ( BaseLib::findLastPathSeparator("/file"), 0 ); ASSERT_EQ ( BaseLib::findLastPathSeparator("path/"), 4 ); ASSERT_EQ ( BaseLib::findLastPathSeparator("/path/"), 5 ); ASSERT_EQ ( BaseLib::findLastPathSeparator("path/file"), 4 ); ASSERT_EQ ( BaseLib::findLastPathSeparator("/path/file"), 5 ); ASSERT_EQ ( BaseLib::findLastPathSeparator("/path/path/file"), 10 ); ASSERT_EQ ( BaseLib::findLastPathSeparator("/path/path/path/"), 15 ); } TEST(BaseLib, GetFileNameFromPathWin) { ASSERT_EQ ( BaseLib::getFileNameFromPath("file", true), "file" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("\\file", true), "file" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("path\\", true), "" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("\\path\\", true), "" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("path\\file", true), "file" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("\\path\\file", true), "file" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("\\path\\path\\file", true), "file" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("\\path\\path\\path\\", true), "" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("file.ext", true), "file.ext" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("\\file.ext", true), "file.ext" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("path.ext\\", true), "" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("\\path.ext\\", true), "" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("path\\file.ext", true), "file.ext" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("\\path\\file.ext", true), "file.ext" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("\\path\\path\\file.ext", true), "file.ext" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("\\path\\path\\path.ext\\", true), "" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("path.wrong\\file.ext", true), "file.ext" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("\\path.wrong\\file.ext", true), "file.ext" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("\\path.wrong0\\path.wrong\\file.ext", true), "file.ext" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("\\path.wrong0\\path.wrong\\path.ext\\", true), "" ); } TEST(BaseLib, GetFileNameFromPathUnix) { ASSERT_EQ ( BaseLib::getFileNameFromPath("file", true), "file" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("/file", true), "file" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("path/", true), "" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("/path/", true), "" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("path/file", true), "file" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("/path/file", true), "file" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("/path/path/file", true), "file" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("/path/path/path/", true), "" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("file.ext", true), "file.ext" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("/file.ext", true), "file.ext" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("path.ext/", true), "" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("/path.ext/", true), "" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("path/file.ext", true), "file.ext" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("/path/file.ext", true), "file.ext" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("/path/path/file.ext", true), "file.ext" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("/path/path/path.ext/", true), "" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("path.wrong/file.ext", true), "file.ext" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("/path.wrong/file.ext", true), "file.ext" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("/path.wrong0/path.wrong/file.ext", true), "file.ext" ); ASSERT_EQ ( BaseLib::getFileNameFromPath("/path.wrong0/path.wrong/path.ext/", true), "" ); } TEST(BaseLib, GetSuffixFromPathWin) { ASSERT_EQ ( BaseLib::getSuffixFromPath("file"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("\\file"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("path\\"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("\\path\\"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("path\\file"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("\\path\\file"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("\\path\\path\\file"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("\\path\\path\\path\\"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("\\file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("path.ext\\"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("\\path.ext\\"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("path\\file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("\\path\\file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("\\path\\path\\file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("\\path\\path\\path.ext\\"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("path.wrong\\file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("\\path.wrong\\file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("\\path.wrong0\\path.wrong\\file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("\\path.wrong0\\path.wrong\\path.ext\\"), "" ); } TEST(BaseLib, GetSuffixFromPathUnix) { ASSERT_EQ ( BaseLib::getSuffixFromPath("file"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("/file"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("path/"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("/path/"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("path/file"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("/path/file"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("/path/path/file"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("/path/path/path/"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("/file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("path.ext/"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("/path.ext/"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("path/file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("/path/file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("/path/path/file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("/path/path/path.ext/"), "" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("path.wrong/file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("/path.wrong/file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("/path.wrong0/path.wrong/file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getSuffixFromPath("/path.wrong0/path.wrong/path.ext/"), "" ); } TEST(BaseLib, CopyPathToFileNameWin) { ASSERT_EQ ( BaseLib::copyPathToFileName("file", "extend"), "file" ); ASSERT_EQ ( BaseLib::copyPathToFileName("path\\file", "extend"), "path\\file" ); ASSERT_EQ ( BaseLib::copyPathToFileName("file", "extend\\"), "extend\\file" ); ASSERT_EQ ( BaseLib::copyPathToFileName("path\\file", "extend\\"), "path\\file" ); ASSERT_EQ ( BaseLib::copyPathToFileName("file", "extend\\smth"), "extend\\file" ); ASSERT_EQ ( BaseLib::copyPathToFileName("path\\file", "extend\\smth"), "path\\file" ); } TEST(BaseLib, CopyPathToFileNameUnix) { ASSERT_EQ ( BaseLib::copyPathToFileName("file", "extend"), "file" ); ASSERT_EQ ( BaseLib::copyPathToFileName("path/file", "extend"), "path/file" ); ASSERT_EQ ( BaseLib::copyPathToFileName("file", "extend/"), "extend/file" ); ASSERT_EQ ( BaseLib::copyPathToFileName("path/file", "extend/"), "path/file" ); ASSERT_EQ ( BaseLib::copyPathToFileName("file", "extend/smth"), "extend/file" ); ASSERT_EQ ( BaseLib::copyPathToFileName("path/file", "extend/smth"), "path/file" ); } TEST(BaseLib, ExtractPathWin) { ASSERT_EQ ( BaseLib::extractPath("file"), "" ); ASSERT_EQ ( BaseLib::extractPath("/file"), "/" ); ASSERT_EQ ( BaseLib::extractPath("path/"), "path/" ); ASSERT_EQ ( BaseLib::extractPath("/path/"), "/path/" ); ASSERT_EQ ( BaseLib::extractPath("path/file"), "path/" ); ASSERT_EQ ( BaseLib::extractPath("/path/file"), "/path/" ); ASSERT_EQ ( BaseLib::extractPath("/path/path/file"), "/path/path/" ); ASSERT_EQ ( BaseLib::extractPath("/path/path/path/"), "/path/path/path/" ); ASSERT_EQ ( BaseLib::extractPath("file.ext"), "" ); ASSERT_EQ ( BaseLib::extractPath("/file.ext"), "/" ); ASSERT_EQ ( BaseLib::extractPath("path.ext/"), "path.ext/" ); ASSERT_EQ ( BaseLib::extractPath("/path.ext/"), "/path.ext/" ); ASSERT_EQ ( BaseLib::extractPath("path/file.ext"), "path/" ); ASSERT_EQ ( BaseLib::extractPath("/path/file.ext"), "/path/" ); ASSERT_EQ ( BaseLib::extractPath("/path/path/file.ext"), "/path/path/" ); ASSERT_EQ ( BaseLib::extractPath("/path/path/path.ext/"), "/path/path/path.ext/" ); } TEST(BaseLib, ExtractPathUnix) { ASSERT_EQ ( BaseLib::extractPath("file"), "" ); ASSERT_EQ ( BaseLib::extractPath("/file"), "/" ); ASSERT_EQ ( BaseLib::extractPath("path/"), "path/" ); ASSERT_EQ ( BaseLib::extractPath("/path/"), "/path/" ); ASSERT_EQ ( BaseLib::extractPath("path/file"), "path/" ); ASSERT_EQ ( BaseLib::extractPath("/path/file"), "/path/" ); ASSERT_EQ ( BaseLib::extractPath("/path/path/file"), "/path/path/" ); ASSERT_EQ ( BaseLib::extractPath("/path/path/path/"), "/path/path/path/" ); ASSERT_EQ ( BaseLib::extractPath("file.ext"), "" ); ASSERT_EQ ( BaseLib::extractPath("/file.ext"), "/" ); ASSERT_EQ ( BaseLib::extractPath("path.ext/"), "path.ext/" ); ASSERT_EQ ( BaseLib::extractPath("/path.ext/"), "/path.ext/" ); ASSERT_EQ ( BaseLib::extractPath("path/file.ext"), "path/" ); ASSERT_EQ ( BaseLib::extractPath("/path/file.ext"), "/path/" ); ASSERT_EQ ( BaseLib::extractPath("/path/path/file.ext"), "/path/path/" ); ASSERT_EQ ( BaseLib::extractPath("/path/path/path.ext/"), "/path/path/path.ext/" ); }