| Index: chrome/common/extensions/extension_unittest.cc
|
| ===================================================================
|
| --- chrome/common/extensions/extension_unittest.cc (revision 29521)
|
| +++ chrome/common/extensions/extension_unittest.cc (working copy)
|
| @@ -300,16 +300,16 @@
|
| scoped_ptr<ExtensionAction> action;
|
| DictionaryValue input;
|
|
|
| - // First try with an empty dictionary. We should get nothing back.
|
| + // First try with an empty dictionary.
|
| ASSERT_TRUE(extension.LoadExtensionActionHelper(
|
| - &input, &error_msg, ExtensionAction::PAGE_ACTION) == NULL);
|
| - ASSERT_STRNE("", error_msg.c_str());
|
| + &input, &error_msg, ExtensionAction::PAGE_ACTION) != NULL);
|
| + ASSERT_STREQ("", error_msg.c_str());
|
| error_msg = "";
|
|
|
| // Now try the same, but as a browser action. Ensure same results.
|
| ASSERT_TRUE(extension.LoadExtensionActionHelper(
|
| - &input, &error_msg, ExtensionAction::BROWSER_ACTION) == NULL);
|
| - ASSERT_STRNE("", error_msg.c_str());
|
| + &input, &error_msg, ExtensionAction::BROWSER_ACTION) != NULL);
|
| + ASSERT_STREQ("", error_msg.c_str());
|
| error_msg = "";
|
|
|
| // Now setup some values to use in the page action.
|
| @@ -332,6 +332,7 @@
|
| ASSERT_TRUE(NULL != action.get());
|
| ASSERT_STREQ("", error_msg.c_str());
|
| ASSERT_STREQ(id.c_str(), action->id().c_str());
|
| + // No title, so fall back to name.
|
| 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());
|
| @@ -345,6 +346,7 @@
|
| ASSERT_STREQ("", error_msg.c_str());
|
| // Browser actions don't have an id, page actions do.
|
| ASSERT_STREQ("", action->id().c_str());
|
| + // No title, so fall back to name.
|
| 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());
|
| @@ -390,14 +392,14 @@
|
| ASSERT_STREQ("", error_msg.c_str());
|
| error_msg = "";
|
|
|
| - // Then remove the name key.
|
| + // Then remove the name key. It's optional, so no error.
|
| copy.reset(static_cast<DictionaryValue*>(input.DeepCopy()));
|
| copy->Remove(keys::kName, NULL);
|
| action.reset(extension.LoadExtensionActionHelper(
|
| copy.get(), &error_msg, ExtensionAction::PAGE_ACTION));
|
| - ASSERT_TRUE(NULL == action.get());
|
| - ASSERT_TRUE(MatchPattern(error_msg.c_str(),
|
| - errors::kInvalidPageActionDefaultTitle));
|
| + ASSERT_TRUE(NULL != action.get());
|
| + ASSERT_STREQ("", action->title().c_str());
|
| + ASSERT_STREQ("", error_msg.c_str());
|
| error_msg = "";
|
|
|
| // Same test (name key), but with browser action.
|
| @@ -405,9 +407,9 @@
|
| copy->Remove(keys::kName, NULL);
|
| action.reset(extension.LoadExtensionActionHelper(
|
| copy.get(), &error_msg, ExtensionAction::BROWSER_ACTION));
|
| - ASSERT_TRUE(NULL == action.get());
|
| - ASSERT_TRUE(MatchPattern(error_msg.c_str(),
|
| - errors::kInvalidPageActionDefaultTitle));
|
| + ASSERT_TRUE(NULL != action.get());
|
| + ASSERT_STREQ("", action->title().c_str());
|
| + ASSERT_STREQ("", error_msg.c_str());
|
| error_msg = "";
|
|
|
| // Then remove the icon paths key.
|
| @@ -418,7 +420,7 @@
|
| ASSERT_TRUE(NULL != action.get());
|
| error_msg = "";
|
|
|
| - // Same test (name key), but with browser action.
|
| + // Same test (icon paths key), but with browser action.
|
| copy.reset(static_cast<DictionaryValue*>(input.DeepCopy()));
|
| copy->Remove(keys::kPageActionIcons, NULL);
|
| action.reset(extension.LoadExtensionActionHelper(
|
| @@ -445,6 +447,70 @@
|
| ASSERT_EQ(1u, action->icon_paths().size());
|
| ASSERT_EQ(kIcon, action->icon_paths()[0]);
|
| ASSERT_EQ(ExtensionAction::PAGE_ACTION, action->type());
|
| +
|
| + // Same test, but with browser action.
|
| + action.reset(extension.LoadExtensionActionHelper(
|
| + &input, &error_msg, ExtensionAction::BROWSER_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::BROWSER_ACTION, action->type());
|
| +
|
| + // Invalid title should give an error even with a valid name.
|
| + input.Clear();
|
| + input.SetInteger(keys::kPageActionDefaultTitle, 42);
|
| + input.SetString(keys::kName, name);
|
| + action.reset(extension.LoadExtensionActionHelper(
|
| + &input, &error_msg, ExtensionAction::PAGE_ACTION));
|
| + ASSERT_TRUE(NULL == action.get());
|
| + ASSERT_STREQ(errors::kInvalidPageActionDefaultTitle, error_msg.c_str());
|
| + error_msg = "";
|
| +
|
| + // Invalid name should give an error only with no title.
|
| + input.SetString(keys::kPageActionDefaultTitle, kTitle);
|
| + input.SetInteger(keys::kName, 123);
|
| + action.reset(extension.LoadExtensionActionHelper(
|
| + &input, &error_msg, ExtensionAction::PAGE_ACTION));
|
| + ASSERT_TRUE(NULL != action.get());
|
| + ASSERT_EQ(kTitle, action->title());
|
| + ASSERT_STREQ("", error_msg.c_str());
|
| + error_msg = "";
|
| +
|
| + input.Remove(keys::kPageActionDefaultTitle, NULL);
|
| + action.reset(extension.LoadExtensionActionHelper(
|
| + &input, &error_msg, ExtensionAction::PAGE_ACTION));
|
| + ASSERT_TRUE(NULL == action.get());
|
| + ASSERT_STREQ(errors::kInvalidPageActionName, error_msg.c_str());
|
| + error_msg = "";
|
| +
|
| + // Same test (invalid title) for browser actions.
|
| + input.Clear();
|
| + input.SetInteger(keys::kPageActionDefaultTitle, 42);
|
| + input.SetString(keys::kName, name);
|
| + action.reset(extension.LoadExtensionActionHelper(
|
| + &input, &error_msg, ExtensionAction::BROWSER_ACTION));
|
| + ASSERT_TRUE(NULL == action.get());
|
| + ASSERT_STREQ(errors::kInvalidPageActionDefaultTitle, error_msg.c_str());
|
| + error_msg = "";
|
| +
|
| + // Same tests (invalid name) for browser actions.
|
| + input.SetString(keys::kPageActionDefaultTitle, kTitle);
|
| + input.SetInteger(keys::kName, 123);
|
| + action.reset(extension.LoadExtensionActionHelper(
|
| + &input, &error_msg, ExtensionAction::BROWSER_ACTION));
|
| + ASSERT_TRUE(NULL != action.get());
|
| + ASSERT_EQ(kTitle, action->title());
|
| + ASSERT_STREQ("", error_msg.c_str());
|
| + error_msg = "";
|
| +
|
| + input.Remove(keys::kPageActionDefaultTitle, NULL);
|
| + action.reset(extension.LoadExtensionActionHelper(
|
| + &input, &error_msg, ExtensionAction::BROWSER_ACTION));
|
| + ASSERT_TRUE(NULL == action.get());
|
| + ASSERT_STREQ(errors::kInvalidPageActionName, error_msg.c_str());
|
| + error_msg = "";
|
| }
|
|
|
| TEST(ExtensionTest, IdIsValid) {
|
|
|