| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/sync_file_system/syncable_file_system_util.h" | 5 #include "chrome/browser/sync_file_system/syncable_file_system_util.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
| 9 #include "base/message_loop/message_loop_proxy.h" | 9 #include "base/message_loop/message_loop_proxy.h" |
| 10 #include "chrome/browser/sync_file_system/local/canned_syncable_file_system.h" | 10 #include "chrome/browser/sync_file_system/local/canned_syncable_file_system.h" |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 // non-registered filesystem and non-syncable filesystem. | 104 // non-registered filesystem and non-syncable filesystem. |
| 105 FileSystemURL deserialized; | 105 FileSystemURL deserialized; |
| 106 EXPECT_FALSE(DeserializeSyncableFileSystemURL( | 106 EXPECT_FALSE(DeserializeSyncableFileSystemURL( |
| 107 non_registered_url, &deserialized)); | 107 non_registered_url, &deserialized)); |
| 108 EXPECT_FALSE(DeserializeSyncableFileSystemURL( | 108 EXPECT_FALSE(DeserializeSyncableFileSystemURL( |
| 109 non_syncable_url, &deserialized)); | 109 non_syncable_url, &deserialized)); |
| 110 | 110 |
| 111 RevokeSyncableFileSystem(); | 111 RevokeSyncableFileSystem(); |
| 112 } | 112 } |
| 113 | 113 |
| 114 TEST(SyncableFileSystemUtilTest, SerializeBeforeOpenFileSystem) { | |
| 115 ScopedEnableSyncFSDirectoryOperation enable_directory_operation_; | |
| 116 const std::string serialized = kSyncableFileSystemRootURI + | |
| 117 CreateNormalizedFilePath(kPath).AsUTF8Unsafe(); | |
| 118 FileSystemURL deserialized; | |
| 119 base::MessageLoop message_loop; | |
| 120 | |
| 121 // Setting up a full syncable filesystem environment. | |
| 122 CannedSyncableFileSystem file_system(GURL(kOrigin), | |
| 123 base::MessageLoopProxy::current().get(), | |
| 124 base::MessageLoopProxy::current().get()); | |
| 125 file_system.SetUp(); | |
| 126 scoped_refptr<LocalFileSyncContext> sync_context = | |
| 127 new LocalFileSyncContext(base::MessageLoopProxy::current().get(), | |
| 128 base::MessageLoopProxy::current().get()); | |
| 129 | |
| 130 // Before calling initialization we would not be able to get a valid | |
| 131 // deserialized URL. | |
| 132 EXPECT_FALSE(DeserializeSyncableFileSystemURL(serialized, &deserialized)); | |
| 133 EXPECT_FALSE(deserialized.is_valid()); | |
| 134 | |
| 135 ASSERT_EQ(sync_file_system::SYNC_STATUS_OK, | |
| 136 file_system.MaybeInitializeFileSystemContext(sync_context.get())); | |
| 137 | |
| 138 // After initialization this should be ok (even before opening the file | |
| 139 // system). | |
| 140 EXPECT_TRUE(DeserializeSyncableFileSystemURL(serialized, &deserialized)); | |
| 141 EXPECT_TRUE(deserialized.is_valid()); | |
| 142 | |
| 143 // Shutting down. | |
| 144 file_system.TearDown(); | |
| 145 RevokeSyncableFileSystem(); | |
| 146 sync_context->ShutdownOnUIThread(); | |
| 147 sync_context = NULL; | |
| 148 base::MessageLoop::current()->RunUntilIdle(); | |
| 149 } | |
| 150 | |
| 151 TEST(SyncableFileSystemUtilTest, SyncableFileSystemURL_IsParent) { | 114 TEST(SyncableFileSystemUtilTest, SyncableFileSystemURL_IsParent) { |
| 152 RegisterSyncableFileSystem(); | 115 RegisterSyncableFileSystem(); |
| 153 | 116 |
| 154 const std::string root1 = sync_file_system::GetSyncableFileSystemRootURI( | 117 const std::string root1 = sync_file_system::GetSyncableFileSystemRootURI( |
| 155 GURL("http://foo.com")).spec(); | 118 GURL("http://foo.com")).spec(); |
| 156 const std::string root2 = sync_file_system::GetSyncableFileSystemRootURI( | 119 const std::string root2 = sync_file_system::GetSyncableFileSystemRootURI( |
| 157 GURL("http://bar.com")).spec(); | 120 GURL("http://bar.com")).spec(); |
| 158 | 121 |
| 159 const std::string parent("dir"); | 122 const std::string parent("dir"); |
| 160 const std::string child("dir/child"); | 123 const std::string child("dir/child"); |
| 161 | 124 |
| 162 // True case. | 125 // True case. |
| 163 EXPECT_TRUE(CreateFileSystemURL(root1 + parent).IsParent( | 126 EXPECT_TRUE(CreateFileSystemURL(root1 + parent).IsParent( |
| 164 CreateFileSystemURL(root1 + child))); | 127 CreateFileSystemURL(root1 + child))); |
| 165 EXPECT_TRUE(CreateFileSystemURL(root2 + parent).IsParent( | 128 EXPECT_TRUE(CreateFileSystemURL(root2 + parent).IsParent( |
| 166 CreateFileSystemURL(root2 + child))); | 129 CreateFileSystemURL(root2 + child))); |
| 167 | 130 |
| 168 // False case: different origin. | 131 // False case: different origin. |
| 169 EXPECT_FALSE(CreateFileSystemURL(root1 + parent).IsParent( | 132 EXPECT_FALSE(CreateFileSystemURL(root1 + parent).IsParent( |
| 170 CreateFileSystemURL(root2 + child))); | 133 CreateFileSystemURL(root2 + child))); |
| 171 EXPECT_FALSE(CreateFileSystemURL(root2 + parent).IsParent( | 134 EXPECT_FALSE(CreateFileSystemURL(root2 + parent).IsParent( |
| 172 CreateFileSystemURL(root1 + child))); | 135 CreateFileSystemURL(root1 + child))); |
| 173 | 136 |
| 174 RevokeSyncableFileSystem(); | 137 RevokeSyncableFileSystem(); |
| 175 } | 138 } |
| 176 | 139 |
| 177 } // namespace sync_file_system | 140 } // namespace sync_file_system |
| OLD | NEW |