blob: 020b2dbaf4851306e689a78c5e84eaf8d124722f [file] [log] [blame]
// 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/media/router/issue.h"
#include "chrome/grit/generated_resources.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "ui/base/l10n/l10n_util.h"
namespace media_router {
// Checks static IssueAction factory method.
TEST(IssueUnitTest, IssueActionConstructor) {
// Pre-defined "Dismiss" issue action.
IssueAction action1(IssueAction::TYPE_DISMISS);
EXPECT_EQ(IssueAction::TYPE_DISMISS, action1.type());
// Pre-defined "Learn More" issue action.
IssueAction action2(IssueAction::TYPE_LEARN_MORE);
EXPECT_EQ(IssueAction::TYPE_LEARN_MORE, action2.type());
}
// Tests custom Issue factory method without any secondary actions.
TEST(IssueUnitTest, CustomIssueConstructionWithNoSecondaryActions) {
std::vector<IssueAction> secondary_actions;
std::string title = "title";
std::string message = "message";
Issue issue1(title, message, IssueAction(IssueAction::TYPE_DISMISS),
secondary_actions, "", Issue::WARNING, false,
"http://www.google.com/");
EXPECT_EQ(title, issue1.title());
EXPECT_EQ(message, issue1.message());
EXPECT_EQ(IssueAction::TYPE_DISMISS, issue1.default_action().type());
EXPECT_TRUE(issue1.secondary_actions().empty());
EXPECT_EQ(Issue::WARNING, issue1.severity());
EXPECT_EQ("", issue1.route_id());
EXPECT_TRUE(issue1.is_global());
EXPECT_FALSE(issue1.is_blocking());
EXPECT_EQ("http://www.google.com/", issue1.help_url().spec());
Issue issue2(title, message, IssueAction(IssueAction::TYPE_DISMISS),
secondary_actions, "routeid", Issue::FATAL, true,
"http://www.google.com/");
EXPECT_EQ(title, issue2.title());
EXPECT_EQ(message, issue2.message());
EXPECT_EQ(IssueAction::TYPE_DISMISS, issue1.default_action().type());
EXPECT_TRUE(issue2.secondary_actions().empty());
EXPECT_EQ(Issue::FATAL, issue2.severity());
EXPECT_EQ("routeid", issue2.route_id());
EXPECT_FALSE(issue2.is_global());
EXPECT_TRUE(issue2.is_blocking());
EXPECT_EQ("http://www.google.com/", issue1.help_url().spec());
Issue issue3(title, "", IssueAction(IssueAction::TYPE_DISMISS),
secondary_actions, "routeid", Issue::FATAL, true,
"http://www.google.com/");
EXPECT_EQ(title, issue3.title());
EXPECT_EQ("", issue3.message());
EXPECT_EQ(IssueAction::TYPE_DISMISS, issue1.default_action().type());
EXPECT_TRUE(issue3.secondary_actions().empty());
EXPECT_EQ(Issue::FATAL, issue3.severity());
EXPECT_EQ("routeid", issue3.route_id());
EXPECT_FALSE(issue3.is_global());
EXPECT_TRUE(issue3.is_blocking());
EXPECT_EQ("http://www.google.com/", issue1.help_url().spec());
}
// Tests custom Issue factory method with secondary actions.
TEST(IssueUnitTest, CustomIssueConstructionWithSecondaryActions) {
std::vector<IssueAction> secondary_actions;
secondary_actions.push_back(IssueAction(IssueAction::TYPE_DISMISS));
EXPECT_EQ(1u, secondary_actions.size());
std::string title = "title";
std::string message = "message";
Issue issue1(title, message, IssueAction(IssueAction::TYPE_LEARN_MORE),
secondary_actions, "", Issue::WARNING, false, "");
EXPECT_EQ(title, issue1.title());
EXPECT_EQ(message, issue1.message());
EXPECT_EQ(IssueAction::TYPE_LEARN_MORE, issue1.default_action().type());
EXPECT_FALSE(issue1.secondary_actions().empty());
EXPECT_EQ(1u, issue1.secondary_actions().size());
EXPECT_EQ(Issue::WARNING, issue1.severity());
EXPECT_EQ("", issue1.route_id());
EXPECT_TRUE(issue1.is_global());
EXPECT_FALSE(issue1.is_blocking());
Issue issue2(title, message, IssueAction(IssueAction::TYPE_LEARN_MORE),
secondary_actions, "routeid", Issue::FATAL, true, "");
EXPECT_EQ(title, issue2.title());
EXPECT_EQ(message, issue2.message());
EXPECT_EQ(IssueAction::TYPE_LEARN_MORE, issue2.default_action().type());
EXPECT_FALSE(issue2.secondary_actions().empty());
EXPECT_EQ(1u, issue2.secondary_actions().size());
EXPECT_EQ(Issue::FATAL, issue2.severity());
EXPECT_EQ("routeid", issue2.route_id());
EXPECT_FALSE(issue2.is_global());
EXPECT_TRUE(issue2.is_blocking());
Issue issue3(title, "", IssueAction(IssueAction::TYPE_LEARN_MORE),
secondary_actions, "routeid", Issue::FATAL, true, "");
EXPECT_EQ(title, issue3.title());
EXPECT_EQ("", issue3.message());
EXPECT_EQ(IssueAction::TYPE_LEARN_MORE, issue3.default_action().type());
EXPECT_FALSE(issue3.secondary_actions().empty());
EXPECT_EQ(1u, issue3.secondary_actions().size());
EXPECT_EQ(Issue::FATAL, issue3.severity());
EXPECT_EQ("routeid", issue3.route_id());
EXPECT_FALSE(issue3.is_global());
EXPECT_TRUE(issue3.is_blocking());
}
// Tests == and != method.
TEST(IssueUnitTest, Equal) {
std::vector<IssueAction> secondary_actions;
secondary_actions.push_back(IssueAction(IssueAction::TYPE_DISMISS));
std::vector<IssueAction> secondary_actions2;
std::string title = "title";
std::string message = "message";
Issue issue1(Issue(title, message, IssueAction(IssueAction::TYPE_LEARN_MORE),
secondary_actions, "", Issue::WARNING, false, ""));
EXPECT_TRUE(issue1.Equals(issue1));
Issue issue2(Issue(title, message, IssueAction(IssueAction::TYPE_LEARN_MORE),
secondary_actions, "", Issue::WARNING, false, ""));
EXPECT_FALSE(issue1.Equals(issue2));
}
} // namespace media_router