Chromium Code Reviews| OLD | NEW |
|---|---|
| (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 } | |
| OLD | NEW |