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

Side by Side Diff: chrome/browser/download/hyperbolic_download_item_notifier_unittest.cc

Issue 10974009: Rename HyperbolicDownloadItemNotifer -> AllDownloadItemNotifier (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 3 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/download/hyperbolic_download_item_notifier.h"
6
7 #include "content/public/test/mock_download_item.h"
8 #include "content/public/test/mock_download_manager.h"
9 #include "testing/gmock/include/gmock/gmock.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 using testing::NiceMock;
13 using testing::SetArgPointee;
14 using testing::_;
15
16 namespace {
17
18 class MockNotifierObserver : public HyperbolicDownloadItemNotifier::Observer {
19 public:
20 MockNotifierObserver() {
21 }
22 virtual ~MockNotifierObserver() {}
23
24 MOCK_METHOD2(OnDownloadCreated, void(
25 content::DownloadManager* manager, content::DownloadItem* item));
26 MOCK_METHOD2(OnDownloadUpdated, void(
27 content::DownloadManager* manager, content::DownloadItem* item));
28 MOCK_METHOD2(OnDownloadOpened, void(
29 content::DownloadManager* manager, content::DownloadItem* item));
30 MOCK_METHOD2(OnDownloadRemoved, void(
31 content::DownloadManager* manager, content::DownloadItem* item));
32
33 private:
34 DISALLOW_COPY_AND_ASSIGN(MockNotifierObserver);
35 };
36
37 class HyperbolicDownloadItemNotifierTest : public testing::Test {
38 public:
39 HyperbolicDownloadItemNotifierTest()
40 : download_manager_(new content::MockDownloadManager) {
41 }
42
43 virtual ~HyperbolicDownloadItemNotifierTest() {}
44
45 content::MockDownloadManager& manager() {
46 return *download_manager_.get();
47 }
48
49 content::MockDownloadItem& item() { return item_; }
50
51 content::DownloadItem::Observer* NotifierAsItemObserver() const {
52 return notifier_.get();
53 }
54
55 content::DownloadManager::Observer* NotifierAsManagerObserver() const {
56 return notifier_.get();
57 }
58
59 MockNotifierObserver& observer() { return observer_; }
60
61 void SetNotifier() {
62 EXPECT_CALL(*download_manager_.get(), AddObserver(_));
63 notifier_.reset(new HyperbolicDownloadItemNotifier(
64 download_manager_.get(), &observer_));
65 }
66
67 void ClearNotifier() {
68 notifier_.reset();
69 }
70
71 private:
72 NiceMock<content::MockDownloadItem> item_;
73 scoped_refptr<content::MockDownloadManager> download_manager_;
74 scoped_ptr<HyperbolicDownloadItemNotifier> notifier_;
75 NiceMock<MockNotifierObserver> observer_;
76
77 DISALLOW_COPY_AND_ASSIGN(HyperbolicDownloadItemNotifierTest);
78 };
79
80 } // namespace
81
82 TEST_F(HyperbolicDownloadItemNotifierTest,
83 HyperbolicDownloadItemNotifierTest_0) {
84 content::DownloadManager::DownloadVector items;
85 items.push_back(&item());
86 EXPECT_CALL(manager(), GetAllDownloads(_))
87 .WillOnce(SetArgPointee<0>(items));
88 EXPECT_CALL(item(), AddObserver(_));
89 SetNotifier();
90
91 EXPECT_CALL(observer(), OnDownloadUpdated(&manager(), &item()));
92 NotifierAsItemObserver()->OnDownloadUpdated(&item());
93
94 EXPECT_CALL(observer(), OnDownloadOpened(&manager(), &item()));
95 NotifierAsItemObserver()->OnDownloadOpened(&item());
96
97 EXPECT_CALL(observer(), OnDownloadRemoved(&manager(), &item()));
98 NotifierAsItemObserver()->OnDownloadRemoved(&item());
99
100 EXPECT_CALL(item(), RemoveObserver(NotifierAsItemObserver()));
101 EXPECT_CALL(manager(), RemoveObserver(NotifierAsManagerObserver()));
102 ClearNotifier();
103 }
104
105 TEST_F(HyperbolicDownloadItemNotifierTest,
106 HyperbolicDownloadItemNotifierTest_1) {
107 EXPECT_CALL(manager(), GetAllDownloads(_));
108 SetNotifier();
109
110 EXPECT_CALL(item(), AddObserver(NotifierAsItemObserver()));
111 EXPECT_CALL(observer(), OnDownloadCreated(&manager(), &item()));
112 NotifierAsManagerObserver()->OnDownloadCreated(
113 &manager(), &item());
114
115 EXPECT_CALL(manager(), RemoveObserver(NotifierAsManagerObserver()));
116 NotifierAsManagerObserver()->ManagerGoingDown(&manager());
117
118 EXPECT_CALL(item(), RemoveObserver(NotifierAsItemObserver()));
119 NotifierAsItemObserver()->OnDownloadDestroyed(&item());
120
121 ClearNotifier();
122 }
OLDNEW
« no previous file with comments | « chrome/browser/download/hyperbolic_download_item_notifier.cc ('k') | chrome/browser/extensions/api/downloads/downloads_api.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698