Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(588)

Side by Side Diff: chrome/browser/chromeos/gdata/gdata_file_system_unittest.cc

Issue 10829276: Get web application list using Drive V2 API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add unittest. Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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_webapps_registry.h" 21 #include "chrome/browser/chromeos/gdata/drive_webapps_registry.h"
21 #include "chrome/browser/chromeos/gdata/gdata.pb.h" 22 #include "chrome/browser/chromeos/gdata/gdata.pb.h"
22 #include "chrome/browser/chromeos/gdata/gdata_file_system.h" 23 #include "chrome/browser/chromeos/gdata/gdata_file_system.h"
23 #include "chrome/browser/chromeos/gdata/gdata_test_util.h" 24 #include "chrome/browser/chromeos/gdata/gdata_test_util.h"
24 #include "chrome/browser/chromeos/gdata/gdata_util.h" 25 #include "chrome/browser/chromeos/gdata/gdata_util.h"
25 #include "chrome/browser/chromeos/gdata/mock_directory_change_observer.h" 26 #include "chrome/browser/chromeos/gdata/mock_directory_change_observer.h"
26 #include "chrome/browser/chromeos/gdata/mock_gdata_cache_observer.h" 27 #include "chrome/browser/chromeos/gdata/mock_gdata_cache_observer.h"
27 #include "chrome/browser/chromeos/gdata/mock_gdata_documents_service.h" 28 #include "chrome/browser/chromeos/gdata/mock_gdata_documents_service.h"
28 #include "chrome/common/chrome_paths.h" 29 #include "chrome/common/chrome_paths.h"
29 #include "chrome/test/base/testing_profile.h" 30 #include "chrome/test/base/testing_profile.h"
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 186
186 class MockDriveWebAppsRegistry : public DriveWebAppsRegistryInterface { 187 class MockDriveWebAppsRegistry : public DriveWebAppsRegistryInterface {
187 public: 188 public:
188 virtual ~MockDriveWebAppsRegistry() {} 189 virtual ~MockDriveWebAppsRegistry() {}
189 190
190 MOCK_METHOD3(GetWebAppsForFile, void(const FilePath& file, 191 MOCK_METHOD3(GetWebAppsForFile, void(const FilePath& file,
191 const std::string& mime_type, 192 const std::string& mime_type,
192 ScopedVector<DriveWebAppInfo>* apps)); 193 ScopedVector<DriveWebAppInfo>* apps));
193 MOCK_METHOD1(GetExtensionsForWebStoreApp, 194 MOCK_METHOD1(GetExtensionsForWebStoreApp,
194 std::set<std::string>(const std::string& web_store_id)); 195 std::set<std::string>(const std::string& web_store_id));
195 MOCK_METHOD1(UpdateFromFeed, void(AccountMetadataFeed* metadata)); 196 MOCK_METHOD1(UpdateFromFeed, void(const AccountMetadataFeed& metadata));
197 MOCK_METHOD1(UpdateFromApplicationList, void(const AppList& applist));
196 }; 198 };
197 199
198 class GDataFileSystemTest : public testing::Test { 200 class GDataFileSystemTest : public testing::Test {
199 protected: 201 protected:
200 GDataFileSystemTest() 202 GDataFileSystemTest()
201 : ui_thread_(content::BrowserThread::UI, &message_loop_), 203 : ui_thread_(content::BrowserThread::UI, &message_loop_),
202 io_thread_(content::BrowserThread::IO), 204 io_thread_(content::BrowserThread::IO),
203 cache_(NULL), 205 cache_(NULL),
204 file_system_(NULL), 206 file_system_(NULL),
205 mock_doc_service_(NULL), 207 mock_doc_service_(NULL),
(...skipping 673 matching lines...) Expand 10 before | Expand all | Expand 10 after
879 &AsyncInitializationCallback, 881 &AsyncInitializationCallback,
880 &counter, 882 &counter,
881 2, 883 2,
882 FilePath(FILE_PATH_LITERAL("drive")), 884 FilePath(FILE_PATH_LITERAL("drive")),
883 &message_loop_); 885 &message_loop_);
884 886
885 EXPECT_CALL(*mock_doc_service_, GetAccountMetadata(_)).Times(1); 887 EXPECT_CALL(*mock_doc_service_, GetAccountMetadata(_)).Times(1);
886 EXPECT_CALL(*mock_doc_service_, 888 EXPECT_CALL(*mock_doc_service_,
887 GetDocuments(Eq(GURL()), _, _, _, _)).Times(1); 889 GetDocuments(Eq(GURL()), _, _, _, _)).Times(1);
888 890
889 EXPECT_CALL(*mock_webapps_registry_, UpdateFromFeed(NotNull())).Times(1); 891 EXPECT_CALL(*mock_webapps_registry_, UpdateFromFeed(_)).Times(1);
890 892
891 file_system_->GetEntryInfoByPath( 893 file_system_->GetEntryInfoByPath(
892 FilePath(FILE_PATH_LITERAL("drive")), callback); 894 FilePath(FILE_PATH_LITERAL("drive")), callback);
893 file_system_->GetEntryInfoByPath( 895 file_system_->GetEntryInfoByPath(
894 FilePath(FILE_PATH_LITERAL("drive")), callback); 896 FilePath(FILE_PATH_LITERAL("drive")), callback);
895 message_loop_.Run(); // Wait to get our result 897 message_loop_.Run(); // Wait to get our result
896 EXPECT_EQ(2, counter); 898 EXPECT_EQ(2, counter);
897 } 899 }
898 900
899 TEST_F(GDataFileSystemTest, SearchRootDirectory) { 901 TEST_F(GDataFileSystemTest, SearchRootDirectory) {
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
1216 } 1218 }
1217 1219
1218 TEST_F(GDataFileSystemTest, CachedFeadLoadingThenServerFeedLoading) { 1220 TEST_F(GDataFileSystemTest, CachedFeadLoadingThenServerFeedLoading) {
1219 SaveTestFileSystem(); 1221 SaveTestFileSystem();
1220 1222
1221 // SaveTestFileSystem and "account_metadata.json" have the same changestamp, 1223 // SaveTestFileSystem and "account_metadata.json" have the same changestamp,
1222 // so no request for new feeds (i.e., call to GetDocuments) should happen. 1224 // so no request for new feeds (i.e., call to GetDocuments) should happen.
1223 mock_doc_service_->set_account_metadata( 1225 mock_doc_service_->set_account_metadata(
1224 LoadJSONFile("account_metadata.json")); 1226 LoadJSONFile("account_metadata.json"));
1225 EXPECT_CALL(*mock_doc_service_, GetAccountMetadata(_)).Times(1); 1227 EXPECT_CALL(*mock_doc_service_, GetAccountMetadata(_)).Times(1);
1226 EXPECT_CALL(*mock_webapps_registry_, UpdateFromFeed(NotNull())).Times(1); 1228 EXPECT_CALL(*mock_webapps_registry_, UpdateFromFeed(_)).Times(1);
1227 EXPECT_CALL(*mock_doc_service_, GetDocuments(_, _, _, _, _)).Times(0); 1229 EXPECT_CALL(*mock_doc_service_, GetDocuments(_, _, _, _, _)).Times(0);
1228 1230
1229 // Kicks loading of cached file system and query for server update. 1231 // Kicks loading of cached file system and query for server update.
1230 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL("drive/File1")))); 1232 EXPECT_TRUE(EntryExists(FilePath(FILE_PATH_LITERAL("drive/File1"))));
1231 1233
1232 // Since the file system has verified that it holds the latest snapshot, 1234 // Since the file system has verified that it holds the latest snapshot,
1233 // it should change its state to FROM_SERVER, which admits periodic refresh. 1235 // it should change its state to FROM_SERVER, which admits periodic refresh.
1234 // To test it, call CheckForUpdates and verify it does try to check updates. 1236 // To test it, call CheckForUpdates and verify it does try to check updates.
1235 mock_doc_service_->set_account_metadata( 1237 mock_doc_service_->set_account_metadata(
1236 LoadJSONFile("account_metadata.json")); 1238 LoadJSONFile("account_metadata.json"));
1237 EXPECT_CALL(*mock_doc_service_, GetAccountMetadata(_)).Times(1); 1239 EXPECT_CALL(*mock_doc_service_, GetAccountMetadata(_)).Times(1);
1238 EXPECT_CALL(*mock_webapps_registry_, UpdateFromFeed(NotNull())).Times(1); 1240 EXPECT_CALL(*mock_webapps_registry_, UpdateFromFeed(_)).Times(1);
1239 1241
1240 file_system_->CheckForUpdates(); 1242 file_system_->CheckForUpdates();
1241 test_util::RunBlockingPoolTask(); 1243 test_util::RunBlockingPoolTask();
1242 } 1244 }
1243 1245
1244 TEST_F(GDataFileSystemTest, TransferFileFromLocalToRemote_RegularFile) { 1246 TEST_F(GDataFileSystemTest, TransferFileFromLocalToRemote_RegularFile) {
1245 LoadRootFeedDocument("root_feed.json"); 1247 LoadRootFeedDocument("root_feed.json");
1246 1248
1247 // We'll add a file to the Drive root directory. 1249 // We'll add a file to the Drive root directory.
1248 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( 1250 EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged(
(...skipping 1222 matching lines...) Expand 10 before | Expand all | Expand 10 after
2471 const SearchResultPair kExpectedResults[] = { 2473 const SearchResultPair kExpectedResults[] = {
2472 { "drive/Directory 1", true } 2474 { "drive/Directory 1", true }
2473 }; 2475 };
2474 2476
2475 // At the same time, unknown entry should trigger delta feed request. 2477 // At the same time, unknown entry should trigger delta feed request.
2476 // This will cause notification to observers (e.g., File Browser) so that 2478 // This will cause notification to observers (e.g., File Browser) so that
2477 // they can request search again. 2479 // they can request search again.
2478 EXPECT_CALL(*mock_doc_service_, GetAccountMetadata(_)).Times(1); 2480 EXPECT_CALL(*mock_doc_service_, GetAccountMetadata(_)).Times(1);
2479 EXPECT_CALL(*mock_doc_service_, GetDocuments(Eq(GURL()), _, "", _, _)) 2481 EXPECT_CALL(*mock_doc_service_, GetDocuments(Eq(GURL()), _, "", _, _))
2480 .Times(1); 2482 .Times(1);
2481 EXPECT_CALL(*mock_webapps_registry_, UpdateFromFeed(NotNull())).Times(1); 2483 EXPECT_CALL(*mock_webapps_registry_, UpdateFromFeed(_)).Times(1);
2482 2484
2483 SearchCallback callback = base::Bind(&DriveSearchCallback, 2485 SearchCallback callback = base::Bind(&DriveSearchCallback,
2484 &message_loop_, kExpectedResults, ARRAYSIZE_UNSAFE(kExpectedResults)); 2486 &message_loop_, kExpectedResults, ARRAYSIZE_UNSAFE(kExpectedResults));
2485 2487
2486 file_system_->Search("foo", GURL(), callback); 2488 file_system_->Search("foo", GURL(), callback);
2487 message_loop_.Run(); // Wait to get our result. 2489 message_loop_.Run(); // Wait to get our result.
2488 } 2490 }
2489 2491
2490 TEST_F(GDataFileSystemTest, ContentSearchEmptyResult) { 2492 TEST_F(GDataFileSystemTest, ContentSearchEmptyResult) {
2491 LoadRootFeedDocument("root_feed.json"); 2493 LoadRootFeedDocument("root_feed.json");
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
2616 2618
2617 // Try to close the same file twice. 2619 // Try to close the same file twice.
2618 file_system_->CloseFile(kFileInRoot, close_file_callback); 2620 file_system_->CloseFile(kFileInRoot, close_file_callback);
2619 message_loop_.Run(); 2621 message_loop_.Run();
2620 2622
2621 // It must fail. 2623 // It must fail.
2622 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, callback_helper_->last_error_); 2624 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, callback_helper_->last_error_);
2623 } 2625 }
2624 2626
2625 } // namespace gdata 2627 } // namespace gdata
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698