Chromium Code Reviews| Index: chrome/common/extensions/manifest_tests/extension_manifests_scriptbadge_unittest.cc |
| diff --git a/chrome/common/extensions/manifest_tests/extension_manifests_scriptbadge_unittest.cc b/chrome/common/extensions/manifest_tests/extension_manifests_scriptbadge_unittest.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..33160698d48bd29b98962bdd6caf87fa52fb89f6 |
| --- /dev/null |
| +++ b/chrome/common/extensions/manifest_tests/extension_manifests_scriptbadge_unittest.cc |
| @@ -0,0 +1,86 @@ |
| +// Copyright (c) 2012 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/common/extensions/manifest_tests/extension_manifest_test.h" |
| + |
| +#include "chrome/common/extensions/extension_action.h" |
| +#include "chrome/common/extensions/extension_manifest_constants.h" |
| +#include "chrome/common/extensions/extension_switch_utils.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| +#include "testing/gmock/include/gmock/gmock.h" |
| +#include "third_party/skia/include/core/SkBitmap.h" |
| + |
| +namespace errors = extension_manifest_errors; |
| +namespace switch_utils = extensions::switch_utils; |
| +using extensions::Extension; |
| + |
| +TEST_F(ExtensionManifestTest, ScriptBadgeBasic) { |
| + switch_utils::ScopedSetScriptBadgeForTest _(switch_utils::ENABLED); |
|
not at google - send to devlin
2012/06/19 00:27:32
the point of those comments was to get rid of need
|
| + scoped_refptr<Extension> extension( |
| + LoadAndExpectSuccess("script_badge_basic.json")); |
| + ASSERT_TRUE(extension.get()); |
| + ASSERT_TRUE(extension->script_badge()); |
| + EXPECT_THAT(extension->install_warnings(), |
| + testing::ElementsAre(/*empty*/)); |
| + |
| + EXPECT_EQ("Hello World", extension->script_badge()->GetTitle( |
| + ExtensionAction::kDefaultTabId)); |
| + EXPECT_TRUE(extension->script_badge()->HasPopup( |
| + ExtensionAction::kDefaultTabId)); |
| + EXPECT_TRUE(extension->script_badge()->GetIcon( |
| + ExtensionAction::kDefaultTabId).isNull()); |
| + EXPECT_EQ("icon16.png", extension->script_badge()->default_icon_path()); |
| +} |
| + |
| +TEST_F(ExtensionManifestTest, ScriptBadgeWarnsWithoutActionBox) { |
| + switch_utils::ScopedSetScriptBadgeForTest _(switch_utils::DISABLED); |
| + scoped_refptr<Extension> extension( |
| + LoadAndExpectSuccess("script_badge_basic.json")); |
| + ASSERT_TRUE(extension.get()); |
| + ASSERT_TRUE(extension->script_badge()); |
| + EXPECT_THAT(extension->install_warnings(), |
| + testing::ElementsAre( |
| + Extension::InstallWarning( |
| + Extension::InstallWarning::FORMAT_TEXT, |
| + errors::kScriptBadgeRequiresFlag))); |
| + |
| + EXPECT_EQ("my extension", extension->script_badge()->GetTitle( |
| + ExtensionAction::kDefaultTabId)); |
| +} |
| + |
| +TEST_F(ExtensionManifestTest, ScriptBadgeExplicitIconsIgnored) { |
| + switch_utils::ScopedSetScriptBadgeForTest _(switch_utils::ENABLED); |
| + |
| + scoped_refptr<Extension> extension( |
| + LoadAndExpectSuccess("script_badge_icons_ignored.json")); |
| + ASSERT_TRUE(extension.get()); |
| + ASSERT_TRUE(extension->script_badge()); |
| + |
| + EXPECT_THAT(extension->install_warnings(), |
| + testing::ElementsAre( |
| + Extension::InstallWarning( |
| + Extension::InstallWarning::FORMAT_TEXT, |
| + errors::kScriptBadgeIconIgnored))); |
| + EXPECT_TRUE(extension->script_badge()->GetIcon( |
| + ExtensionAction::kDefaultTabId).isNull()); |
| + EXPECT_EQ("icon16.png", extension->script_badge()->default_icon_path()); |
| +} |
| + |
| +TEST_F(ExtensionManifestTest, ScriptBadgeIconFallsBackToPuzzlePiece) { |
| + switch_utils::ScopedSetScriptBadgeForTest _(switch_utils::ENABLED); |
| + |
| + scoped_refptr<Extension> extension( |
| + LoadAndExpectSuccess("script_badge_only_use_icon16.json")); |
| + ASSERT_TRUE(extension.get()); |
| + ASSERT_TRUE(extension->script_badge()); |
| + EXPECT_THAT(extension->install_warnings(), |
| + testing::ElementsAre(/*empty*/)); |
| + |
| + EXPECT_EQ("", extension->script_badge()->default_icon_path()) |
| + << "Should not fall back to the 64px icon."; |
| + EXPECT_FALSE(extension->script_badge()->GetIcon( |
| + ExtensionAction::kDefaultTabId).isNull()) |
| + << "Should set the puzzle piece as the default, but there's no way " |
| + << "to assert in a unittest what the image looks like."; |
| +} |