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

Unified Diff: chrome/browser/password_manager/password_manager_browsertest.cc

Issue 2288203002: Redo PasswordManagerBrowserTestBase.InternalsPage (Closed)
Patch Set: Fix compilation Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/password_manager/password_manager_browsertest.cc
diff --git a/chrome/browser/password_manager/password_manager_browsertest.cc b/chrome/browser/password_manager/password_manager_browsertest.cc
index c5d05d396671a933f4421a9fedf0ad733982bf15..317f23c3b4befdbb2141114938fcb8016d721cfc 100644
--- a/chrome/browser/password_manager/password_manager_browsertest.cc
+++ b/chrome/browser/password_manager/password_manager_browsertest.cc
@@ -163,6 +163,45 @@ void TestPromptNotShown(const char* failure_message,
EXPECT_FALSE(prompt_observer->IsShowingSavePrompt());
}
+// Opens the internals page, then some page with a HTML form. Then it activates
+// back the internals page and waits until it contains the string segment |str|.
+// The check is done by a repeatedly called JavaScript function, which navigates
vasilii 2016/08/30 14:09:48 obsolete
vabr (Chromium) 2016/09/02 16:29:22 Thanks for spotting. I inlined the helper method,
+// away from the internals page as soon as it finds |str|. Thus, the waiting for
+// |str| is reduced to waiting for a navigation. |browser| needs to represent
+// the current test Chrome window.
+void WaitForStringInInternals(const std::string& str,
+ const GURL& form_page,
+ Browser* browser) {
+ ui_test_utils::NavigateToURLWithDisposition(
+ browser, GURL("chrome://password-manager-internals"), CURRENT_TAB,
+ ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
+ content::WebContents* internals_web_contents =
+ browser->tab_strip_model()->GetActiveWebContents();
+
+ ui_test_utils::NavigateToURLWithDisposition(
+ browser, form_page, NEW_FOREGROUND_TAB,
+ ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
+ content::WebContents* forms_web_contents =
+ browser->tab_strip_model()->GetActiveWebContents();
+
+ // Reload the frame with the forms to ensure that the activation of logging
+ // was propagated to the renderer before it could emit the first log.
+ NavigationObserver observer(forms_web_contents);
+ forms_web_contents->ReloadFocusedFrame(false);
+ observer.Wait();
+
+ std::string find_logs =
+ "var text = document.getElementById('log-entries').innerText;"
+ "var logs_found = /" +
+ str +
+ "/.test(text);"
+ "window.domAutomationController.send(logs_found);";
+ bool logs_found = false;
+ ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
+ internals_web_contents->GetRenderViewHost(), find_logs, &logs_found));
+ EXPECT_TRUE(logs_found);
+}
+
} // namespace
namespace password_manager {
@@ -2742,37 +2781,20 @@ IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase,
EXPECT_EQ("mypassword", actual_password);
}
-// Check that the internals page contains logs both from the renderer and the
-// browser.
-IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, InternalsPage) {
- ui_test_utils::NavigateToURLWithDisposition(
- browser(), GURL("chrome://password-manager-internals"), CURRENT_TAB,
- ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
- content::WebContents* internals_web_contents = WebContents();
-
- ui_test_utils::NavigateToURLWithDisposition(
- browser(), embedded_test_server()->GetURL("/password/password_form.html"),
- NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
-
- std::string find_renderer_logs =
- "var text = document.getElementById('log-entries').innerText;"
- "var logs_found = /PasswordAutofillAgent::/.test(text);"
- "window.domAutomationController.send(logs_found);";
- bool renderer_logs_found;
- ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
- internals_web_contents->GetRenderViewHost(), find_renderer_logs,
- &renderer_logs_found));
- EXPECT_TRUE(renderer_logs_found);
+// Check that the internals page contains logs from the renderer.
+IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, InternalsPage_Renderer) {
+ WaitForStringInInternals(
+ "PasswordAutofillAgent::",
+ embedded_test_server()->GetURL("/password/password_form.html"),
+ browser());
+}
- std::string find_browser_logs =
- "var text = document.getElementById('log-entries').innerText;"
- "var logs_found = /PasswordManager::/.test(text);"
- "window.domAutomationController.send(logs_found);";
- bool browser_logs_found;
- ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
- internals_web_contents->GetRenderViewHost(), find_browser_logs,
- &browser_logs_found));
- EXPECT_TRUE(browser_logs_found);
+// Check that the internals page contains logs from the browser.
+IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, InternalsPage_Browser) {
+ WaitForStringInInternals(
+ "PasswordManager::",
+ embedded_test_server()->GetURL("/password/password_form.html"),
+ browser());
}
// Tests that submitted credentials are saved on a password form without
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698