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

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

Issue 92043: Refactor ExtensionView to support a UI-less extension instance.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 "base/ref_counted.h" 5 #include "base/ref_counted.h"
6 #include "chrome/browser/browser.h" 6 #include "chrome/browser/browser.h"
7 #include "chrome/browser/renderer_host/render_view_host.h" 7 #include "chrome/browser/renderer_host/render_view_host.h"
8 #include "chrome/browser/extensions/extension_error_reporter.h" 8 #include "chrome/browser/extensions/extension_error_reporter.h"
9 #include "chrome/browser/extensions/extension_view.h" 9 #include "chrome/browser/extensions/extension_host.h"
10 #include "chrome/browser/extensions/extensions_service.h" 10 #include "chrome/browser/extensions/extensions_service.h"
11 #include "chrome/browser/extensions/test_extension_loader.h" 11 #include "chrome/browser/extensions/test_extension_loader.h"
12 #include "chrome/browser/tab_contents/site_instance.h" 12 #include "chrome/browser/tab_contents/site_instance.h"
13 #include "chrome/common/chrome_paths.h" 13 #include "chrome/common/chrome_paths.h"
14 #include "chrome/common/chrome_switches.h" 14 #include "chrome/common/chrome_switches.h"
15 #include "chrome/test/in_process_browser_test.h" 15 #include "chrome/test/in_process_browser_test.h"
16 #include "chrome/test/ui_test_utils.h" 16 #include "chrome/test/ui_test_utils.h"
17 17
18 namespace { 18 namespace {
19 19
20 // How long to wait for the extension to put up a javascript alert before giving 20 // How long to wait for the extension to put up a javascript alert before giving
21 // up. 21 // up.
22 const int kAlertTimeoutMs = 20000; 22 const int kAlertTimeoutMs = 20000;
23 23
24 // The extension we're using as our test case. 24 // The extension we're using as our test case.
25 const char* kExtensionId = "00123456789abcdef0123456789abcdef0123456"; 25 const char* kExtensionId = "00123456789abcdef0123456789abcdef0123456";
26 26
27 }; // namespace 27 }; // namespace
28 28
29 // This class starts up an extension process and waits until it tries to put 29 // This class starts up an extension process and waits until it tries to put
30 // up a javascript alert. 30 // up a javascript alert.
31 class MockExtensionView : public ExtensionView { 31 class MockExtensionHost : public ExtensionHost {
32 public: 32 public:
33 MockExtensionView(Extension* extension, const GURL& url, 33 MockExtensionHost(Extension* extension, const GURL& url,
34 SiteInstance* instance, Browser* browser) 34 SiteInstance* instance)
35 : ExtensionView(extension, url, instance, browser), got_message_(false) { 35 : ExtensionHost(extension, instance),
36 InitHidden(); 36 got_message_(false) {
37 CreateRenderView(url, NULL);
37 MessageLoop::current()->PostDelayedTask(FROM_HERE, 38 MessageLoop::current()->PostDelayedTask(FROM_HERE,
38 new MessageLoop::QuitTask, kAlertTimeoutMs); 39 new MessageLoop::QuitTask, kAlertTimeoutMs);
39 ui_test_utils::RunMessageLoop(); 40 ui_test_utils::RunMessageLoop();
40 } 41 }
41 42
42 virtual ExtensionFunctionDispatcher* CreateExtensionFunctionDispatcher( 43 virtual ExtensionFunctionDispatcher* CreateExtensionFunctionDispatcher(
43 RenderViewHost* render_view_host) { 44 RenderViewHost* render_view_host) {
44 NOTREACHED(); 45 NOTREACHED();
45 return NULL; 46 return NULL;
46 } 47 }
47 48
48 bool got_message() { return got_message_; } 49 bool got_message() { return got_message_; }
49 private: 50 private:
50 virtual void RunJavaScriptMessage( 51 virtual void RunJavaScriptMessage(
51 const std::wstring& message, 52 const std::wstring& message,
52 const std::wstring& default_prompt, 53 const std::wstring& default_prompt,
53 const GURL& frame_url, 54 const GURL& frame_url,
54 const int flags, 55 const int flags,
55 IPC::Message* reply_msg, 56 IPC::Message* reply_msg,
56 bool* did_suppress_message) { 57 bool* did_suppress_message) {
57 got_message_ = true; 58 got_message_ = true;
58 MessageLoopForUI::current()->Quit(); 59 MessageLoopForUI::current()->Quit();
59 60
60 // Call super, otherwise we'll leak reply_msg. 61 // Call super, otherwise we'll leak reply_msg.
61 ExtensionView::RunJavaScriptMessage( 62 ExtensionHost::RunJavaScriptMessage(
62 message, default_prompt, frame_url, flags, 63 message, default_prompt, frame_url, flags,
63 reply_msg, did_suppress_message); 64 reply_msg, did_suppress_message);
64 } 65 }
65 66
66 bool got_message_; 67 bool got_message_;
67 }; 68 };
68 69
69 class ExtensionViewTest : public InProcessBrowserTest { 70 class ExtensionViewTest : public InProcessBrowserTest {
70 public: 71 public:
71 virtual void SetUp() { 72 virtual void SetUp() {
(...skipping 21 matching lines...) Expand all
93 AppendASCII("good").AppendASCII("extension1").AppendASCII("1"); 94 AppendASCII("good").AppendASCII("extension1").AppendASCII("1");
94 ASSERT_TRUE(file_util::DirectoryExists(path)); // sanity check 95 ASSERT_TRUE(file_util::DirectoryExists(path)); // sanity check
95 96
96 // Wait for the extension to load and grab a pointer to it. 97 // Wait for the extension to load and grab a pointer to it.
97 TestExtensionLoader loader(browser()->profile()); 98 TestExtensionLoader loader(browser()->profile());
98 Extension* extension = loader.Load(kExtensionId, path); 99 Extension* extension = loader.Load(kExtensionId, path);
99 ASSERT_TRUE(extension); 100 ASSERT_TRUE(extension);
100 GURL url = Extension::GetResourceURL(extension->url(), "toolstrip1.html"); 101 GURL url = Extension::GetResourceURL(extension->url(), "toolstrip1.html");
101 102
102 // Start the extension process and wait for it to show a javascript alert. 103 // Start the extension process and wait for it to show a javascript alert.
103 MockExtensionView view(extension, url, 104 MockExtensionHost host(extension, url,
104 browser()->profile()->GetExtensionsService()->GetSiteInstanceForURL(url), 105 browser()->profile()->GetExtensionsService()->GetSiteInstanceForURL(url));
105 browser()); 106 EXPECT_TRUE(host.got_message());
106 EXPECT_TRUE(view.got_message());
107 } 107 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_view.cc ('k') | chrome/browser/extensions/extensions_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698