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

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

Issue 872993003: Distinguish between wired and wifi connections in the captive portal interstitial. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add comment about the accuracy of GetConnectionType 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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 } 46 }
47 47
48 class CaptivePortalBlockingPageTest : public InProcessBrowserTest { 48 class CaptivePortalBlockingPageTest : public InProcessBrowserTest {
49 public: 49 public:
50 CaptivePortalBlockingPageTest() {} 50 CaptivePortalBlockingPageTest() {}
51 51
52 private: 52 private:
53 DISALLOW_COPY_AND_ASSIGN(CaptivePortalBlockingPageTest); 53 DISALLOW_COPY_AND_ASSIGN(CaptivePortalBlockingPageTest);
54 }; 54 };
55 55
56 // If the connection is not a Wi-Fi connection, the wired network version of the
57 // captive portal interstitial should be displayed.
58 IN_PROC_BROWSER_TEST_F(CaptivePortalBlockingPageTest,
59 ShowWiredNetworkInterstitial) {
60 const GURL kLandingUrl("http://captive.portal/landing_url");
61 content::WebContents* contents =
62 browser()->tab_strip_model()->GetActiveWebContents();
63 DCHECK(contents);
64 // Blocking page is owned by the interstitial.
65 CaptivePortalBlockingPage* blocking_page = new CaptivePortalBlockingPage(
66 contents, GURL(kBrokenSSL), kLandingUrl, base::Callback<void(bool)>());
67 blocking_page->SetWiFiConnectionForTesting(false);
68 blocking_page->Show();
69
70 WaitForInterstitialAttach(contents);
71 EXPECT_TRUE(
72 WaitForRenderFrameReady(contents->GetInterstitialPage()->GetMainFrame()));
73 EXPECT_FALSE(
74 IsInterstitialDisplayingText(contents->GetInterstitialPage(), "Wi-Fi"));
75 }
76
77 // If the connection is a Wi-Fi connection, the Wi-Fi version of the captive
78 // portal interstitial should be displayed.
79 IN_PROC_BROWSER_TEST_F(CaptivePortalBlockingPageTest,
80 ShowWiFiInterstitial) {
81 const GURL kLandingUrl("http://captive.portal/landing_url");
82 content::WebContents* contents =
83 browser()->tab_strip_model()->GetActiveWebContents();
84 DCHECK(contents);
85 // Blocking page is owned by the interstitial.
86 CaptivePortalBlockingPage* blocking_page = new CaptivePortalBlockingPage(
87 contents, GURL(kBrokenSSL), kLandingUrl, base::Callback<void(bool)>());
88 blocking_page->SetWiFiConnectionForTesting(true);
89 blocking_page->Show();
90
91 WaitForInterstitialAttach(contents);
92 EXPECT_TRUE(
93 WaitForRenderFrameReady(contents->GetInterstitialPage()->GetMainFrame()));
94 EXPECT_TRUE(
95 IsInterstitialDisplayingText(contents->GetInterstitialPage(), "Wi-Fi"));
96 }
97
56 // The captive portal interstitial should show the login url if the login url 98 // The captive portal interstitial should show the login url if the login url
57 // is different than the captive portal ping url (i.e. the portal intercepts 99 // is different than the captive portal ping url (i.e. the portal intercepts
58 // requests via HTTP redirects). 100 // requests via HTTP redirects).
59 IN_PROC_BROWSER_TEST_F(CaptivePortalBlockingPageTest, 101 IN_PROC_BROWSER_TEST_F(CaptivePortalBlockingPageTest,
60 ShowLoginDomainIfPortalRedirectsDetectionURL) { 102 ShowLoginDomainIfPortalRedirectsDetectionURL) {
61 const GURL kLandingUrl("http://captive.portal/landing_url"); 103 const GURL kLandingUrl("http://captive.portal/landing_url");
62 content::WebContents* contents = 104 content::WebContents* contents =
63 browser()->tab_strip_model()->GetActiveWebContents(); 105 browser()->tab_strip_model()->GetActiveWebContents();
64 DCHECK(contents); 106 DCHECK(contents);
65 // Blocking page is owned by the interstitial. 107 // Blocking page is owned by the interstitial.
66 CaptivePortalBlockingPage* blocking_page = new CaptivePortalBlockingPage( 108 CaptivePortalBlockingPage* blocking_page = new CaptivePortalBlockingPage(
67 contents, GURL(kBrokenSSL), kLandingUrl, base::Callback<void(bool)>()); 109 contents, GURL(kBrokenSSL), kLandingUrl, base::Callback<void(bool)>());
110 blocking_page->SetWiFiConnectionForTesting(false);
68 blocking_page->Show(); 111 blocking_page->Show();
69 112
70 WaitForInterstitialAttach(contents); 113 WaitForInterstitialAttach(contents);
71 EXPECT_TRUE( 114 EXPECT_TRUE(
72 WaitForRenderFrameReady(contents->GetInterstitialPage()->GetMainFrame())); 115 WaitForRenderFrameReady(contents->GetInterstitialPage()->GetMainFrame()));
73 116
74 EXPECT_TRUE(IsInterstitialDisplayingText(contents->GetInterstitialPage(), 117 EXPECT_TRUE(IsInterstitialDisplayingText(contents->GetInterstitialPage(),
75 kLandingUrl.host())); 118 kLandingUrl.host()));
76 EXPECT_FALSE(IsInterstitialDisplayingText(contents->GetInterstitialPage(), 119 EXPECT_FALSE(IsInterstitialDisplayingText(contents->GetInterstitialPage(),
77 kGenericLoginURLText)); 120 kGenericLoginURLText));
78 } 121 }
79 122
80 // The captive portal interstitial should show a generic text if the login url 123 // The captive portal interstitial should show a generic text if the login url
81 // is the same as the captive portal ping url (i.e. the portal intercepts 124 // is the same as the captive portal ping url (i.e. the portal intercepts
82 // requests without using HTTP redirects). 125 // requests without using HTTP redirects).
83 IN_PROC_BROWSER_TEST_F(CaptivePortalBlockingPageTest, 126 IN_PROC_BROWSER_TEST_F(CaptivePortalBlockingPageTest,
84 DontShowLoginDomainIfPortalDoesntRedirectDetectionURL) { 127 DontShowLoginDomainIfPortalDoesntRedirectDetectionURL) {
85 const GURL kLandingUrl(captive_portal::CaptivePortalDetector::kDefaultURL); 128 const GURL kLandingUrl(captive_portal::CaptivePortalDetector::kDefaultURL);
86 content::WebContents* contents = 129 content::WebContents* contents =
87 browser()->tab_strip_model()->GetActiveWebContents(); 130 browser()->tab_strip_model()->GetActiveWebContents();
88 DCHECK(contents); 131 DCHECK(contents);
89 // Blocking page is owned by the interstitial. 132 // Blocking page is owned by the interstitial.
90 CaptivePortalBlockingPage* blocking_page = new CaptivePortalBlockingPage( 133 CaptivePortalBlockingPage* blocking_page = new CaptivePortalBlockingPage(
91 contents, GURL(kBrokenSSL), kLandingUrl, base::Callback<void(bool)>()); 134 contents, GURL(kBrokenSSL), kLandingUrl, base::Callback<void(bool)>());
135 blocking_page->SetWiFiConnectionForTesting(false);
92 blocking_page->Show(); 136 blocking_page->Show();
93 137
94 WaitForInterstitialAttach(contents); 138 WaitForInterstitialAttach(contents);
95 EXPECT_TRUE( 139 EXPECT_TRUE(
96 WaitForRenderFrameReady(contents->GetInterstitialPage()->GetMainFrame())); 140 WaitForRenderFrameReady(contents->GetInterstitialPage()->GetMainFrame()));
97 141
98 EXPECT_FALSE(IsInterstitialDisplayingText(contents->GetInterstitialPage(), 142 EXPECT_FALSE(IsInterstitialDisplayingText(contents->GetInterstitialPage(),
99 kLandingUrl.host())); 143 kLandingUrl.host()));
100 EXPECT_TRUE(IsInterstitialDisplayingText(contents->GetInterstitialPage(), 144 EXPECT_TRUE(IsInterstitialDisplayingText(contents->GetInterstitialPage(),
101 kGenericLoginURLText)); 145 kGenericLoginURLText));
(...skipping 21 matching lines...) Expand all
123 std::string landing_url_spec = 167 std::string landing_url_spec =
124 base::StringPrintf("http://%s/landing_url", kHostname); 168 base::StringPrintf("http://%s/landing_url", kHostname);
125 GURL landing_url(landing_url_spec); 169 GURL landing_url(landing_url_spec);
126 170
127 content::WebContents* contents = 171 content::WebContents* contents =
128 browser()->tab_strip_model()->GetActiveWebContents(); 172 browser()->tab_strip_model()->GetActiveWebContents();
129 DCHECK(contents); 173 DCHECK(contents);
130 // Blocking page is owned by the interstitial. 174 // Blocking page is owned by the interstitial.
131 CaptivePortalBlockingPage* blocking_page = new CaptivePortalBlockingPage( 175 CaptivePortalBlockingPage* blocking_page = new CaptivePortalBlockingPage(
132 contents, GURL(kBrokenSSL), landing_url, base::Callback<void(bool)>()); 176 contents, GURL(kBrokenSSL), landing_url, base::Callback<void(bool)>());
177 blocking_page->SetWiFiConnectionForTesting(false);
133 blocking_page->Show(); 178 blocking_page->Show();
134 179
135 WaitForInterstitialAttach(contents); 180 WaitForInterstitialAttach(contents);
136 EXPECT_TRUE( 181 EXPECT_TRUE(
137 WaitForRenderFrameReady(contents->GetInterstitialPage()->GetMainFrame())); 182 WaitForRenderFrameReady(contents->GetInterstitialPage()->GetMainFrame()));
138 183
139 EXPECT_TRUE(IsInterstitialDisplayingText(contents->GetInterstitialPage(), 184 EXPECT_TRUE(IsInterstitialDisplayingText(contents->GetInterstitialPage(),
140 kHostnameJSUnicode)); 185 kHostnameJSUnicode));
141 EXPECT_FALSE(IsInterstitialDisplayingText(contents->GetInterstitialPage(), 186 EXPECT_FALSE(IsInterstitialDisplayingText(contents->GetInterstitialPage(),
142 kGenericLoginURLText)); 187 kGenericLoginURLText));
143 } 188 }
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