Index: chrome/common/extensions/extension_manifests_unittest.cc |
=================================================================== |
--- chrome/common/extensions/extension_manifests_unittest.cc (revision 71703) |
+++ chrome/common/extensions/extension_manifests_unittest.cc (working copy) |
@@ -8,11 +8,13 @@ |
#include "base/path_service.h" |
#include "base/scoped_ptr.h" |
#include "base/string_util.h" |
+#include "base/utf_string_conversions.h" |
#include "chrome/common/chrome_paths.h" |
#include "chrome/common/chrome_switches.h" |
#include "chrome/common/extensions/extension.h" |
#include "chrome/common/extensions/extension_constants.h" |
#include "chrome/common/extensions/extension_error_utils.h" |
+#include "chrome/common/extensions/extension_sidebar_defaults.h" |
#include "chrome/common/json_value_serializer.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -271,6 +273,47 @@ |
*CommandLine::ForCurrentProcess() = old_command_line; |
} |
+TEST_F(ExtensionManifestTest, Sidebar) { |
+ LoadAndExpectError("sidebar.json", |
+ errors::kExperimentalFlagRequired); |
+ |
+ CommandLine old_command_line = *CommandLine::ForCurrentProcess(); |
+ CommandLine::ForCurrentProcess()->AppendSwitch( |
+ switches::kEnableExperimentalExtensionApis); |
+ |
+ LoadAndExpectError("sidebar_no_permissions.json", |
+ errors::kSidebarExperimental); |
+ |
+ LoadAndExpectError("sidebar_icon_empty.json", |
+ errors::kInvalidSidebarDefaultIconPath); |
+ LoadAndExpectError("sidebar_icon_invalid_type.json", |
+ errors::kInvalidSidebarDefaultIconPath); |
+ LoadAndExpectError("sidebar_title_invalid_type.json", |
+ errors::kInvalidSidebarDefaultTitle); |
+ LoadAndExpectError("sidebar_url_invalid.json", |
+ errors::kInvalidSidebarDefaultUrl); |
+ LoadAndExpectError("sidebar_url_invalid_type.json", |
+ errors::kInvalidSidebarDefaultUrl); |
+ LoadAndExpectError("sidebar_url_no_permissions.json", |
+ extension_manifest_errors::kCannotAccessPage); |
+ |
+ scoped_refptr<Extension> extension(LoadAndExpectSuccess("sidebar.json")); |
+ ASSERT_TRUE(extension->sidebar_defaults() != NULL); |
+ EXPECT_EQ(extension->sidebar_defaults()->default_title(), |
+ ASCIIToUTF16("Default title")); |
+ EXPECT_EQ(extension->sidebar_defaults()->default_icon_path(), |
+ "icon.png"); |
+ EXPECT_EQ(extension->url().spec() + "sidebar.html", |
+ extension->sidebar_defaults()->default_url().spec()); |
+ |
+ scoped_refptr<Extension> extension_external_url( |
+ LoadAndExpectSuccess("sidebar_external_url.json")); |
+ EXPECT_EQ("http://sidebar.url/sidebar.html", |
+ extension_external_url->sidebar_defaults()->default_url().spec()); |
+ |
+ *CommandLine::ForCurrentProcess() = old_command_line; |
+} |
+ |
TEST_F(ExtensionManifestTest, DisallowHybridApps) { |
LoadAndExpectError("disallow_hybrid_1.json", |
errors::kHostedAppsCannotIncludeExtensionFeatures); |