| Index: chrome/browser/apps/guest_view/web_view_browsertest.cc
|
| diff --git a/chrome/browser/apps/guest_view/web_view_browsertest.cc b/chrome/browser/apps/guest_view/web_view_browsertest.cc
|
| index a7ef8be795ec7260c255e11b463a2f9916d3ed6a..2d23f3dc25113ee93b007af994a83ee59344a7c8 100644
|
| --- a/chrome/browser/apps/guest_view/web_view_browsertest.cc
|
| +++ b/chrome/browser/apps/guest_view/web_view_browsertest.cc
|
| @@ -5,6 +5,7 @@
|
| #include "base/path_service.h"
|
| #include "base/strings/stringprintf.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| +#include "chrome/app/chrome_command_ids.h"
|
| #include "chrome/browser/apps/app_browsertest_util.h"
|
| #include "chrome/browser/chrome_content_browser_client.h"
|
| #include "chrome/browser/prerender/prerender_link_manager.h"
|
| @@ -179,7 +180,8 @@ class MockWebContentsDelegate : public content::WebContentsDelegate {
|
| public:
|
| MockWebContentsDelegate()
|
| : requested_(false),
|
| - checked_(false) {}
|
| + checked_(false),
|
| + open_url_from_tab_(false) {}
|
| ~MockWebContentsDelegate() override {}
|
|
|
| void RequestMediaAccessPermission(
|
| @@ -200,6 +202,15 @@ class MockWebContentsDelegate : public content::WebContentsDelegate {
|
| return true;
|
| }
|
|
|
| + content::WebContents* OpenURLFromTab(
|
| + content::WebContents* source,
|
| + const content::OpenURLParams& params) override {
|
| + open_url_from_tab_ = true;
|
| + if (open_url_message_loop_runner_.get())
|
| + open_url_message_loop_runner_->Quit();
|
| + return NULL;
|
| + }
|
| +
|
| void WaitForRequestMediaPermission() {
|
| if (requested_)
|
| return;
|
| @@ -214,11 +225,20 @@ class MockWebContentsDelegate : public content::WebContentsDelegate {
|
| check_message_loop_runner_->Run();
|
| }
|
|
|
| + void WaitForOpenURLFromTab() {
|
| + if (open_url_from_tab_)
|
| + return;
|
| + open_url_message_loop_runner_ = new content::MessageLoopRunner;
|
| + open_url_message_loop_runner_->Run();
|
| + }
|
| +
|
| private:
|
| bool requested_;
|
| bool checked_;
|
| + bool open_url_from_tab_;
|
| scoped_refptr<content::MessageLoopRunner> request_message_loop_runner_;
|
| scoped_refptr<content::MessageLoopRunner> check_message_loop_runner_;
|
| + scoped_refptr<content::MessageLoopRunner> open_url_message_loop_runner_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(MockWebContentsDelegate);
|
| };
|
| @@ -1831,6 +1851,24 @@ void WebViewTest::MediaAccessAPIAllowTestHelper(const std::string& test_name) {
|
| mock->WaitForRequestMediaPermission();
|
| }
|
|
|
| +IN_PROC_BROWSER_TEST_F(WebViewTest, ContextMenuLanguageSettings) {
|
| + LoadAppWithGuest("web_view/context_menus/basic");
|
| +
|
| + content::WebContents* guest_web_contents = GetGuestWebContents();
|
| + content::WebContents* embedder = GetEmbedderWebContents();
|
| + ASSERT_TRUE(embedder);
|
| + scoped_ptr<MockWebContentsDelegate> mock(new MockWebContentsDelegate());
|
| + embedder->SetDelegate(mock.get());
|
| +
|
| + // Create and build our test context menu.
|
| + GURL page_url("http://www.google.com");
|
| + scoped_ptr<TestRenderViewContextMenu> menu(TestRenderViewContextMenu::Create(
|
| + guest_web_contents, page_url, GURL(), GURL()));
|
| + menu->ExecuteCommand(IDC_CONTENT_CONTEXT_LANGUAGE_SETTINGS, 0);
|
| +
|
| + mock->WaitForOpenURLFromTab();
|
| +}
|
| +
|
| IN_PROC_BROWSER_TEST_F(WebViewTest, ContextMenusAPI_Basic) {
|
| LoadAppWithGuest("web_view/context_menus/basic");
|
|
|
|
|