| Index: chrome/common/extensions/extension_unittest.cc
|
| diff --git a/chrome/common/extensions/extension_unittest.cc b/chrome/common/extensions/extension_unittest.cc
|
| index 26cf64857364d8ebc50f98b487f66b1d4cd16637..55a8139025b7fb98c5538b4e0fcc7453bb04774e 100644
|
| --- a/chrome/common/extensions/extension_unittest.cc
|
| +++ b/chrome/common/extensions/extension_unittest.cc
|
| @@ -277,13 +277,13 @@ TEST(ExtensionTest, LoadPageActionHelper) {
|
|
|
| // First try with an empty dictionary. We should get nothing back.
|
| ASSERT_TRUE(extension.LoadExtensionActionHelper(
|
| - &input, 0, &error_msg, ExtensionAction::PAGE_ACTION) == NULL);
|
| + &input, &error_msg, ExtensionAction::PAGE_ACTION) == NULL);
|
| ASSERT_STRNE("", error_msg.c_str());
|
| error_msg = "";
|
|
|
| // Now try the same, but as a browser action. Ensure same results.
|
| ASSERT_TRUE(extension.LoadExtensionActionHelper(
|
| - &input, 0, &error_msg, ExtensionAction::BROWSER_ACTION) == NULL);
|
| + &input, &error_msg, ExtensionAction::BROWSER_ACTION) == NULL);
|
| ASSERT_STRNE("", error_msg.c_str());
|
| error_msg = "";
|
|
|
| @@ -303,11 +303,11 @@ TEST(ExtensionTest, LoadPageActionHelper) {
|
|
|
| // Parse as page action and read back the values from the object.
|
| action.reset(extension.LoadExtensionActionHelper(
|
| - &input, 0, &error_msg, ExtensionAction::PAGE_ACTION));
|
| + &input, &error_msg, ExtensionAction::PAGE_ACTION));
|
| ASSERT_TRUE(NULL != action.get());
|
| ASSERT_STREQ("", error_msg.c_str());
|
| ASSERT_STREQ(id.c_str(), action->id().c_str());
|
| - ASSERT_STREQ(name.c_str(), action->name().c_str());
|
| + ASSERT_STREQ(name.c_str(), action->title().c_str());
|
| ASSERT_EQ(2u, action->icon_paths().size());
|
| ASSERT_STREQ(img1.c_str(), action->icon_paths()[0].c_str());
|
| ASSERT_STREQ(img2.c_str(), action->icon_paths()[1].c_str());
|
| @@ -315,12 +315,12 @@ TEST(ExtensionTest, LoadPageActionHelper) {
|
|
|
| // Now try the same, but as a browser action.
|
| action.reset(extension.LoadExtensionActionHelper(
|
| - &input, 0, &error_msg, ExtensionAction::BROWSER_ACTION));
|
| + &input, &error_msg, ExtensionAction::BROWSER_ACTION));
|
| ASSERT_TRUE(NULL != action.get());
|
| ASSERT_STREQ("", error_msg.c_str());
|
| // Browser actions don't have an id, page actions do.
|
| ASSERT_STREQ("", action->id().c_str());
|
| - ASSERT_STREQ(name.c_str(), action->name().c_str());
|
| + ASSERT_STREQ(name.c_str(), action->title().c_str());
|
| ASSERT_EQ(2u, action->icon_paths().size());
|
| ASSERT_STREQ(img1.c_str(), action->icon_paths()[0].c_str());
|
| ASSERT_STREQ(img2.c_str(), action->icon_paths()[1].c_str());
|
| @@ -329,7 +329,7 @@ TEST(ExtensionTest, LoadPageActionHelper) {
|
| // Explicitly set the same type and parse again.
|
| input.SetString(keys::kType, values::kPageActionTypeTab);
|
| action.reset(extension.LoadExtensionActionHelper(
|
| - &input, 0, &error_msg, ExtensionAction::BROWSER_ACTION));
|
| + &input, &error_msg, ExtensionAction::BROWSER_ACTION));
|
| ASSERT_TRUE(NULL != action.get());
|
| ASSERT_STREQ("", error_msg.c_str());
|
| ASSERT_EQ(ExtensionAction::BROWSER_ACTION, action->type());
|
| @@ -337,7 +337,7 @@ TEST(ExtensionTest, LoadPageActionHelper) {
|
| // Explicitly set the PAGE_ACTION type and parse again.
|
| input.SetString(keys::kType, values::kPageActionTypePermanent);
|
| action.reset(extension.LoadExtensionActionHelper(
|
| - &input, 0, &error_msg, ExtensionAction::PAGE_ACTION));
|
| + &input, &error_msg, ExtensionAction::PAGE_ACTION));
|
| ASSERT_TRUE(NULL != action.get());
|
| ASSERT_STREQ("", error_msg.c_str());
|
| ASSERT_EQ(ExtensionAction::PAGE_ACTION, action->type());
|
| @@ -350,17 +350,16 @@ TEST(ExtensionTest, LoadPageActionHelper) {
|
| copy.reset(static_cast<DictionaryValue*>(input.DeepCopy()));
|
| copy->Remove(keys::kPageActionId, NULL);
|
| action.reset(extension.LoadExtensionActionHelper(
|
| - copy.get(), 0, &error_msg, ExtensionAction::PAGE_ACTION));
|
| - ASSERT_TRUE(NULL == action.get());
|
| - ASSERT_TRUE(MatchPattern(error_msg.c_str(),
|
| - errors::kInvalidPageActionId));
|
| + copy.get(), &error_msg, ExtensionAction::PAGE_ACTION));
|
| + ASSERT_TRUE(NULL != action.get());
|
| + ASSERT_STREQ("", error_msg.c_str());
|
| error_msg = "";
|
|
|
| // Same test (id key), but with browser action.
|
| copy.reset(static_cast<DictionaryValue*>(input.DeepCopy()));
|
| copy->Remove(keys::kPageActionId, NULL);
|
| action.reset(extension.LoadExtensionActionHelper(
|
| - copy.get(), 0, &error_msg, ExtensionAction::BROWSER_ACTION));
|
| + copy.get(), &error_msg, ExtensionAction::BROWSER_ACTION));
|
| // Having no id is valid for browser actions.
|
| ASSERT_TRUE(NULL != action.get());
|
| ASSERT_STREQ("", error_msg.c_str());
|
| @@ -370,39 +369,57 @@ TEST(ExtensionTest, LoadPageActionHelper) {
|
| copy.reset(static_cast<DictionaryValue*>(input.DeepCopy()));
|
| copy->Remove(keys::kName, NULL);
|
| action.reset(extension.LoadExtensionActionHelper(
|
| - copy.get(), 0, &error_msg, ExtensionAction::PAGE_ACTION));
|
| + copy.get(), &error_msg, ExtensionAction::PAGE_ACTION));
|
| ASSERT_TRUE(NULL == action.get());
|
| ASSERT_TRUE(MatchPattern(error_msg.c_str(),
|
| - errors::kInvalidName));
|
| + errors::kInvalidPageActionDefaultTitle));
|
| error_msg = "";
|
|
|
| // Same test (name key), but with browser action.
|
| copy.reset(static_cast<DictionaryValue*>(input.DeepCopy()));
|
| copy->Remove(keys::kName, NULL);
|
| action.reset(extension.LoadExtensionActionHelper(
|
| - copy.get(), 0, &error_msg, ExtensionAction::BROWSER_ACTION));
|
| + copy.get(), &error_msg, ExtensionAction::BROWSER_ACTION));
|
| ASSERT_TRUE(NULL == action.get());
|
| ASSERT_TRUE(MatchPattern(error_msg.c_str(),
|
| - errors::kInvalidName));
|
| + errors::kInvalidPageActionDefaultTitle));
|
| error_msg = "";
|
|
|
| // Then remove the icon paths key.
|
| copy.reset(static_cast<DictionaryValue*>(input.DeepCopy()));
|
| copy->Remove(keys::kPageActionIcons, NULL);
|
| action.reset(extension.LoadExtensionActionHelper(
|
| - copy.get(), 0, &error_msg, ExtensionAction::PAGE_ACTION));
|
| - ASSERT_TRUE(NULL == action.get());
|
| - ASSERT_TRUE(MatchPattern(error_msg.c_str(),
|
| - errors::kInvalidPageActionIconPaths));
|
| + copy.get(), &error_msg, ExtensionAction::PAGE_ACTION));
|
| + ASSERT_TRUE(NULL != action.get());
|
| error_msg = "";
|
|
|
| - // Same test (name key), but with browser action (icons are not required for
|
| - // browser actions).
|
| + // Same test (name key), but with browser action.
|
| copy.reset(static_cast<DictionaryValue*>(input.DeepCopy()));
|
| copy->Remove(keys::kPageActionIcons, NULL);
|
| action.reset(extension.LoadExtensionActionHelper(
|
| - copy.get(), 0, &error_msg, ExtensionAction::BROWSER_ACTION));
|
| + copy.get(), &error_msg, ExtensionAction::BROWSER_ACTION));
|
| ASSERT_TRUE(NULL != action.get());
|
| +
|
| + // Now test that we can parse the new format for page actions.
|
| +
|
| + // Now setup some values to use in the page action.
|
| + const std::string kTitle("MyExtensionActionTitle");
|
| + const std::string kIcon("image1.png");
|
| +
|
| + // Add the dictionary for the contextual action.
|
| + input.Clear();
|
| + input.SetString(keys::kPageActionDefaultTitle, kTitle);
|
| + input.SetString(keys::kPageActionDefaultIcon, kIcon);
|
| +
|
| + // Parse as page action and read back the values from the object.
|
| + action.reset(extension.LoadExtensionActionHelper(
|
| + &input, &error_msg, ExtensionAction::PAGE_ACTION));
|
| + ASSERT_TRUE(action.get());
|
| + ASSERT_STREQ("", error_msg.c_str());
|
| + ASSERT_EQ(kTitle, action->title());
|
| + ASSERT_EQ(1u, action->icon_paths().size());
|
| + ASSERT_EQ(kIcon, action->icon_paths()[0]);
|
| + ASSERT_EQ(ExtensionAction::PAGE_ACTION, action->type());
|
| }
|
|
|
| TEST(ExtensionTest, IdIsValid) {
|
|
|