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

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

Issue 993643002: [Download] Add an unittest of DownloadCommands class (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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
« no previous file with comments | « no previous file | chrome/chrome_tests_unit.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2015 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/download_commands.h"
6
7 #include <vector>
8
9 #include "content/public/test/mock_download_item.h"
10 #include "testing/gmock/include/gmock/gmock.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 using content::DownloadItem;
14 using ::testing::Mock;
15 using ::testing::NiceMock;
16 using ::testing::Return;
17 using ::testing::ReturnRefOfCopy;
18 using ::testing::_;
19
20 namespace {
21
22 // Default URL for a mock download item in DownloadCommandsTest.
23 const char kDefaultURL[] = "http://example.com/foo.bar";
24
25 class DownloadCommandsTest : public testing::Test {
26 public:
27 DownloadCommandsTest() : commands_(&item_) {}
28
29 virtual ~DownloadCommandsTest() {
30 }
31
32 protected:
33 // Sets up defaults for the download item.
34 void SetupDownloadItemDefaults() {
35 ON_CALL(item_, GetMimeType()).WillByDefault(Return("text/html"));
36 ON_CALL(item_, CanShowInFolder()).WillByDefault(Return(true));
37 ON_CALL(item_, CanOpenDownload()).WillByDefault(Return(true));
38 ON_CALL(item_, IsDone()).WillByDefault(Return(false));
39 ON_CALL(item_, GetOpenWhenComplete()).WillByDefault(Return(false));
40 ON_CALL(item_, GetState())
41 .WillByDefault(Return(DownloadItem::IN_PROGRESS));
42 ON_CALL(item_, IsPaused()).WillByDefault(Return(false));
43
44 ON_CALL(item_, GetTargetDisposition())
45 .WillByDefault(
46 Return(DownloadItem::TARGET_DISPOSITION_OVERWRITE));
47 ON_CALL(item_, GetMimeType()).WillByDefault(Return("text/html"));
48 ON_CALL(item_, GetURL())
49 .WillByDefault(ReturnRefOfCopy(GURL(kDefaultURL)));
50 }
51
52 content::MockDownloadItem& item() {
53 return item_;
54 }
55
56 bool IsCommandEnabled(DownloadCommands::Command command) {
57 return commands().IsCommandEnabled(command);
58 }
59
60 bool IsCommandChecked(DownloadCommands::Command command) {
61 return commands().IsCommandChecked(command);
62 }
63
64
65 DownloadCommands& commands() {
66 return commands_;
67 }
68
69 private:
70 NiceMock<content::MockDownloadItem> item_;
71 DownloadCommands commands_;
72 };
73
74 } // namespace
75
76 TEST_F(DownloadCommandsTest, StartAndFinish) {
77 SetupDownloadItemDefaults();
asanka 2015/03/09 19:02:20 Add a SetUp() function to DownloadCommandsTest and
78
79 EXPECT_TRUE(IsCommandEnabled(DownloadCommands::SHOW_IN_FOLDER));
80 EXPECT_TRUE(IsCommandEnabled(DownloadCommands::CANCEL));
81 EXPECT_TRUE(IsCommandEnabled(DownloadCommands::PAUSE));
82 EXPECT_FALSE(IsCommandEnabled(DownloadCommands::RESUME));
83 EXPECT_TRUE(IsCommandEnabled(DownloadCommands::OPEN_WHEN_COMPLETE));
84
85 EXPECT_FALSE(IsCommandChecked(DownloadCommands::OPEN_WHEN_COMPLETE));
86
87 // Open when complete.
88 EXPECT_CALL(item(), OpenDownload()).Times(1);
89 commands().ExecuteCommand(DownloadCommands::OPEN_WHEN_COMPLETE);
90 ON_CALL(item(), GetOpenWhenComplete()).WillByDefault(Return(true));
91
92 EXPECT_TRUE(IsCommandEnabled(DownloadCommands::OPEN_WHEN_COMPLETE));
93 EXPECT_TRUE(IsCommandChecked(DownloadCommands::OPEN_WHEN_COMPLETE));
94
95 // Finish a download.
96 ON_CALL(item(), IsDone()).WillByDefault(Return(true));
97
98 EXPECT_FALSE(IsCommandEnabled(DownloadCommands::CANCEL));
99 EXPECT_FALSE(IsCommandEnabled(DownloadCommands::PAUSE));
100 EXPECT_FALSE(IsCommandEnabled(DownloadCommands::RESUME));
101 }
102
103 TEST_F(DownloadCommandsTest, Cancel) {
104 SetupDownloadItemDefaults();
105
106 EXPECT_TRUE(IsCommandEnabled(DownloadCommands::CANCEL));
107
108 // Cancel.
109 EXPECT_CALL(item(), Cancel(true)).Times(1);
110 commands().ExecuteCommand(DownloadCommands::CANCEL);
111 ON_CALL(item(), IsDone()).WillByDefault(Return(true));
112
113 EXPECT_FALSE(IsCommandEnabled(DownloadCommands::CANCEL));
114 EXPECT_FALSE(IsCommandEnabled(DownloadCommands::RESUME));
115 EXPECT_FALSE(IsCommandEnabled(DownloadCommands::PAUSE));
116 }
117
118 TEST_F(DownloadCommandsTest, PauseAndResume) {
119 SetupDownloadItemDefaults();
120
121 EXPECT_TRUE(IsCommandEnabled(DownloadCommands::PAUSE));
122 EXPECT_FALSE(IsCommandEnabled(DownloadCommands::RESUME));
123
124 // Pause.
125 EXPECT_CALL(item(), Pause()).Times(1);
126 commands().ExecuteCommand(DownloadCommands::PAUSE);
127 ON_CALL(item(), IsPaused()).WillByDefault(Return(true));
128 ON_CALL(item(), CanResume()).WillByDefault(Return(true));
129
130 EXPECT_FALSE(IsCommandEnabled(DownloadCommands::PAUSE));
131 EXPECT_TRUE(IsCommandEnabled(DownloadCommands::RESUME));
132
133 // Resume.
134 EXPECT_CALL(item(), Resume()).Times(1);
135 commands().ExecuteCommand(DownloadCommands::RESUME);
136 ON_CALL(item(), IsPaused()).WillByDefault(Return(false));
137
138 EXPECT_TRUE(IsCommandEnabled(DownloadCommands::PAUSE));
139 EXPECT_FALSE(IsCommandEnabled(DownloadCommands::RESUME));
140 }
141
142 TEST_F(DownloadCommandsTest, UnableToResume) {
143 SetupDownloadItemDefaults();
144
145 EXPECT_TRUE(IsCommandEnabled(DownloadCommands::PAUSE));
146 EXPECT_FALSE(IsCommandEnabled(DownloadCommands::RESUME));
147
148 // Pause.
149 EXPECT_CALL(item(), Pause()).Times(1);
150 commands().ExecuteCommand(DownloadCommands::PAUSE);
151 ON_CALL(item(), IsPaused()).WillByDefault(Return(true));
152 ON_CALL(item(), CanResume()).WillByDefault(Return(false));
153
154 EXPECT_FALSE(IsCommandEnabled(DownloadCommands::PAUSE));
155 EXPECT_FALSE(IsCommandEnabled(DownloadCommands::RESUME));
156 }
OLDNEW
« no previous file with comments | « no previous file | chrome/chrome_tests_unit.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698