| Index: chrome/common/extensions/extension_unittest.cc
|
| ===================================================================
|
| --- chrome/common/extensions/extension_unittest.cc (revision 35891)
|
| +++ chrome/common/extensions/extension_unittest.cc (working copy)
|
| @@ -223,17 +223,29 @@
|
| EXPECT_FALSE(extension.InitFromValue(*input_value, true, &error));
|
| EXPECT_TRUE(MatchPatternASCII(error, errors::kInvalidPrivacyBlacklistsPath));
|
|
|
| - // Test invalid UI surface count (both page action and browser action).
|
| + // Multiple page actions are not allowed.
|
| input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy()));
|
| DictionaryValue* action = new DictionaryValue;
|
| action->SetString(keys::kPageActionId, "MyExtensionActionId");
|
| action->SetString(keys::kName, "MyExtensionActionName");
|
| ListValue* action_list = new ListValue;
|
| action_list->Append(action->DeepCopy());
|
| + action_list->Append(action);
|
| input_value->Set(keys::kPageActions, action_list);
|
| + EXPECT_FALSE(extension.InitFromValue(*input_value, true, &error));
|
| + EXPECT_STREQ(errors::kInvalidPageActionsListSize, error.c_str());
|
| +
|
| + // Test invalid UI surface count (both page action and browser action).
|
| + input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy()));
|
| + action = new DictionaryValue;
|
| + action->SetString(keys::kPageActionId, "MyExtensionActionId");
|
| + action->SetString(keys::kName, "MyExtensionActionName");
|
| + action_list = new ListValue;
|
| + action_list->Append(action->DeepCopy());
|
| + input_value->Set(keys::kPageActions, action_list);
|
| input_value->Set(keys::kBrowserAction, action);
|
| EXPECT_FALSE(extension.InitFromValue(*input_value, true, &error));
|
| - EXPECT_STREQ(error.c_str(), errors::kOneUISurfaceOnly);
|
| + EXPECT_STREQ(errors::kOneUISurfaceOnly, error.c_str());
|
|
|
| // Test invalid options page url.
|
| input_value.reset(static_cast<DictionaryValue*>(valid_value->DeepCopy()));
|
| @@ -295,6 +307,13 @@
|
| EXPECT_EQ("chrome-extension", extension.options_url().scheme());
|
| EXPECT_EQ("/options.html", extension.options_url().path());
|
|
|
| + // Test that an empty list of page actions does not stop a browser action
|
| + // from being loaded.
|
| + ListValue* empty_list = new ListValue;
|
| + input_value.Set(keys::kPageActions, empty_list);
|
| + EXPECT_TRUE(extension.InitFromValue(input_value, false, &error));
|
| + EXPECT_EQ("", error);
|
| +
|
| #if !defined(OS_MACOSX)
|
| // TODO(aa): The version isn't stamped into the unit test binary on mac.
|
| // Test with a minimum_chrome_version.
|
|
|