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 "chrome/browser/chromeos/drive/drive_file_system.h" | 5 #include "chrome/browser/chromeos/drive/drive_file_system.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
11 #include "base/file_util.h" | 11 #include "base/file_util.h" |
12 #include "base/files/file_path.h" | 12 #include "base/files/file_path.h" |
13 #include "base/files/scoped_temp_dir.h" | 13 #include "base/files/scoped_temp_dir.h" |
14 #include "base/json/json_file_value_serializer.h" | 14 #include "base/json/json_file_value_serializer.h" |
15 #include "base/memory/scoped_ptr.h" | 15 #include "base/memory/scoped_ptr.h" |
16 #include "base/message_loop.h" | 16 #include "base/message_loop.h" |
17 #include "base/stringprintf.h" | 17 #include "base/stringprintf.h" |
18 #include "base/threading/sequenced_worker_pool.h" | 18 #include "base/threading/sequenced_worker_pool.h" |
19 #include "base/values.h" | 19 #include "base/values.h" |
20 #include "chrome/browser/chromeos/drive/drive.pb.h" | 20 #include "chrome/browser/chromeos/drive/drive.pb.h" |
21 #include "chrome/browser/chromeos/drive/drive_file_system_util.h" | 21 #include "chrome/browser/chromeos/drive/drive_file_system_util.h" |
| 22 #include "chrome/browser/chromeos/drive/drive_scheduler.h" |
22 #include "chrome/browser/chromeos/drive/drive_test_util.h" | 23 #include "chrome/browser/chromeos/drive/drive_test_util.h" |
23 #include "chrome/browser/chromeos/drive/drive_webapps_registry.h" | 24 #include "chrome/browser/chromeos/drive/drive_webapps_registry.h" |
24 #include "chrome/browser/chromeos/drive/fake_free_disk_space_getter.h" | 25 #include "chrome/browser/chromeos/drive/fake_free_disk_space_getter.h" |
25 #include "chrome/browser/chromeos/drive/mock_directory_change_observer.h" | 26 #include "chrome/browser/chromeos/drive/mock_directory_change_observer.h" |
26 #include "chrome/browser/chromeos/drive/mock_drive_cache_observer.h" | 27 #include "chrome/browser/chromeos/drive/mock_drive_cache_observer.h" |
27 #include "chrome/browser/google_apis/drive_api_parser.h" | 28 #include "chrome/browser/google_apis/drive_api_parser.h" |
28 #include "chrome/browser/google_apis/fake_drive_service.h" | 29 #include "chrome/browser/google_apis/fake_drive_service.h" |
29 #include "chrome/browser/google_apis/test_util.h" | 30 #include "chrome/browser/google_apis/test_util.h" |
30 #include "chrome/test/base/testing_profile.h" | 31 #include "chrome/test/base/testing_profile.h" |
31 #include "content/public/browser/browser_thread.h" | 32 #include "content/public/browser/browser_thread.h" |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 // The fake object will be manually deleted in TearDown(). | 127 // The fake object will be manually deleted in TearDown(). |
127 fake_drive_service_.reset(new google_apis::FakeDriveService); | 128 fake_drive_service_.reset(new google_apis::FakeDriveService); |
128 fake_drive_service_->LoadResourceListForWapi( | 129 fake_drive_service_->LoadResourceListForWapi( |
129 "chromeos/gdata/root_feed.json"); | 130 "chromeos/gdata/root_feed.json"); |
130 fake_drive_service_->LoadAccountMetadataForWapi( | 131 fake_drive_service_->LoadAccountMetadataForWapi( |
131 "chromeos/gdata/account_metadata.json"); | 132 "chromeos/gdata/account_metadata.json"); |
132 fake_drive_service_->LoadAppListForDriveApi("chromeos/drive/applist.json"); | 133 fake_drive_service_->LoadAppListForDriveApi("chromeos/drive/applist.json"); |
133 | 134 |
134 fake_free_disk_space_getter_.reset(new FakeFreeDiskSpaceGetter); | 135 fake_free_disk_space_getter_.reset(new FakeFreeDiskSpaceGetter); |
135 | 136 |
| 137 scheduler_.reset(new DriveScheduler(profile_.get(), |
| 138 fake_drive_service_.get())); |
| 139 |
136 scoped_refptr<base::SequencedWorkerPool> pool = | 140 scoped_refptr<base::SequencedWorkerPool> pool = |
137 content::BrowserThread::GetBlockingPool(); | 141 content::BrowserThread::GetBlockingPool(); |
138 blocking_task_runner_ = | 142 blocking_task_runner_ = |
139 pool->GetSequencedTaskRunner(pool->GetSequenceToken()); | 143 pool->GetSequencedTaskRunner(pool->GetSequenceToken()); |
140 | 144 |
141 cache_.reset(new DriveCache(DriveCache::GetCacheRootPath(profile_.get()), | 145 cache_.reset(new DriveCache(DriveCache::GetCacheRootPath(profile_.get()), |
142 blocking_task_runner_, | 146 blocking_task_runner_, |
143 fake_free_disk_space_getter_.get())); | 147 fake_free_disk_space_getter_.get())); |
144 | 148 |
145 drive_webapps_registry_.reset(new DriveWebAppsRegistry); | 149 drive_webapps_registry_.reset(new DriveWebAppsRegistry); |
(...skipping 10 matching lines...) Expand all Loading... |
156 } | 160 } |
157 | 161 |
158 void SetUpResourceMetadataAndFileSystem() { | 162 void SetUpResourceMetadataAndFileSystem() { |
159 resource_metadata_.reset(new DriveResourceMetadata( | 163 resource_metadata_.reset(new DriveResourceMetadata( |
160 cache_->GetCacheDirectoryPath(DriveCache::CACHE_TYPE_META), | 164 cache_->GetCacheDirectoryPath(DriveCache::CACHE_TYPE_META), |
161 blocking_task_runner_)); | 165 blocking_task_runner_)); |
162 | 166 |
163 file_system_.reset(new DriveFileSystem(profile_.get(), | 167 file_system_.reset(new DriveFileSystem(profile_.get(), |
164 cache_.get(), | 168 cache_.get(), |
165 fake_drive_service_.get(), | 169 fake_drive_service_.get(), |
| 170 scheduler_.get(), |
166 drive_webapps_registry_.get(), | 171 drive_webapps_registry_.get(), |
167 resource_metadata_.get(), | 172 resource_metadata_.get(), |
168 blocking_task_runner_)); | 173 blocking_task_runner_)); |
169 file_system_->AddObserver(mock_directory_observer_.get()); | 174 file_system_->AddObserver(mock_directory_observer_.get()); |
170 file_system_->Initialize(); | 175 file_system_->Initialize(); |
171 | 176 |
172 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 177 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
173 resource_metadata_->Initialize( | 178 resource_metadata_->Initialize( |
174 google_apis::test_util::CreateCopyResultCallback(&error)); | 179 google_apis::test_util::CreateCopyResultCallback(&error)); |
175 google_apis::test_util::RunBlockingPoolTask(); | 180 google_apis::test_util::RunBlockingPoolTask(); |
176 ASSERT_EQ(DRIVE_FILE_OK, error); | 181 ASSERT_EQ(DRIVE_FILE_OK, error); |
177 } | 182 } |
178 | 183 |
179 virtual void TearDown() OVERRIDE { | 184 virtual void TearDown() OVERRIDE { |
180 ASSERT_TRUE(file_system_); | 185 ASSERT_TRUE(file_system_); |
181 file_system_.reset(); | 186 file_system_.reset(); |
| 187 scheduler_.reset(); |
182 fake_drive_service_.reset(); | 188 fake_drive_service_.reset(); |
183 cache_.reset(); | 189 cache_.reset(); |
184 profile_.reset(NULL); | 190 profile_.reset(NULL); |
185 } | 191 } |
186 | 192 |
187 // Loads test json file as root ("/drive") element. | 193 // Loads test json file as root ("/drive") element. |
188 bool LoadRootFeedDocument() { | 194 bool LoadRootFeedDocument() { |
189 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 195 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
190 file_system_->change_list_loader()->LoadIfNeeded( | 196 file_system_->change_list_loader()->LoadIfNeeded( |
191 DirectoryFetchInfo(), | 197 DirectoryFetchInfo(), |
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
454 } | 460 } |
455 | 461 |
456 MessageLoopForUI message_loop_; | 462 MessageLoopForUI message_loop_; |
457 content::TestBrowserThread ui_thread_; | 463 content::TestBrowserThread ui_thread_; |
458 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; | 464 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; |
459 scoped_ptr<TestingProfile> profile_; | 465 scoped_ptr<TestingProfile> profile_; |
460 | 466 |
461 scoped_ptr<DriveCache, test_util::DestroyHelperForTests> cache_; | 467 scoped_ptr<DriveCache, test_util::DestroyHelperForTests> cache_; |
462 scoped_ptr<DriveFileSystem> file_system_; | 468 scoped_ptr<DriveFileSystem> file_system_; |
463 scoped_ptr<google_apis::FakeDriveService> fake_drive_service_; | 469 scoped_ptr<google_apis::FakeDriveService> fake_drive_service_; |
| 470 scoped_ptr<DriveScheduler> scheduler_; |
464 scoped_ptr<DriveWebAppsRegistry> drive_webapps_registry_; | 471 scoped_ptr<DriveWebAppsRegistry> drive_webapps_registry_; |
465 scoped_ptr<DriveResourceMetadata, test_util::DestroyHelperForTests> | 472 scoped_ptr<DriveResourceMetadata, test_util::DestroyHelperForTests> |
466 resource_metadata_; | 473 resource_metadata_; |
467 scoped_ptr<FakeFreeDiskSpaceGetter> fake_free_disk_space_getter_; | 474 scoped_ptr<FakeFreeDiskSpaceGetter> fake_free_disk_space_getter_; |
468 scoped_ptr<StrictMock<MockDriveCacheObserver> > mock_cache_observer_; | 475 scoped_ptr<StrictMock<MockDriveCacheObserver> > mock_cache_observer_; |
469 scoped_ptr<StrictMock<MockDirectoryChangeObserver> > mock_directory_observer_; | 476 scoped_ptr<StrictMock<MockDirectoryChangeObserver> > mock_directory_observer_; |
470 | 477 |
471 int root_feed_changestamp_; | 478 int root_feed_changestamp_; |
472 }; | 479 }; |
473 | 480 |
(...skipping 1651 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2125 | 2132 |
2126 // An app for foo.exe should now be found, as the registry was loaded. | 2133 // An app for foo.exe should now be found, as the registry was loaded. |
2127 drive_webapps_registry_->GetWebAppsForFile( | 2134 drive_webapps_registry_->GetWebAppsForFile( |
2128 base::FilePath(FILE_PATH_LITERAL("foo.exe")), | 2135 base::FilePath(FILE_PATH_LITERAL("foo.exe")), |
2129 "" /* mime_type */, | 2136 "" /* mime_type */, |
2130 &apps); | 2137 &apps); |
2131 EXPECT_EQ(1U, apps.size()); | 2138 EXPECT_EQ(1U, apps.size()); |
2132 } | 2139 } |
2133 | 2140 |
2134 } // namespace drive | 2141 } // namespace drive |
OLD | NEW |