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

Side by Side Diff: chrome/browser/password_manager/password_manager_browsertest.cc

Issue 19820004: Per the Chromium style guide/dos-and-donts doc, don't inline non-"cheap (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 5 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
« no previous file with comments | « chrome/browser/media/chrome_media_stream_infobar_browsertest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "chrome/browser/chrome_notification_types.h" 7 #include "chrome/browser/chrome_notification_types.h"
8 #include "chrome/browser/infobars/confirm_infobar_delegate.h" 8 #include "chrome/browser/infobars/confirm_infobar_delegate.h"
9 #include "chrome/browser/infobars/infobar_service.h" 9 #include "chrome/browser/infobars/infobar_service.h"
10 #include "chrome/browser/password_manager/password_store_factory.h" 10 #include "chrome/browser/password_manager/password_store_factory.h"
(...skipping 23 matching lines...) Expand all
34 message_loop_runner_(new content::MessageLoopRunner), 34 message_loop_runner_(new content::MessageLoopRunner),
35 info_bar_shown_(false), 35 info_bar_shown_(false),
36 infobar_service_(InfoBarService::FromWebContents(web_contents)) { 36 infobar_service_(InfoBarService::FromWebContents(web_contents)) {
37 registrar_.Add(this, 37 registrar_.Add(this,
38 chrome::NOTIFICATION_TAB_CONTENTS_INFOBAR_ADDED, 38 chrome::NOTIFICATION_TAB_CONTENTS_INFOBAR_ADDED,
39 content::Source<InfoBarService>(infobar_service_)); 39 content::Source<InfoBarService>(infobar_service_));
40 } 40 }
41 41
42 virtual ~NavigationObserver() {} 42 virtual ~NavigationObserver() {}
43 43
44 void Wait() {
45 message_loop_runner_->Run();
46 }
47
48 bool InfoBarWasShown() {
49 return info_bar_shown_;
50 }
51
52 // content::NotificationObserver: 44 // content::NotificationObserver:
53 virtual void Observe(int type, 45 virtual void Observe(int type,
54 const content::NotificationSource& source, 46 const content::NotificationSource& source,
55 const content::NotificationDetails& details) OVERRIDE { 47 const content::NotificationDetails& details) OVERRIDE {
56 // Accept in the infobar. 48 // Accept in the infobar.
57 InfoBarDelegate* infobar = infobar_service_->infobar_at(0); 49 InfoBarDelegate* infobar = infobar_service_->infobar_at(0);
58 ConfirmInfoBarDelegate* confirm_infobar = 50 ConfirmInfoBarDelegate* confirm_infobar =
59 infobar->AsConfirmInfoBarDelegate(); 51 infobar->AsConfirmInfoBarDelegate();
60 confirm_infobar->Accept(); 52 confirm_infobar->Accept();
61 info_bar_shown_ = true; 53 info_bar_shown_ = true;
62 } 54 }
63 55
64 // content::WebContentsObserver 56 // content::WebContentsObserver:
65 virtual void DidFinishLoad( 57 virtual void DidFinishLoad(
66 int64 frame_id, 58 int64 frame_id,
67 const GURL& validated_url, 59 const GURL& validated_url,
68 bool is_main_frame, 60 bool is_main_frame,
69 content::RenderViewHost* render_view_host) OVERRIDE { 61 content::RenderViewHost* render_view_host) OVERRIDE {
70 message_loop_runner_->Quit(); 62 message_loop_runner_->Quit();
71 } 63 }
72 64
65 bool infobar_shown() { return info_bar_shown_; }
66
67 void Wait() {
68 message_loop_runner_->Run();
69 }
70
73 private: 71 private:
74 scoped_refptr<content::MessageLoopRunner> message_loop_runner_; 72 scoped_refptr<content::MessageLoopRunner> message_loop_runner_;
75 bool info_bar_shown_; 73 bool info_bar_shown_;
76 content::NotificationRegistrar registrar_; 74 content::NotificationRegistrar registrar_;
77 InfoBarService* infobar_service_; 75 InfoBarService* infobar_service_;
78 }; 76 };
79 77
80 } // namespace 78 } // namespace
81 79
82 class PasswordManagerBrowserTest : public InProcessBrowserTest { 80 class PasswordManagerBrowserTest : public InProcessBrowserTest {
(...skipping 28 matching lines...) Expand all
111 // in its onsubmit handler but instead logs in/navigates via XHR. 109 // in its onsubmit handler but instead logs in/navigates via XHR.
112 // Note that calling 'submit()' on a form with javascript doesn't call 110 // Note that calling 'submit()' on a form with javascript doesn't call
113 // the onsubmit handler, so we click the submit button instead. 111 // the onsubmit handler, so we click the submit button instead.
114 NavigationObserver observer(WebContents()); 112 NavigationObserver observer(WebContents());
115 std::string fill_and_submit = 113 std::string fill_and_submit =
116 "document.getElementById('username_field').value = 'temp';" 114 "document.getElementById('username_field').value = 'temp';"
117 "document.getElementById('password_field').value = 'random';" 115 "document.getElementById('password_field').value = 'random';"
118 "document.getElementById('submit_button').click()"; 116 "document.getElementById('submit_button').click()";
119 ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_submit)); 117 ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_submit));
120 observer.Wait(); 118 observer.Wait();
121 EXPECT_TRUE(observer.InfoBarWasShown()); 119 EXPECT_TRUE(observer.infobar_shown());
122 } 120 }
123 121
124 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTest, NoPromptForOtherXHR) { 122 IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTest, NoPromptForOtherXHR) {
125 ASSERT_TRUE(test_server()->Start()); 123 ASSERT_TRUE(test_server()->Start());
126 124
127 GURL url = test_server()->GetURL("files/password/password_xhr_submit.html"); 125 GURL url = test_server()->GetURL("files/password/password_xhr_submit.html");
128 ui_test_utils::NavigateToURL(browser(), url); 126 ui_test_utils::NavigateToURL(browser(), url);
129 127
130 // Verify that if random XHR navigation occurs, we don't try and save the 128 // Verify that if random XHR navigation occurs, we don't try and save the
131 // password. 129 // password.
132 // 130 //
133 // We may want to change this functionality in the future to account for 131 // We may want to change this functionality in the future to account for
134 // cases where the element that users click on isn't a submit button. 132 // cases where the element that users click on isn't a submit button.
135 NavigationObserver observer(WebContents()); 133 NavigationObserver observer(WebContents());
136 std::string fill_and_navigate = 134 std::string fill_and_navigate =
137 "document.getElementById('username_field').value = 'temp';" 135 "document.getElementById('username_field').value = 'temp';"
138 "document.getElementById('password_field').value = 'random';" 136 "document.getElementById('password_field').value = 'random';"
139 "send_xhr()"; 137 "send_xhr()";
140 ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_navigate)); 138 ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_navigate));
141 observer.Wait(); 139 observer.Wait();
142 EXPECT_FALSE(observer.InfoBarWasShown()); 140 EXPECT_FALSE(observer.infobar_shown());
143 } 141 }
OLDNEW
« no previous file with comments | « chrome/browser/media/chrome_media_stream_infobar_browsertest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698