Index: test/DefaultFileSystem.cpp |
=================================================================== |
new file mode 100644 |
--- /dev/null |
+++ b/test/DefaultFileSystem.cpp |
@@ -0,0 +1,56 @@ |
+#include <AdblockPlus.h> |
+#include <gtest/gtest.h> |
+ |
+#include "../src/Utils.h" |
+ |
+namespace |
+{ |
+ const std::string testPath = "libadblockplus-test-file"; |
+ |
+ void WriteString(AdblockPlus::FileSystem& fileSystem, |
+ const std::string& content) |
+ { |
+ std::tr1::shared_ptr<std::stringstream> input(new std::stringstream); |
+ *input << content; |
+ fileSystem.Write(testPath, input); |
+ } |
+} |
+ |
+TEST(DefaultFileSystemTest, WriteReadRemove) |
+{ |
+ AdblockPlus::DefaultFileSystem fileSystem; |
+ WriteString(fileSystem, "foo"); |
+ std::string output = AdblockPlus::Utils::Slurp(*fileSystem.Read(testPath)); |
+ fileSystem.Remove(testPath); |
+ ASSERT_EQ("foo", output); |
+} |
+ |
+TEST(DefaultFileSystemTest, StatWorkingDirectory) |
+{ |
+ AdblockPlus::DefaultFileSystem fileSystem; |
+ const AdblockPlus::FileSystem::StatResult result = fileSystem.Stat("."); |
+ ASSERT_TRUE(result.exists); |
+ ASSERT_TRUE(result.isDirectory); |
+ ASSERT_FALSE(result.isFile); |
+ ASSERT_NE(0, result.lastModified); |
+} |
+ |
+TEST(DefaultFileSystemTest, WriteMoveStatRemove) |
+{ |
+ AdblockPlus::DefaultFileSystem fileSystem; |
+ WriteString(fileSystem, "foo"); |
+ AdblockPlus::FileSystem::StatResult result = fileSystem.Stat(testPath); |
+ ASSERT_TRUE(result.exists); |
+ ASSERT_TRUE(result.isFile); |
+ ASSERT_FALSE(result.isDirectory); |
+ ASSERT_NE(0, result.lastModified); |
+ const std::string newTestPath = testPath + "-new"; |
+ fileSystem.Move(testPath, newTestPath); |
+ result = fileSystem.Stat(testPath); |
+ ASSERT_FALSE(result.exists); |
+ result = fileSystem.Stat(newTestPath); |
+ ASSERT_TRUE(result.exists); |
+ fileSystem.Remove(newTestPath); |
+ result = fileSystem.Stat(newTestPath); |
+ ASSERT_FALSE(result.exists); |
+} |