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

Unified Diff: chrome/browser/extensions/extension_context_menu_browsertest.cc

Issue 6799020: Add support for a "frame" context option to chrome.contextMenus.create/update. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Update docs. Created 9 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_context_menu_browsertest.cc
diff --git a/chrome/browser/extensions/extension_context_menu_browsertest.cc b/chrome/browser/extensions/extension_context_menu_browsertest.cc
index 3a739c13bba05267e0b588a78e95630c811e2e39..7c6e34e3647aaf904a07b8128587d1898a425ce4 100644
--- a/chrome/browser/extensions/extension_context_menu_browsertest.cc
+++ b/chrome/browser/extensions/extension_context_menu_browsertest.cc
@@ -131,12 +131,14 @@ class ExtensionContextMenuBrowserTest : public ExtensionBrowserTest {
TestRenderViewContextMenu* CreateMenu(Browser* browser,
const GURL& page_url,
- const GURL& link_url) {
+ const GURL& link_url,
+ const GURL& frame_url) {
TabContents* tab_contents = browser->GetSelectedTabContents();
WebContextMenuData data;
ContextMenuParams params(data);
params.page_url = page_url;
params.link_url = link_url;
+ params.frame_url = frame_url;
TestRenderViewContextMenu* menu =
new TestRenderViewContextMenu(tab_contents, params);
menu->Init();
@@ -180,9 +182,10 @@ class ExtensionContextMenuBrowserTest : public ExtensionBrowserTest {
// was found.
bool MenuHasItemWithLabel(const GURL& page_url,
const GURL& link_url,
+ const GURL& frame_url,
const std::string& label) {
scoped_ptr<TestRenderViewContextMenu> menu(
- CreateMenu(browser(), page_url, link_url));
+ CreateMenu(browser(), page_url, link_url, frame_url));
return menu->HasExtensionItemWithLabel(label);
}
};
@@ -200,7 +203,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionContextMenuBrowserTest, Simple) {
// Create and build our test context menu.
scoped_ptr<TestRenderViewContextMenu> menu(
- CreateMenu(browser(), page_url, GURL()));
+ CreateMenu(browser(), page_url, GURL(), GURL()));
// Look for the extension item in the menu, and execute it.
int command_id = IDC_EXTENSIONS_CONTEXT_CUSTOM_FIRST;
@@ -225,18 +228,22 @@ IN_PROC_BROWSER_TEST_F(ExtensionContextMenuBrowserTest, Patterns) {
GURL google_url("http://www.google.com");
ASSERT_TRUE(MenuHasItemWithLabel(google_url,
GURL(),
+ GURL(),
std::string("test_item1")));
ASSERT_TRUE(MenuHasItemWithLabel(google_url,
GURL(),
+ GURL(),
std::string("test_item2")));
// Now check with a non-matching url.
GURL test_url("http://www.test.com");
ASSERT_FALSE(MenuHasItemWithLabel(test_url,
GURL(),
+ GURL(),
std::string("test_item1")));
ASSERT_FALSE(MenuHasItemWithLabel(test_url,
GURL(),
+ GURL(),
std::string("test_item2")));
}
@@ -260,7 +267,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionContextMenuBrowserTest, LongTitle) {
// truncated.
GURL url("http://foo.com/");
scoped_ptr<TestRenderViewContextMenu> menu(
- CreateMenu(browser(), url, GURL()));
+ CreateMenu(browser(), url, GURL(), GURL()));
string16 label;
ASSERT_TRUE(menu->GetItemLabel(item->id(), &label));
@@ -325,7 +332,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionContextMenuBrowserTest, Separators) {
GURL url("http://www.google.com/");
scoped_ptr<TestRenderViewContextMenu> menu(
- CreateMenu(browser(), url, GURL()));
+ CreateMenu(browser(), url, GURL(), GURL()));
// The top-level item should be an "automagic parent" with the extension's
// name.
@@ -348,7 +355,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionContextMenuBrowserTest, Separators) {
ui_test_utils::NavigateToURL(browser(),
GURL(extension->GetResourceURL("test2.html")));
listener2.WaitUntilSatisfied();
- menu.reset(CreateMenu(browser(), url, GURL()));
+ menu.reset(CreateMenu(browser(), url, GURL(), GURL()));
ASSERT_TRUE(menu->GetMenuModelAndItemIndex(
IDC_EXTENSIONS_CONTEXT_CUSTOM_FIRST, &model, &index));
EXPECT_EQ(UTF8ToUTF16("parent"), model->GetLabelAt(index));
@@ -368,20 +375,23 @@ IN_PROC_BROWSER_TEST_F(ExtensionContextMenuBrowserTest, TargetURLs) {
GURL non_google_url("http://www.foo.com");
// No target url - the item should not appear.
- ASSERT_FALSE(MenuHasItemWithLabel(google_url, GURL(), std::string("item1")));
+ ASSERT_FALSE(MenuHasItemWithLabel(
+ google_url, GURL(), GURL(), std::string("item1")));
// A matching target url - the item should appear.
ASSERT_TRUE(MenuHasItemWithLabel(google_url,
google_url,
+ GURL(),
std::string("item1")));
// A non-matching target url - the item should not appear.
ASSERT_FALSE(MenuHasItemWithLabel(google_url,
non_google_url,
+ GURL(),
std::string("item1")));
}
-// Tests adding a simple context menu item.
+// Tests adding of context menus in incognito mode.
IN_PROC_BROWSER_TEST_F(ExtensionContextMenuBrowserTest, IncognitoSplit) {
ExtensionTestMessageListener created("created item regular", false);
ExtensionTestMessageListener created_incognito("created item incognito",
@@ -408,9 +418,9 @@ IN_PROC_BROWSER_TEST_F(ExtensionContextMenuBrowserTest, IncognitoSplit) {
Browser::TYPE_NORMAL, false);
ASSERT_TRUE(browser_incognito);
scoped_ptr<TestRenderViewContextMenu> menu(
- CreateMenu(browser(), page_url, GURL()));
+ CreateMenu(browser(), page_url, GURL(), GURL()));
scoped_ptr<TestRenderViewContextMenu> menu_incognito(
- CreateMenu(browser_incognito, page_url, GURL()));
+ CreateMenu(browser_incognito, page_url, GURL(), GURL()));
// Look for the extension item in the menu, and execute it.
int command_id = IDC_EXTENSIONS_CONTEXT_CUSTOM_FIRST;
@@ -427,3 +437,25 @@ IN_PROC_BROWSER_TEST_F(ExtensionContextMenuBrowserTest, IncognitoSplit) {
menu_incognito->ExecuteCommand(command_id);
ASSERT_TRUE(onclick_incognito.WaitUntilSatisfied());
}
+
+// Tests that items with a context of frames only appear when the menu is
+// invoked in a frame.
+IN_PROC_BROWSER_TEST_F(ExtensionContextMenuBrowserTest, Frames) {
+ ExtensionTestMessageListener listener("created items", false);
+ ASSERT_TRUE(LoadContextMenuExtension("frames"));
+ ASSERT_TRUE(listener.WaitUntilSatisfied());
+
+ GURL page_url("http://www.google.com");
+ GURL no_frame_url;
+ GURL frame_url("http://www.google.com");
+
+ ASSERT_TRUE(MenuHasItemWithLabel(
+ page_url, GURL(), no_frame_url, std::string("Page item")));
+ ASSERT_FALSE(MenuHasItemWithLabel(
+ page_url, GURL(), no_frame_url, std::string("Frame item")));
+
+ ASSERT_TRUE(MenuHasItemWithLabel(
+ page_url, GURL(), frame_url, std::string("Page item")));
+ ASSERT_TRUE(MenuHasItemWithLabel(
+ page_url, GURL(), frame_url, std::string("Frame item")));
+}

Powered by Google App Engine
This is Rietveld 408576698