Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/test/file_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/test/file_test.cpp')
-rw-r--r--source/test/file_test.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/source/test/file_test.cpp b/source/test/file_test.cpp
new file mode 100644
index 0000000..f8d3b70
--- /dev/null
+++ b/source/test/file_test.cpp
@@ -0,0 +1,51 @@
+#include "StarFile.hpp"
+#include "StarString.hpp"
+#include "StarFormat.hpp"
+
+#include "gtest/gtest.h"
+
+using namespace Star;
+
+TEST(FileTest, All) {
+ auto file = File::ephemeralFile();
+ file->resize(1000);
+ file->resize(0);
+ file->resize(500);
+ EXPECT_EQ(file->size(), 500);
+
+ auto dir = File::temporaryDirectory();
+ File::makeDirectory(File::relativeTo(dir, "inner"));
+ EXPECT_TRUE(File::isDirectory(File::relativeTo(dir, "inner") + "/"));
+ File::removeDirectoryRecursive(dir);
+
+#ifdef STAR_SYSTEM_FAMILY_WINDOWS
+ EXPECT_EQ(File::baseName("/foo/bar"), "bar");
+ EXPECT_EQ(File::baseName("\\foo\\bar\\"), "bar");
+ EXPECT_EQ(File::baseName("/foo/bar/baz"), "baz");
+ EXPECT_EQ(File::dirName("\\foo\\bar"), "\\foo");
+ EXPECT_EQ(File::dirName("/foo\\bar/"), "/foo");
+ EXPECT_EQ(File::dirName("/foo/bar\\baz"), "/foo/bar");
+ EXPECT_EQ(File::dirName("foo/bar/baz"), "foo/bar");
+
+ EXPECT_EQ(File::relativeTo("c:\\foo\\", "bar"), "c:\\foo\\bar");
+ EXPECT_EQ(File::relativeTo("c:\\foo", "bar"), "c:\\foo\\bar");
+ EXPECT_EQ(File::relativeTo("c:\\foo\\", "\\bar"), "\\bar");
+ EXPECT_EQ(File::relativeTo("c:\\foo\\", ".\\bar"), "c:\\foo\\bar");
+ EXPECT_EQ(File::relativeTo("c:\\foo\\.", ".\\bar"), "c:\\foo\\bar");
+ EXPECT_EQ(File::relativeTo("c:\\foo\\.", "c:\\bar"), "c:\\bar");
+ EXPECT_EQ(File::relativeTo("c:\\foo\\.", "c:bar\\"), "c:bar\\");
+ EXPECT_EQ(File::relativeTo("c:\\foo.", "bar"), "c:\\foo.\\bar");
+#else
+ EXPECT_EQ(File::baseName("/foo/bar"), "bar");
+ EXPECT_EQ(File::baseName("/foo/bar/"), "bar");
+ EXPECT_EQ(File::baseName("/foo/bar/baz"), "baz");
+ EXPECT_EQ(File::dirName("/foo/bar"), "/foo");
+ EXPECT_EQ(File::dirName("/foo/bar/"), "/foo");
+ EXPECT_EQ(File::dirName("/foo/bar/baz"), "/foo/bar");
+ EXPECT_EQ(File::dirName("foo/bar/baz"), "foo/bar");
+
+ EXPECT_EQ(File::relativeTo("/foo", "bar"), "/foo/bar");
+ EXPECT_EQ(File::relativeTo("/foo", "bar/"), "/foo/bar/");
+ EXPECT_EQ(File::relativeTo("/foo", "/bar/"), "/bar/");
+#endif
+}