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 |