68 lines
2 KiB
C++
Executable file
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);
|
|
}
|