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