| 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/google_apis/fake_drive_service.h" | 5 #include "chrome/browser/google_apis/fake_drive_service.h" |
| 6 | 6 |
| 7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "base/stringprintf.h" | 10 #include "base/stringprintf.h" |
| 11 #include "chrome/browser/google_apis/gdata_wapi_parser.h" | 11 #include "chrome/browser/google_apis/gdata_wapi_parser.h" |
| 12 #include "chrome/browser/google_apis/test_util.h" | 12 #include "chrome/browser/google_apis/test_util.h" |
| 13 #include "content/public/browser/browser_thread.h" | 13 #include "content/public/browser/browser_thread.h" |
| 14 | 14 |
| 15 using content::BrowserThread; | 15 using content::BrowserThread; |
| 16 | 16 |
| 17 namespace google_apis { | 17 namespace google_apis { |
| 18 | 18 |
| 19 FakeDriveService::FakeDriveService() | 19 FakeDriveService::FakeDriveService() |
| 20 : resource_id_count_(0) { | 20 : resource_id_count_(0), |
| 21 offline_(false) { |
| 21 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 22 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 22 } | 23 } |
| 23 | 24 |
| 24 FakeDriveService::~FakeDriveService() { | 25 FakeDriveService::~FakeDriveService() { |
| 25 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 26 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 26 } | 27 } |
| 27 | 28 |
| 28 bool FakeDriveService::LoadResourceListForWapi( | 29 bool FakeDriveService::LoadResourceListForWapi( |
| 29 const std::string& relative_path) { | 30 const std::string& relative_path) { |
| 30 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 31 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 void FakeDriveService::GetResourceList( | 102 void FakeDriveService::GetResourceList( |
| 102 const GURL& feed_url, | 103 const GURL& feed_url, |
| 103 int64 start_changestamp, | 104 int64 start_changestamp, |
| 104 const std::string& search_query, | 105 const std::string& search_query, |
| 105 bool shared_with_me, | 106 bool shared_with_me, |
| 106 const std::string& directory_resource_id, | 107 const std::string& directory_resource_id, |
| 107 const GetResourceListCallback& callback) { | 108 const GetResourceListCallback& callback) { |
| 108 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 109 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 109 DCHECK(!callback.is_null()); | 110 DCHECK(!callback.is_null()); |
| 110 | 111 |
| 112 if (offline_) { |
| 113 scoped_ptr<ResourceList> null; |
| 114 MessageLoop::current()->PostTask( |
| 115 FROM_HERE, |
| 116 base::Bind(callback, |
| 117 GDATA_NO_CONNECTION, |
| 118 base::Passed(&null))); |
| 119 return; |
| 120 } |
| 121 |
| 111 scoped_ptr<ResourceList> resource_list = | 122 scoped_ptr<ResourceList> resource_list = |
| 112 ResourceList::CreateFrom(*resource_list_value_); | 123 ResourceList::CreateFrom(*resource_list_value_); |
| 113 MessageLoop::current()->PostTask( | 124 MessageLoop::current()->PostTask( |
| 114 FROM_HERE, | 125 FROM_HERE, |
| 115 base::Bind(callback, | 126 base::Bind(callback, |
| 116 HTTP_SUCCESS, | 127 HTTP_SUCCESS, |
| 117 base::Passed(&resource_list))); | 128 base::Passed(&resource_list))); |
| 118 } | 129 } |
| 119 | 130 |
| 120 void FakeDriveService::GetResourceEntry( | 131 void FakeDriveService::GetResourceEntry( |
| 121 const std::string& resource_id, | 132 const std::string& resource_id, |
| 122 const GetResourceEntryCallback& callback) { | 133 const GetResourceEntryCallback& callback) { |
| 123 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 134 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 124 DCHECK(!callback.is_null()); | 135 DCHECK(!callback.is_null()); |
| 125 | 136 |
| 137 if (offline_) { |
| 138 scoped_ptr<ResourceEntry> null; |
| 139 MessageLoop::current()->PostTask( |
| 140 FROM_HERE, |
| 141 base::Bind(callback, |
| 142 GDATA_NO_CONNECTION, |
| 143 base::Passed(&null))); |
| 144 return; |
| 145 } |
| 146 |
| 126 base::DictionaryValue* entry = FindEntryByResourceId(resource_id); | 147 base::DictionaryValue* entry = FindEntryByResourceId(resource_id); |
| 127 if (entry) { | 148 if (entry) { |
| 128 scoped_ptr<ResourceEntry> resource_entry = | 149 scoped_ptr<ResourceEntry> resource_entry = |
| 129 ResourceEntry::CreateFrom(*entry); | 150 ResourceEntry::CreateFrom(*entry); |
| 130 MessageLoop::current()->PostTask( | 151 MessageLoop::current()->PostTask( |
| 131 FROM_HERE, | 152 FROM_HERE, |
| 132 base::Bind(callback, HTTP_SUCCESS, base::Passed(&resource_entry))); | 153 base::Bind(callback, HTTP_SUCCESS, base::Passed(&resource_entry))); |
| 133 return; | 154 return; |
| 134 } | 155 } |
| 135 | 156 |
| 136 scoped_ptr<ResourceEntry> null; | 157 scoped_ptr<ResourceEntry> null; |
| 137 MessageLoop::current()->PostTask( | 158 MessageLoop::current()->PostTask( |
| 138 FROM_HERE, | 159 FROM_HERE, |
| 139 base::Bind(callback, HTTP_NOT_FOUND, base::Passed(&null))); | 160 base::Bind(callback, HTTP_NOT_FOUND, base::Passed(&null))); |
| 140 } | 161 } |
| 141 | 162 |
| 142 void FakeDriveService::GetAccountMetadata( | 163 void FakeDriveService::GetAccountMetadata( |
| 143 const GetAccountMetadataCallback& callback) { | 164 const GetAccountMetadataCallback& callback) { |
| 144 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 165 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 145 DCHECK(!callback.is_null()); | 166 DCHECK(!callback.is_null()); |
| 146 | 167 |
| 168 if (offline_) { |
| 169 scoped_ptr<AccountMetadataFeed> null; |
| 170 MessageLoop::current()->PostTask( |
| 171 FROM_HERE, |
| 172 base::Bind(callback, |
| 173 GDATA_NO_CONNECTION, |
| 174 base::Passed(&null))); |
| 175 return; |
| 176 } |
| 147 scoped_ptr<AccountMetadataFeed> account_metadata = | 177 scoped_ptr<AccountMetadataFeed> account_metadata = |
| 148 AccountMetadataFeed::CreateFrom(*account_metadata_value_); | 178 AccountMetadataFeed::CreateFrom(*account_metadata_value_); |
| 149 MessageLoop::current()->PostTask( | 179 MessageLoop::current()->PostTask( |
| 150 FROM_HERE, | 180 FROM_HERE, |
| 151 base::Bind(callback, | 181 base::Bind(callback, |
| 152 HTTP_SUCCESS, | 182 HTTP_SUCCESS, |
| 153 base::Passed(&account_metadata))); | 183 base::Passed(&account_metadata))); |
| 154 } | 184 } |
| 155 | 185 |
| 156 void FakeDriveService::GetApplicationInfo( | 186 void FakeDriveService::GetApplicationInfo( |
| 157 const GetDataCallback& callback) { | 187 const GetDataCallback& callback) { |
| 158 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 188 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 159 DCHECK(!callback.is_null()); | 189 DCHECK(!callback.is_null()); |
| 160 | 190 |
| 191 if (offline_) { |
| 192 scoped_ptr<base::Value> null; |
| 193 MessageLoop::current()->PostTask( |
| 194 FROM_HERE, |
| 195 base::Bind(callback, |
| 196 GDATA_NO_CONNECTION, |
| 197 base::Passed(&null))); |
| 198 return; |
| 199 } |
| 200 |
| 161 scoped_ptr<base::Value> copied_app_info_value( | 201 scoped_ptr<base::Value> copied_app_info_value( |
| 162 app_info_value_->DeepCopy()); | 202 app_info_value_->DeepCopy()); |
| 163 MessageLoop::current()->PostTask( | 203 MessageLoop::current()->PostTask( |
| 164 FROM_HERE, | 204 FROM_HERE, |
| 165 base::Bind(callback, | 205 base::Bind(callback, |
| 166 HTTP_SUCCESS, | 206 HTTP_SUCCESS, |
| 167 base::Passed(&copied_app_info_value))); | 207 base::Passed(&copied_app_info_value))); |
| 168 | 208 |
| 169 } | 209 } |
| 170 | 210 |
| 171 void FakeDriveService::DeleteResource( | 211 void FakeDriveService::DeleteResource( |
| 172 const GURL& edit_url, | 212 const GURL& edit_url, |
| 173 const EntryActionCallback& callback) { | 213 const EntryActionCallback& callback) { |
| 174 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 214 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 175 DCHECK(!callback.is_null()); | 215 DCHECK(!callback.is_null()); |
| 176 | 216 |
| 217 if (offline_) { |
| 218 MessageLoop::current()->PostTask( |
| 219 FROM_HERE, base::Bind(callback, GDATA_NO_CONNECTION)); |
| 220 return; |
| 221 } |
| 222 |
| 177 base::DictionaryValue* resource_list_dict = NULL; | 223 base::DictionaryValue* resource_list_dict = NULL; |
| 178 base::ListValue* entries = NULL; | 224 base::ListValue* entries = NULL; |
| 179 // Go through entries and remove the one that matches |edit_url|. | 225 // Go through entries and remove the one that matches |edit_url|. |
| 180 if (resource_list_value_->GetAsDictionary(&resource_list_dict) && | 226 if (resource_list_value_->GetAsDictionary(&resource_list_dict) && |
| 181 resource_list_dict->GetList("entry", &entries)) { | 227 resource_list_dict->GetList("entry", &entries)) { |
| 182 for (size_t i = 0; i < entries->GetSize(); ++i) { | 228 for (size_t i = 0; i < entries->GetSize(); ++i) { |
| 183 base::DictionaryValue* entry = NULL; | 229 base::DictionaryValue* entry = NULL; |
| 184 base::ListValue* links = NULL; | 230 base::ListValue* links = NULL; |
| 185 if (entries->GetDictionary(i, &entry) && | 231 if (entries->GetDictionary(i, &entry) && |
| 186 entry->GetList("link", &links)) { | 232 entry->GetList("link", &links)) { |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 219 | 265 |
| 220 void FakeDriveService::DownloadFile( | 266 void FakeDriveService::DownloadFile( |
| 221 const FilePath& virtual_path, | 267 const FilePath& virtual_path, |
| 222 const FilePath& local_cache_path, | 268 const FilePath& local_cache_path, |
| 223 const GURL& content_url, | 269 const GURL& content_url, |
| 224 const DownloadActionCallback& download_action_callback, | 270 const DownloadActionCallback& download_action_callback, |
| 225 const GetContentCallback& get_content_callback) { | 271 const GetContentCallback& get_content_callback) { |
| 226 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 272 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 227 DCHECK(!download_action_callback.is_null()); | 273 DCHECK(!download_action_callback.is_null()); |
| 228 | 274 |
| 275 if (offline_) { |
| 276 MessageLoop::current()->PostTask( |
| 277 FROM_HERE, |
| 278 base::Bind(download_action_callback, |
| 279 GDATA_NO_CONNECTION, |
| 280 FilePath())); |
| 281 return; |
| 282 } |
| 283 |
| 229 base::DictionaryValue* entry = FindEntryByContentUrl(content_url); | 284 base::DictionaryValue* entry = FindEntryByContentUrl(content_url); |
| 230 if (!entry) { | 285 if (!entry) { |
| 231 base::MessageLoopProxy::current()->PostTask( | 286 base::MessageLoopProxy::current()->PostTask( |
| 232 FROM_HERE, | 287 FROM_HERE, |
| 233 base::Bind(download_action_callback, HTTP_NOT_FOUND, FilePath())); | 288 base::Bind(download_action_callback, HTTP_NOT_FOUND, FilePath())); |
| 234 return; | 289 return; |
| 235 } | 290 } |
| 236 | 291 |
| 237 // Write the content URL as the content of the file. | 292 // Write the content URL as the content of the file. |
| 238 if (static_cast<int>(content_url.spec().size()) != | 293 if (static_cast<int>(content_url.spec().size()) != |
| (...skipping 11 matching lines...) Expand all Loading... |
| 250 base::Bind(download_action_callback, HTTP_SUCCESS, local_cache_path)); | 305 base::Bind(download_action_callback, HTTP_SUCCESS, local_cache_path)); |
| 251 } | 306 } |
| 252 | 307 |
| 253 void FakeDriveService::CopyHostedDocument( | 308 void FakeDriveService::CopyHostedDocument( |
| 254 const std::string& resource_id, | 309 const std::string& resource_id, |
| 255 const FilePath::StringType& new_name, | 310 const FilePath::StringType& new_name, |
| 256 const GetResourceEntryCallback& callback) { | 311 const GetResourceEntryCallback& callback) { |
| 257 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 312 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 258 DCHECK(!callback.is_null()); | 313 DCHECK(!callback.is_null()); |
| 259 | 314 |
| 315 if (offline_) { |
| 316 scoped_ptr<ResourceEntry> null; |
| 317 MessageLoop::current()->PostTask( |
| 318 FROM_HERE, |
| 319 base::Bind(callback, |
| 320 GDATA_NO_CONNECTION, |
| 321 base::Passed(&null))); |
| 322 return; |
| 323 } |
| 324 |
| 260 base::DictionaryValue* resource_list_dict = NULL; | 325 base::DictionaryValue* resource_list_dict = NULL; |
| 261 base::ListValue* entries = NULL; | 326 base::ListValue* entries = NULL; |
| 262 // Go through entries and copy the one that matches |resource_id|. | 327 // Go through entries and copy the one that matches |resource_id|. |
| 263 if (resource_list_value_->GetAsDictionary(&resource_list_dict) && | 328 if (resource_list_value_->GetAsDictionary(&resource_list_dict) && |
| 264 resource_list_dict->GetList("entry", &entries)) { | 329 resource_list_dict->GetList("entry", &entries)) { |
| 265 for (size_t i = 0; i < entries->GetSize(); ++i) { | 330 for (size_t i = 0; i < entries->GetSize(); ++i) { |
| 266 base::DictionaryValue* entry = NULL; | 331 base::DictionaryValue* entry = NULL; |
| 267 base::DictionaryValue* resource_id_dict = NULL; | 332 base::DictionaryValue* resource_id_dict = NULL; |
| 268 base::ListValue* categories = NULL; | 333 base::ListValue* categories = NULL; |
| 269 std::string current_resource_id; | 334 std::string current_resource_id; |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 base::Bind(callback, HTTP_NOT_FOUND, base::Passed(&null))); | 378 base::Bind(callback, HTTP_NOT_FOUND, base::Passed(&null))); |
| 314 } | 379 } |
| 315 | 380 |
| 316 void FakeDriveService::RenameResource( | 381 void FakeDriveService::RenameResource( |
| 317 const GURL& edit_url, | 382 const GURL& edit_url, |
| 318 const FilePath::StringType& new_name, | 383 const FilePath::StringType& new_name, |
| 319 const EntryActionCallback& callback) { | 384 const EntryActionCallback& callback) { |
| 320 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 385 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 321 DCHECK(!callback.is_null()); | 386 DCHECK(!callback.is_null()); |
| 322 | 387 |
| 388 if (offline_) { |
| 389 MessageLoop::current()->PostTask( |
| 390 FROM_HERE, base::Bind(callback, GDATA_NO_CONNECTION)); |
| 391 return; |
| 392 } |
| 393 |
| 323 base::DictionaryValue* entry = FindEntryByEditUrl(edit_url); | 394 base::DictionaryValue* entry = FindEntryByEditUrl(edit_url); |
| 324 if (entry) { | 395 if (entry) { |
| 325 entry->SetString("title.$t", | 396 entry->SetString("title.$t", |
| 326 FilePath(new_name).AsUTF8Unsafe()); | 397 FilePath(new_name).AsUTF8Unsafe()); |
| 327 MessageLoop::current()->PostTask( | 398 MessageLoop::current()->PostTask( |
| 328 FROM_HERE, base::Bind(callback, HTTP_SUCCESS)); | 399 FROM_HERE, base::Bind(callback, HTTP_SUCCESS)); |
| 329 return; | 400 return; |
| 330 } | 401 } |
| 331 | 402 |
| 332 MessageLoop::current()->PostTask( | 403 MessageLoop::current()->PostTask( |
| 333 FROM_HERE, base::Bind(callback, HTTP_NOT_FOUND)); | 404 FROM_HERE, base::Bind(callback, HTTP_NOT_FOUND)); |
| 334 } | 405 } |
| 335 | 406 |
| 336 void FakeDriveService::AddResourceToDirectory( | 407 void FakeDriveService::AddResourceToDirectory( |
| 337 const GURL& parent_content_url, | 408 const GURL& parent_content_url, |
| 338 const GURL& edit_url, | 409 const GURL& edit_url, |
| 339 const EntryActionCallback& callback) { | 410 const EntryActionCallback& callback) { |
| 340 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 411 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 341 DCHECK(!callback.is_null()); | 412 DCHECK(!callback.is_null()); |
| 342 | 413 |
| 414 if (offline_) { |
| 415 MessageLoop::current()->PostTask( |
| 416 FROM_HERE, base::Bind(callback, GDATA_NO_CONNECTION)); |
| 417 return; |
| 418 } |
| 419 |
| 343 base::DictionaryValue* entry = FindEntryByEditUrl(edit_url); | 420 base::DictionaryValue* entry = FindEntryByEditUrl(edit_url); |
| 344 if (entry) { | 421 if (entry) { |
| 345 base::ListValue* links = NULL; | 422 base::ListValue* links = NULL; |
| 346 if (entry->GetList("link", &links)) { | 423 if (entry->GetList("link", &links)) { |
| 347 bool parent_link_found = false; | 424 bool parent_link_found = false; |
| 348 for (size_t i = 0; i < links->GetSize(); ++i) { | 425 for (size_t i = 0; i < links->GetSize(); ++i) { |
| 349 base::DictionaryValue* link = NULL; | 426 base::DictionaryValue* link = NULL; |
| 350 std::string rel; | 427 std::string rel; |
| 351 if (links->GetDictionary(i, &link) && | 428 if (links->GetDictionary(i, &link) && |
| 352 link->GetString("rel", &rel) && | 429 link->GetString("rel", &rel) && |
| (...skipping 21 matching lines...) Expand all Loading... |
| 374 FROM_HERE, base::Bind(callback, HTTP_NOT_FOUND)); | 451 FROM_HERE, base::Bind(callback, HTTP_NOT_FOUND)); |
| 375 } | 452 } |
| 376 | 453 |
| 377 void FakeDriveService::RemoveResourceFromDirectory( | 454 void FakeDriveService::RemoveResourceFromDirectory( |
| 378 const GURL& parent_content_url, | 455 const GURL& parent_content_url, |
| 379 const std::string& resource_id, | 456 const std::string& resource_id, |
| 380 const EntryActionCallback& callback) { | 457 const EntryActionCallback& callback) { |
| 381 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 458 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 382 DCHECK(!callback.is_null()); | 459 DCHECK(!callback.is_null()); |
| 383 | 460 |
| 461 if (offline_) { |
| 462 MessageLoop::current()->PostTask( |
| 463 FROM_HERE, base::Bind(callback, GDATA_NO_CONNECTION)); |
| 464 return; |
| 465 } |
| 466 |
| 384 base::DictionaryValue* entry = FindEntryByResourceId(resource_id); | 467 base::DictionaryValue* entry = FindEntryByResourceId(resource_id); |
| 385 if (entry) { | 468 if (entry) { |
| 386 base::ListValue* links = NULL; | 469 base::ListValue* links = NULL; |
| 387 if (entry->GetList("link", &links)) { | 470 if (entry->GetList("link", &links)) { |
| 388 for (size_t i = 0; i < links->GetSize(); ++i) { | 471 for (size_t i = 0; i < links->GetSize(); ++i) { |
| 389 base::DictionaryValue* link = NULL; | 472 base::DictionaryValue* link = NULL; |
| 390 std::string rel; | 473 std::string rel; |
| 391 std::string href; | 474 std::string href; |
| 392 if (links->GetDictionary(i, &link) && | 475 if (links->GetDictionary(i, &link) && |
| 393 link->GetString("rel", &rel) && | 476 link->GetString("rel", &rel) && |
| (...skipping 13 matching lines...) Expand all Loading... |
| 407 FROM_HERE, base::Bind(callback, HTTP_NOT_FOUND)); | 490 FROM_HERE, base::Bind(callback, HTTP_NOT_FOUND)); |
| 408 } | 491 } |
| 409 | 492 |
| 410 void FakeDriveService::AddNewDirectory( | 493 void FakeDriveService::AddNewDirectory( |
| 411 const GURL& parent_content_url, | 494 const GURL& parent_content_url, |
| 412 const FilePath::StringType& directory_name, | 495 const FilePath::StringType& directory_name, |
| 413 const GetResourceEntryCallback& callback) { | 496 const GetResourceEntryCallback& callback) { |
| 414 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 497 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 415 DCHECK(!callback.is_null()); | 498 DCHECK(!callback.is_null()); |
| 416 | 499 |
| 500 if (offline_) { |
| 501 scoped_ptr<ResourceEntry> null; |
| 502 MessageLoop::current()->PostTask( |
| 503 FROM_HERE, |
| 504 base::Bind(callback, |
| 505 GDATA_NO_CONNECTION, |
| 506 base::Passed(&null))); |
| 507 return; |
| 508 } |
| 509 |
| 417 // If the parent content URL is not empty, the parent should exist. | 510 // If the parent content URL is not empty, the parent should exist. |
| 418 if (!parent_content_url.is_empty()) { | 511 if (!parent_content_url.is_empty()) { |
| 419 base::DictionaryValue* parent_entry = | 512 base::DictionaryValue* parent_entry = |
| 420 FindEntryByContentUrl(parent_content_url); | 513 FindEntryByContentUrl(parent_content_url); |
| 421 if (!parent_entry) { | 514 if (!parent_entry) { |
| 422 scoped_ptr<ResourceEntry> null; | 515 scoped_ptr<ResourceEntry> null; |
| 423 MessageLoop::current()->PostTask( | 516 MessageLoop::current()->PostTask( |
| 424 FROM_HERE, | 517 FROM_HERE, |
| 425 base::Bind(callback, HTTP_NOT_FOUND, base::Passed(&null))); | 518 base::Bind(callback, HTTP_NOT_FOUND, base::Passed(&null))); |
| 426 return; | 519 return; |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 583 content_url == GURL(current_content_url)) { | 676 content_url == GURL(current_content_url)) { |
| 584 return entry; | 677 return entry; |
| 585 } | 678 } |
| 586 } | 679 } |
| 587 } | 680 } |
| 588 | 681 |
| 589 return NULL; | 682 return NULL; |
| 590 } | 683 } |
| 591 | 684 |
| 592 std::string FakeDriveService::GetNewResourceId() { | 685 std::string FakeDriveService::GetNewResourceId() { |
| 686 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 687 |
| 593 ++resource_id_count_; | 688 ++resource_id_count_; |
| 594 return base::StringPrintf("resource_id_%d", resource_id_count_); | 689 return base::StringPrintf("resource_id_%d", resource_id_count_); |
| 595 } | 690 } |
| 596 | 691 |
| 597 } // namespace google_apis | 692 } // namespace google_apis |
| OLD | NEW |