/** * 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" #include "FileTools.cpp" 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, GetFileExtensionWin) { ASSERT_EQ ( BaseLib::getFileExtension("file"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("\\file"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("path\\"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("\\path\\"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("path\\file"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("\\path\\file"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("\\path\\path\\file"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("\\path\\path\\path\\"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getFileExtension("\\file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getFileExtension("path.ext\\"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("\\path.ext\\"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("path\\file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getFileExtension("\\path\\file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getFileExtension("\\path\\path\\file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getFileExtension("\\path\\path\\path.ext\\"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("path.wrong\\file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getFileExtension("\\path.wrong\\file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getFileExtension("\\path.wrong0\\path.wrong\\file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getFileExtension("\\path.wrong0\\path.wrong\\path.ext\\"), "" ); } TEST(BaseLib, getFileExtensionUnix) { ASSERT_EQ ( BaseLib::getFileExtension("file"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("/file"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("path/"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("/path/"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("path/file"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("/path/file"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("/path/path/file"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("/path/path/path/"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getFileExtension("/file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getFileExtension("path.ext/"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("/path.ext/"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("path/file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getFileExtension("/path/file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getFileExtension("/path/path/file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getFileExtension("/path/path/path.ext/"), "" ); ASSERT_EQ ( BaseLib::getFileExtension("path.wrong/file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getFileExtension("/path.wrong/file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getFileExtension("/path.wrong0/path.wrong/file.ext"), "ext" ); ASSERT_EQ ( BaseLib::getFileExtension("/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, ExtractBaseNameWithoutExtensionWin) { ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path\\"), "" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path\\"), "" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path\\file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path\\file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path\\path\\file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path\\path\\path\\"), "" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("file.ext"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\file.ext"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path.ext\\"), "" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path.ext\\"), "" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path\\file.ext"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path\\file.ext"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path\\path\\file.ext"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path\\path\\path.ext\\"), "" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path.wrong\\file.ext"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path.wrong\\file.ext"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path.wrong0\\path.wrong\\file.ext"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("\\path.wrong0\\path.wrong\\path.ext\\"), "" ); } TEST(BaseLib, ExtractBaseNameWithoutExtensionUnix) { ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path/"), "" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path/"), "" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path/file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path/file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path/path/file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path/path/path/"), "" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("file.ext"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/file.ext"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path.ext/"), "" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path.ext/"), "" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path/file.ext"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path/file.ext"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path/path/file.ext"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path/path/path.ext/"), "" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("path.wrong/file.ext"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path.wrong/file.ext"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path.wrong0/path.wrong/file.ext"), "file" ); ASSERT_EQ ( BaseLib::extractBaseNameWithoutExtension("/path.wrong0/path.wrong/path.ext/"), "" ); } TEST(BaseLib, ExtractBaseNameWin) { ASSERT_EQ ( BaseLib::extractBaseName("file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseName("\\file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseName("path\\"), "" ); ASSERT_EQ ( BaseLib::extractBaseName("\\path\\"), "" ); ASSERT_EQ ( BaseLib::extractBaseName("path\\file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseName("\\path\\file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseName("\\path\\path\\file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseName("\\path\\path\\path\\"), "" ); ASSERT_EQ ( BaseLib::extractBaseName("file.ext"), "file.ext" ); ASSERT_EQ ( BaseLib::extractBaseName("\\file.ext"), "file.ext" ); ASSERT_EQ ( BaseLib::extractBaseName("path.ext\\"), "" ); ASSERT_EQ ( BaseLib::extractBaseName("\\path.ext\\"), "" ); ASSERT_EQ ( BaseLib::extractBaseName("path\\file.ext"), "file.ext" ); ASSERT_EQ ( BaseLib::extractBaseName("\\path\\file.ext"), "file.ext" ); ASSERT_EQ ( BaseLib::extractBaseName("\\path\\path\\file.ext"), "file.ext" ); ASSERT_EQ ( BaseLib::extractBaseName("\\path\\path\\path.ext\\"), "" ); ASSERT_EQ ( BaseLib::extractBaseName("path.wrong\\file.ext"), "file.ext" ); ASSERT_EQ ( BaseLib::extractBaseName("\\path.wrong\\file.ext"), "file.ext" ); ASSERT_EQ ( BaseLib::extractBaseName("\\path.wrong0\\path.wrong\\file.ext"), "file.ext" ); ASSERT_EQ ( BaseLib::extractBaseName("\\path.wrong0\\path.wrong\\path.ext\\"), "" ); } TEST(BaseLib, HasFileExtensionWin) { ASSERT_TRUE ( BaseLib::hasFileExtension("", "file")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "\\file")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "path\\")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "\\path\\")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "path\\file")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "\\path\\file")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "\\path\\path\\file")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "\\path\\path\\path\\")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "\\file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "path.ext\\")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "\\path.ext\\")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "path\\file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "\\path\\file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "\\path\\path\\file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "\\path\\path\\path.ext\\")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "path.wrong\\file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "\\path.wrong\\file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "\\path.wrong0\\path.wrong\\file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "\\path.wrong0\\path.wrong\\path.ext\\")); ASSERT_TRUE ( BaseLib::hasFileExtension("EXT", "file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("EXT", "file.EXT")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "file.EXT")); ASSERT_TRUE ( BaseLib::hasFileExtension("Ext", "file.exT")); ASSERT_TRUE ( BaseLib::hasFileExtension("EXT", "path\\file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("EXT", "path\\file.EXT")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "path\\file.EXT")); ASSERT_TRUE ( BaseLib::hasFileExtension("Ext", "path\\file.exT")); } TEST(BaseLib, HasFileExtensionUnix) { ASSERT_TRUE ( BaseLib::hasFileExtension("", "file")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "/file")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "path/")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "/path/")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "path/file")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "/path/file")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "/path/path/file")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "/path/path/path/")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "/file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "path.ext/")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "/path.ext/")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "path/file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "/path/file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "/path/path/file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "/path/path/path.ext/")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "path.wrong/file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "/path.wrong/file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "/path.wrong0/path.wrong/file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("", "/path.wrong0/path.wrong/path.ext/")); ASSERT_TRUE ( BaseLib::hasFileExtension("EXT", "file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("EXT", "file.EXT")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "file.EXT")); ASSERT_TRUE ( BaseLib::hasFileExtension("Ext", "file.exT")); ASSERT_TRUE ( BaseLib::hasFileExtension("EXT", "path/file.ext")); ASSERT_TRUE ( BaseLib::hasFileExtension("EXT", "path/file.EXT")); ASSERT_TRUE ( BaseLib::hasFileExtension("ext", "path/file.EXT")); ASSERT_TRUE ( BaseLib::hasFileExtension("Ext", "path/file.exT")); } TEST(BaseLib, ExtractBaseNameUnix) { ASSERT_EQ ( BaseLib::extractBaseName("file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseName("/file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseName("path/"), "" ); ASSERT_EQ ( BaseLib::extractBaseName("/path/"), "" ); ASSERT_EQ ( BaseLib::extractBaseName("path/file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseName("/path/file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseName("/path/path/file"), "file" ); ASSERT_EQ ( BaseLib::extractBaseName("/path/path/path/"), "" ); ASSERT_EQ ( BaseLib::extractBaseName("file.ext"), "file.ext" ); ASSERT_EQ ( BaseLib::extractBaseName("/file.ext"), "file.ext" ); ASSERT_EQ ( BaseLib::extractBaseName("path.ext/"), "" ); ASSERT_EQ ( BaseLib::extractBaseName("/path.ext/"), "" ); ASSERT_EQ ( BaseLib::extractBaseName("path/file.ext"), "file.ext" ); ASSERT_EQ ( BaseLib::extractBaseName("/path/file.ext"), "file.ext" ); ASSERT_EQ ( BaseLib::extractBaseName("/path/path/file.ext"), "file.ext" ); ASSERT_EQ ( BaseLib::extractBaseName("/path/path/path.ext/"), "" ); ASSERT_EQ ( BaseLib::extractBaseName("path.wrong/file.ext"), "file.ext" ); ASSERT_EQ ( BaseLib::extractBaseName("/path.wrong/file.ext"), "file.ext" ); ASSERT_EQ ( BaseLib::extractBaseName("/path.wrong0/path.wrong/file.ext"), "file.ext" ); ASSERT_EQ ( BaseLib::extractBaseName("/path.wrong0/path.wrong/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/" ); }