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 |