| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/metrics/histogram_samples.h" | 8 #include "base/metrics/histogram_samples.h" |
| 9 #include "base/metrics/statistics_recorder.h" | 9 #include "base/metrics/statistics_recorder.h" |
| 10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 252 // InProcessBrowserTest: | 252 // InProcessBrowserTest: |
| 253 virtual void SetUpOnMainThread() OVERRIDE { | 253 virtual void SetUpOnMainThread() OVERRIDE { |
| 254 // Use TestPasswordStore to remove a possible race. Normally the | 254 // Use TestPasswordStore to remove a possible race. Normally the |
| 255 // PasswordStore does its database manipulation on the DB thread, which | 255 // PasswordStore does its database manipulation on the DB thread, which |
| 256 // creates a possible race during navigation. Specifically the | 256 // creates a possible race during navigation. Specifically the |
| 257 // PasswordManager will ignore any forms in a page if the load from the | 257 // PasswordManager will ignore any forms in a page if the load from the |
| 258 // PasswordStore has not completed. | 258 // PasswordStore has not completed. |
| 259 PasswordStoreFactory::GetInstance()->SetTestingFactory( | 259 PasswordStoreFactory::GetInstance()->SetTestingFactory( |
| 260 browser()->profile(), TestPasswordStoreService::Build); | 260 browser()->profile(), TestPasswordStoreService::Build); |
| 261 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 261 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 262 ASSERT_FALSE(CommandLine::ForCurrentProcess()->HasSwitch( |
| 263 password_manager::switches::kEnableAutomaticPasswordSaving)); |
| 262 } | 264 } |
| 263 | 265 |
| 264 virtual void CleanUpOnMainThread() OVERRIDE { | 266 virtual void CleanUpOnMainThread() OVERRIDE { |
| 265 ASSERT_TRUE(embedded_test_server()->ShutdownAndWaitUntilComplete()); | 267 ASSERT_TRUE(embedded_test_server()->ShutdownAndWaitUntilComplete()); |
| 266 InProcessBrowserTest::CleanUpOnMainThread(); | 268 InProcessBrowserTest::CleanUpOnMainThread(); |
| 267 } | 269 } |
| 268 | 270 |
| 269 protected: | 271 protected: |
| 270 content::WebContents* WebContents() { | 272 content::WebContents* WebContents() { |
| 271 return browser()->tab_strip_model()->GetActiveWebContents(); | 273 return browser()->tab_strip_model()->GetActiveWebContents(); |
| 272 } | 274 } |
| 273 | 275 |
| 274 content::RenderViewHost* RenderViewHost() { | 276 content::RenderViewHost* RenderViewHost() { |
| 275 return WebContents()->GetRenderViewHost(); | 277 return WebContents()->GetRenderViewHost(); |
| 276 } | 278 } |
| 277 | 279 |
| 278 // Wrapper around ui_test_utils::NavigateToURL that waits until | 280 // Wrapper around ui_test_utils::NavigateToURL that waits until |
| 279 // DidFinishLoad() fires. Normally this function returns after | 281 // DidFinishLoad() fires. Normally this function returns after |
| 280 // DidStopLoading(), which caused flakiness as the NavigationObserver | 282 // DidStopLoading(), which caused flakiness as the NavigationObserver |
| 281 // would sometimes see the DidFinishLoad event from a previous navigation and | 283 // would sometimes see the DidFinishLoad event from a previous navigation and |
| 282 // return immediately. | 284 // return immediately. |
| 283 void NavigateToFile(const std::string& path) { | 285 void NavigateToFile(const std::string& path) { |
| 284 if (!embedded_test_server()->Started()) | |
| 285 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | |
| 286 | |
| 287 ASSERT_FALSE(CommandLine::ForCurrentProcess()->HasSwitch( | |
| 288 password_manager::switches::kEnableAutomaticPasswordSaving)); | |
| 289 NavigationObserver observer(WebContents()); | 286 NavigationObserver observer(WebContents()); |
| 290 GURL url = embedded_test_server()->GetURL(path); | 287 GURL url = embedded_test_server()->GetURL(path); |
| 291 ui_test_utils::NavigateToURL(browser(), url); | 288 ui_test_utils::NavigateToURL(browser(), url); |
| 292 observer.Wait(); | 289 observer.Wait(); |
| 293 } | 290 } |
| 294 | 291 |
| 295 // Waits until the "value" attribute of the HTML element with |element_id| is | 292 // Waits until the "value" attribute of the HTML element with |element_id| is |
| 296 // equal to |expected_value|. If the current value is not as expected, this | 293 // equal to |expected_value|. If the current value is not as expected, this |
| 297 // waits until the "change" event is fired for the element. This also | 294 // waits until the "change" event is fired for the element. This also |
| 298 // guarantees that once the real value matches the expected, the JavaScript | 295 // guarantees that once the real value matches the expected, the JavaScript |
| (...skipping 817 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1116 std::string submit = | 1113 std::string submit = |
| 1117 "document.getElementById('username').value = 'overwrite_me';" | 1114 "document.getElementById('username').value = 'overwrite_me';" |
| 1118 "document.getElementById('password').value = 'random';" | 1115 "document.getElementById('password').value = 'random';" |
| 1119 "document.getElementById('non-form-button').click();"; | 1116 "document.getElementById('non-form-button').click();"; |
| 1120 ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), submit)); | 1117 ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), submit)); |
| 1121 observer.Wait(); | 1118 observer.Wait(); |
| 1122 | 1119 |
| 1123 EXPECT_TRUE(prompt_observer->IsShowingPrompt()); | 1120 EXPECT_TRUE(prompt_observer->IsShowingPrompt()); |
| 1124 } | 1121 } |
| 1125 | 1122 |
| OLD | NEW |