Chromium Code Reviews| Index: webkit/fileapi/syncable/local_file_change_tracker_unittest.cc |
| diff --git a/webkit/fileapi/syncable/local_file_change_tracker_unittest.cc b/webkit/fileapi/syncable/local_file_change_tracker_unittest.cc |
| index 0eb77af71934bb5b41c21695e1eca7b68f2bb5fd..b1cabad8bbb8de0c9810ce0453af90ac567902f7 100644 |
| --- a/webkit/fileapi/syncable/local_file_change_tracker_unittest.cc |
| +++ b/webkit/fileapi/syncable/local_file_change_tracker_unittest.cc |
| @@ -8,7 +8,9 @@ |
| #include "base/memory/scoped_ptr.h" |
| #include "base/message_loop.h" |
| #include "base/message_loop_proxy.h" |
| +#include "base/scoped_temp_dir.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| +#include "webkit/fileapi/isolated_context.h" |
| #include "webkit/fileapi/syncable/local_file_change_tracker.h" |
| #include "webkit/fileapi/syncable/local_file_sync_status.h" |
| @@ -24,6 +26,8 @@ const char kURL2[] = "filesystem:http://foo.com/test/foo.txt"; |
| const char kURL3[] = "filesystem:http://foo.com/test/bar"; |
| const char kURL4[] = "filesystem:http://foo.com/temporary/dir a"; |
| +const char kExternalFileSystemID[] = "drive"; |
| + |
| FileSystemURL URL(const char* spec) { |
| return FileSystemURL(GURL(spec)); |
| } |
| @@ -33,9 +37,19 @@ FileSystemURL URL(const char* spec) { |
| class LocalFileChangeTrackerTest : public testing::Test { |
| public: |
| LocalFileChangeTrackerTest() |
| - : sync_status_(new LocalFileSyncStatus), |
| - change_tracker_(new LocalFileChangeTracker( |
| - sync_status_.get(), base::MessageLoopProxy::current())) {} |
| + : sync_status_(new LocalFileSyncStatus) {} |
| + |
| + virtual void SetUp() OVERRIDE { |
| + EXPECT_TRUE(data_dir_.CreateUniqueTempDir()); |
| + change_tracker_.reset(new LocalFileChangeTracker( |
| + sync_status_.get(), |
| + data_dir_.path(), |
| + base::MessageLoopProxy::current())); |
| + IsolatedContext::GetInstance()->RegisterExternalFileSystem( |
| + kExternalFileSystemID, |
| + kFileSystemTypeSyncable, |
| + FilePath()); |
| + } |
| protected: |
| LocalFileSyncStatus* sync_status() const { |
| @@ -46,6 +60,14 @@ class LocalFileChangeTrackerTest : public testing::Test { |
| return change_tracker_.get(); |
| } |
| + std::string SerializeExternalFileSystemURL(const FileSystemURL& url) { |
| + return change_tracker_->SerializeExternalFileSystemURL(url); |
| + } |
| + |
| + FileSystemURL DeserializeExternalFileSystemURL(const std::string& url) { |
| + return change_tracker_->DeserializeExternalFileSystemURL(url); |
| + } |
| + |
| void VerifyChange(const FileSystemURL& url, |
| const FileChange& expected_change) { |
| SCOPED_TRACE(testing::Message() << url.spec() << |
| @@ -73,6 +95,7 @@ class LocalFileChangeTrackerTest : public testing::Test { |
| } |
| private: |
| + ScopedTempDir data_dir_; |
| MessageLoop message_loop_; |
| scoped_ptr<LocalFileSyncStatus> sync_status_; |
| scoped_ptr<LocalFileChangeTracker> change_tracker_; |
| @@ -114,4 +137,17 @@ TEST_F(LocalFileChangeTrackerTest, GetChanges) { |
| FileChange::FILE_TYPE_FILE)); |
| } |
| +TEST_F(LocalFileChangeTrackerTest, SerializeExternalFileSystemURL) { |
| + const std::string kFileSystemRootURI = "filesystem:http://foo.com/external/"; |
| + const std::string kExternalFileSystemURL = |
| + kFileSystemRootURI + kExternalFileSystemID + "/dir a/file"; |
| + FileSystemURL url = FileSystemURL(GURL(kExternalFileSystemURL)); |
|
kinuko
2012/09/21 08:12:32
Maybe if this file system gets mature we might add
nhiroki
2012/09/24 07:01:40
Okay, I filed it (http://crbug.com/151876), and I'
|
| + |
| + std::string serialized = SerializeExternalFileSystemURL(url); |
| + EXPECT_EQ(kExternalFileSystemURL, serialized); |
| + EXPECT_EQ(url, DeserializeExternalFileSystemURL(serialized)); |
| +} |
| + |
| +// TODO(nhiroki): add unittests to ensure the database works successfully. |
| + |
| } // namespace fileapi |