Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(217)

Side by Side Diff: chrome/browser/extensions/menu_manager_unittest.cc

Issue 10809094: Context Menus now uses the JSON Schema Compiler. (Closed) Base URL: http://git.chromium.org/chromium/src.git@json_functions_as_properties
Patch Set: renamed unittest in url_pattern_set_unittest Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698