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

Side by Side Diff: content/browser/download/download_manager_impl_unittest.cc

Issue 21355004: [Downloads] Move client guid for AV scanning of downloaded files to chrome/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix test Created 7 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 <set> 5 #include <set>
6 #include <string> 6 #include <string>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/files/scoped_temp_dir.h" 9 #include "base/files/scoped_temp_dir.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 MOCK_METHOD1(StealDangerousDownload, void(const AcquireFileCallback&)); 102 MOCK_METHOD1(StealDangerousDownload, void(const AcquireFileCallback&));
103 MOCK_METHOD3(UpdateProgress, void(int64, int64, const std::string&)); 103 MOCK_METHOD3(UpdateProgress, void(int64, int64, const std::string&));
104 MOCK_METHOD1(Cancel, void(bool)); 104 MOCK_METHOD1(Cancel, void(bool));
105 MOCK_METHOD0(MarkAsComplete, void()); 105 MOCK_METHOD0(MarkAsComplete, void());
106 MOCK_METHOD1(OnAllDataSaved, void(const std::string&)); 106 MOCK_METHOD1(OnAllDataSaved, void(const std::string&));
107 MOCK_METHOD0(OnDownloadedFileRemoved, void()); 107 MOCK_METHOD0(OnDownloadedFileRemoved, void());
108 virtual void Start( 108 virtual void Start(
109 scoped_ptr<DownloadFile> download_file, 109 scoped_ptr<DownloadFile> download_file,
110 scoped_ptr<DownloadRequestHandleInterface> req_handle) OVERRIDE { 110 scoped_ptr<DownloadRequestHandleInterface> req_handle) OVERRIDE {
111 MockStart(download_file.get(), req_handle.get()); 111 MockStart(download_file.get(), req_handle.get());
112 last_file_.swap(download_file);
112 } 113 }
113 114
114 MOCK_METHOD2(MockStart, void(DownloadFile*, DownloadRequestHandleInterface*)); 115 MOCK_METHOD2(MockStart, void(DownloadFile*, DownloadRequestHandleInterface*));
115 116
116 MOCK_METHOD0(Remove, void()); 117 MOCK_METHOD0(Remove, void());
117 MOCK_CONST_METHOD1(TimeRemaining, bool(base::TimeDelta*)); 118 MOCK_CONST_METHOD1(TimeRemaining, bool(base::TimeDelta*));
118 MOCK_CONST_METHOD0(CurrentSpeed, int64()); 119 MOCK_CONST_METHOD0(CurrentSpeed, int64());
119 MOCK_CONST_METHOD0(PercentComplete, int()); 120 MOCK_CONST_METHOD0(PercentComplete, int());
120 MOCK_CONST_METHOD0(AllDataSaved, bool()); 121 MOCK_CONST_METHOD0(AllDataSaved, bool());
121 MOCK_CONST_METHOD1(MatchesQuery, bool(const string16& query)); 122 MOCK_CONST_METHOD1(MatchesQuery, bool(const string16& query));
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 MOCK_CONST_METHOD0(GetLastReason, DownloadInterruptReason()); 164 MOCK_CONST_METHOD0(GetLastReason, DownloadInterruptReason());
164 MOCK_CONST_METHOD0(GetBrowserContext, BrowserContext*()); 165 MOCK_CONST_METHOD0(GetBrowserContext, BrowserContext*());
165 MOCK_CONST_METHOD0(GetWebContents, WebContents*()); 166 MOCK_CONST_METHOD0(GetWebContents, WebContents*());
166 MOCK_CONST_METHOD0(GetFileNameToReportUser, base::FilePath()); 167 MOCK_CONST_METHOD0(GetFileNameToReportUser, base::FilePath());
167 MOCK_METHOD1(SetDisplayName, void(const base::FilePath&)); 168 MOCK_METHOD1(SetDisplayName, void(const base::FilePath&));
168 MOCK_METHOD0(NotifyRemoved, void()); 169 MOCK_METHOD0(NotifyRemoved, void());
169 // May be called when vlog is on. 170 // May be called when vlog is on.
170 virtual std::string DebugString(bool verbose) const OVERRIDE { 171 virtual std::string DebugString(bool verbose) const OVERRIDE {
171 return std::string(); 172 return std::string();
172 } 173 }
174
175 private:
176 scoped_ptr<DownloadFile> last_file_;
173 }; 177 };
174 178
175 class MockDownloadManagerDelegate : public DownloadManagerDelegate { 179 class MockDownloadManagerDelegate : public DownloadManagerDelegate {
176 public: 180 public:
177 MockDownloadManagerDelegate(); 181 MockDownloadManagerDelegate();
178 virtual ~MockDownloadManagerDelegate(); 182 virtual ~MockDownloadManagerDelegate();
179 183
180 MOCK_METHOD0(Shutdown, void()); 184 MOCK_METHOD0(Shutdown, void());
181 MOCK_METHOD1(GetNextId, void(const DownloadIdCallback&)); 185 MOCK_METHOD1(GetNextId, void(const DownloadIdCallback&));
182 MOCK_METHOD2(DetermineDownloadTarget, 186 MOCK_METHOD2(DetermineDownloadTarget,
183 bool(DownloadItem* item, 187 bool(DownloadItem* item,
184 const DownloadTargetCallback&)); 188 const DownloadTargetCallback&));
185 MOCK_METHOD1(ShouldOpenFileBasedOnExtension, bool(const base::FilePath&)); 189 MOCK_METHOD1(ShouldOpenFileBasedOnExtension, bool(const base::FilePath&));
186 MOCK_METHOD2(ShouldCompleteDownload, 190 MOCK_METHOD2(ShouldCompleteDownload,
187 bool(DownloadItem*, const base::Closure&)); 191 bool(DownloadItem*, const base::Closure&));
188 MOCK_METHOD2(ShouldOpenDownload, 192 MOCK_METHOD2(ShouldOpenDownload,
189 bool(DownloadItem*, const DownloadOpenDelayedCallback&)); 193 bool(DownloadItem*, const DownloadOpenDelayedCallback&));
190 MOCK_METHOD0(GenerateFileHash, bool()); 194 MOCK_METHOD0(GenerateFileHash, bool());
191 MOCK_METHOD4(GetSaveDir, void(BrowserContext*, 195 MOCK_METHOD4(GetSaveDir, void(BrowserContext*,
192 base::FilePath*, base::FilePath*, bool*)); 196 base::FilePath*, base::FilePath*, bool*));
193 MOCK_METHOD5(ChooseSavePath, void( 197 MOCK_METHOD5(ChooseSavePath, void(
194 WebContents*, const base::FilePath&, const base::FilePath::StringType&, 198 WebContents*, const base::FilePath&, const base::FilePath::StringType&,
195 bool, const SavePackagePathPickedCallback&)); 199 bool, const SavePackagePathPickedCallback&));
200
201 virtual std::string ApplicationClientIdForFileScanning() const {
asanka 2013/08/08 21:16:01 Use a mock and set expectations so this is consist
Greg Billock 2013/08/08 23:55:46 Done.
202 return std::string("client-id");
203 }
196 }; 204 };
197 205
198 MockDownloadManagerDelegate::MockDownloadManagerDelegate() {} 206 MockDownloadManagerDelegate::MockDownloadManagerDelegate() {}
199 207
200 MockDownloadManagerDelegate::~MockDownloadManagerDelegate() {} 208 MockDownloadManagerDelegate::~MockDownloadManagerDelegate() {}
201 209
202 class MockDownloadItemFactory 210 class MockDownloadItemFactory
203 : public DownloadItemFactory, 211 : public DownloadItemFactory,
204 public base::SupportsWeakPtr<MockDownloadItemFactory> { 212 public base::SupportsWeakPtr<MockDownloadItemFactory> {
205 public: 213 public:
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 375
368 virtual DownloadFile* CreateFile( 376 virtual DownloadFile* CreateFile(
369 scoped_ptr<DownloadSaveInfo> save_info, 377 scoped_ptr<DownloadSaveInfo> save_info,
370 const base::FilePath& default_download_directory, 378 const base::FilePath& default_download_directory,
371 const GURL& url, 379 const GURL& url,
372 const GURL& referrer_url, 380 const GURL& referrer_url,
373 bool calculate_hash, 381 bool calculate_hash,
374 scoped_ptr<ByteStreamReader> stream, 382 scoped_ptr<ByteStreamReader> stream,
375 const net::BoundNetLog& bound_net_log, 383 const net::BoundNetLog& bound_net_log,
376 base::WeakPtr<DownloadDestinationObserver> observer) { 384 base::WeakPtr<DownloadDestinationObserver> observer) {
377 return MockCreateFile(*save_info.get(), default_download_directory, url, 385 MockCreateFile(*save_info.get(), default_download_directory, url,
378 referrer_url, calculate_hash, 386 referrer_url, calculate_hash,
379 stream.get(), bound_net_log, observer); 387 stream.get(), bound_net_log, observer);
388 mock_file_ = new MockDownloadFile();
389 return mock_file_;
380 } 390 }
391
392 MockDownloadFile* GetCreatedDownloadFile() {
393 return mock_file_;
394 }
395
396 private:
397 MockDownloadFile* mock_file_;
381 }; 398 };
382 399
383 class MockBrowserContext : public BrowserContext { 400 class MockBrowserContext : public BrowserContext {
384 public: 401 public:
385 MockBrowserContext() {} 402 MockBrowserContext() {}
386 ~MockBrowserContext() {} 403 ~MockBrowserContext() {}
387 404
388 MOCK_CONST_METHOD0(GetPath, base::FilePath()); 405 MOCK_CONST_METHOD0(GetPath, base::FilePath());
389 MOCK_CONST_METHOD0(IsOffTheRecord, bool()); 406 MOCK_CONST_METHOD0(IsOffTheRecord, bool());
390 MOCK_METHOD0(GetRequestContext, net::URLRequestContextGetter*()); 407 MOCK_METHOD0(GetRequestContext, net::URLRequestContextGetter*());
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 .WillOnce(Return()); 599 .WillOnce(Return());
583 EXPECT_CALL(GetMockDownloadManagerDelegate(), GetNextId(_)) 600 EXPECT_CALL(GetMockDownloadManagerDelegate(), GetNextId(_))
584 .WillOnce(RunCallback<0>(local_id)); 601 .WillOnce(RunCallback<0>(local_id));
585 602
586 // Doing nothing will set the default download directory to null. 603 // Doing nothing will set the default download directory to null.
587 EXPECT_CALL(GetMockDownloadManagerDelegate(), GetSaveDir(_, _, _, _)); 604 EXPECT_CALL(GetMockDownloadManagerDelegate(), GetSaveDir(_, _, _, _));
588 EXPECT_CALL(GetMockDownloadManagerDelegate(), GenerateFileHash()) 605 EXPECT_CALL(GetMockDownloadManagerDelegate(), GenerateFileHash())
589 .WillOnce(Return(true)); 606 .WillOnce(Return(true));
590 EXPECT_CALL(*mock_download_file_factory_.get(), 607 EXPECT_CALL(*mock_download_file_factory_.get(),
591 MockCreateFile(Ref(*info->save_info.get()), _, _, _, true, 608 MockCreateFile(Ref(*info->save_info.get()), _, _, _, true,
592 stream.get(), _, _)); 609 stream.get(), _, _));
asanka 2013/08/08 21:16:01 Create a MockDownloadFile here, set its expectatio
Greg Billock 2013/08/08 23:55:46 Done, but as an aside I think these tests would be
593 610
594 download_manager_->StartDownload( 611 download_manager_->StartDownload(
595 info.Pass(), stream.Pass(), DownloadUrlParameters::OnStartedCallback()); 612 info.Pass(), stream.Pass(), DownloadUrlParameters::OnStartedCallback());
596 EXPECT_TRUE(download_manager_->GetDownload(local_id)); 613 EXPECT_TRUE(NULL != download_manager_->GetDownload(local_id));
asanka 2013/08/08 21:16:01 Is this change necessary?
Greg Billock 2013/08/08 23:55:46 I'll put it back.
614
615 // Make sure the client app GUID was set in the DownloadItem.
616 MockDownloadFile* mock_file =
617 mock_download_file_factory_->GetCreatedDownloadFile();
618 EXPECT_EQ("client-id", mock_file->client_guid());
597 } 619 }
598 620
599 // Confirm that calling DetermineDownloadTarget behaves properly if the delegate 621 // Confirm that calling DetermineDownloadTarget behaves properly if the delegate
600 // blocks starting. 622 // blocks starting.
601 TEST_F(DownloadManagerTest, DetermineDownloadTarget_True) { 623 TEST_F(DownloadManagerTest, DetermineDownloadTarget_True) {
602 // Put a mock we have a handle to on the download manager. 624 // Put a mock we have a handle to on the download manager.
603 MockDownloadItemImpl& item(AddItemToManager()); 625 MockDownloadItemImpl& item(AddItemToManager());
604 EXPECT_CALL(item, GetState()) 626 EXPECT_CALL(item, GetState())
605 .WillRepeatedly(Return(DownloadItem::IN_PROGRESS)); 627 .WillRepeatedly(Return(DownloadItem::IN_PROGRESS));
606 628
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
662 .WillOnce(Return()); 684 .WillOnce(Return());
663 EXPECT_CALL(GetMockDownloadItem(3), Remove()) 685 EXPECT_CALL(GetMockDownloadItem(3), Remove())
664 .Times(0); 686 .Times(0);
665 687
666 download_manager_->RemoveAllDownloads(); 688 download_manager_->RemoveAllDownloads();
667 // Because we're mocking the download item, the Remove call doesn't 689 // Because we're mocking the download item, the Remove call doesn't
668 // result in them being removed from the DownloadManager list. 690 // result in them being removed from the DownloadManager list.
669 } 691 }
670 692
671 } // namespace content 693 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698