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

Side by Side Diff: chrome/test/base/chrome_render_view_test.cc

Issue 1143593003: Reland "Disable user gesture checking for all autofill browser tests." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/test/base/chrome_render_view_test.h" 5 #include "chrome/test/base/chrome_render_view_test.h"
6 6
7 #include "base/debug/leak_annotations.h" 7 #include "base/debug/leak_annotations.h"
8 #include "chrome/browser/chrome_content_browser_client.h" 8 #include "chrome/browser/chrome_content_browser_client.h"
9 #include "chrome/common/chrome_content_client.h" 9 #include "chrome/common/chrome_content_client.h"
10 #include "chrome/common/render_messages.h" 10 #include "chrome/common/render_messages.h"
11 #include "chrome/renderer/chrome_content_renderer_client.h" 11 #include "chrome/renderer/chrome_content_renderer_client.h"
12 #include "chrome/renderer/spellchecker/spellcheck.h" 12 #include "chrome/renderer/spellchecker/spellcheck.h"
13 #include "chrome/test/base/chrome_unit_test_suite.h" 13 #include "chrome/test/base/chrome_unit_test_suite.h"
14 #include "components/autofill/content/renderer/autofill_agent.h" 14 #include "components/autofill/content/renderer/autofill_agent.h"
15 #include "components/autofill/content/renderer/password_autofill_agent.h" 15 #include "components/autofill/content/renderer/password_autofill_agent.h"
16 #include "components/autofill/content/renderer/test_password_autofill_agent.h" 16 #include "components/autofill/content/renderer/test_password_autofill_agent.h"
17 #include "components/autofill/content/renderer/test_password_generation_agent.h" 17 #include "components/autofill/content/renderer/test_password_generation_agent.h"
18 #include "content/public/browser/native_web_keyboard_event.h" 18 #include "content/public/browser/native_web_keyboard_event.h"
19 #include "content/public/common/renderer_preferences.h" 19 #include "content/public/common/renderer_preferences.h"
20 #include "content/public/renderer/render_view.h" 20 #include "content/public/renderer/render_view.h"
21 #include "testing/gmock/include/gmock/gmock.h"
21 #include "third_party/WebKit/public/platform/WebURLRequest.h" 22 #include "third_party/WebKit/public/platform/WebURLRequest.h"
22 #include "third_party/WebKit/public/web/WebFrame.h" 23 #include "third_party/WebKit/public/web/WebFrame.h"
23 #include "third_party/WebKit/public/web/WebInputEvent.h" 24 #include "third_party/WebKit/public/web/WebInputEvent.h"
24 #include "third_party/WebKit/public/web/WebKit.h" 25 #include "third_party/WebKit/public/web/WebKit.h"
25 #include "third_party/WebKit/public/web/WebScriptController.h" 26 #include "third_party/WebKit/public/web/WebScriptController.h"
26 #include "third_party/WebKit/public/web/WebScriptSource.h" 27 #include "third_party/WebKit/public/web/WebScriptSource.h"
27 #include "third_party/WebKit/public/web/WebView.h" 28 #include "third_party/WebKit/public/web/WebView.h"
28 29
29 #if defined(ENABLE_EXTENSIONS) 30 #if defined(ENABLE_EXTENSIONS)
30 #include "chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.h" 31 #include "chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.h"
31 #include "extensions/browser/extension_function_dispatcher.h" 32 #include "extensions/browser/extension_function_dispatcher.h"
32 #include "extensions/common/extension.h" 33 #include "extensions/common/extension.h"
33 #include "extensions/renderer/dispatcher.h" 34 #include "extensions/renderer/dispatcher.h"
34 #include "extensions/renderer/event_bindings.h" 35 #include "extensions/renderer/event_bindings.h"
35 #endif 36 #endif
36 37
37 using autofill::AutofillAgent; 38 using autofill::AutofillAgent;
38 using autofill::PasswordAutofillAgent; 39 using autofill::PasswordAutofillAgent;
39 using autofill::PasswordGenerationAgent; 40 using autofill::PasswordGenerationAgent;
40 using blink::WebFrame; 41 using blink::WebFrame;
41 using blink::WebInputEvent; 42 using blink::WebInputEvent;
42 using blink::WebMouseEvent; 43 using blink::WebMouseEvent;
43 using blink::WebScriptController; 44 using blink::WebScriptController;
44 using blink::WebScriptSource; 45 using blink::WebScriptSource;
45 using blink::WebString; 46 using blink::WebString;
46 using blink::WebURLRequest; 47 using blink::WebURLRequest;
48 using content::RenderFrame;
49 using testing::NiceMock;
50 using testing::Return;
51 using testing::_;
52
53 namespace {
54
55 // An autofill agent that treats all typing as user gesture.
56 class MockAutofillAgent : public AutofillAgent {
57 public:
58 MockAutofillAgent(RenderFrame* render_frame,
59 PasswordAutofillAgent* password_autofill_agent,
60 PasswordGenerationAgent* password_generation_agent)
61 : AutofillAgent(render_frame,
62 password_autofill_agent,
63 password_generation_agent) {
64 ON_CALL(*this, IsUserGesture()).WillByDefault(Return(true));
65 }
66
67 ~MockAutofillAgent() override {}
68
69 MOCK_CONST_METHOD0(IsUserGesture, bool());
70
71 private:
72 DISALLOW_COPY_AND_ASSIGN(MockAutofillAgent);
73 };
74
75 } // namespace
47 76
48 ChromeRenderViewTest::ChromeRenderViewTest() 77 ChromeRenderViewTest::ChromeRenderViewTest()
49 : password_autofill_agent_(NULL), 78 : password_autofill_agent_(NULL),
50 password_generation_(NULL), 79 password_generation_(NULL),
51 autofill_agent_(NULL), 80 autofill_agent_(NULL),
52 chrome_render_thread_(NULL) { 81 chrome_render_thread_(NULL) {
53 } 82 }
54 83
55 ChromeRenderViewTest::~ChromeRenderViewTest() { 84 ChromeRenderViewTest::~ChromeRenderViewTest() {
56 } 85 }
57 86
58 void ChromeRenderViewTest::SetUp() { 87 void ChromeRenderViewTest::SetUp() {
59 ChromeUnitTestSuite::InitializeProviders(); 88 ChromeUnitTestSuite::InitializeProviders();
60 ChromeUnitTestSuite::InitializeResourceBundle(); 89 ChromeUnitTestSuite::InitializeResourceBundle();
61 90
62 chrome_render_thread_ = new ChromeMockRenderThread(); 91 chrome_render_thread_ = new ChromeMockRenderThread();
63 render_thread_.reset(chrome_render_thread_); 92 render_thread_.reset(chrome_render_thread_);
64 93
65 content::RenderViewTest::SetUp(); 94 content::RenderViewTest::SetUp();
66 95
67 // RenderFrame doesn't expose its Agent objects, because it has no need to 96 // RenderFrame doesn't expose its Agent objects, because it has no need to
68 // store them directly (they're stored as RenderFrameObserver*). So just 97 // store them directly (they're stored as RenderFrameObserver*). So just
69 // create another set. 98 // create another set.
70 password_autofill_agent_ = 99 password_autofill_agent_ =
71 new autofill::TestPasswordAutofillAgent(view_->GetMainRenderFrame()); 100 new autofill::TestPasswordAutofillAgent(view_->GetMainRenderFrame());
72 password_generation_ = 101 password_generation_ =
73 new autofill::TestPasswordGenerationAgent(view_->GetMainRenderFrame()); 102 new autofill::TestPasswordGenerationAgent(view_->GetMainRenderFrame());
74 autofill_agent_ = 103 autofill_agent_ = new NiceMock<MockAutofillAgent>(view_->GetMainRenderFrame(),
75 new AutofillAgent(view_->GetMainRenderFrame(), password_autofill_agent_, 104 password_autofill_agent_,
76 password_generation_); 105 password_generation_);
77 } 106 }
78 107
79 void ChromeRenderViewTest::TearDown() { 108 void ChromeRenderViewTest::TearDown() {
80 #if defined(ENABLE_EXTENSIONS) 109 #if defined(ENABLE_EXTENSIONS)
81 ChromeContentRendererClient* client = 110 ChromeContentRendererClient* client =
82 static_cast<ChromeContentRendererClient*>(content_renderer_client_.get()); 111 static_cast<ChromeContentRendererClient*>(content_renderer_client_.get());
83 client->GetExtensionDispatcherForTest()->OnRenderProcessShutdown(); 112 client->GetExtensionDispatcherForTest()->OnRenderProcessShutdown();
84 #endif 113 #endif
85 114
86 #if defined(LEAK_SANITIZER) 115 #if defined(LEAK_SANITIZER)
87 // Do this before shutting down V8 in RenderViewTest::TearDown(). 116 // Do this before shutting down V8 in RenderViewTest::TearDown().
88 // http://crbug.com/328552 117 // http://crbug.com/328552
89 __lsan_do_leak_check(); 118 __lsan_do_leak_check();
90 #endif 119 #endif
91 content::RenderViewTest::TearDown(); 120 content::RenderViewTest::TearDown();
92 } 121 }
93 122
94 content::ContentClient* ChromeRenderViewTest::CreateContentClient() { 123 content::ContentClient* ChromeRenderViewTest::CreateContentClient() {
95 return new ChromeContentClient(); 124 return new ChromeContentClient();
96 } 125 }
97 126
98 content::ContentBrowserClient* 127 content::ContentBrowserClient*
99 ChromeRenderViewTest::CreateContentBrowserClient() { 128 ChromeRenderViewTest::CreateContentBrowserClient() {
100 return new chrome::ChromeContentBrowserClient(); 129 return new chrome::ChromeContentBrowserClient();
101 } 130 }
102 131
103 content::ContentRendererClient* 132 content::ContentRendererClient*
104 ChromeRenderViewTest::CreateContentRendererClient() { 133 ChromeRenderViewTest::CreateContentRendererClient() {
105 ChromeContentRendererClient* client = new ChromeContentRendererClient(); 134 ChromeContentRendererClient* client = new ChromeContentRendererClient();
106 #if defined(ENABLE_EXTENSIONS) 135 #if defined(ENABLE_EXTENSIONS)
107 extension_dispatcher_delegate_.reset( 136 extension_dispatcher_delegate_.reset(
108 new ChromeExtensionsDispatcherDelegate()); 137 new ChromeExtensionsDispatcherDelegate());
109 client->SetExtensionDispatcherForTest( 138 client->SetExtensionDispatcherForTest(
110 new extensions::Dispatcher(extension_dispatcher_delegate_.get())); 139 new extensions::Dispatcher(extension_dispatcher_delegate_.get()));
111 #endif 140 #endif
112 #if defined(ENABLE_SPELLCHECK) 141 #if defined(ENABLE_SPELLCHECK)
113 client->SetSpellcheck(new SpellCheck()); 142 client->SetSpellcheck(new SpellCheck());
114 #endif 143 #endif
115 return client; 144 return client;
116 } 145 }
146
147 void ChromeRenderViewTest::EnableUserGestureSimulationForAutofill() {
148 EXPECT_CALL(*(static_cast<MockAutofillAgent*>(autofill_agent_)),
149 IsUserGesture()).WillRepeatedly(Return(true));
150 }
151
152 void ChromeRenderViewTest::DisableUserGestureSimulationForAutofill() {
153 EXPECT_CALL(*(static_cast<MockAutofillAgent*>(autofill_agent_)),
154 IsUserGesture()).WillRepeatedly(Return(false));
155 }
OLDNEW
« no previous file with comments | « chrome/test/base/chrome_render_view_test.h ('k') | components/autofill/content/renderer/autofill_agent.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698