danicoin/tests/UnitTests/TestPath.cpp
2016-01-18 15:33:29 +00:00

68 lines
2 KiB
C++
Executable file

// Copyright (c) 2011-2016 The Cryptonote developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include "gtest/gtest.h"
#include "Common/PathTools.h"
TEST(PathTools, NativePathToGeneric) {
#ifdef _WIN32
const std::string input = "C:\\Windows\\System\\etc\\file.exe";
const std::string output = "C:/Windows/System/etc/file.exe";
#else
const std::string input = "/var/tmp/file.tmp";
const std::string output = input;
#endif
auto path = Common::NativePathToGeneric(input);
ASSERT_EQ(output, path);
}
TEST(PathTools, GetExtension) {
ASSERT_EQ("", Common::GetExtension(""));
ASSERT_EQ(".ext", Common::GetExtension(".ext"));
ASSERT_EQ("", Common::GetExtension("test"));
ASSERT_EQ(".ext", Common::GetExtension("test.ext"));
ASSERT_EQ(".ext2", Common::GetExtension("test.ext.ext2"));
ASSERT_EQ(".ext", Common::GetExtension("/path/file.ext"));
ASSERT_EQ(".yyy", Common::GetExtension("/path.xxx/file.yyy"));
ASSERT_EQ("", Common::GetExtension("/path.ext/file"));
}
TEST(PathTools, RemoveExtension) {
ASSERT_EQ("", Common::RemoveExtension(""));
ASSERT_EQ("", Common::RemoveExtension(".ext"));
ASSERT_EQ("test", Common::RemoveExtension("test"));
ASSERT_EQ("test", Common::RemoveExtension("test.ext"));
ASSERT_EQ("test.ext", Common::RemoveExtension("test.ext.ext2"));
ASSERT_EQ("/path/file", Common::RemoveExtension("/path/file.ext"));
ASSERT_EQ("/path.ext/file", Common::RemoveExtension("/path.ext/file.ext"));
ASSERT_EQ("/path.ext/file", Common::RemoveExtension("/path.ext/file"));
}
TEST(PathTools, SplitPath) {
std::string dir;
std::string file;
Common::SplitPath("/path/more/file", dir, file);
ASSERT_EQ("/path/more", dir);
ASSERT_EQ("file", file);
Common::SplitPath("file.ext", dir, file);
ASSERT_EQ("", dir);
ASSERT_EQ("file.ext", file);
Common::SplitPath("/path/more/", dir, file);
ASSERT_EQ("/path/more", dir);
ASSERT_EQ("", file);
}