Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <vector> | 5 #include <vector> |
| 6 | 6 |
| 7 #include "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
| 8 #include "base/memory/scoped_vector.h" | 8 #include "base/memory/scoped_vector.h" |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 182 ASSERT_EQ(1u, manager_.MenuItems(item2->extension_id())->size()); | 182 ASSERT_EQ(1u, manager_.MenuItems(item2->extension_id())->size()); |
| 183 ASSERT_EQ(item2, manager_.MenuItems(item2->extension_id())->at(0)); | 183 ASSERT_EQ(item2, manager_.MenuItems(item2->extension_id())->at(0)); |
| 184 | 184 |
| 185 // Remove child2_item. | 185 // Remove child2_item. |
| 186 ASSERT_TRUE(manager_.RemoveContextMenuItem(id2_child)); | 186 ASSERT_TRUE(manager_.RemoveContextMenuItem(id2_child)); |
| 187 ASSERT_EQ(1u, manager_.MenuItems(item2->extension_id())->size()); | 187 ASSERT_EQ(1u, manager_.MenuItems(item2->extension_id())->size()); |
| 188 ASSERT_EQ(item2, manager_.MenuItems(item2->extension_id())->at(0)); | 188 ASSERT_EQ(item2, manager_.MenuItems(item2->extension_id())->at(0)); |
| 189 ASSERT_EQ(0, item2->child_count()); | 189 ASSERT_EQ(0, item2->child_count()); |
| 190 } | 190 } |
| 191 | 191 |
| 192 TEST_F(MenuManagerTest, PopulateFromValue) { | |
| 193 Extension* extension = AddExtension("test"); | |
| 194 base::DictionaryValue value; | |
| 195 | |
| 196 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
| |
| 197 value.SetBoolean("incognito", incognito); | |
| 198 value.SetString("string_uid", std::string()); | |
| 199 int type = MenuItem::CHECKBOX; | |
| 200 value.SetInteger("type", type); | |
| 201 std::string title("TITLE"); | |
| 202 value.SetString("title", title); | |
| 203 bool checked = true; | |
| 204 value.SetBoolean("checked", checked); | |
| 205 bool enabled = true; | |
| 206 value.SetBoolean("enabled", enabled); | |
| 207 MenuItem::ContextList contexts; | |
| 208 contexts.Add(MenuItem::PAGE); | |
| 209 contexts.Add(MenuItem::SELECTION); | |
| 210 int context_value = 0; | |
| 211 ASSERT_TRUE(contexts.ToValue()->GetAsInteger(&context_value)); | |
| 212 value.SetInteger("contexts", context_value); | |
| 213 | |
| 214 ListValue* document_url_patterns(new ListValue()); | |
| 215 document_url_patterns->Append( | |
| 216 Value::CreateStringValue("http://www.google.com/*")); | |
| 217 document_url_patterns->Append( | |
| 218 Value::CreateStringValue("http://www.reddit.com/*")); | |
| 219 value.Set("document_url_patterns", document_url_patterns); | |
| 220 | |
| 221 ListValue* target_url_patterns(new ListValue()); | |
| 222 target_url_patterns->Append( | |
| 223 Value::CreateStringValue("http://www.yahoo.com/*")); | |
| 224 target_url_patterns->Append( | |
| 225 Value::CreateStringValue("http://www.facebook.com/*")); | |
| 226 value.Set("target_url_patterns", target_url_patterns); | |
| 227 | |
| 228 std::string error; | |
| 229 scoped_ptr<MenuItem> item(MenuItem::Populate(extension->id(), value, &error)); | |
| 230 ASSERT_TRUE(item.get()); | |
| 231 | |
| 232 EXPECT_EQ(extension->id(), item->extension_id()); | |
| 233 EXPECT_EQ(incognito, item->incognito()); | |
| 234 EXPECT_EQ(title, item->title()); | |
| 235 EXPECT_EQ(checked, item->checked()); | |
| 236 EXPECT_EQ(item->checked(), item->checked()); | |
| 237 EXPECT_EQ(enabled, item->enabled()); | |
| 238 EXPECT_EQ(contexts, item->contexts()); | |
| 239 | |
| 240 URLPatternSet document_url_pattern_set; | |
| 241 document_url_pattern_set.Populate(*document_url_patterns, | |
| 242 URLPattern::SCHEME_ALL, | |
| 243 true, | |
| 244 &error); | |
| 245 EXPECT_EQ(document_url_pattern_set, item->document_url_patterns()); | |
| 246 | |
| 247 URLPatternSet target_url_pattern_set; | |
| 248 target_url_pattern_set.Populate(*target_url_patterns, | |
| 249 URLPattern::SCHEME_ALL, | |
| 250 true, | |
| 251 &error); | |
| 252 EXPECT_EQ(target_url_pattern_set, item->target_url_patterns()); | |
| 253 } | |
| 254 | |
| 192 // Tests that deleting a parent properly removes descendants. | 255 // Tests that deleting a parent properly removes descendants. |
| 193 TEST_F(MenuManagerTest, DeleteParent) { | 256 TEST_F(MenuManagerTest, DeleteParent) { |
| 194 Extension* extension = AddExtension("1111"); | 257 Extension* extension = AddExtension("1111"); |
| 195 | 258 |
| 196 // Set up 5 items to add. | 259 // Set up 5 items to add. |
| 197 MenuItem* item1 = CreateTestItem(extension); | 260 MenuItem* item1 = CreateTestItem(extension); |
| 198 MenuItem* item2 = CreateTestItem(extension); | 261 MenuItem* item2 = CreateTestItem(extension); |
| 199 MenuItem* item3 = CreateTestItemWithID(extension, "id3"); | 262 MenuItem* item3 = CreateTestItemWithID(extension, "id3"); |
| 200 MenuItem* item4 = CreateTestItemWithID(extension, "id4"); | 263 MenuItem* item4 = CreateTestItemWithID(extension, "id4"); |
| 201 MenuItem* item5 = CreateTestItem(extension); | 264 MenuItem* item5 = CreateTestItem(extension); |
| (...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 619 ASSERT_TRUE(child1->checked()); | 682 ASSERT_TRUE(child1->checked()); |
| 620 | 683 |
| 621 // Removing |parent| should cause only |child1| to be selected. | 684 // Removing |parent| should cause only |child1| to be selected. |
| 622 manager_.RemoveContextMenuItem(parent->id()); | 685 manager_.RemoveContextMenuItem(parent->id()); |
| 623 parent = NULL; | 686 parent = NULL; |
| 624 ASSERT_FALSE(new_item->checked()); | 687 ASSERT_FALSE(new_item->checked()); |
| 625 ASSERT_TRUE(child1->checked()); | 688 ASSERT_TRUE(child1->checked()); |
| 626 } | 689 } |
| 627 | 690 |
| 628 } // namespace extensions | 691 } // namespace extensions |
| OLD | NEW |