| 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..a2c0c59c59423607f66beb0188e6de92b4364a20 | 
| --- /dev/null | 
| +++ b/chrome/common/extensions/manifest_tests/extension_manifests_scriptbadge_unittest.cc | 
| @@ -0,0 +1,65 @@ | 
| +// 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::ScopedSetActionBoxForTest _(switch_utils::ENABLED); | 
| +  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::ScopedSetActionBoxForTest _(switch_utils::DISABLED); | 
| +  scoped_refptr<Extension> extension( | 
| +      LoadAndExpectSuccess("script_badge_basic.json", Extension::LOAD)); | 
| +  ASSERT_TRUE(extension.get()); | 
| +  EXPECT_FALSE(extension->script_badge()); | 
| +  EXPECT_THAT(extension->install_warnings(), | 
| +              testing::ElementsAre( | 
| +                  Extension::InstallWarning( | 
| +                      Extension::InstallWarning::FORMAT_TEXT, | 
| +                      errors::kScriptBadgeRequiresActionBox))); | 
| +} | 
| + | 
| +TEST_F(ExtensionManifestTest, ScriptBadgeExplicitIconsIgnored) { | 
| +  switch_utils::ScopedSetActionBoxForTest _(switch_utils::ENABLED); | 
| + | 
| +  scoped_refptr<Extension> extension( | 
| +      LoadAndExpectSuccess("script_badge_icons_ignored.json", Extension::LOAD)); | 
| +  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()); | 
| +} | 
|  |