1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/extensions/extension_apitest.h" 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/extensions/extension_browser_event_router.h" 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/extensions/extension_service.h" 8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/profiles/profile.h" 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/ui/browser.h" 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/common/extensions/extension_action.h" 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/test/ui_test_utils.h" 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "content/browser/tab_contents/tab_contents.h" 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochIN_PROC_BROWSER_TEST_F(ExtensionApiTest, ContextMenus) { 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE(RunExtensionTest("context_menus/basics")) << message_; 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE(RunExtensionTest("context_menus/no_perms")) << message_; 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// crbug.com/51436 -- creating context menus from multiple script contexts 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// should work. 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenIN_PROC_BROWSER_TEST_F(ExtensionApiTest, ContextMenusFromMultipleContexts) { 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ASSERT_TRUE(test_server()->Start()); 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ASSERT_TRUE(RunExtensionTest("context_menus/add_from_multiple_contexts")) 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen << message_; 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const Extension* extension = GetSingleLoadedExtension(); 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ASSERT_TRUE(extension) << message_; 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen { 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Tell the extension to update the page action state. 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ResultCatcher catcher; 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ui_test_utils::NavigateToURL(browser(), 32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen extension->GetResourceURL("popup.html")); 33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ASSERT_TRUE(catcher.GetNextResult()); 34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen } 35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen { 37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Tell the extension to update the page action state again. 38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ResultCatcher catcher; 39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ui_test_utils::NavigateToURL(browser(), 40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen extension->GetResourceURL("popup2.html")); 41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ASSERT_TRUE(catcher.GetNextResult()); 42ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen } 43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 44ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 45