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

Side by Side Diff: chrome/browser/ssl/captive_portal_blocking_page_browsertest.cc

Issue 894153003: Captive Portal Interstitial: Use SSID even if connection type isn't Wi-Fi. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove Linux check Created 5 years, 10 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
« no previous file with comments | « chrome/browser/ssl/captive_portal_blocking_page.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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/browser/ssl/captive_portal_blocking_page.h" 5 #include "chrome/browser/ssl/captive_portal_blocking_page.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 EXPECT_WIFI_SSID_YES 57 EXPECT_WIFI_SSID_YES
58 }; 58 };
59 59
60 enum ExpectLoginURL { 60 enum ExpectLoginURL {
61 EXPECT_LOGIN_URL_NO, 61 EXPECT_LOGIN_URL_NO,
62 EXPECT_LOGIN_URL_YES 62 EXPECT_LOGIN_URL_YES
63 }; 63 };
64 64
65 } // namespace 65 } // namespace
66 66
67 class FakeConnectionInfoDelegate : public CaptivePortalBlockingPage::Delegate {
68 public:
69 FakeConnectionInfoDelegate(bool is_wifi_connection, std::string wifi_ssid)
70 : is_wifi_connection_(is_wifi_connection), wifi_ssid_(wifi_ssid) {}
71 ~FakeConnectionInfoDelegate() override {}
72
73 bool IsWifiConnection() const override { return is_wifi_connection_; }
74 std::string GetWiFiSSID() const override { return wifi_ssid_; }
75
76 private:
77 const bool is_wifi_connection_;
78 const std::string wifi_ssid_;
79
80 DISALLOW_COPY_AND_ASSIGN(FakeConnectionInfoDelegate);
81 };
82
67 class CaptivePortalBlockingPageTest : public InProcessBrowserTest { 83 class CaptivePortalBlockingPageTest : public InProcessBrowserTest {
68 public: 84 public:
69 CaptivePortalBlockingPageTest() {} 85 CaptivePortalBlockingPageTest() {}
70 86
71 void TestInterstitial(bool is_wifi_connection, 87 void TestInterstitial(bool is_wifi_connection,
72 const std::string& wifi_ssid, 88 const std::string& wifi_ssid,
73 const GURL& login_url, 89 const GURL& login_url,
74 ExpectWiFi expect_wifi, 90 ExpectWiFi expect_wifi,
75 ExpectWiFiSSID expect_wifi_ssid, 91 ExpectWiFiSSID expect_wifi_ssid,
76 ExpectLoginURL expect_login_url, 92 ExpectLoginURL expect_login_url,
(...skipping 14 matching lines...) Expand all
91 bool is_wifi_connection, 107 bool is_wifi_connection,
92 const std::string& wifi_ssid, 108 const std::string& wifi_ssid,
93 const GURL& login_url, 109 const GURL& login_url,
94 ExpectWiFi expect_wifi, 110 ExpectWiFi expect_wifi,
95 ExpectWiFiSSID expect_wifi_ssid, 111 ExpectWiFiSSID expect_wifi_ssid,
96 ExpectLoginURL expect_login_url, 112 ExpectLoginURL expect_login_url,
97 const std::string& expected_login_hostname) { 113 const std::string& expected_login_hostname) {
98 content::WebContents* contents = 114 content::WebContents* contents =
99 browser()->tab_strip_model()->GetActiveWebContents(); 115 browser()->tab_strip_model()->GetActiveWebContents();
100 DCHECK(contents); 116 DCHECK(contents);
117 // Delegate is owned by the blocking page.
118 FakeConnectionInfoDelegate* delegate =
119 new FakeConnectionInfoDelegate(is_wifi_connection, wifi_ssid);
101 // Blocking page is owned by the interstitial. 120 // Blocking page is owned by the interstitial.
102 CaptivePortalBlockingPage* blocking_page = new CaptivePortalBlockingPage( 121 CaptivePortalBlockingPage* blocking_page = new CaptivePortalBlockingPage(
103 contents, GURL(kBrokenSSL), login_url, base::Callback<void(bool)>()); 122 contents, GURL(kBrokenSSL), login_url, base::Callback<void(bool)>());
104 blocking_page->SetWiFiConnectionForTesting(is_wifi_connection); 123 blocking_page->SetDelegateForTesting(delegate);
105 blocking_page->SetWiFiSSIDForTesting(wifi_ssid);
106 blocking_page->Show(); 124 blocking_page->Show();
107 125
108 WaitForInterstitialAttach(contents); 126 WaitForInterstitialAttach(contents);
109 EXPECT_TRUE( 127 EXPECT_TRUE(
110 WaitForRenderFrameReady(contents->GetInterstitialPage()->GetMainFrame())); 128 WaitForRenderFrameReady(contents->GetInterstitialPage()->GetMainFrame()));
111 EXPECT_EQ(expect_wifi == EXPECT_WIFI_YES, 129 EXPECT_EQ(expect_wifi == EXPECT_WIFI_YES,
112 IsInterstitialDisplayingText(contents->GetInterstitialPage(), 130 IsInterstitialDisplayingText(contents->GetInterstitialPage(),
113 "Wi-Fi")); 131 "Wi-Fi"));
114 if (!wifi_ssid.empty()) { 132 if (!wifi_ssid.empty()) {
115 EXPECT_EQ(expect_wifi_ssid == EXPECT_WIFI_SSID_YES, 133 EXPECT_EQ(expect_wifi_ssid == EXPECT_WIFI_SSID_YES,
(...skipping 17 matching lines...) Expand all
133 ExpectLoginURL expect_login_url) { 151 ExpectLoginURL expect_login_url) {
134 TestInterstitial(is_wifi_connection, wifi_ssid, login_url, 152 TestInterstitial(is_wifi_connection, wifi_ssid, login_url,
135 expect_wifi, expect_wifi_ssid, expect_login_url, 153 expect_wifi, expect_wifi_ssid, expect_login_url,
136 login_url.host()); 154 login_url.host());
137 } 155 }
138 156
139 // If the connection is not a Wi-Fi connection, the wired network version of the 157 // If the connection is not a Wi-Fi connection, the wired network version of the
140 // captive portal interstitial should be displayed. 158 // captive portal interstitial should be displayed.
141 IN_PROC_BROWSER_TEST_F(CaptivePortalBlockingPageTest, 159 IN_PROC_BROWSER_TEST_F(CaptivePortalBlockingPageTest,
142 WiredNetwork_LoginURL) { 160 WiredNetwork_LoginURL) {
161 TestInterstitial(false, "", GURL("http://captive.portal/landing_url"),
162 EXPECT_WIFI_NO, EXPECT_WIFI_SSID_NO, EXPECT_LOGIN_URL_YES);
163 }
164
165 // Same as above, but SSID is available, so the connection should be assumed to
166 // be Wi-Fi.
167 IN_PROC_BROWSER_TEST_F(CaptivePortalBlockingPageTest,
168 WiredNetwork_LoginURL_With_SSID) {
143 TestInterstitial(false, kWiFiSSID, GURL("http://captive.portal/landing_url"), 169 TestInterstitial(false, kWiFiSSID, GURL("http://captive.portal/landing_url"),
144 EXPECT_WIFI_NO, EXPECT_WIFI_SSID_NO, EXPECT_LOGIN_URL_YES); 170 EXPECT_WIFI_YES, EXPECT_WIFI_SSID_YES, EXPECT_LOGIN_URL_YES);
145
146 } 171 }
147 172
148 // Same as above, expect the login URL is the same as the captive portal ping 173 // Same as above, expect the login URL is the same as the captive portal ping
149 // url (i.e. the portal intercepts requests without using HTTP redirects), in 174 // url (i.e. the portal intercepts requests without using HTTP redirects), in
150 // which case the login URL shouldn't be displayed. 175 // which case the login URL shouldn't be displayed.
151 IN_PROC_BROWSER_TEST_F(CaptivePortalBlockingPageTest, 176 IN_PROC_BROWSER_TEST_F(CaptivePortalBlockingPageTest,
152 WiredNetwork_NoLoginURL) { 177 WiredNetwork_NoLoginURL) {
153 const GURL kLandingUrl(captive_portal::CaptivePortalDetector::kDefaultURL); 178 const GURL kLandingUrl(captive_portal::CaptivePortalDetector::kDefaultURL);
154 TestInterstitial(false, kWiFiSSID, kLandingUrl, 179 TestInterstitial(false, "", kLandingUrl, EXPECT_WIFI_NO, EXPECT_WIFI_SSID_NO,
155 EXPECT_WIFI_NO, EXPECT_WIFI_SSID_NO, EXPECT_LOGIN_URL_NO); 180 EXPECT_LOGIN_URL_NO);
181 }
182
183 // Same as above, but SSID is available, so the connection should be assumed to
184 // be Wi-Fi.
185 IN_PROC_BROWSER_TEST_F(CaptivePortalBlockingPageTest,
186 WiredNetwork_NoLoginURL_With_SSID) {
187 const GURL kLandingUrl(captive_portal::CaptivePortalDetector::kDefaultURL);
188 TestInterstitial(false, kWiFiSSID, kLandingUrl, EXPECT_WIFI_YES,
189 EXPECT_WIFI_SSID_YES, EXPECT_LOGIN_URL_NO);
156 } 190 }
157 191
158 // If the connection is a Wi-Fi connection, the Wi-Fi version of the captive 192 // If the connection is a Wi-Fi connection, the Wi-Fi version of the captive
159 // portal interstitial should be displayed. 193 // portal interstitial should be displayed.
160 IN_PROC_BROWSER_TEST_F(CaptivePortalBlockingPageTest, 194 IN_PROC_BROWSER_TEST_F(CaptivePortalBlockingPageTest,
161 WiFi_SSID_LoginURL) { 195 WiFi_SSID_LoginURL) {
162 TestInterstitial(true, kWiFiSSID, GURL("http://captive.portal/landing_url"), 196 TestInterstitial(true, kWiFiSSID, GURL("http://captive.portal/landing_url"),
163 EXPECT_WIFI_YES, EXPECT_WIFI_SSID_YES, EXPECT_LOGIN_URL_YES); 197 EXPECT_WIFI_YES, EXPECT_WIFI_SSID_YES, EXPECT_LOGIN_URL_YES);
164 } 198 }
165 199
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 ShowLoginIDNIfPortalRedirectsDetectionURL) { 236 ShowLoginIDNIfPortalRedirectsDetectionURL) {
203 const char kHostname[] = 237 const char kHostname[] =
204 "xn--d1abbgf6aiiy.xn--p1ai"; 238 "xn--d1abbgf6aiiy.xn--p1ai";
205 const char kHostnameJSUnicode[] = 239 const char kHostnameJSUnicode[] =
206 "\\u043f\\u0440\\u0435\\u0437\\u0438\\u0434\\u0435\\u043d\\u0442." 240 "\\u043f\\u0440\\u0435\\u0437\\u0438\\u0434\\u0435\\u043d\\u0442."
207 "\\u0440\\u0444"; 241 "\\u0440\\u0444";
208 std::string landing_url_spec = 242 std::string landing_url_spec =
209 base::StringPrintf("http://%s/landing_url", kHostname); 243 base::StringPrintf("http://%s/landing_url", kHostname);
210 GURL landing_url(landing_url_spec); 244 GURL landing_url(landing_url_spec);
211 245
212 TestInterstitial(false, kWiFiSSID, landing_url, 246 TestInterstitial(false, "", landing_url, EXPECT_WIFI_NO, EXPECT_WIFI_SSID_NO,
213 EXPECT_WIFI_NO, EXPECT_WIFI_SSID_NO, EXPECT_LOGIN_URL_YES, 247 EXPECT_LOGIN_URL_YES, kHostnameJSUnicode);
214 kHostnameJSUnicode);
215 } 248 }
OLDNEW
« no previous file with comments | « chrome/browser/ssl/captive_portal_blocking_page.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698