OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <string> | 5 #include <string> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
11 #include "base/json/json_file_value_serializer.h" | 11 #include "base/json/json_file_value_serializer.h" |
12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
13 #include "base/message_loop.h" | 13 #include "base/message_loop.h" |
14 #include "base/path_service.h" | 14 #include "base/path_service.h" |
15 #include "base/scoped_temp_dir.h" | 15 #include "base/scoped_temp_dir.h" |
16 #include "base/stringprintf.h" | 16 #include "base/stringprintf.h" |
17 #include "base/threading/sequenced_worker_pool.h" | 17 #include "base/threading/sequenced_worker_pool.h" |
18 #include "base/values.h" | 18 #include "base/values.h" |
19 #include "chrome/browser/chromeos/cros/cros_library.h" | 19 #include "chrome/browser/chromeos/cros/cros_library.h" |
20 #include "chrome/browser/chromeos/gdata/drive_api_parser.h" | 20 #include "chrome/browser/chromeos/gdata/drive_api_parser.h" |
21 #include "chrome/browser/chromeos/gdata/drive_webapps_registry.h" | 21 #include "chrome/browser/chromeos/gdata/drive_webapps_registry.h" |
22 #include "chrome/browser/chromeos/gdata/gdata.pb.h" | 22 #include "chrome/browser/chromeos/gdata/gdata.pb.h" |
23 #include "chrome/browser/chromeos/gdata/gdata_file_system.h" | 23 #include "chrome/browser/chromeos/gdata/gdata_file_system.h" |
24 #include "chrome/browser/chromeos/gdata/gdata_test_util.h" | 24 #include "chrome/browser/chromeos/gdata/gdata_test_util.h" |
25 #include "chrome/browser/chromeos/gdata/gdata_uploader.h" | 25 #include "chrome/browser/chromeos/gdata/gdata_uploader.h" |
26 #include "chrome/browser/chromeos/gdata/gdata_util.h" | 26 #include "chrome/browser/chromeos/gdata/gdata_util.h" |
27 #include "chrome/browser/chromeos/gdata/mock_directory_change_observer.h" | 27 #include "chrome/browser/chromeos/gdata/mock_directory_change_observer.h" |
28 #include "chrome/browser/chromeos/gdata/mock_gdata_cache_observer.h" | 28 #include "chrome/browser/chromeos/gdata/mock_gdata_cache_observer.h" |
29 #include "chrome/browser/chromeos/gdata/mock_documents_service.h" | 29 #include "chrome/browser/chromeos/gdata/mock_drive_service.h" |
30 #include "chrome/common/chrome_paths.h" | 30 #include "chrome/common/chrome_paths.h" |
31 #include "chrome/test/base/testing_profile.h" | 31 #include "chrome/test/base/testing_profile.h" |
32 #include "content/public/browser/browser_thread.h" | 32 #include "content/public/browser/browser_thread.h" |
33 #include "content/public/test/test_browser_thread.h" | 33 #include "content/public/test/test_browser_thread.h" |
34 #include "testing/gmock/include/gmock/gmock.h" | 34 #include "testing/gmock/include/gmock/gmock.h" |
35 #include "testing/gtest/include/gtest/gtest.h" | 35 #include "testing/gtest/include/gtest/gtest.h" |
36 | 36 |
37 using ::testing::AtLeast; | 37 using ::testing::AtLeast; |
38 using ::testing::Eq; | 38 using ::testing::Eq; |
39 using ::testing::NotNull; | 39 using ::testing::NotNull; |
(...skipping 29 matching lines...) Expand all Loading... |
69 EXPECT_EQ(FilePath(expected_results[i].path), | 69 EXPECT_EQ(FilePath(expected_results[i].path), |
70 results->at(i).path); | 70 results->at(i).path); |
71 EXPECT_EQ(expected_results[i].is_directory, | 71 EXPECT_EQ(expected_results[i].is_directory, |
72 results->at(i).is_directory); | 72 results->at(i).is_directory); |
73 } | 73 } |
74 | 74 |
75 message_loop->Quit(); | 75 message_loop->Quit(); |
76 } | 76 } |
77 | 77 |
78 // Action used to set mock expectations for | 78 // Action used to set mock expectations for |
79 // DocumentsService::GetDocumentEntry(). | 79 // DriveServiceInterface::GetDocumentEntry(). |
80 ACTION_P2(MockGetDocumentEntry, status, value) { | 80 ACTION_P2(MockGetDocumentEntry, status, value) { |
81 base::MessageLoopProxy::current()->PostTask(FROM_HERE, | 81 base::MessageLoopProxy::current()->PostTask(FROM_HERE, |
82 base::Bind(arg1, status, base::Passed(value))); | 82 base::Bind(arg1, status, base::Passed(value))); |
83 } | 83 } |
84 | 84 |
85 // Action used to set mock expectations for | 85 // Action used to set mock expectations for |
86 // GDataUploaderInterface::UploadExistingFile(). | 86 // GDataUploaderInterface::UploadExistingFile(). |
87 ACTION_P4(MockUploadExistingFile, | 87 ACTION_P4(MockUploadExistingFile, |
88 error, gdata_path, local_file_path, document_entry) { | 88 error, gdata_path, local_file_path, document_entry) { |
89 scoped_ptr<UploadFileInfo> upload_file_info(new UploadFileInfo); | 89 scoped_ptr<UploadFileInfo> upload_file_info(new UploadFileInfo); |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
198 MOCK_METHOD1(UpdateFromApplicationList, void(const AppList& applist)); | 198 MOCK_METHOD1(UpdateFromApplicationList, void(const AppList& applist)); |
199 }; | 199 }; |
200 | 200 |
201 class GDataFileSystemTest : public testing::Test { | 201 class GDataFileSystemTest : public testing::Test { |
202 protected: | 202 protected: |
203 GDataFileSystemTest() | 203 GDataFileSystemTest() |
204 : ui_thread_(content::BrowserThread::UI, &message_loop_), | 204 : ui_thread_(content::BrowserThread::UI, &message_loop_), |
205 io_thread_(content::BrowserThread::IO), | 205 io_thread_(content::BrowserThread::IO), |
206 cache_(NULL), | 206 cache_(NULL), |
207 file_system_(NULL), | 207 file_system_(NULL), |
208 mock_doc_service_(NULL), | 208 mock_drive_service_(NULL), |
209 mock_webapps_registry_(NULL), | 209 mock_webapps_registry_(NULL), |
210 num_callback_invocations_(0), | 210 num_callback_invocations_(0), |
211 expected_error_(GDATA_FILE_OK), | 211 expected_error_(GDATA_FILE_OK), |
212 expected_cache_state_(0), | 212 expected_cache_state_(0), |
213 expected_sub_dir_type_(GDataCache::CACHE_TYPE_META), | 213 expected_sub_dir_type_(GDataCache::CACHE_TYPE_META), |
214 expected_success_(true), | 214 expected_success_(true), |
215 expect_outgoing_symlink_(false), | 215 expect_outgoing_symlink_(false), |
216 root_feed_changestamp_(0) { | 216 root_feed_changestamp_(0) { |
217 } | 217 } |
218 | 218 |
219 virtual void SetUp() OVERRIDE { | 219 virtual void SetUp() OVERRIDE { |
220 chromeos::CrosLibrary::Initialize(true /* use_stub */); | 220 chromeos::CrosLibrary::Initialize(true /* use_stub */); |
221 io_thread_.StartIOThread(); | 221 io_thread_.StartIOThread(); |
222 | 222 |
223 profile_.reset(new TestingProfile); | 223 profile_.reset(new TestingProfile); |
224 | 224 |
225 callback_helper_ = new CallbackHelper; | 225 callback_helper_ = new CallbackHelper; |
226 | 226 |
227 // Allocate and keep a pointer to the mock, and inject it into the | 227 // Allocate and keep a pointer to the mock, and inject it into the |
228 // GDataFileSystem object, which will own the mock object. | 228 // GDataFileSystem object, which will own the mock object. |
229 mock_doc_service_ = new StrictMock<MockDocumentsService>; | 229 mock_drive_service_ = new StrictMock<MockDriveService>; |
230 | 230 |
231 EXPECT_CALL(*mock_doc_service_, Initialize(profile_.get())).Times(1); | 231 EXPECT_CALL(*mock_drive_service_, Initialize(profile_.get())).Times(1); |
232 | 232 |
233 // Likewise, this will be owned by GDataFileSystem. | 233 // Likewise, this will be owned by GDataFileSystem. |
234 mock_free_disk_space_checker_ = new StrictMock<MockFreeDiskSpaceGetter>; | 234 mock_free_disk_space_checker_ = new StrictMock<MockFreeDiskSpaceGetter>; |
235 SetFreeDiskSpaceGetterForTesting(mock_free_disk_space_checker_); | 235 SetFreeDiskSpaceGetterForTesting(mock_free_disk_space_checker_); |
236 | 236 |
237 scoped_refptr<base::SequencedWorkerPool> pool = | 237 scoped_refptr<base::SequencedWorkerPool> pool = |
238 content::BrowserThread::GetBlockingPool(); | 238 content::BrowserThread::GetBlockingPool(); |
239 blocking_task_runner_ = | 239 blocking_task_runner_ = |
240 pool->GetSequencedTaskRunner(pool->GetSequenceToken()); | 240 pool->GetSequencedTaskRunner(pool->GetSequenceToken()); |
241 | 241 |
242 cache_ = GDataCache::CreateGDataCacheOnUIThread( | 242 cache_ = GDataCache::CreateGDataCacheOnUIThread( |
243 GDataCache::GetCacheRootPath(profile_.get()), blocking_task_runner_); | 243 GDataCache::GetCacheRootPath(profile_.get()), blocking_task_runner_); |
244 | 244 |
245 mock_uploader_.reset(new StrictMock<MockGDataUploader>); | 245 mock_uploader_.reset(new StrictMock<MockGDataUploader>); |
246 mock_webapps_registry_.reset(new StrictMock<MockDriveWebAppsRegistry>); | 246 mock_webapps_registry_.reset(new StrictMock<MockDriveWebAppsRegistry>); |
247 | 247 |
248 ASSERT_FALSE(file_system_); | 248 ASSERT_FALSE(file_system_); |
249 file_system_ = new GDataFileSystem(profile_.get(), | 249 file_system_ = new GDataFileSystem(profile_.get(), |
250 cache_, | 250 cache_, |
251 mock_doc_service_, | 251 mock_drive_service_, |
252 mock_uploader_.get(), | 252 mock_uploader_.get(), |
253 mock_webapps_registry_.get(), | 253 mock_webapps_registry_.get(), |
254 blocking_task_runner_); | 254 blocking_task_runner_); |
255 | 255 |
256 mock_cache_observer_.reset(new StrictMock<MockGDataCacheObserver>); | 256 mock_cache_observer_.reset(new StrictMock<MockGDataCacheObserver>); |
257 cache_->AddObserver(mock_cache_observer_.get()); | 257 cache_->AddObserver(mock_cache_observer_.get()); |
258 | 258 |
259 mock_directory_observer_.reset(new StrictMock<MockDirectoryChangeObserver>); | 259 mock_directory_observer_.reset(new StrictMock<MockDirectoryChangeObserver>); |
260 file_system_->AddObserver(mock_directory_observer_.get()); | 260 file_system_->AddObserver(mock_directory_observer_.get()); |
261 | 261 |
262 file_system_->Initialize(); | 262 file_system_->Initialize(); |
263 cache_->RequestInitializeOnUIThreadForTesting(); | 263 cache_->RequestInitializeOnUIThreadForTesting(); |
264 test_util::RunBlockingPoolTask(); | 264 test_util::RunBlockingPoolTask(); |
265 } | 265 } |
266 | 266 |
267 virtual void TearDown() OVERRIDE { | 267 virtual void TearDown() OVERRIDE { |
268 ASSERT_TRUE(file_system_); | 268 ASSERT_TRUE(file_system_); |
269 EXPECT_CALL(*mock_doc_service_, CancelAll()).Times(1); | 269 EXPECT_CALL(*mock_drive_service_, CancelAll()).Times(1); |
270 delete file_system_; | 270 delete file_system_; |
271 file_system_ = NULL; | 271 file_system_ = NULL; |
272 delete mock_doc_service_; | 272 delete mock_drive_service_; |
273 mock_doc_service_ = NULL; | 273 mock_drive_service_ = NULL; |
274 SetFreeDiskSpaceGetterForTesting(NULL); | 274 SetFreeDiskSpaceGetterForTesting(NULL); |
275 cache_->DestroyOnUIThread(); | 275 cache_->DestroyOnUIThread(); |
276 // The cache destruction requires to post a task to the blocking pool. | 276 // The cache destruction requires to post a task to the blocking pool. |
277 test_util::RunBlockingPoolTask(); | 277 test_util::RunBlockingPoolTask(); |
278 | 278 |
279 profile_.reset(NULL); | 279 profile_.reset(NULL); |
280 chromeos::CrosLibrary::Shutdown(); | 280 chromeos::CrosLibrary::Shutdown(); |
281 } | 281 } |
282 | 282 |
283 // Loads test json file as root ("/drive") element. | 283 // Loads test json file as root ("/drive") element. |
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
636 EXPECT_TRUE(target_path.value() != kSymLinkToDevNull); | 636 EXPECT_TRUE(target_path.value() != kSymLinkToDevNull); |
637 if (test_util::ToCacheEntry(expected_cache_state_).is_present()) | 637 if (test_util::ToCacheEntry(expected_cache_state_).is_present()) |
638 EXPECT_EQ(dest_path, target_path); | 638 EXPECT_EQ(dest_path, target_path); |
639 } else { | 639 } else { |
640 EXPECT_FALSE(exists); | 640 EXPECT_FALSE(exists); |
641 } | 641 } |
642 } | 642 } |
643 | 643 |
644 void SetExpectationsForGetDocumentEntry(scoped_ptr<base::Value>* document, | 644 void SetExpectationsForGetDocumentEntry(scoped_ptr<base::Value>* document, |
645 const std::string& resource_id) { | 645 const std::string& resource_id) { |
646 EXPECT_CALL(*mock_doc_service_, GetDocumentEntry(resource_id, _)) | 646 EXPECT_CALL(*mock_drive_service_, GetDocumentEntry(resource_id, _)) |
647 .WillOnce(MockGetDocumentEntry(gdata::HTTP_SUCCESS, document)); | 647 .WillOnce(MockGetDocumentEntry(gdata::HTTP_SUCCESS, document)); |
648 } | 648 } |
649 | 649 |
650 // Loads serialized proto file from GCache, and makes sure the root | 650 // Loads serialized proto file from GCache, and makes sure the root |
651 // filesystem has a root at 'drive' | 651 // filesystem has a root at 'drive' |
652 void TestLoadMetadataFromCache() { | 652 void TestLoadMetadataFromCache() { |
653 file_system_->LoadRootFeedFromCacheForTesting(); | 653 file_system_->LoadRootFeedFromCacheForTesting(); |
654 test_util::RunBlockingPoolTask(); | 654 test_util::RunBlockingPoolTask(); |
655 } | 655 } |
656 | 656 |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
838 // The order of the test threads is important, do not change the order. | 838 // The order of the test threads is important, do not change the order. |
839 // See also content/browser/browser_thread_impl.cc. | 839 // See also content/browser/browser_thread_impl.cc. |
840 content::TestBrowserThread ui_thread_; | 840 content::TestBrowserThread ui_thread_; |
841 content::TestBrowserThread io_thread_; | 841 content::TestBrowserThread io_thread_; |
842 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; | 842 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; |
843 scoped_ptr<TestingProfile> profile_; | 843 scoped_ptr<TestingProfile> profile_; |
844 scoped_refptr<CallbackHelper> callback_helper_; | 844 scoped_refptr<CallbackHelper> callback_helper_; |
845 GDataCache* cache_; | 845 GDataCache* cache_; |
846 scoped_ptr<StrictMock<MockGDataUploader> > mock_uploader_; | 846 scoped_ptr<StrictMock<MockGDataUploader> > mock_uploader_; |
847 GDataFileSystem* file_system_; | 847 GDataFileSystem* file_system_; |
848 StrictMock<MockDocumentsService>* mock_doc_service_; | 848 StrictMock<MockDriveService>* mock_drive_service_; |
849 scoped_ptr<StrictMock<MockDriveWebAppsRegistry> > mock_webapps_registry_; | 849 scoped_ptr<StrictMock<MockDriveWebAppsRegistry> > mock_webapps_registry_; |
850 StrictMock<MockFreeDiskSpaceGetter>* mock_free_disk_space_checker_; | 850 StrictMock<MockFreeDiskSpaceGetter>* mock_free_disk_space_checker_; |
851 scoped_ptr<StrictMock<MockGDataCacheObserver> > mock_cache_observer_; | 851 scoped_ptr<StrictMock<MockGDataCacheObserver> > mock_cache_observer_; |
852 scoped_ptr<StrictMock<MockDirectoryChangeObserver> > mock_directory_observer_; | 852 scoped_ptr<StrictMock<MockDirectoryChangeObserver> > mock_directory_observer_; |
853 | 853 |
854 int num_callback_invocations_; | 854 int num_callback_invocations_; |
855 GDataFileError expected_error_; | 855 GDataFileError expected_error_; |
856 int expected_cache_state_; | 856 int expected_cache_state_; |
857 GDataCache::CacheSubDirectoryType expected_sub_dir_type_; | 857 GDataCache::CacheSubDirectoryType expected_sub_dir_type_; |
858 bool expected_success_; | 858 bool expected_success_; |
(...skipping 24 matching lines...) Expand all Loading... |
883 | 883 |
884 TEST_F(GDataFileSystemTest, DuplicatedAsyncInitialization) { | 884 TEST_F(GDataFileSystemTest, DuplicatedAsyncInitialization) { |
885 int counter = 0; | 885 int counter = 0; |
886 GetEntryInfoCallback callback = base::Bind( | 886 GetEntryInfoCallback callback = base::Bind( |
887 &AsyncInitializationCallback, | 887 &AsyncInitializationCallback, |
888 &counter, | 888 &counter, |
889 2, | 889 2, |
890 FilePath(FILE_PATH_LITERAL("drive")), | 890 FilePath(FILE_PATH_LITERAL("drive")), |
891 &message_loop_); | 891 &message_loop_); |
892 | 892 |
893 EXPECT_CALL(*mock_doc_service_, GetAccountMetadata(_)).Times(1); | 893 EXPECT_CALL(*mock_drive_service_, GetAccountMetadata(_)).Times(1); |
894 EXPECT_CALL(*mock_doc_service_, | 894 EXPECT_CALL(*mock_drive_service_, |
895 GetDocuments(Eq(GURL()), _, _, _, _)).Times(1); | 895 GetDocuments(Eq(GURL()), _, _, _, _)).Times(1); |
896 | 896 |
897 EXPECT_CALL(*mock_webapps_registry_, UpdateFromFeed(_)).Times(1); | 897 EXPECT_CALL(*mock_webapps_registry_, UpdateFromFeed(_)).Times(1); |
898 | 898 |
899 file_system_->GetEntryInfoByPath( | 899 file_system_->GetEntryInfoByPath( |
900 FilePath(FILE_PATH_LITERAL("drive")), callback); | 900 FilePath(FILE_PATH_LITERAL("drive")), callback); |
901 file_system_->GetEntryInfoByPath( | 901 file_system_->GetEntryInfoByPath( |
902 FilePath(FILE_PATH_LITERAL("drive")), callback); | 902 FilePath(FILE_PATH_LITERAL("drive")), callback); |
903 message_loop_.Run(); // Wait to get our result | 903 message_loop_.Run(); // Wait to get our result |
904 EXPECT_EQ(2, counter); | 904 EXPECT_EQ(2, counter); |
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1221 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL("drive/Dir1/SubDir2")))); | 1221 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL("drive/Dir1/SubDir2")))); |
1222 EXPECT_TRUE(EntryExists( | 1222 EXPECT_TRUE(EntryExists( |
1223 FilePath(FILE_PATH_LITERAL("drive/Dir1/SubDir2/File3")))); | 1223 FilePath(FILE_PATH_LITERAL("drive/Dir1/SubDir2/File3")))); |
1224 } | 1224 } |
1225 | 1225 |
1226 TEST_F(GDataFileSystemTest, CachedFeadLoadingThenServerFeedLoading) { | 1226 TEST_F(GDataFileSystemTest, CachedFeadLoadingThenServerFeedLoading) { |
1227 SaveTestFileSystem(); | 1227 SaveTestFileSystem(); |
1228 | 1228 |
1229 // SaveTestFileSystem and "account_metadata.json" have the same changestamp, | 1229 // SaveTestFileSystem and "account_metadata.json" have the same changestamp, |
1230 // so no request for new feeds (i.e., call to GetDocuments) should happen. | 1230 // so no request for new feeds (i.e., call to GetDocuments) should happen. |
1231 mock_doc_service_->set_account_metadata( | 1231 mock_drive_service_->set_account_metadata( |
1232 LoadJSONFile("account_metadata.json")); | 1232 LoadJSONFile("account_metadata.json")); |
1233 EXPECT_CALL(*mock_doc_service_, GetAccountMetadata(_)).Times(1); | 1233 EXPECT_CALL(*mock_drive_service_, GetAccountMetadata(_)).Times(1); |
1234 EXPECT_CALL(*mock_webapps_registry_, UpdateFromFeed(_)).Times(1); | 1234 EXPECT_CALL(*mock_webapps_registry_, UpdateFromFeed(_)).Times(1); |
1235 EXPECT_CALL(*mock_doc_service_, GetDocuments(_, _, _, _, _)).Times(0); | 1235 EXPECT_CALL(*mock_drive_service_, GetDocuments(_, _, _, _, _)).Times(0); |
1236 | 1236 |
1237 // Kicks loading of cached file system and query for server update. | 1237 // Kicks loading of cached file system and query for server update. |
1238 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL("drive/File1")))); | 1238 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL("drive/File1")))); |
1239 | 1239 |
1240 // Since the file system has verified that it holds the latest snapshot, | 1240 // Since the file system has verified that it holds the latest snapshot, |
1241 // it should change its state to FROM_SERVER, which admits periodic refresh. | 1241 // it should change its state to FROM_SERVER, which admits periodic refresh. |
1242 // To test it, call CheckForUpdates and verify it does try to check updates. | 1242 // To test it, call CheckForUpdates and verify it does try to check updates. |
1243 mock_doc_service_->set_account_metadata( | 1243 mock_drive_service_->set_account_metadata( |
1244 LoadJSONFile("account_metadata.json")); | 1244 LoadJSONFile("account_metadata.json")); |
1245 EXPECT_CALL(*mock_doc_service_, GetAccountMetadata(_)).Times(1); | 1245 EXPECT_CALL(*mock_drive_service_, GetAccountMetadata(_)).Times(1); |
1246 EXPECT_CALL(*mock_webapps_registry_, UpdateFromFeed(_)).Times(1); | 1246 EXPECT_CALL(*mock_webapps_registry_, UpdateFromFeed(_)).Times(1); |
1247 | 1247 |
1248 file_system_->CheckForUpdates(); | 1248 file_system_->CheckForUpdates(); |
1249 test_util::RunBlockingPoolTask(); | 1249 test_util::RunBlockingPoolTask(); |
1250 } | 1250 } |
1251 | 1251 |
1252 TEST_F(GDataFileSystemTest, TransferFileFromLocalToRemote_RegularFile) { | 1252 TEST_F(GDataFileSystemTest, TransferFileFromLocalToRemote_RegularFile) { |
1253 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) | 1253 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
1254 .Times(AtLeast(1)).WillRepeatedly(Return(kLotsOfSpace)); | 1254 .Times(AtLeast(1)).WillRepeatedly(Return(kLotsOfSpace)); |
1255 | 1255 |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1306 FILE_PATH_LITERAL("drive/Directory 1/Document 1.gdoc")); | 1306 FILE_PATH_LITERAL("drive/Directory 1/Document 1.gdoc")); |
1307 EXPECT_FALSE(EntryExists(remote_dest_file_path)); | 1307 EXPECT_FALSE(EntryExists(remote_dest_file_path)); |
1308 | 1308 |
1309 // We'll add a file to "Directory 1" directory on Drive. | 1309 // We'll add a file to "Directory 1" directory on Drive. |
1310 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( | 1310 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
1311 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 1"))))).Times(1); | 1311 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 1"))))).Times(1); |
1312 | 1312 |
1313 // We'll copy a hosted document using CopyDocument. | 1313 // We'll copy a hosted document using CopyDocument. |
1314 // ".gdoc" suffix should be stripped when copying. | 1314 // ".gdoc" suffix should be stripped when copying. |
1315 scoped_ptr<base::Value> document(LoadJSONFile("uploaded_document.json")); | 1315 scoped_ptr<base::Value> document(LoadJSONFile("uploaded_document.json")); |
1316 EXPECT_CALL(*mock_doc_service_, | 1316 EXPECT_CALL(*mock_drive_service_, |
1317 CopyDocument(kResourceId, | 1317 CopyDocument(kResourceId, |
1318 FILE_PATH_LITERAL("Document 1"), | 1318 FILE_PATH_LITERAL("Document 1"), |
1319 _)) | 1319 _)) |
1320 .WillOnce(MockCopyDocument(gdata::HTTP_SUCCESS, &document)); | 1320 .WillOnce(MockCopyDocument(gdata::HTTP_SUCCESS, &document)); |
1321 // We'll then add the hosted document to the destination directory. | 1321 // We'll then add the hosted document to the destination directory. |
1322 EXPECT_CALL(*mock_doc_service_, | 1322 EXPECT_CALL(*mock_drive_service_, |
1323 AddResourceToDirectory(_, _, _)).Times(1); | 1323 AddResourceToDirectory(_, _, _)).Times(1); |
1324 | 1324 |
1325 FileOperationCallback callback = | 1325 FileOperationCallback callback = |
1326 base::Bind(&CallbackHelper::FileOperationCallback, | 1326 base::Bind(&CallbackHelper::FileOperationCallback, |
1327 callback_helper_.get()); | 1327 callback_helper_.get()); |
1328 | 1328 |
1329 // Transfer the local file to Drive. | 1329 // Transfer the local file to Drive. |
1330 file_system_->TransferFileFromLocalToRemote( | 1330 file_system_->TransferFileFromLocalToRemote( |
1331 local_src_file_path, remote_dest_file_path, callback); | 1331 local_src_file_path, remote_dest_file_path, callback); |
1332 test_util::RunBlockingPoolTask(); | 1332 test_util::RunBlockingPoolTask(); |
(...skipping 21 matching lines...) Expand all Loading... |
1354 FilePath cache_file = GetCachePathForFile( | 1354 FilePath cache_file = GetCachePathForFile( |
1355 file->resource_id(), | 1355 file->resource_id(), |
1356 file->file_specific_info().file_md5()); | 1356 file->file_specific_info().file_md5()); |
1357 const int64 file_size = file->file_info().size(); | 1357 const int64 file_size = file->file_info().size(); |
1358 | 1358 |
1359 // Pretend we have enough space. | 1359 // Pretend we have enough space. |
1360 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) | 1360 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
1361 .Times(2).WillRepeatedly(Return(file_size + kMinFreeSpace)); | 1361 .Times(2).WillRepeatedly(Return(file_size + kMinFreeSpace)); |
1362 | 1362 |
1363 const std::string remote_src_file_data = "Test file data"; | 1363 const std::string remote_src_file_data = "Test file data"; |
1364 mock_doc_service_->set_file_data(new std::string(remote_src_file_data)); | 1364 mock_drive_service_->set_file_data(new std::string(remote_src_file_data)); |
1365 | 1365 |
1366 // Before Download starts metadata from server will be fetched. | 1366 // Before Download starts metadata from server will be fetched. |
1367 // We will read content url from the result. | 1367 // We will read content url from the result. |
1368 scoped_ptr<base::Value> document(LoadJSONFile("document_to_download.json")); | 1368 scoped_ptr<base::Value> document(LoadJSONFile("document_to_download.json")); |
1369 SetExpectationsForGetDocumentEntry(&document, "file:2_file_resource_id"); | 1369 SetExpectationsForGetDocumentEntry(&document, "file:2_file_resource_id"); |
1370 | 1370 |
1371 // The file is obtained with the mock DocumentsService. | 1371 // The file is obtained with the mock DriveService. |
1372 EXPECT_CALL(*mock_doc_service_, | 1372 EXPECT_CALL(*mock_drive_service_, |
1373 DownloadFile(remote_src_file_path, | 1373 DownloadFile(remote_src_file_path, |
1374 cache_file, | 1374 cache_file, |
1375 GURL("https://file_content_url_changed/"), | 1375 GURL("https://file_content_url_changed/"), |
1376 _, _)) | 1376 _, _)) |
1377 .Times(1); | 1377 .Times(1); |
1378 | 1378 |
1379 file_system_->TransferFileFromRemoteToLocal( | 1379 file_system_->TransferFileFromRemoteToLocal( |
1380 remote_src_file_path, local_dest_file_path, callback); | 1380 remote_src_file_path, local_dest_file_path, callback); |
1381 test_util::RunBlockingPoolTask(); | 1381 test_util::RunBlockingPoolTask(); |
1382 | 1382 |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1513 | 1513 |
1514 LoadRootFeedDocument("root_feed.json"); | 1514 LoadRootFeedDocument("root_feed.json"); |
1515 | 1515 |
1516 ASSERT_TRUE(EntryExists(src_file_path)); | 1516 ASSERT_TRUE(EntryExists(src_file_path)); |
1517 scoped_ptr<GDataEntryProto> src_entry_proto = GetEntryInfoByPathSync( | 1517 scoped_ptr<GDataEntryProto> src_entry_proto = GetEntryInfoByPathSync( |
1518 src_file_path); | 1518 src_file_path); |
1519 ASSERT_TRUE(src_entry_proto.get()); | 1519 ASSERT_TRUE(src_entry_proto.get()); |
1520 std::string src_file_resource_id = | 1520 std::string src_file_resource_id = |
1521 src_entry_proto->resource_id(); | 1521 src_entry_proto->resource_id(); |
1522 | 1522 |
1523 EXPECT_CALL(*mock_doc_service_, | 1523 EXPECT_CALL(*mock_drive_service_, |
1524 RenameResource(GURL(src_entry_proto->edit_url()), | 1524 RenameResource(GURL(src_entry_proto->edit_url()), |
1525 FILE_PATH_LITERAL("Test.log"), _)); | 1525 FILE_PATH_LITERAL("Test.log"), _)); |
1526 | 1526 |
1527 FileOperationCallback callback = | 1527 FileOperationCallback callback = |
1528 base::Bind(&CallbackHelper::FileOperationCallback, | 1528 base::Bind(&CallbackHelper::FileOperationCallback, |
1529 callback_helper_.get()); | 1529 callback_helper_.get()); |
1530 | 1530 |
1531 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( | 1531 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
1532 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 1"))))).Times(1); | 1532 Eq(FilePath(FILE_PATH_LITERAL("drive/Directory 1"))))).Times(1); |
1533 | 1533 |
(...skipping 21 matching lines...) Expand all Loading... |
1555 src_entry_proto->resource_id(); | 1555 src_entry_proto->resource_id(); |
1556 EXPECT_FALSE(src_entry_proto->edit_url().empty()); | 1556 EXPECT_FALSE(src_entry_proto->edit_url().empty()); |
1557 | 1557 |
1558 ASSERT_TRUE(EntryExists(dest_parent_path)); | 1558 ASSERT_TRUE(EntryExists(dest_parent_path)); |
1559 scoped_ptr<GDataEntryProto> dest_parent_proto = GetEntryInfoByPathSync( | 1559 scoped_ptr<GDataEntryProto> dest_parent_proto = GetEntryInfoByPathSync( |
1560 dest_parent_path); | 1560 dest_parent_path); |
1561 ASSERT_TRUE(dest_parent_proto.get()); | 1561 ASSERT_TRUE(dest_parent_proto.get()); |
1562 ASSERT_TRUE(dest_parent_proto->file_info().is_directory()); | 1562 ASSERT_TRUE(dest_parent_proto->file_info().is_directory()); |
1563 EXPECT_FALSE(dest_parent_proto->content_url().empty()); | 1563 EXPECT_FALSE(dest_parent_proto->content_url().empty()); |
1564 | 1564 |
1565 EXPECT_CALL(*mock_doc_service_, | 1565 EXPECT_CALL(*mock_drive_service_, |
1566 RenameResource(GURL(src_entry_proto->edit_url()), | 1566 RenameResource(GURL(src_entry_proto->edit_url()), |
1567 FILE_PATH_LITERAL("Test.log"), _)); | 1567 FILE_PATH_LITERAL("Test.log"), _)); |
1568 EXPECT_CALL(*mock_doc_service_, | 1568 EXPECT_CALL(*mock_drive_service_, |
1569 AddResourceToDirectory( | 1569 AddResourceToDirectory( |
1570 GURL(dest_parent_proto->content_url()), | 1570 GURL(dest_parent_proto->content_url()), |
1571 GURL(src_entry_proto->edit_url()), _)); | 1571 GURL(src_entry_proto->edit_url()), _)); |
1572 | 1572 |
1573 FileOperationCallback callback = | 1573 FileOperationCallback callback = |
1574 base::Bind(&CallbackHelper::FileOperationCallback, | 1574 base::Bind(&CallbackHelper::FileOperationCallback, |
1575 callback_helper_.get()); | 1575 callback_helper_.get()); |
1576 | 1576 |
1577 // Expect notification for both source and destination directories. | 1577 // Expect notification for both source and destination directories. |
1578 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( | 1578 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
(...skipping 26 matching lines...) Expand all Loading... |
1605 src_entry_proto->resource_id(); | 1605 src_entry_proto->resource_id(); |
1606 EXPECT_FALSE(src_entry_proto->edit_url().empty()); | 1606 EXPECT_FALSE(src_entry_proto->edit_url().empty()); |
1607 | 1607 |
1608 ASSERT_TRUE(EntryExists(src_parent_path)); | 1608 ASSERT_TRUE(EntryExists(src_parent_path)); |
1609 scoped_ptr<GDataEntryProto> src_parent_proto = GetEntryInfoByPathSync( | 1609 scoped_ptr<GDataEntryProto> src_parent_proto = GetEntryInfoByPathSync( |
1610 src_parent_path); | 1610 src_parent_path); |
1611 ASSERT_TRUE(src_parent_proto.get()); | 1611 ASSERT_TRUE(src_parent_proto.get()); |
1612 ASSERT_TRUE(src_parent_proto->file_info().is_directory()); | 1612 ASSERT_TRUE(src_parent_proto->file_info().is_directory()); |
1613 EXPECT_FALSE(src_parent_proto->content_url().empty()); | 1613 EXPECT_FALSE(src_parent_proto->content_url().empty()); |
1614 | 1614 |
1615 EXPECT_CALL(*mock_doc_service_, | 1615 EXPECT_CALL(*mock_drive_service_, |
1616 RenameResource(GURL(src_entry_proto->edit_url()), | 1616 RenameResource(GURL(src_entry_proto->edit_url()), |
1617 FILE_PATH_LITERAL("Test.log"), _)); | 1617 FILE_PATH_LITERAL("Test.log"), _)); |
1618 EXPECT_CALL(*mock_doc_service_, | 1618 EXPECT_CALL(*mock_drive_service_, |
1619 RemoveResourceFromDirectory( | 1619 RemoveResourceFromDirectory( |
1620 GURL(src_parent_proto->content_url()), | 1620 GURL(src_parent_proto->content_url()), |
1621 GURL(src_entry_proto->edit_url()), | 1621 GURL(src_entry_proto->edit_url()), |
1622 src_file_resource_id, _)); | 1622 src_file_resource_id, _)); |
1623 | 1623 |
1624 FileOperationCallback callback = | 1624 FileOperationCallback callback = |
1625 base::Bind(&CallbackHelper::FileOperationCallback, | 1625 base::Bind(&CallbackHelper::FileOperationCallback, |
1626 callback_helper_.get()); | 1626 callback_helper_.get()); |
1627 | 1627 |
1628 // Expect notification for both source and destination directories. | 1628 // Expect notification for both source and destination directories. |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1672 | 1672 |
1673 ASSERT_TRUE(EntryExists(dest_parent_path)); | 1673 ASSERT_TRUE(EntryExists(dest_parent_path)); |
1674 scoped_ptr<GDataEntryProto> dest_parent_proto = GetEntryInfoByPathSync( | 1674 scoped_ptr<GDataEntryProto> dest_parent_proto = GetEntryInfoByPathSync( |
1675 dest_parent_path); | 1675 dest_parent_path); |
1676 ASSERT_TRUE(dest_parent_proto.get()); | 1676 ASSERT_TRUE(dest_parent_proto.get()); |
1677 ASSERT_TRUE(dest_parent_proto->file_info().is_directory()); | 1677 ASSERT_TRUE(dest_parent_proto->file_info().is_directory()); |
1678 EXPECT_FALSE(dest_parent_proto->content_url().empty()); | 1678 EXPECT_FALSE(dest_parent_proto->content_url().empty()); |
1679 | 1679 |
1680 EXPECT_FALSE(EntryExists(interim_file_path)); | 1680 EXPECT_FALSE(EntryExists(interim_file_path)); |
1681 | 1681 |
1682 EXPECT_CALL(*mock_doc_service_, | 1682 EXPECT_CALL(*mock_drive_service_, |
1683 RenameResource(GURL(src_entry_proto->edit_url()), | 1683 RenameResource(GURL(src_entry_proto->edit_url()), |
1684 FILE_PATH_LITERAL("Test.log"), _)); | 1684 FILE_PATH_LITERAL("Test.log"), _)); |
1685 EXPECT_CALL(*mock_doc_service_, | 1685 EXPECT_CALL(*mock_drive_service_, |
1686 RemoveResourceFromDirectory( | 1686 RemoveResourceFromDirectory( |
1687 GURL(src_parent_proto->content_url()), | 1687 GURL(src_parent_proto->content_url()), |
1688 GURL(src_entry_proto->edit_url()), | 1688 GURL(src_entry_proto->edit_url()), |
1689 src_file_resource_id, _)); | 1689 src_file_resource_id, _)); |
1690 EXPECT_CALL(*mock_doc_service_, | 1690 EXPECT_CALL(*mock_drive_service_, |
1691 AddResourceToDirectory( | 1691 AddResourceToDirectory( |
1692 GURL(dest_parent_proto->content_url()), | 1692 GURL(dest_parent_proto->content_url()), |
1693 GURL(src_entry_proto->edit_url()), | 1693 GURL(src_entry_proto->edit_url()), |
1694 _)); | 1694 _)); |
1695 | 1695 |
1696 FileOperationCallback callback = | 1696 FileOperationCallback callback = |
1697 base::Bind(&CallbackHelper::FileOperationCallback, | 1697 base::Bind(&CallbackHelper::FileOperationCallback, |
1698 callback_helper_.get()); | 1698 callback_helper_.get()); |
1699 | 1699 |
1700 // Expect notification for both source and destination directories plus | 1700 // Expect notification for both source and destination directories plus |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1933 GDataFileSystem::DIRECTORY_ALREADY_PRESENT, | 1933 GDataFileSystem::DIRECTORY_ALREADY_PRESENT, |
1934 file_system_->FindFirstMissingParentDirectory( | 1934 file_system_->FindFirstMissingParentDirectory( |
1935 FilePath(FILE_PATH_LITERAL("drive/Directory 1")), | 1935 FilePath(FILE_PATH_LITERAL("drive/Directory 1")), |
1936 &last_dir_content_url, | 1936 &last_dir_content_url, |
1937 &first_missing_parent_path)); | 1937 &first_missing_parent_path)); |
1938 } | 1938 } |
1939 | 1939 |
1940 // Create a directory through the document service | 1940 // Create a directory through the document service |
1941 TEST_F(GDataFileSystemTest, CreateDirectoryWithService) { | 1941 TEST_F(GDataFileSystemTest, CreateDirectoryWithService) { |
1942 LoadRootFeedDocument("root_feed.json"); | 1942 LoadRootFeedDocument("root_feed.json"); |
1943 EXPECT_CALL(*mock_doc_service_, | 1943 EXPECT_CALL(*mock_drive_service_, |
1944 CreateDirectory(_, "Sample Directory Title", _)).Times(1); | 1944 CreateDirectory(_, "Sample Directory Title", _)).Times(1); |
1945 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( | 1945 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
1946 Eq(FilePath(FILE_PATH_LITERAL("drive"))))).Times(1); | 1946 Eq(FilePath(FILE_PATH_LITERAL("drive"))))).Times(1); |
1947 | 1947 |
1948 // Set last error so it's not a valid error code. | 1948 // Set last error so it's not a valid error code. |
1949 callback_helper_->last_error_ = static_cast<GDataFileError>(1); | 1949 callback_helper_->last_error_ = static_cast<GDataFileError>(1); |
1950 file_system_->CreateDirectory( | 1950 file_system_->CreateDirectory( |
1951 FilePath(FILE_PATH_LITERAL("drive/Sample Directory Title")), | 1951 FilePath(FILE_PATH_LITERAL("drive/Sample Directory Title")), |
1952 false, // is_exclusive | 1952 false, // is_exclusive |
1953 true, // is_recursive | 1953 true, // is_recursive |
(...skipping 21 matching lines...) Expand all Loading... |
1975 | 1975 |
1976 // Pretend we have enough space. | 1976 // Pretend we have enough space. |
1977 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) | 1977 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
1978 .Times(2).WillRepeatedly(Return(file_size + kMinFreeSpace)); | 1978 .Times(2).WillRepeatedly(Return(file_size + kMinFreeSpace)); |
1979 | 1979 |
1980 // Before Download starts metadata from server will be fetched. | 1980 // Before Download starts metadata from server will be fetched. |
1981 // We will read content url from the result. | 1981 // We will read content url from the result. |
1982 scoped_ptr<base::Value> document(LoadJSONFile("document_to_download.json")); | 1982 scoped_ptr<base::Value> document(LoadJSONFile("document_to_download.json")); |
1983 SetExpectationsForGetDocumentEntry(&document, "file:2_file_resource_id"); | 1983 SetExpectationsForGetDocumentEntry(&document, "file:2_file_resource_id"); |
1984 | 1984 |
1985 // The file is obtained with the mock DocumentsService. | 1985 // The file is obtained with the mock DriveService. |
1986 EXPECT_CALL(*mock_doc_service_, | 1986 EXPECT_CALL(*mock_drive_service_, |
1987 DownloadFile(file_in_root, | 1987 DownloadFile(file_in_root, |
1988 downloaded_file, | 1988 downloaded_file, |
1989 GURL("https://file_content_url_changed/"), | 1989 GURL("https://file_content_url_changed/"), |
1990 _, _)) | 1990 _, _)) |
1991 .Times(1); | 1991 .Times(1); |
1992 | 1992 |
1993 file_system_->GetFileByPath(file_in_root, callback, | 1993 file_system_->GetFileByPath(file_in_root, callback, |
1994 GetContentCallback()); | 1994 GetContentCallback()); |
1995 test_util::RunBlockingPoolTask(); | 1995 test_util::RunBlockingPoolTask(); |
1996 | 1996 |
(...skipping 18 matching lines...) Expand all Loading... |
2015 | 2015 |
2016 // Pretend we have no space at all. | 2016 // Pretend we have no space at all. |
2017 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) | 2017 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
2018 .Times(2).WillRepeatedly(Return(0)); | 2018 .Times(2).WillRepeatedly(Return(0)); |
2019 | 2019 |
2020 // Before Download starts metadata from server will be fetched. | 2020 // Before Download starts metadata from server will be fetched. |
2021 // We will read content url from the result. | 2021 // We will read content url from the result. |
2022 scoped_ptr<base::Value> document(LoadJSONFile("document_to_download.json")); | 2022 scoped_ptr<base::Value> document(LoadJSONFile("document_to_download.json")); |
2023 SetExpectationsForGetDocumentEntry(&document, "file:2_file_resource_id"); | 2023 SetExpectationsForGetDocumentEntry(&document, "file:2_file_resource_id"); |
2024 | 2024 |
2025 // The file is not obtained with the mock DocumentsService, because of no | 2025 // The file is not obtained with the mock DriveService, because of no space. |
2026 // space. | 2026 EXPECT_CALL(*mock_drive_service_, |
2027 EXPECT_CALL(*mock_doc_service_, | |
2028 DownloadFile(file_in_root, | 2027 DownloadFile(file_in_root, |
2029 downloaded_file, | 2028 downloaded_file, |
2030 GURL("https://file_content_url_changed/"), | 2029 GURL("https://file_content_url_changed/"), |
2031 _, _)) | 2030 _, _)) |
2032 .Times(0); | 2031 .Times(0); |
2033 | 2032 |
2034 file_system_->GetFileByPath(file_in_root, callback, | 2033 file_system_->GetFileByPath(file_in_root, callback, |
2035 GetContentCallback()); | 2034 GetContentCallback()); |
2036 test_util::RunBlockingPoolTask(); | 2035 test_util::RunBlockingPoolTask(); |
2037 | 2036 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2070 test_util::TEST_CACHE_STATE_PRESENT, | 2069 test_util::TEST_CACHE_STATE_PRESENT, |
2071 GDataCache::CACHE_TYPE_TMP); | 2070 GDataCache::CACHE_TYPE_TMP); |
2072 ASSERT_TRUE(CacheEntryExists("<resource_id>", "<md5>")); | 2071 ASSERT_TRUE(CacheEntryExists("<resource_id>", "<md5>")); |
2073 ASSERT_TRUE(CacheFileExists("<resource_id>", "<md5>")); | 2072 ASSERT_TRUE(CacheFileExists("<resource_id>", "<md5>")); |
2074 | 2073 |
2075 // Before Download starts metadata from server will be fetched. | 2074 // Before Download starts metadata from server will be fetched. |
2076 // We will read content url from the result. | 2075 // We will read content url from the result. |
2077 scoped_ptr<base::Value> document(LoadJSONFile("document_to_download.json")); | 2076 scoped_ptr<base::Value> document(LoadJSONFile("document_to_download.json")); |
2078 SetExpectationsForGetDocumentEntry(&document, "file:2_file_resource_id"); | 2077 SetExpectationsForGetDocumentEntry(&document, "file:2_file_resource_id"); |
2079 | 2078 |
2080 // The file is obtained with the mock DocumentsService, because of we freed | 2079 // The file is obtained with the mock DriveService, because of we freed up the |
2081 // up the space. | 2080 // space. |
2082 EXPECT_CALL(*mock_doc_service_, | 2081 EXPECT_CALL(*mock_drive_service_, |
2083 DownloadFile(file_in_root, | 2082 DownloadFile(file_in_root, |
2084 downloaded_file, | 2083 downloaded_file, |
2085 GURL("https://file_content_url_changed/"), | 2084 GURL("https://file_content_url_changed/"), |
2086 _, _)) | 2085 _, _)) |
2087 .Times(1); | 2086 .Times(1); |
2088 | 2087 |
2089 file_system_->GetFileByPath(file_in_root, callback, | 2088 file_system_->GetFileByPath(file_in_root, callback, |
2090 GetContentCallback()); | 2089 GetContentCallback()); |
2091 test_util::RunBlockingPoolTask(); | 2090 test_util::RunBlockingPoolTask(); |
2092 | 2091 |
(...skipping 29 matching lines...) Expand all Loading... |
2122 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) | 2121 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
2123 .WillOnce(Return(file_size + kMinFreeSpace)) | 2122 .WillOnce(Return(file_size + kMinFreeSpace)) |
2124 .WillOnce(Return(kMinFreeSpace - 1)) | 2123 .WillOnce(Return(kMinFreeSpace - 1)) |
2125 .WillOnce(Return(kMinFreeSpace - 1)); | 2124 .WillOnce(Return(kMinFreeSpace - 1)); |
2126 | 2125 |
2127 // Before Download starts metadata from server will be fetched. | 2126 // Before Download starts metadata from server will be fetched. |
2128 // We will read content url from the result. | 2127 // We will read content url from the result. |
2129 scoped_ptr<base::Value> document(LoadJSONFile("document_to_download.json")); | 2128 scoped_ptr<base::Value> document(LoadJSONFile("document_to_download.json")); |
2130 SetExpectationsForGetDocumentEntry(&document, "file:2_file_resource_id"); | 2129 SetExpectationsForGetDocumentEntry(&document, "file:2_file_resource_id"); |
2131 | 2130 |
2132 // The file is obtained with the mock DocumentsService. | 2131 // The file is obtained with the mock DriveService. |
2133 EXPECT_CALL(*mock_doc_service_, | 2132 EXPECT_CALL(*mock_drive_service_, |
2134 DownloadFile(file_in_root, | 2133 DownloadFile(file_in_root, |
2135 downloaded_file, | 2134 downloaded_file, |
2136 GURL("https://file_content_url_changed/"), | 2135 GURL("https://file_content_url_changed/"), |
2137 _, _)) | 2136 _, _)) |
2138 .Times(1); | 2137 .Times(1); |
2139 | 2138 |
2140 file_system_->GetFileByPath(file_in_root, callback, | 2139 file_system_->GetFileByPath(file_in_root, callback, |
2141 GetContentCallback()); | 2140 GetContentCallback()); |
2142 test_util::RunBlockingPoolTask(); | 2141 test_util::RunBlockingPoolTask(); |
2143 | 2142 |
(...skipping 19 matching lines...) Expand all Loading... |
2163 | 2162 |
2164 // Store something as cached version of this file. | 2163 // Store something as cached version of this file. |
2165 TestStoreToCache(entry_proto->resource_id(), | 2164 TestStoreToCache(entry_proto->resource_id(), |
2166 entry_proto->file_specific_info().file_md5(), | 2165 entry_proto->file_specific_info().file_md5(), |
2167 GetTestFilePath("root_feed.json"), | 2166 GetTestFilePath("root_feed.json"), |
2168 GDATA_FILE_OK, | 2167 GDATA_FILE_OK, |
2169 test_util::TEST_CACHE_STATE_PRESENT, | 2168 test_util::TEST_CACHE_STATE_PRESENT, |
2170 GDataCache::CACHE_TYPE_TMP); | 2169 GDataCache::CACHE_TYPE_TMP); |
2171 | 2170 |
2172 // Make sure we don't fetch metadata for downloading file. | 2171 // Make sure we don't fetch metadata for downloading file. |
2173 EXPECT_CALL(*mock_doc_service_, GetDocumentEntry(_, _)).Times(0); | 2172 EXPECT_CALL(*mock_drive_service_, GetDocumentEntry(_, _)).Times(0); |
2174 | 2173 |
2175 // Make sure we don't call downloads at all. | 2174 // Make sure we don't call downloads at all. |
2176 EXPECT_CALL(*mock_doc_service_, | 2175 EXPECT_CALL(*mock_drive_service_, |
2177 DownloadFile(file_in_root, | 2176 DownloadFile(file_in_root, |
2178 downloaded_file, | 2177 downloaded_file, |
2179 GURL("https://file_content_url_changed/"), | 2178 GURL("https://file_content_url_changed/"), |
2180 _, _)) | 2179 _, _)) |
2181 .Times(0); | 2180 .Times(0); |
2182 | 2181 |
2183 file_system_->GetFileByPath(file_in_root, callback, | 2182 file_system_->GetFileByPath(file_in_root, callback, |
2184 GetContentCallback()); | 2183 GetContentCallback()); |
2185 test_util::RunBlockingPoolTask(); | 2184 test_util::RunBlockingPoolTask(); |
2186 | 2185 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2227 scoped_ptr<GDataEntryProto> entry_proto(GetEntryInfoByPathSync(file_in_root)); | 2226 scoped_ptr<GDataEntryProto> entry_proto(GetEntryInfoByPathSync(file_in_root)); |
2228 FilePath downloaded_file = GetCachePathForFile( | 2227 FilePath downloaded_file = GetCachePathForFile( |
2229 entry_proto->resource_id(), | 2228 entry_proto->resource_id(), |
2230 entry_proto->file_specific_info().file_md5()); | 2229 entry_proto->file_specific_info().file_md5()); |
2231 | 2230 |
2232 // Before Download starts metadata from server will be fetched. | 2231 // Before Download starts metadata from server will be fetched. |
2233 // We will read content url from the result. | 2232 // We will read content url from the result. |
2234 scoped_ptr<base::Value> document(LoadJSONFile("document_to_download.json")); | 2233 scoped_ptr<base::Value> document(LoadJSONFile("document_to_download.json")); |
2235 SetExpectationsForGetDocumentEntry(&document, "file:2_file_resource_id"); | 2234 SetExpectationsForGetDocumentEntry(&document, "file:2_file_resource_id"); |
2236 | 2235 |
2237 // The file is obtained with the mock DocumentsService, because it's not | 2236 // The file is obtained with the mock DriveService, because it's not stored in |
2238 // stored in the cache. | 2237 // the cache. |
2239 EXPECT_CALL(*mock_doc_service_, | 2238 EXPECT_CALL(*mock_drive_service_, |
2240 DownloadFile(file_in_root, | 2239 DownloadFile(file_in_root, |
2241 downloaded_file, | 2240 downloaded_file, |
2242 GURL("https://file_content_url_changed/"), | 2241 GURL("https://file_content_url_changed/"), |
2243 _, _)) | 2242 _, _)) |
2244 .Times(1); | 2243 .Times(1); |
2245 | 2244 |
2246 file_system_->GetFileByResourceId(entry_proto->resource_id(), | 2245 file_system_->GetFileByResourceId(entry_proto->resource_id(), |
2247 callback, | 2246 callback, |
2248 GetContentCallback()); | 2247 GetContentCallback()); |
2249 test_util::RunBlockingPoolTask(); | 2248 test_util::RunBlockingPoolTask(); |
(...skipping 22 matching lines...) Expand all Loading... |
2272 // Store something as cached version of this file. | 2271 // Store something as cached version of this file. |
2273 TestStoreToCache(entry_proto->resource_id(), | 2272 TestStoreToCache(entry_proto->resource_id(), |
2274 entry_proto->file_specific_info().file_md5(), | 2273 entry_proto->file_specific_info().file_md5(), |
2275 GetTestFilePath("root_feed.json"), | 2274 GetTestFilePath("root_feed.json"), |
2276 GDATA_FILE_OK, | 2275 GDATA_FILE_OK, |
2277 test_util::TEST_CACHE_STATE_PRESENT, | 2276 test_util::TEST_CACHE_STATE_PRESENT, |
2278 GDataCache::CACHE_TYPE_TMP); | 2277 GDataCache::CACHE_TYPE_TMP); |
2279 | 2278 |
2280 // The file is obtained from the cache. | 2279 // The file is obtained from the cache. |
2281 // Make sure we don't call downloads at all. | 2280 // Make sure we don't call downloads at all. |
2282 EXPECT_CALL(*mock_doc_service_, DownloadFile(_, _, _, _, _)) | 2281 EXPECT_CALL(*mock_drive_service_, DownloadFile(_, _, _, _, _)) |
2283 .Times(0); | 2282 .Times(0); |
2284 | 2283 |
2285 file_system_->GetFileByResourceId(entry_proto->resource_id(), | 2284 file_system_->GetFileByResourceId(entry_proto->resource_id(), |
2286 callback, | 2285 callback, |
2287 GetContentCallback()); | 2286 GetContentCallback()); |
2288 test_util::RunBlockingPoolTask(); | 2287 test_util::RunBlockingPoolTask(); |
2289 | 2288 |
2290 EXPECT_EQ(REGULAR_FILE, callback_helper_->file_type_); | 2289 EXPECT_EQ(REGULAR_FILE, callback_helper_->file_type_); |
2291 EXPECT_EQ(downloaded_file.value(), | 2290 EXPECT_EQ(downloaded_file.value(), |
2292 callback_helper_->download_path_.value()); | 2291 callback_helper_->download_path_.value()); |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2451 callback_helper_.get()); | 2450 callback_helper_.get()); |
2452 | 2451 |
2453 file_system_->UpdateFileByResourceId(kResourceId, callback); | 2452 file_system_->UpdateFileByResourceId(kResourceId, callback); |
2454 test_util::RunBlockingPoolTask(); | 2453 test_util::RunBlockingPoolTask(); |
2455 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, callback_helper_->last_error_); | 2454 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, callback_helper_->last_error_); |
2456 } | 2455 } |
2457 | 2456 |
2458 TEST_F(GDataFileSystemTest, ContentSearch) { | 2457 TEST_F(GDataFileSystemTest, ContentSearch) { |
2459 LoadRootFeedDocument("root_feed.json"); | 2458 LoadRootFeedDocument("root_feed.json"); |
2460 | 2459 |
2461 mock_doc_service_->set_search_result("search_result_feed.json"); | 2460 mock_drive_service_->set_search_result("search_result_feed.json"); |
2462 | 2461 |
2463 EXPECT_CALL(*mock_doc_service_, GetDocuments(Eq(GURL()), _, "foo", _, _)) | 2462 EXPECT_CALL(*mock_drive_service_, GetDocuments(Eq(GURL()), _, "foo", _, _)) |
2464 .Times(1); | 2463 .Times(1); |
2465 | 2464 |
2466 const SearchResultPair kExpectedResults[] = { | 2465 const SearchResultPair kExpectedResults[] = { |
2467 { "drive/Directory 1/SubDirectory File 1.txt", false }, | 2466 { "drive/Directory 1/SubDirectory File 1.txt", false }, |
2468 { "drive/Directory 1", true } | 2467 { "drive/Directory 1", true } |
2469 }; | 2468 }; |
2470 | 2469 |
2471 SearchCallback callback = base::Bind(&DriveSearchCallback, | 2470 SearchCallback callback = base::Bind(&DriveSearchCallback, |
2472 &message_loop_, kExpectedResults, ARRAYSIZE_UNSAFE(kExpectedResults)); | 2471 &message_loop_, kExpectedResults, ARRAYSIZE_UNSAFE(kExpectedResults)); |
2473 | 2472 |
2474 file_system_->Search("foo", GURL(), callback); | 2473 file_system_->Search("foo", GURL(), callback); |
2475 message_loop_.Run(); // Wait to get our result. | 2474 message_loop_.Run(); // Wait to get our result. |
2476 } | 2475 } |
2477 | 2476 |
2478 TEST_F(GDataFileSystemTest, ContentSearchWithNewEntry) { | 2477 TEST_F(GDataFileSystemTest, ContentSearchWithNewEntry) { |
2479 LoadRootFeedDocument("root_feed.json"); | 2478 LoadRootFeedDocument("root_feed.json"); |
2480 | 2479 |
2481 // Search result returning two entries "Directory 1/" and | 2480 // Search result returning two entries "Directory 1/" and |
2482 // "Directory 1/SubDirectory Newly Added File.txt". The latter is not | 2481 // "Directory 1/SubDirectory Newly Added File.txt". The latter is not |
2483 // contained in the root feed. | 2482 // contained in the root feed. |
2484 mock_doc_service_->set_search_result( | 2483 mock_drive_service_->set_search_result( |
2485 "search_result_with_new_entry_feed.json"); | 2484 "search_result_with_new_entry_feed.json"); |
2486 | 2485 |
2487 EXPECT_CALL(*mock_doc_service_, GetDocuments(Eq(GURL()), _, "foo", _, _)) | 2486 EXPECT_CALL(*mock_drive_service_, GetDocuments(Eq(GURL()), _, "foo", _, _)) |
2488 .Times(1); | 2487 .Times(1); |
2489 | 2488 |
2490 // As the result of the first Search(), only entries in the current file | 2489 // As the result of the first Search(), only entries in the current file |
2491 // system snapshot are expected to be returned. | 2490 // system snapshot are expected to be returned. |
2492 const SearchResultPair kExpectedResults[] = { | 2491 const SearchResultPair kExpectedResults[] = { |
2493 { "drive/Directory 1", true } | 2492 { "drive/Directory 1", true } |
2494 }; | 2493 }; |
2495 | 2494 |
2496 // At the same time, unknown entry should trigger delta feed request. | 2495 // At the same time, unknown entry should trigger delta feed request. |
2497 // This will cause notification to observers (e.g., File Browser) so that | 2496 // This will cause notification to observers (e.g., File Browser) so that |
2498 // they can request search again. | 2497 // they can request search again. |
2499 EXPECT_CALL(*mock_doc_service_, GetAccountMetadata(_)).Times(1); | 2498 EXPECT_CALL(*mock_drive_service_, GetAccountMetadata(_)).Times(1); |
2500 EXPECT_CALL(*mock_doc_service_, GetDocuments(Eq(GURL()), _, "", _, _)) | 2499 EXPECT_CALL(*mock_drive_service_, GetDocuments(Eq(GURL()), _, "", _, _)) |
2501 .Times(1); | 2500 .Times(1); |
2502 EXPECT_CALL(*mock_webapps_registry_, UpdateFromFeed(_)).Times(1); | 2501 EXPECT_CALL(*mock_webapps_registry_, UpdateFromFeed(_)).Times(1); |
2503 | 2502 |
2504 SearchCallback callback = base::Bind(&DriveSearchCallback, | 2503 SearchCallback callback = base::Bind(&DriveSearchCallback, |
2505 &message_loop_, kExpectedResults, ARRAYSIZE_UNSAFE(kExpectedResults)); | 2504 &message_loop_, kExpectedResults, ARRAYSIZE_UNSAFE(kExpectedResults)); |
2506 | 2505 |
2507 file_system_->Search("foo", GURL(), callback); | 2506 file_system_->Search("foo", GURL(), callback); |
2508 message_loop_.Run(); // Wait to get our result. | 2507 message_loop_.Run(); // Wait to get our result. |
2509 } | 2508 } |
2510 | 2509 |
2511 TEST_F(GDataFileSystemTest, ContentSearchEmptyResult) { | 2510 TEST_F(GDataFileSystemTest, ContentSearchEmptyResult) { |
2512 LoadRootFeedDocument("root_feed.json"); | 2511 LoadRootFeedDocument("root_feed.json"); |
2513 | 2512 |
2514 mock_doc_service_->set_search_result("empty_feed.json"); | 2513 mock_drive_service_->set_search_result("empty_feed.json"); |
2515 | 2514 |
2516 EXPECT_CALL(*mock_doc_service_, GetDocuments(Eq(GURL()), _, "foo", _, _)) | 2515 EXPECT_CALL(*mock_drive_service_, GetDocuments(Eq(GURL()), _, "foo", _, _)) |
2517 .Times(1); | 2516 .Times(1); |
2518 | 2517 |
2519 const SearchResultPair* expected_results = NULL; | 2518 const SearchResultPair* expected_results = NULL; |
2520 | 2519 |
2521 SearchCallback callback = base::Bind(&DriveSearchCallback, | 2520 SearchCallback callback = base::Bind(&DriveSearchCallback, |
2522 &message_loop_, expected_results, 0u); | 2521 &message_loop_, expected_results, 0u); |
2523 | 2522 |
2524 file_system_->Search("foo", GURL(), callback); | 2523 file_system_->Search("foo", GURL(), callback); |
2525 message_loop_.Run(); // Wait to get our result. | 2524 message_loop_.Run(); // Wait to get our result. |
2526 } | 2525 } |
2527 | 2526 |
2528 TEST_F(GDataFileSystemTest, GetAvailableSpace) { | 2527 TEST_F(GDataFileSystemTest, GetAvailableSpace) { |
2529 GetAvailableSpaceCallback callback = | 2528 GetAvailableSpaceCallback callback = |
2530 base::Bind(&CallbackHelper::GetAvailableSpaceCallback, | 2529 base::Bind(&CallbackHelper::GetAvailableSpaceCallback, |
2531 callback_helper_.get()); | 2530 callback_helper_.get()); |
2532 | 2531 |
2533 EXPECT_CALL(*mock_doc_service_, GetAccountMetadata(_)); | 2532 EXPECT_CALL(*mock_drive_service_, GetAccountMetadata(_)); |
2534 | 2533 |
2535 file_system_->GetAvailableSpace(callback); | 2534 file_system_->GetAvailableSpace(callback); |
2536 test_util::RunBlockingPoolTask(); | 2535 test_util::RunBlockingPoolTask(); |
2537 EXPECT_EQ(GG_LONGLONG(6789012345), callback_helper_->quota_bytes_used_); | 2536 EXPECT_EQ(GG_LONGLONG(6789012345), callback_helper_->quota_bytes_used_); |
2538 EXPECT_EQ(GG_LONGLONG(9876543210), callback_helper_->quota_bytes_total_); | 2537 EXPECT_EQ(GG_LONGLONG(9876543210), callback_helper_->quota_bytes_total_); |
2539 } | 2538 } |
2540 | 2539 |
2541 TEST_F(GDataFileSystemTest, RequestDirectoryRefresh) { | 2540 TEST_F(GDataFileSystemTest, RequestDirectoryRefresh) { |
2542 LoadRootFeedDocument("root_feed.json"); | 2541 LoadRootFeedDocument("root_feed.json"); |
2543 | 2542 |
2544 // We'll fetch documents in the root directory with its resource ID. | 2543 // We'll fetch documents in the root directory with its resource ID. |
2545 EXPECT_CALL(*mock_doc_service_, | 2544 EXPECT_CALL(*mock_drive_service_, |
2546 GetDocuments(Eq(GURL()), _, _, kGDataRootDirectoryResourceId, _)) | 2545 GetDocuments(Eq(GURL()), _, _, kGDataRootDirectoryResourceId, _)) |
2547 .Times(1); | 2546 .Times(1); |
2548 // We'll notify the directory change to the observer. | 2547 // We'll notify the directory change to the observer. |
2549 EXPECT_CALL(*mock_directory_observer_, | 2548 EXPECT_CALL(*mock_directory_observer_, |
2550 OnDirectoryChanged(Eq(FilePath(kGDataRootDirectory)))).Times(1); | 2549 OnDirectoryChanged(Eq(FilePath(kGDataRootDirectory)))).Times(1); |
2551 | 2550 |
2552 file_system_->RequestDirectoryRefresh(FilePath(kGDataRootDirectory)); | 2551 file_system_->RequestDirectoryRefresh(FilePath(kGDataRootDirectory)); |
2553 test_util::RunBlockingPoolTask(); | 2552 test_util::RunBlockingPoolTask(); |
2554 } | 2553 } |
2555 | 2554 |
(...skipping 19 matching lines...) Expand all Loading... |
2575 | 2574 |
2576 // A dirty file is created on close. | 2575 // A dirty file is created on close. |
2577 EXPECT_CALL(*mock_cache_observer_, OnCacheCommitted(file_resource_id)) | 2576 EXPECT_CALL(*mock_cache_observer_, OnCacheCommitted(file_resource_id)) |
2578 .Times(1); | 2577 .Times(1); |
2579 | 2578 |
2580 // Pretend we have enough space. | 2579 // Pretend we have enough space. |
2581 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) | 2580 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
2582 .Times(2).WillRepeatedly(Return(file_size + kMinFreeSpace)); | 2581 .Times(2).WillRepeatedly(Return(file_size + kMinFreeSpace)); |
2583 | 2582 |
2584 const std::string kExpectedFileData = "test file data"; | 2583 const std::string kExpectedFileData = "test file data"; |
2585 mock_doc_service_->set_file_data(new std::string(kExpectedFileData)); | 2584 mock_drive_service_->set_file_data(new std::string(kExpectedFileData)); |
2586 | 2585 |
2587 // Before Download starts metadata from server will be fetched. | 2586 // Before Download starts metadata from server will be fetched. |
2588 // We will read content url from the result. | 2587 // We will read content url from the result. |
2589 scoped_ptr<base::Value> document(LoadJSONFile("document_to_download.json")); | 2588 scoped_ptr<base::Value> document(LoadJSONFile("document_to_download.json")); |
2590 SetExpectationsForGetDocumentEntry(&document, "file:2_file_resource_id"); | 2589 SetExpectationsForGetDocumentEntry(&document, "file:2_file_resource_id"); |
2591 | 2590 |
2592 // The file is obtained with the mock DocumentsService. | 2591 // The file is obtained with the mock DriveService. |
2593 EXPECT_CALL(*mock_doc_service_, | 2592 EXPECT_CALL(*mock_drive_service_, |
2594 DownloadFile(kFileInRoot, | 2593 DownloadFile(kFileInRoot, |
2595 downloaded_file, | 2594 downloaded_file, |
2596 GURL("https://file_content_url_changed/"), | 2595 GURL("https://file_content_url_changed/"), |
2597 _, _)) | 2596 _, _)) |
2598 .Times(1); | 2597 .Times(1); |
2599 | 2598 |
2600 // Open kFileInRoot ("drive/File 1.txt"). | 2599 // Open kFileInRoot ("drive/File 1.txt"). |
2601 file_system_->OpenFile(kFileInRoot, callback); | 2600 file_system_->OpenFile(kFileInRoot, callback); |
2602 message_loop_.Run(); | 2601 message_loop_.Run(); |
2603 const FilePath opened_file_path = callback_helper_->opened_file_path_; | 2602 const FilePath opened_file_path = callback_helper_->opened_file_path_; |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2637 | 2636 |
2638 // Try to close the same file twice. | 2637 // Try to close the same file twice. |
2639 file_system_->CloseFile(kFileInRoot, close_file_callback); | 2638 file_system_->CloseFile(kFileInRoot, close_file_callback); |
2640 message_loop_.Run(); | 2639 message_loop_.Run(); |
2641 | 2640 |
2642 // It must fail. | 2641 // It must fail. |
2643 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, callback_helper_->last_error_); | 2642 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, callback_helper_->last_error_); |
2644 } | 2643 } |
2645 | 2644 |
2646 } // namespace gdata | 2645 } // namespace gdata |
OLD | NEW |