Chromium Code Reviews| Index: chrome/browser/extensions/menu_manager_unittest.cc |
| diff --git a/chrome/browser/extensions/menu_manager_unittest.cc b/chrome/browser/extensions/menu_manager_unittest.cc |
| index 546e5214df24abd6dcd5ccba397c2b7a1286510c..7c654efb19deeb52aab21bcc8f97008c2fa9db61 100644 |
| --- a/chrome/browser/extensions/menu_manager_unittest.cc |
| +++ b/chrome/browser/extensions/menu_manager_unittest.cc |
| @@ -189,6 +189,69 @@ TEST_F(MenuManagerTest, ChildFunctions) { |
| ASSERT_EQ(0, item2->child_count()); |
| } |
| +TEST_F(MenuManagerTest, PopulateFromValue) { |
| + Extension* extension = AddExtension("test"); |
| + base::DictionaryValue value; |
| + |
| + bool incognito = true; |
|
not at google - send to devlin
2012/08/07 02:00:11
have a look at using ValueBuilder (c/c/e/value_bui
chebert
2012/08/13 22:41:52
I don't think it would be more concise, since I us
|
| + value.SetBoolean("incognito", incognito); |
| + value.SetString("string_uid", std::string()); |
| + int type = MenuItem::CHECKBOX; |
| + value.SetInteger("type", type); |
| + std::string title("TITLE"); |
| + value.SetString("title", title); |
| + bool checked = true; |
| + value.SetBoolean("checked", checked); |
| + bool enabled = true; |
| + value.SetBoolean("enabled", enabled); |
| + MenuItem::ContextList contexts; |
| + contexts.Add(MenuItem::PAGE); |
| + contexts.Add(MenuItem::SELECTION); |
| + int context_value = 0; |
| + ASSERT_TRUE(contexts.ToValue()->GetAsInteger(&context_value)); |
| + value.SetInteger("contexts", context_value); |
| + |
| + ListValue* document_url_patterns(new ListValue()); |
| + document_url_patterns->Append( |
| + Value::CreateStringValue("http://www.google.com/*")); |
| + document_url_patterns->Append( |
| + Value::CreateStringValue("http://www.reddit.com/*")); |
| + value.Set("document_url_patterns", document_url_patterns); |
| + |
| + ListValue* target_url_patterns(new ListValue()); |
| + target_url_patterns->Append( |
| + Value::CreateStringValue("http://www.yahoo.com/*")); |
| + target_url_patterns->Append( |
| + Value::CreateStringValue("http://www.facebook.com/*")); |
| + value.Set("target_url_patterns", target_url_patterns); |
| + |
| + std::string error; |
| + scoped_ptr<MenuItem> item(MenuItem::Populate(extension->id(), value, &error)); |
| + ASSERT_TRUE(item.get()); |
| + |
| + EXPECT_EQ(extension->id(), item->extension_id()); |
| + EXPECT_EQ(incognito, item->incognito()); |
| + EXPECT_EQ(title, item->title()); |
| + EXPECT_EQ(checked, item->checked()); |
| + EXPECT_EQ(item->checked(), item->checked()); |
| + EXPECT_EQ(enabled, item->enabled()); |
| + EXPECT_EQ(contexts, item->contexts()); |
| + |
| + URLPatternSet document_url_pattern_set; |
| + document_url_pattern_set.Populate(*document_url_patterns, |
| + URLPattern::SCHEME_ALL, |
| + true, |
| + &error); |
| + EXPECT_EQ(document_url_pattern_set, item->document_url_patterns()); |
| + |
| + URLPatternSet target_url_pattern_set; |
| + target_url_pattern_set.Populate(*target_url_patterns, |
| + URLPattern::SCHEME_ALL, |
| + true, |
| + &error); |
| + EXPECT_EQ(target_url_pattern_set, item->target_url_patterns()); |
| +} |
| + |
| // Tests that deleting a parent properly removes descendants. |
| TEST_F(MenuManagerTest, DeleteParent) { |
| Extension* extension = AddExtension("1111"); |