| Index: chrome/browser/download/download_commands_unittest.cc
|
| diff --git a/chrome/browser/download/download_commands_unittest.cc b/chrome/browser/download/download_commands_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..46717c455f1ead71d29ef6224654d506514691db
|
| --- /dev/null
|
| +++ b/chrome/browser/download/download_commands_unittest.cc
|
| @@ -0,0 +1,156 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "chrome/browser/download/download_commands.h"
|
| +
|
| +#include <vector>
|
| +
|
| +#include "content/public/test/mock_download_item.h"
|
| +#include "testing/gmock/include/gmock/gmock.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +using content::DownloadItem;
|
| +using ::testing::Mock;
|
| +using ::testing::NiceMock;
|
| +using ::testing::Return;
|
| +using ::testing::ReturnRefOfCopy;
|
| +using ::testing::_;
|
| +
|
| +namespace {
|
| +
|
| +// Default target path for a mock download item in DownloadItemModelTest.
|
| +const base::FilePath::CharType kDefaultTargetFilePath[] =
|
| + FILE_PATH_LITERAL("/foo/bar/foo.bar");
|
| +
|
| +// Default URL for a mock download item in DownloadCommandsTest.
|
| +const char kDefaultURL[] = "http://example.com/foo.bar";
|
| +
|
| +class DownloadCommandsTest : public testing::Test {
|
| + public:
|
| + DownloadCommandsTest() : commands_(&item_) {}
|
| +
|
| + virtual ~DownloadCommandsTest() {
|
| + }
|
| +
|
| + protected:
|
| + // Sets up defaults for the download item.
|
| + void SetUp() override {
|
| + ON_CALL(item_, GetMimeType()).WillByDefault(Return("text/html"));
|
| + ON_CALL(item_, CanShowInFolder()).WillByDefault(Return(true));
|
| + ON_CALL(item_, CanOpenDownload()).WillByDefault(Return(true));
|
| + ON_CALL(item_, IsDone()).WillByDefault(Return(false));
|
| + ON_CALL(item_, GetOpenWhenComplete()).WillByDefault(Return(false));
|
| + ON_CALL(item_, GetState())
|
| + .WillByDefault(Return(DownloadItem::IN_PROGRESS));
|
| + ON_CALL(item_, IsPaused()).WillByDefault(Return(false));
|
| + ON_CALL(item_, ShouldOpenFileBasedOnExtension())
|
| + .WillByDefault(Return(false));
|
| +
|
| + ON_CALL(item_, GetTargetDisposition())
|
| + .WillByDefault(
|
| + Return(DownloadItem::TARGET_DISPOSITION_OVERWRITE));
|
| + ON_CALL(item_, GetMimeType()).WillByDefault(Return("text/html"));
|
| + ON_CALL(item_, GetURL())
|
| + .WillByDefault(ReturnRefOfCopy(GURL(kDefaultURL)));
|
| + ON_CALL(item_, GetTargetFilePath())
|
| + .WillByDefault(ReturnRefOfCopy(base::FilePath(kDefaultTargetFilePath)));
|
| + }
|
| +
|
| + content::MockDownloadItem& item() {
|
| + return item_;
|
| + }
|
| +
|
| +
|
| + bool IsCommandEnabled(DownloadCommands::Command command) {
|
| + return commands().IsCommandEnabled(command);
|
| + }
|
| +
|
| + bool IsCommandChecked(DownloadCommands::Command command) {
|
| + return commands().IsCommandChecked(command);
|
| + }
|
| +
|
| +
|
| + DownloadCommands& commands() {
|
| + return commands_;
|
| + }
|
| +
|
| + private:
|
| + NiceMock<content::MockDownloadItem> item_;
|
| + DownloadCommands commands_;
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| +TEST_F(DownloadCommandsTest, InProgress) {
|
| + EXPECT_TRUE(IsCommandEnabled(DownloadCommands::SHOW_IN_FOLDER));
|
| + EXPECT_TRUE(IsCommandEnabled(DownloadCommands::CANCEL));
|
| + EXPECT_TRUE(IsCommandEnabled(DownloadCommands::PAUSE));
|
| + EXPECT_FALSE(IsCommandEnabled(DownloadCommands::RESUME));
|
| + EXPECT_TRUE(IsCommandEnabled(DownloadCommands::ALWAYS_OPEN_TYPE));
|
| + EXPECT_TRUE(IsCommandEnabled(DownloadCommands::OPEN_WHEN_COMPLETE));
|
| +
|
| + EXPECT_FALSE(IsCommandChecked(DownloadCommands::OPEN_WHEN_COMPLETE));
|
| + EXPECT_FALSE(IsCommandChecked(DownloadCommands::ALWAYS_OPEN_TYPE));
|
| +}
|
| +
|
| +TEST_F(DownloadCommandsTest, OpenWhenCompleteEnabled) {
|
| + ON_CALL(item(), GetOpenWhenComplete()).WillByDefault(Return(true));
|
| +
|
| + EXPECT_TRUE(IsCommandEnabled(DownloadCommands::OPEN_WHEN_COMPLETE));
|
| + EXPECT_TRUE(IsCommandChecked(DownloadCommands::OPEN_WHEN_COMPLETE));
|
| +}
|
| +
|
| +TEST_F(DownloadCommandsTest, Finished) {
|
| + ON_CALL(item(), IsDone()).WillByDefault(Return(true));
|
| +
|
| + EXPECT_FALSE(IsCommandEnabled(DownloadCommands::CANCEL));
|
| + EXPECT_FALSE(IsCommandEnabled(DownloadCommands::PAUSE));
|
| + EXPECT_FALSE(IsCommandEnabled(DownloadCommands::RESUME));
|
| +}
|
| +
|
| +TEST_F(DownloadCommandsTest, PausedResumable) {
|
| + ON_CALL(item(), IsPaused()).WillByDefault(Return(true));
|
| + ON_CALL(item(), CanResume()).WillByDefault(Return(true));
|
| +
|
| + EXPECT_FALSE(IsCommandEnabled(DownloadCommands::PAUSE));
|
| + EXPECT_TRUE(IsCommandEnabled(DownloadCommands::RESUME));
|
| +}
|
| +
|
| +TEST_F(DownloadCommandsTest, PausedUnresumable) {
|
| + ON_CALL(item(), IsPaused()).WillByDefault(Return(true));
|
| + ON_CALL(item(), CanResume()).WillByDefault(Return(false));
|
| +
|
| + EXPECT_FALSE(IsCommandEnabled(DownloadCommands::PAUSE));
|
| + EXPECT_FALSE(IsCommandEnabled(DownloadCommands::RESUME));
|
| +}
|
| +
|
| +TEST_F(DownloadCommandsTest, DoOpenWhenComplete) {
|
| + // Open when complete.
|
| + EXPECT_CALL(item(), OpenDownload()).Times(1);
|
| + commands().ExecuteCommand(DownloadCommands::OPEN_WHEN_COMPLETE);
|
| +}
|
| +
|
| +TEST_F(DownloadCommandsTest, DoShowInFolder) {
|
| + // Open when complete.
|
| + EXPECT_CALL(item(), ShowDownloadInShell()).Times(1);
|
| + commands().ExecuteCommand(DownloadCommands::SHOW_IN_FOLDER);
|
| +}
|
| +
|
| +TEST_F(DownloadCommandsTest, DoCancel) {
|
| + // Cancel.
|
| + EXPECT_CALL(item(), Cancel(true)).Times(1);
|
| + commands().ExecuteCommand(DownloadCommands::CANCEL);
|
| +}
|
| +
|
| +TEST_F(DownloadCommandsTest, DoPause) {
|
| + // Pause.
|
| + EXPECT_CALL(item(), Pause()).Times(1);
|
| + commands().ExecuteCommand(DownloadCommands::PAUSE);
|
| +}
|
| +
|
| +TEST_F(DownloadCommandsTest, DoResume) {
|
| + // Resume.
|
| + EXPECT_CALL(item(), Resume()).Times(1);
|
| + commands().ExecuteCommand(DownloadCommands::RESUME);
|
| +}
|
|
|