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

Side by Side Diff: chrome/browser/google_apis/fake_drive_service.cc

Issue 11787038: google_apis: Implement some functions in FakeDriveService (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 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 "chrome/browser/google_apis/fake_drive_service.h" 5 #include "chrome/browser/google_apis/fake_drive_service.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/message_loop.h"
9 #include "chrome/browser/google_apis/gdata_wapi_parser.h"
10 #include "chrome/browser/google_apis/test_util.h"
8 #include "content/public/browser/browser_thread.h" 11 #include "content/public/browser/browser_thread.h"
9 12
10 using content::BrowserThread; 13 using content::BrowserThread;
11 14
12 namespace google_apis { 15 namespace google_apis {
13 16
14 FakeDriveService::FakeDriveService() { 17 FakeDriveService::FakeDriveService() {
15 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 18 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
16 } 19 }
17 20
18 FakeDriveService::~FakeDriveService() { 21 FakeDriveService::~FakeDriveService() {
19 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 22 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
20 } 23 }
21 24
25 bool FakeDriveService::LoadResourceListForWapi(
26 const std::string& relative_path) {
27 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
28 scoped_ptr<Value> raw_value = test_util::LoadJSONFile(relative_path);
29 base::DictionaryValue* as_dict = NULL;
30 base::Value* feed = NULL;
31 base::DictionaryValue* feed_as_dict = NULL;
32
33 // Extract the "feed" from the raw value and take the ownership.
34 if (raw_value->GetAsDictionary(&as_dict) &&
35 as_dict->Remove("feed", &feed) &&
36 feed->GetAsDictionary(&feed_as_dict)) {
37 resource_list_value_.reset(feed_as_dict);
kinaba 2013/01/08 08:26:53 Is this safe? |feed_as_dict| looks to be simultane
satorux1 2013/01/09 00:50:49 Should be safe. Remove() above transfers the owner
kinaba 2013/01/09 01:36:23 Ah, sorry, you're right.
38 }
39
40 return resource_list_value_;
41 }
42
43 bool FakeDriveService::LoadAccountMetadataForWapi(
44 const std::string& relative_path) {
45 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
46 account_metadata_value_ = test_util::LoadJSONFile(relative_path);
47 return account_metadata_value_;
48 }
49
22 void FakeDriveService::Initialize(Profile* profile) { 50 void FakeDriveService::Initialize(Profile* profile) {
23 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 51 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
24 } 52 }
25 53
26 void FakeDriveService::AddObserver(DriveServiceObserver* observer) { 54 void FakeDriveService::AddObserver(DriveServiceObserver* observer) {
27 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 55 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
28 } 56 }
29 57
30 void FakeDriveService::RemoveObserver(DriveServiceObserver* observer) { 58 void FakeDriveService::RemoveObserver(DriveServiceObserver* observer) {
31 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 59 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
(...skipping 29 matching lines...) Expand all
61 } 89 }
62 void FakeDriveService::GetResourceList( 90 void FakeDriveService::GetResourceList(
63 const GURL& feed_url, 91 const GURL& feed_url,
64 int64 start_changestamp, 92 int64 start_changestamp,
65 const std::string& search_query, 93 const std::string& search_query,
66 bool shared_with_me, 94 bool shared_with_me,
67 const std::string& directory_resource_id, 95 const std::string& directory_resource_id,
68 const GetResourceListCallback& callback) { 96 const GetResourceListCallback& callback) {
69 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 97 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
70 DCHECK(!callback.is_null()); 98 DCHECK(!callback.is_null());
99
100 scoped_ptr<ResourceList> resource_list =
101 ResourceList::CreateFrom(*resource_list_value_);
102 MessageLoop::current()->PostTask(
103 FROM_HERE,
104 base::Bind(callback,
105 HTTP_SUCCESS,
106 base::Passed(&resource_list)));
71 } 107 }
72 108
73 void FakeDriveService::GetResourceEntry( 109 void FakeDriveService::GetResourceEntry(
74 const std::string& resource_id, 110 const std::string& resource_id,
75 const GetResourceEntryCallback& callback) { 111 const GetResourceEntryCallback& callback) {
76 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 112 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
77 DCHECK(!callback.is_null()); 113 DCHECK(!callback.is_null());
114
115 base::DictionaryValue* resource_list_dict = NULL;
116 base::ListValue* entries = NULL;
117 // Go through entries and return the one that matches |resource_id.
118 if (resource_list_value_->GetAsDictionary(&resource_list_dict) &&
119 resource_list_dict->GetList("entry", &entries)) {
120 for (size_t i = 0; i < entries->GetSize(); ++i) {
121 base::DictionaryValue* entry = NULL;
122 base::DictionaryValue* resource_id_dict = NULL;
123 std::string current_resource_id;
124 if (entries->GetDictionary(i, &entry) &&
125 entry->GetDictionary("gd$resourceId", &resource_id_dict) &&
126 resource_id_dict->GetString("$t", &current_resource_id) &&
127 resource_id == current_resource_id) {
128 scoped_ptr<ResourceEntry> resource_entry =
129 ResourceEntry::CreateFrom(*entry);
130 callback.Run(HTTP_SUCCESS, resource_entry.Pass());
kinaba 2013/01/08 08:26:53 We should better do PostTask here as well as in Ge
satorux1 2013/01/09 00:50:49 Good catch! Done.
131 return;
132 }
133 }
134 }
135
136 callback.Run(HTTP_NOT_FOUND, scoped_ptr<ResourceEntry>(NULL));
78 } 137 }
79 138
80 void FakeDriveService::GetAccountMetadata( 139 void FakeDriveService::GetAccountMetadata(
81 const GetAccountMetadataCallback& callback) { 140 const GetAccountMetadataCallback& callback) {
82 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 141 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
83 DCHECK(!callback.is_null()); 142 DCHECK(!callback.is_null());
143
144 scoped_ptr<AccountMetadataFeed> account_metadata =
145 AccountMetadataFeed::CreateFrom(*account_metadata_value_);
146 MessageLoop::current()->PostTask(
147 FROM_HERE,
148 base::Bind(callback,
149 HTTP_SUCCESS,
150 base::Passed(&account_metadata)));
84 } 151 }
85 152
86 void FakeDriveService::GetApplicationInfo( 153 void FakeDriveService::GetApplicationInfo(
87 const GetDataCallback& callback) { 154 const GetDataCallback& callback) {
88 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 155 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
89 DCHECK(!callback.is_null()); 156 DCHECK(!callback.is_null());
90 } 157 }
91 158
92 void FakeDriveService::DeleteResource( 159 void FakeDriveService::DeleteResource(
93 const GURL& edit_url, 160 const GURL& edit_url,
94 const EntryActionCallback& callback) { 161 const EntryActionCallback& callback) {
95 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 162 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
96 DCHECK(!callback.is_null()); 163 DCHECK(!callback.is_null());
164
165 base::DictionaryValue* resource_list_dict = NULL;
166 base::ListValue* entries = NULL;
167 // Go through entries and remove one that matches |edit_url|.
168 if (resource_list_value_->GetAsDictionary(&resource_list_dict) &&
169 resource_list_dict->GetList("entry", &entries)) {
170 for (size_t i = 0; i < entries->GetSize(); ++i) {
171 base::DictionaryValue* entry = NULL;
172 base::ListValue* links = NULL;
173 if (entries->GetDictionary(i, &entry) &&
174 entry->GetList("link", &links)) {
175 for (size_t j = 0; j < links->GetSize(); ++j) {
176 base::DictionaryValue* link = NULL;
177 std::string rel;
178 std::string href;
179 if (links->GetDictionary(j, &link) &&
180 link->GetString("rel", &rel) &&
181 link->GetString("href", &href) &&
182 rel == "edit" &&
183 GURL(href) == edit_url) {
184 entries->Remove(i, NULL);
185 callback.Run(HTTP_SUCCESS);
186 return;
187 }
188 }
189 }
190 }
191 }
192
193 callback.Run(HTTP_NOT_FOUND);
97 } 194 }
98 195
99 void FakeDriveService::DownloadHostedDocument( 196 void FakeDriveService::DownloadHostedDocument(
100 const FilePath& virtual_path, 197 const FilePath& virtual_path,
101 const FilePath& local_cache_path, 198 const FilePath& local_cache_path,
102 const GURL& content_url, 199 const GURL& content_url,
103 DocumentExportFormat format, 200 DocumentExportFormat format,
104 const DownloadActionCallback& callback) { 201 const DownloadActionCallback& callback) {
105 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 202 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
106 DCHECK(!callback.is_null()); 203 DCHECK(!callback.is_null());
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 } 267 }
171 268
172 void FakeDriveService::AuthorizeApp(const GURL& edit_url, 269 void FakeDriveService::AuthorizeApp(const GURL& edit_url,
173 const std::string& app_id, 270 const std::string& app_id,
174 const AuthorizeAppCallback& callback) { 271 const AuthorizeAppCallback& callback) {
175 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 272 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
176 DCHECK(!callback.is_null()); 273 DCHECK(!callback.is_null());
177 } 274 }
178 275
179 } // namespace google_apis 276 } // namespace google_apis
OLDNEW
« no previous file with comments | « chrome/browser/google_apis/fake_drive_service.h ('k') | chrome/browser/google_apis/fake_drive_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698