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

Side by Side Diff: chrome/browser/captive_portal/captive_portal_browsertest.cc

Issue 829263004: Add WaitForInterstitialReady to browser_test_utils. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <map> 5 #include <map>
6 #include <set> 6 #include <set>
7 #include <string> 7 #include <string>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 "https://mock.captive.portal.long.timeout2/title2.html"; 113 "https://mock.captive.portal.long.timeout2/title2.html";
114 114
115 // Same as kMockHttpsUrl, except the timeout happens instantly. 115 // Same as kMockHttpsUrl, except the timeout happens instantly.
116 const char* const kMockHttpsQuickTimeoutUrl = 116 const char* const kMockHttpsQuickTimeoutUrl =
117 "https://mock.captive.portal.quick.timeout/title2.html"; 117 "https://mock.captive.portal.quick.timeout/title2.html";
118 118
119 // Expected title of a tab once an HTTPS load completes, when not behind a 119 // Expected title of a tab once an HTTPS load completes, when not behind a
120 // captive portal. 120 // captive portal.
121 const char* const kInternetConnectedTitle = "Title Of Awesomeness"; 121 const char* const kInternetConnectedTitle = "Title Of Awesomeness";
122 122
123 // Wait until all resources have loaded in an interstitial page.
124 bool WaitForInterstitialReady(content::InterstitialPage* interstitial) {
125 content::RenderFrameHost* rfh = interstitial->GetMainFrame();
126 if (!rfh)
127 return false;
128 bool load_complete = false;
129 EXPECT_TRUE(
130 content::ExecuteScriptAndExtractBool(
131 rfh,
132 "(function() {"
133 " var done = false;"
134 " function checkState() {"
135 " if (!done && document.readyState == 'complete') {"
136 " done = true;"
137 " window.domAutomationController.send(true);"
138 " }"
139 " }"
140 " checkState();"
141 " document.addEventListener('readystatechange', checkState);"
142 "})();",
143 &load_complete));
144 return load_complete;
145 }
146
147 // A URL request job that hangs until FailJobs() is called. Started jobs 123 // A URL request job that hangs until FailJobs() is called. Started jobs
148 // are stored in a static class variable containing a linked list so that 124 // are stored in a static class variable containing a linked list so that
149 // FailJobs() can locate them. 125 // FailJobs() can locate them.
150 class URLRequestTimeoutOnDemandJob : public net::URLRequestJob, 126 class URLRequestTimeoutOnDemandJob : public net::URLRequestJob,
151 public base::NonThreadSafe { 127 public base::NonThreadSafe {
152 public: 128 public:
153 // net::URLRequestJob: 129 // net::URLRequestJob:
154 void Start() override; 130 void Start() override;
155 131
156 // All the public static methods below can be called on any thread. 132 // All the public static methods below can be called on any thread.
(...skipping 2580 matching lines...) Expand 10 before | Expand all | Expand 10 after
2737 2713
2738 EXPECT_EQ(CaptivePortalTabReloader::STATE_NEEDS_RELOAD, 2714 EXPECT_EQ(CaptivePortalTabReloader::STATE_NEEDS_RELOAD,
2739 GetStateOfTabReloaderAt(browser(), broken_tab_index)); 2715 GetStateOfTabReloaderAt(browser(), broken_tab_index));
2740 2716
2741 WaitForInterstitialAttach(broken_tab_contents); 2717 WaitForInterstitialAttach(broken_tab_contents);
2742 portal_observer.WaitForResults(1); 2718 portal_observer.WaitForResults(1);
2743 2719
2744 EXPECT_EQ(SSLBlockingPage::kTypeForTesting, 2720 EXPECT_EQ(SSLBlockingPage::kTypeForTesting,
2745 GetInterstitialType(broken_tab_contents)); 2721 GetInterstitialType(broken_tab_contents));
2746 } 2722 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698