1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-30 11:16:38 -05:00
denoland-deno/core/libdeno/file_util_test.cc
2019-05-01 09:48:56 -04:00

46 lines
1.8 KiB
C++

// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
#include "testing/gtest/include/gtest/gtest.h"
#include "file_util.h"
TEST(FileUtilTest, ReadFileToStringFileNotExist) {
std::string output;
EXPECT_FALSE(deno::ReadFileToString("/should_error_out.txt", &output));
}
TEST(FileUtilTest, Basename) {
EXPECT_EQ("foo.txt", deno::Basename("foo.txt"));
EXPECT_EQ("foo.txt", deno::Basename("/foo.txt"));
EXPECT_EQ("", deno::Basename("/foo/"));
EXPECT_EQ("", deno::Basename("foo/"));
EXPECT_EQ("", deno::Basename("/"));
EXPECT_EQ("foo.txt", deno::Basename(".\\foo.txt"));
EXPECT_EQ("foo.txt", deno::Basename("/home/ryan/foo.txt"));
EXPECT_EQ("foo.txt", deno::Basename("C:\\home\\ryan\\foo.txt"));
}
TEST(FileUtilTest, Dirname) {
EXPECT_EQ("home/dank/", deno::Dirname("home/dank/memes.gif"));
EXPECT_EQ("/home/dank/", deno::Dirname("/home/dank/memes.gif"));
EXPECT_EQ("/home/dank/", deno::Dirname("/home/dank/"));
EXPECT_EQ("home/dank/", deno::Dirname("home/dank/memes.gif"));
EXPECT_EQ("/", deno::Dirname("/"));
EXPECT_EQ(".\\", deno::Dirname(".\\memes.gif"));
EXPECT_EQ("c:\\", deno::Dirname("c:\\stuff"));
EXPECT_EQ("./", deno::Dirname("nothing"));
EXPECT_EQ("./", deno::Dirname(""));
}
TEST(FileUtilTest, ExePath) {
std::string exe_path;
EXPECT_TRUE(deno::ExePath(&exe_path));
// Path is absolute.
EXPECT_TRUE(exe_path.find("/") == 0 || exe_path.find(":\\") == 1);
// FIlename is the name of the test binary.
std::string exe_filename = deno::Basename(exe_path);
EXPECT_EQ(exe_filename.find("libdeno_test"), 0u);
// Path exists (also tests ReadFileToString).
std::string contents;
EXPECT_TRUE(deno::ReadFileToString(exe_path.c_str(), &contents));
EXPECT_NE(contents.find("Inception :)"), std::string::npos);
}