| 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/download/download_history.h" | 5 #include "chrome/browser/download/download_history.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 212 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| 213 CHECK(infos.get()); | 213 CHECK(infos.get()); |
| 214 EXPECT_CALL(manager(), AddObserver(_)).WillOnce(WithArg<0>(Invoke( | 214 EXPECT_CALL(manager(), AddObserver(_)).WillOnce(WithArg<0>(Invoke( |
| 215 this, &DownloadHistoryTest::SetManagerObserver))); | 215 this, &DownloadHistoryTest::SetManagerObserver))); |
| 216 EXPECT_CALL(manager(), RemoveObserver(_)); | 216 EXPECT_CALL(manager(), RemoveObserver(_)); |
| 217 download_created_index_ = 0; | 217 download_created_index_ = 0; |
| 218 for (size_t index = 0; index < infos->size(); ++index) { | 218 for (size_t index = 0; index < infos->size(); ++index) { |
| 219 const history::DownloadRow& row = infos->at(index); | 219 const history::DownloadRow& row = infos->at(index); |
| 220 content::MockDownloadManager::CreateDownloadItemAdapter adapter( | 220 content::MockDownloadManager::CreateDownloadItemAdapter adapter( |
| 221 row.guid, history::ToContentDownloadId(row.id), row.current_path, | 221 row.guid, history::ToContentDownloadId(row.id), row.current_path, |
| 222 row.target_path, row.url_chain, row.referrer_url, row.tab_url, | 222 row.target_path, row.url_chain, row.referrer_url, |
| 223 row.tab_referrer_url, row.mime_type, row.original_mime_type, | 223 row.site_instance_url, row.tab_url, row.tab_referrer_url, |
| 224 row.start_time, row.end_time, row.etag, row.last_modified, | 224 row.mime_type, row.original_mime_type, row.start_time, row.end_time, |
| 225 row.received_bytes, row.total_bytes, std::string(), | 225 row.etag, row.last_modified, row.received_bytes, row.total_bytes, |
| 226 history::ToContentDownloadState(row.state), | 226 std::string(), history::ToContentDownloadState(row.state), |
| 227 history::ToContentDownloadDangerType(row.danger_type), | 227 history::ToContentDownloadDangerType(row.danger_type), |
| 228 history::ToContentDownloadInterruptReason(row.interrupt_reason), | 228 history::ToContentDownloadInterruptReason(row.interrupt_reason), |
| 229 row.opened); | 229 row.opened); |
| 230 EXPECT_CALL(manager(), MockCreateDownloadItem(adapter)) | 230 EXPECT_CALL(manager(), MockCreateDownloadItem(adapter)) |
| 231 .WillOnce(DoAll( | 231 .WillOnce(DoAll( |
| 232 InvokeWithoutArgs( | 232 InvokeWithoutArgs( |
| 233 this, &DownloadHistoryTest::CallOnDownloadCreatedInOrder), | 233 this, &DownloadHistoryTest::CallOnDownloadCreatedInOrder), |
| 234 Return(&item(index)))); | 234 Return(&item(index)))); |
| 235 } | 235 } |
| 236 EXPECT_CALL(manager(), CheckForHistoryFilesRemoval()); | 236 EXPECT_CALL(manager(), CheckForHistoryFilesRemoval()); |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 void InitBasicItem(const base::FilePath::CharType* path, | 321 void InitBasicItem(const base::FilePath::CharType* path, |
| 322 const char* url_string, | 322 const char* url_string, |
| 323 const char* referrer_string, | 323 const char* referrer_string, |
| 324 history::DownloadRow* info) { | 324 history::DownloadRow* info) { |
| 325 GURL url(url_string); | 325 GURL url(url_string); |
| 326 GURL referrer(referrer_string); | 326 GURL referrer(referrer_string); |
| 327 std::vector<GURL> url_chain; | 327 std::vector<GURL> url_chain; |
| 328 url_chain.push_back(url); | 328 url_chain.push_back(url); |
| 329 InitItem(base::GenerateGUID(), static_cast<uint32_t>(items_.size() + 1), | 329 InitItem(base::GenerateGUID(), static_cast<uint32_t>(items_.size() + 1), |
| 330 base::FilePath(path), base::FilePath(path), url_chain, referrer, | 330 base::FilePath(path), base::FilePath(path), url_chain, referrer, |
| 331 GURL("http://example.com/tab-url"), | 331 GURL("http://example.com"), GURL("http://example.com/tab-url"), |
| 332 GURL("http://example.com/tab-referrer-url"), | 332 GURL("http://example.com/tab-referrer-url"), |
| 333 "application/octet-stream", "application/octet-stream", | 333 "application/octet-stream", "application/octet-stream", |
| 334 (base::Time::Now() - base::TimeDelta::FromMinutes(10)), | 334 (base::Time::Now() - base::TimeDelta::FromMinutes(10)), |
| 335 (base::Time::Now() - base::TimeDelta::FromMinutes(1)), "Etag", | 335 (base::Time::Now() - base::TimeDelta::FromMinutes(1)), "Etag", |
| 336 "abc", 100, 100, content::DownloadItem::COMPLETE, | 336 "abc", 100, 100, content::DownloadItem::COMPLETE, |
| 337 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 337 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 338 content::DOWNLOAD_INTERRUPT_REASON_NONE, false, std::string(), | 338 content::DOWNLOAD_INTERRUPT_REASON_NONE, false, std::string(), |
| 339 std::string(), info); | 339 std::string(), info); |
| 340 } | 340 } |
| 341 | 341 |
| 342 void InitItem(const std::string& guid, | 342 void InitItem(const std::string& guid, |
| 343 uint32_t id, | 343 uint32_t id, |
| 344 const base::FilePath& current_path, | 344 const base::FilePath& current_path, |
| 345 const base::FilePath& target_path, | 345 const base::FilePath& target_path, |
| 346 const std::vector<GURL>& url_chain, | 346 const std::vector<GURL>& url_chain, |
| 347 const GURL& referrer, | 347 const GURL& referrer, |
| 348 const GURL& site_instance_url, |
| 348 const GURL& tab_url, | 349 const GURL& tab_url, |
| 349 const GURL& tab_referrer_url, | 350 const GURL& tab_referrer_url, |
| 350 const std::string& mime_type, | 351 const std::string& mime_type, |
| 351 const std::string& original_mime_type, | 352 const std::string& original_mime_type, |
| 352 const base::Time& start_time, | 353 const base::Time& start_time, |
| 353 const base::Time& end_time, | 354 const base::Time& end_time, |
| 354 const std::string& etag, | 355 const std::string& etag, |
| 355 const std::string& last_modified, | 356 const std::string& last_modified, |
| 356 int64_t received_bytes, | 357 int64_t received_bytes, |
| 357 int64_t total_bytes, | 358 int64_t total_bytes, |
| 358 content::DownloadItem::DownloadState state, | 359 content::DownloadItem::DownloadState state, |
| 359 content::DownloadDangerType danger_type, | 360 content::DownloadDangerType danger_type, |
| 360 content::DownloadInterruptReason interrupt_reason, | 361 content::DownloadInterruptReason interrupt_reason, |
| 361 bool opened, | 362 bool opened, |
| 362 const std::string& by_extension_id, | 363 const std::string& by_extension_id, |
| 363 const std::string& by_extension_name, | 364 const std::string& by_extension_name, |
| 364 history::DownloadRow* info) { | 365 history::DownloadRow* info) { |
| 365 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 366 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| 366 | 367 |
| 367 size_t index = items_.size(); | 368 size_t index = items_.size(); |
| 368 StrictMockDownloadItem* mock_item = new StrictMockDownloadItem(); | 369 StrictMockDownloadItem* mock_item = new StrictMockDownloadItem(); |
| 369 items_.push_back(mock_item); | 370 items_.push_back(mock_item); |
| 370 | 371 |
| 371 info->current_path = current_path; | 372 info->current_path = current_path; |
| 372 info->target_path = target_path; | 373 info->target_path = target_path; |
| 373 info->url_chain = url_chain; | 374 info->url_chain = url_chain; |
| 374 info->referrer_url = referrer; | 375 info->referrer_url = referrer; |
| 376 info->site_instance_url = site_instance_url; |
| 375 info->tab_url = tab_url; | 377 info->tab_url = tab_url; |
| 376 info->tab_referrer_url = tab_referrer_url; | 378 info->tab_referrer_url = tab_referrer_url; |
| 377 info->mime_type = mime_type; | 379 info->mime_type = mime_type; |
| 378 info->original_mime_type = original_mime_type; | 380 info->original_mime_type = original_mime_type; |
| 379 info->start_time = start_time; | 381 info->start_time = start_time; |
| 380 info->end_time = end_time; | 382 info->end_time = end_time; |
| 381 info->etag = etag; | 383 info->etag = etag; |
| 382 info->last_modified = last_modified; | 384 info->last_modified = last_modified; |
| 383 info->received_bytes = received_bytes; | 385 info->received_bytes = received_bytes; |
| 384 info->total_bytes = total_bytes; | 386 info->total_bytes = total_bytes; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 401 DCHECK_LE(1u, url_chain.size()); | 403 DCHECK_LE(1u, url_chain.size()); |
| 402 EXPECT_CALL(item(index), GetURL()) | 404 EXPECT_CALL(item(index), GetURL()) |
| 403 .WillRepeatedly(ReturnRefOfCopy(url_chain[0])); | 405 .WillRepeatedly(ReturnRefOfCopy(url_chain[0])); |
| 404 EXPECT_CALL(item(index), GetUrlChain()) | 406 EXPECT_CALL(item(index), GetUrlChain()) |
| 405 .WillRepeatedly(ReturnRefOfCopy(url_chain)); | 407 .WillRepeatedly(ReturnRefOfCopy(url_chain)); |
| 406 EXPECT_CALL(item(index), GetMimeType()).WillRepeatedly(Return(mime_type)); | 408 EXPECT_CALL(item(index), GetMimeType()).WillRepeatedly(Return(mime_type)); |
| 407 EXPECT_CALL(item(index), GetOriginalMimeType()).WillRepeatedly(Return( | 409 EXPECT_CALL(item(index), GetOriginalMimeType()).WillRepeatedly(Return( |
| 408 original_mime_type)); | 410 original_mime_type)); |
| 409 EXPECT_CALL(item(index), GetReferrerUrl()) | 411 EXPECT_CALL(item(index), GetReferrerUrl()) |
| 410 .WillRepeatedly(ReturnRefOfCopy(referrer)); | 412 .WillRepeatedly(ReturnRefOfCopy(referrer)); |
| 413 EXPECT_CALL(item(index), GetSiteInstanceUrl()) |
| 414 .WillRepeatedly(ReturnRefOfCopy(site_instance_url)); |
| 411 EXPECT_CALL(item(index), GetTabUrl()) | 415 EXPECT_CALL(item(index), GetTabUrl()) |
| 412 .WillRepeatedly(ReturnRefOfCopy(tab_url)); | 416 .WillRepeatedly(ReturnRefOfCopy(tab_url)); |
| 413 EXPECT_CALL(item(index), GetTabReferrerUrl()) | 417 EXPECT_CALL(item(index), GetTabReferrerUrl()) |
| 414 .WillRepeatedly(ReturnRefOfCopy(tab_referrer_url)); | 418 .WillRepeatedly(ReturnRefOfCopy(tab_referrer_url)); |
| 415 EXPECT_CALL(item(index), GetStartTime()).WillRepeatedly(Return(start_time)); | 419 EXPECT_CALL(item(index), GetStartTime()).WillRepeatedly(Return(start_time)); |
| 416 EXPECT_CALL(item(index), GetEndTime()).WillRepeatedly(Return(end_time)); | 420 EXPECT_CALL(item(index), GetEndTime()).WillRepeatedly(Return(end_time)); |
| 417 EXPECT_CALL(item(index), GetETag()).WillRepeatedly(ReturnRefOfCopy(etag)); | 421 EXPECT_CALL(item(index), GetETag()).WillRepeatedly(ReturnRefOfCopy(etag)); |
| 418 EXPECT_CALL(item(index), GetLastModifiedTime()) | 422 EXPECT_CALL(item(index), GetLastModifiedTime()) |
| 419 .WillRepeatedly(ReturnRefOfCopy(last_modified)); | 423 .WillRepeatedly(ReturnRefOfCopy(last_modified)); |
| 420 EXPECT_CALL(item(index), GetReceivedBytes()) | 424 EXPECT_CALL(item(index), GetReceivedBytes()) |
| (...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 891 FinishCreateDownload(); | 895 FinishCreateDownload(); |
| 892 EXPECT_TRUE(DownloadHistory::IsPersisted(&item(0))); | 896 EXPECT_TRUE(DownloadHistory::IsPersisted(&item(0))); |
| 893 | 897 |
| 894 // ItemAdded should call OnDownloadUpdated, which should detect that the item | 898 // ItemAdded should call OnDownloadUpdated, which should detect that the item |
| 895 // changed while it was being added and call UpdateDownload immediately. | 899 // changed while it was being added and call UpdateDownload immediately. |
| 896 info.opened = true; | 900 info.opened = true; |
| 897 ExpectDownloadUpdated(info); | 901 ExpectDownloadUpdated(info); |
| 898 } | 902 } |
| 899 | 903 |
| 900 } // anonymous namespace | 904 } // anonymous namespace |
| OLD | NEW |