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

Side by Side Diff: chrome/browser/page_load_metrics/observers/page_load_metrics_observers_unittest.cc

Issue 1473153002: PageLoadMetricsObservers observe individual page loads (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase on #362343 Created 5 years 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 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 "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/test/histogram_tester.h" 6 #include "base/test/histogram_tester.h"
7 #include "chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_ observer.h" 7 #include "chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_ observer.h"
8 #include "chrome/browser/page_load_metrics/observers/google_captcha_observer.h" 8 #include "chrome/browser/page_load_metrics/observers/google_captcha_observer.h"
9 #include "chrome/test/base/chrome_render_view_host_test_harness.h" 9 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
10 #include "components/page_load_metrics/browser/metrics_web_contents_observer.h" 10 #include "components/page_load_metrics/browser/metrics_web_contents_observer.h"
11 #include "components/page_load_metrics/common/page_load_metrics_messages.h" 11 #include "components/page_load_metrics/common/page_load_metrics_messages.h"
12 #include "content/public/test/web_contents_tester.h" 12 #include "content/public/test/web_contents_tester.h"
13 #include "url/gurl.h" 13 #include "url/gurl.h"
14 14
15 namespace { 15 namespace {
16 16
17 const char kHistogramNameFromGWSFirstTextPaint[] = 17 const char kHistogramNameFromGWSFirstTextPaint[] =
18 "PageLoad.Clients.FromGWS.Timing2.NavigationToFirstTextPaint"; 18 "PageLoad.Clients.FromGWS.Timing2.NavigationToFirstTextPaint";
19 19
20 } // namespace 20 } // namespace
21 21
22 class TestPageLoadMetricsEmbedderInterface
23 : public page_load_metrics::PageLoadMetricsEmbedderInterface {
24 public:
25 TestPageLoadMetricsEmbedderInterface() {}
26 rappor::RapporService* GetRapporService() override { return nullptr; }
27 bool IsPrerendering(content::WebContents* web_contents) override {
28 return false;
29 }
30 };
31
32 class TestFromGWSPageLoadMetricsObserver 22 class TestFromGWSPageLoadMetricsObserver
33 : public FromGWSPageLoadMetricsObserver { 23 : public FromGWSPageLoadMetricsObserver {
34 public: 24 public:
35 explicit TestFromGWSPageLoadMetricsObserver( 25 explicit TestFromGWSPageLoadMetricsObserver(
36 page_load_metrics::PageLoadMetricsObservable* metrics) 26 page_load_metrics::PageLoadMetricsObservable* metrics,
37 : FromGWSPageLoadMetricsObserver(metrics) {} 27 const content::Referrer& referrer)
28 : FromGWSPageLoadMetricsObserver(metrics), referrer_(referrer) {}
38 void OnCommit(content::NavigationHandle* navigation_handle) override { 29 void OnCommit(content::NavigationHandle* navigation_handle) override {
39 const GURL& url = navigation_handle->GetURL(); 30 const GURL& url = navigation_handle->GetURL();
40 SetCommittedURLAndReferrer( 31 SetCommittedURLAndReferrer(
41 url, content::Referrer::SanitizeForRequest(url, referrer_)); 32 url, content::Referrer::SanitizeForRequest(url, referrer_));
42 } 33 }
43 34
35 private:
36 const content::Referrer referrer_;
37
38 DISALLOW_COPY_AND_ASSIGN(TestFromGWSPageLoadMetricsObserver);
39 };
40
41 class TestPageLoadMetricsEmbedderInterface
42 : public page_load_metrics::PageLoadMetricsEmbedderInterface {
43 public:
44 TestPageLoadMetricsEmbedderInterface()
45 : referrer_(content::Referrer(GURL("https://www.google.com"),
46 blink::WebReferrerPolicyDefault)) {}
47 rappor::RapporService* GetRapporService() override { return nullptr; }
48 bool IsPrerendering(content::WebContents* web_contents) override {
49 return false;
50 }
51 void RegisterObservers(
52 page_load_metrics::PageLoadMetricsObservable* metrics) override {
53 new TestFromGWSPageLoadMetricsObserver(metrics, referrer_);
54 }
44 void set_referrer(const content::Referrer& referrer) { referrer_ = referrer; } 55 void set_referrer(const content::Referrer& referrer) { referrer_ = referrer; }
45 56
46 private: 57 private:
47 content::Referrer referrer_; 58 content::Referrer referrer_;
59
60 DISALLOW_COPY_AND_ASSIGN(TestPageLoadMetricsEmbedderInterface);
48 }; 61 };
49 62
50 class PageLoadMetricsObserverTest : public ChromeRenderViewHostTestHarness { 63 class PageLoadMetricsObserverTest : public ChromeRenderViewHostTestHarness {
51 public: 64 public:
52 PageLoadMetricsObserverTest() : ChromeRenderViewHostTestHarness() {} 65 PageLoadMetricsObserverTest() : ChromeRenderViewHostTestHarness() {}
53 66
54 void SetUp() override { 67 void SetUp() override {
55 ChromeRenderViewHostTestHarness::SetUp(); 68 ChromeRenderViewHostTestHarness::SetUp();
56 SetContents(CreateTestWebContents()); 69 SetContents(CreateTestWebContents());
57 NavigateAndCommit(GURL("http://www.google.com")); 70 NavigateAndCommit(GURL("http://www.google.com"));
71 embedder_interface_ = new TestPageLoadMetricsEmbedderInterface();
58 observer_ = 72 observer_ =
59 make_scoped_ptr(new page_load_metrics::MetricsWebContentsObserver( 73 make_scoped_ptr(new page_load_metrics::MetricsWebContentsObserver(
60 web_contents(), 74 web_contents(), make_scoped_ptr(embedder_interface_)));
61 make_scoped_ptr(new TestPageLoadMetricsEmbedderInterface())));
62 observer_->WasShown(); 75 observer_->WasShown();
63
64 // Add PageLoadMetricsObservers here.
65 gws_observer_ = new TestFromGWSPageLoadMetricsObserver(observer_.get());
66 observer_->AddObserver(gws_observer_);
67 } 76 }
68 77
69 base::HistogramTester histogram_tester_; 78 base::HistogramTester histogram_tester_;
79 TestPageLoadMetricsEmbedderInterface* embedder_interface_;
70 scoped_ptr<page_load_metrics::MetricsWebContentsObserver> observer_; 80 scoped_ptr<page_load_metrics::MetricsWebContentsObserver> observer_;
71 81
72 // PageLoadMetricsObservers:
73 TestFromGWSPageLoadMetricsObserver* gws_observer_;
74
75 DISALLOW_COPY_AND_ASSIGN(PageLoadMetricsObserverTest); 82 DISALLOW_COPY_AND_ASSIGN(PageLoadMetricsObserverTest);
76 }; 83 };
77 84
78 TEST_F(PageLoadMetricsObserverTest, NoMetrics) { 85 TEST_F(PageLoadMetricsObserverTest, NoMetrics) {
79 histogram_tester_.ExpectTotalCount(kHistogramNameFromGWSFirstTextPaint, 0); 86 histogram_tester_.ExpectTotalCount(kHistogramNameFromGWSFirstTextPaint, 0);
80 } 87 }
81 88
82 TEST_F(PageLoadMetricsObserverTest, NoReferral) { 89 TEST_F(PageLoadMetricsObserverTest, NoReferral) {
83 page_load_metrics::PageLoadTiming timing; 90 page_load_metrics::PageLoadTiming timing;
84 timing.navigation_start = base::Time::FromDoubleT(1); 91 timing.navigation_start = base::Time::FromDoubleT(1);
85 timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 92 timing.first_text_paint = base::TimeDelta::FromMilliseconds(1);
86 NavigateAndCommit(GURL("http://www.example.com")); 93 NavigateAndCommit(GURL("http://www.example.com"));
87 94
88 observer_->OnMessageReceived( 95 observer_->OnMessageReceived(
89 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing), 96 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing),
90 web_contents()->GetMainFrame()); 97 web_contents()->GetMainFrame());
91 98
92 // Navigate again to force logging. 99 // Navigate again to force logging.
93 NavigateAndCommit(GURL("http://www.google.com")); 100 NavigateAndCommit(GURL("http://www.google.com"));
94 histogram_tester_.ExpectTotalCount(kHistogramNameFromGWSFirstTextPaint, 0); 101 histogram_tester_.ExpectTotalCount(kHistogramNameFromGWSFirstTextPaint, 0);
95 } 102 }
96 103
97 TEST_F(PageLoadMetricsObserverTest, ReferralsFromGWSHTTPToHTTPS) { 104 TEST_F(PageLoadMetricsObserverTest, ReferralsFromGWSHTTPToHTTPS) {
98 page_load_metrics::PageLoadTiming timing; 105 page_load_metrics::PageLoadTiming timing;
99 timing.navigation_start = base::Time::FromDoubleT(1); 106 timing.navigation_start = base::Time::FromDoubleT(1);
100 timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 107 timing.first_text_paint = base::TimeDelta::FromMilliseconds(1);
101 // HTTPS google.com referral to HTTP example.com. 108 // HTTPS google.com referral to HTTP example.com.
102 gws_observer_->set_referrer(content::Referrer( 109 embedder_interface_->set_referrer(content::Referrer(
103 GURL("https://www.google.com"), blink::WebReferrerPolicyOrigin)); 110 GURL("https://www.google.com"), blink::WebReferrerPolicyOrigin));
104 NavigateAndCommit(GURL("http://www.example.com")); 111 NavigateAndCommit(GURL("http://www.example.com"));
105 112
106 observer_->OnMessageReceived( 113 observer_->OnMessageReceived(
107 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing), 114 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing),
108 web_contents()->GetMainFrame()); 115 web_contents()->GetMainFrame());
109 116
110 // Navigate again to force logging. 117 // Navigate again to force logging.
111 NavigateAndCommit(GURL("https://www.example2.com")); 118 NavigateAndCommit(GURL("https://www.example2.com"));
112 histogram_tester_.ExpectTotalCount(kHistogramNameFromGWSFirstTextPaint, 1); 119 histogram_tester_.ExpectTotalCount(kHistogramNameFromGWSFirstTextPaint, 1);
113 histogram_tester_.ExpectBucketCount(kHistogramNameFromGWSFirstTextPaint, 120 histogram_tester_.ExpectBucketCount(kHistogramNameFromGWSFirstTextPaint,
114 timing.first_text_paint.InMilliseconds(), 121 timing.first_text_paint.InMilliseconds(),
115 1); 122 1);
116 } 123 }
117 124
118 TEST_F(PageLoadMetricsObserverTest, ReferralFromGWS) { 125 TEST_F(PageLoadMetricsObserverTest, ReferralFromGWS) {
119 page_load_metrics::PageLoadTiming timing; 126 page_load_metrics::PageLoadTiming timing;
120 timing.navigation_start = base::Time::FromDoubleT(1); 127 timing.navigation_start = base::Time::FromDoubleT(1);
121 timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 128 timing.first_text_paint = base::TimeDelta::FromMilliseconds(1);
122 129
123 gws_observer_->set_referrer(content::Referrer( 130 embedder_interface_->set_referrer(content::Referrer(
124 GURL("https://www.google.com/url"), blink::WebReferrerPolicyDefault)); 131 GURL("https://www.google.com/url"), blink::WebReferrerPolicyDefault));
125 NavigateAndCommit(GURL("https://www.example.com")); 132 NavigateAndCommit(GURL("https://www.example.com"));
126 133
127 observer_->OnMessageReceived( 134 observer_->OnMessageReceived(
128 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing), 135 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing),
129 web_contents()->GetMainFrame()); 136 web_contents()->GetMainFrame());
130 137
131 // Navigate again to force logging. 138 // Navigate again to force logging.
132 NavigateAndCommit(GURL("https://www.example2.com")); 139 NavigateAndCommit(GURL("https://www.example2.com"));
133 histogram_tester_.ExpectTotalCount(kHistogramNameFromGWSFirstTextPaint, 1); 140 histogram_tester_.ExpectTotalCount(kHistogramNameFromGWSFirstTextPaint, 1);
134 histogram_tester_.ExpectBucketCount(kHistogramNameFromGWSFirstTextPaint, 141 histogram_tester_.ExpectBucketCount(kHistogramNameFromGWSFirstTextPaint,
135 timing.first_text_paint.InMilliseconds(), 142 timing.first_text_paint.InMilliseconds(),
136 1); 143 1);
137 } 144 }
138 145
139 TEST_F(PageLoadMetricsObserverTest, ReferralFromGWSBackgroundLater) { 146 TEST_F(PageLoadMetricsObserverTest, ReferralFromGWSBackgroundLater) {
140 page_load_metrics::PageLoadTiming timing; 147 page_load_metrics::PageLoadTiming timing;
141 timing.navigation_start = base::Time::FromDoubleT(1); 148 timing.navigation_start = base::Time::FromDoubleT(1);
142 timing.first_text_paint = base::TimeDelta::FromMicroseconds(1); 149 timing.first_text_paint = base::TimeDelta::FromMicroseconds(1);
143 150
144 gws_observer_->set_referrer(content::Referrer( 151 embedder_interface_->set_referrer(content::Referrer(
145 GURL("https://www.google.com/url"), blink::WebReferrerPolicyDefault)); 152 GURL("https://www.google.com/url"), blink::WebReferrerPolicyDefault));
146 NavigateAndCommit(GURL("https://www.example.com")); 153 NavigateAndCommit(GURL("https://www.example.com"));
147 154
148 observer_->OnMessageReceived( 155 observer_->OnMessageReceived(
149 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing), 156 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing),
150 web_contents()->GetMainFrame()); 157 web_contents()->GetMainFrame());
151 158
152 observer_->WasHidden(); 159 observer_->WasHidden();
153 160
154 // Navigate again to force logging. 161 // Navigate again to force logging.
155 NavigateAndCommit(GURL("https://www.example2.com")); 162 NavigateAndCommit(GURL("https://www.example2.com"));
156 histogram_tester_.ExpectTotalCount(kHistogramNameFromGWSFirstTextPaint, 1); 163 histogram_tester_.ExpectTotalCount(kHistogramNameFromGWSFirstTextPaint, 1);
157 histogram_tester_.ExpectBucketCount(kHistogramNameFromGWSFirstTextPaint, 164 histogram_tester_.ExpectBucketCount(kHistogramNameFromGWSFirstTextPaint,
158 timing.first_text_paint.InMilliseconds(), 165 timing.first_text_paint.InMilliseconds(),
159 1); 166 1);
160 } 167 }
161 168
162 TEST_F(PageLoadMetricsObserverTest, ReferralsFromCaseInsensitive) { 169 TEST_F(PageLoadMetricsObserverTest, ReferralsFromCaseInsensitive) {
163 page_load_metrics::PageLoadTiming timing; 170 page_load_metrics::PageLoadTiming timing;
164 timing.navigation_start = base::Time::FromDoubleT(1); 171 timing.navigation_start = base::Time::FromDoubleT(1);
165 timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 172 timing.first_text_paint = base::TimeDelta::FromMilliseconds(1);
166 // HTTPS google.com referral to HTTP example.com. 173 // HTTPS google.com referral to HTTP example.com.
167 gws_observer_->set_referrer(content::Referrer( 174 embedder_interface_->set_referrer(content::Referrer(
168 GURL("https://wWw.GoOGlE.cOm/webhp"), blink::WebReferrerPolicyOrigin)); 175 GURL("https://wWw.GoOGlE.cOm/webhp"), blink::WebReferrerPolicyOrigin));
169 NavigateAndCommit(GURL("https://www.example.com")); 176 NavigateAndCommit(GURL("https://www.example.com"));
170 177
171 observer_->OnMessageReceived( 178 observer_->OnMessageReceived(
172 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing), 179 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing),
173 web_contents()->GetMainFrame()); 180 web_contents()->GetMainFrame());
174 181
175 // Navigate again to force logging. 182 // Navigate again to force logging.
176 NavigateAndCommit(GURL("https://www.example2.com")); 183 NavigateAndCommit(GURL("https://www.example2.com"));
177 histogram_tester_.ExpectTotalCount(kHistogramNameFromGWSFirstTextPaint, 1); 184 histogram_tester_.ExpectTotalCount(kHistogramNameFromGWSFirstTextPaint, 1);
178 histogram_tester_.ExpectBucketCount(kHistogramNameFromGWSFirstTextPaint, 185 histogram_tester_.ExpectBucketCount(kHistogramNameFromGWSFirstTextPaint,
179 timing.first_text_paint.InMilliseconds(), 186 timing.first_text_paint.InMilliseconds(),
180 1); 187 1);
181 } 188 }
182 189
183 TEST_F(PageLoadMetricsObserverTest, ReferralsFromGWSOrigin) { 190 TEST_F(PageLoadMetricsObserverTest, ReferralsFromGWSOrigin) {
184 page_load_metrics::PageLoadTiming timing; 191 page_load_metrics::PageLoadTiming timing;
185 timing.navigation_start = base::Time::FromDoubleT(1); 192 timing.navigation_start = base::Time::FromDoubleT(1);
186 timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 193 timing.first_text_paint = base::TimeDelta::FromMilliseconds(1);
187 // HTTPS google.com referral to HTTP example.com. 194 // HTTPS google.com referral to HTTP example.com.
188 gws_observer_->set_referrer(content::Referrer( 195 embedder_interface_->set_referrer(content::Referrer(
189 GURL("https://www.google.com"), blink::WebReferrerPolicyOrigin)); 196 GURL("https://www.google.com"), blink::WebReferrerPolicyOrigin));
190 NavigateAndCommit(GURL("https://www.example.com")); 197 NavigateAndCommit(GURL("https://www.example.com"));
191 198
192 observer_->OnMessageReceived( 199 observer_->OnMessageReceived(
193 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing), 200 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing),
194 web_contents()->GetMainFrame()); 201 web_contents()->GetMainFrame());
195 202
196 page_load_metrics::PageLoadTiming timing2; 203 page_load_metrics::PageLoadTiming timing2;
197 timing2.navigation_start = base::Time::FromDoubleT(10); 204 timing2.navigation_start = base::Time::FromDoubleT(10);
198 timing2.first_text_paint = base::TimeDelta::FromMilliseconds(100); 205 timing2.first_text_paint = base::TimeDelta::FromMilliseconds(100);
199 // HTTPS google.com referral to HTTP example.com. 206 // HTTPS google.com referral to HTTP example.com.
200 gws_observer_->set_referrer(content::Referrer( 207 embedder_interface_->set_referrer(content::Referrer(
201 GURL("https://www.google.co.in"), blink::WebReferrerPolicyOrigin)); 208 GURL("https://www.google.co.in"), blink::WebReferrerPolicyOrigin));
202 NavigateAndCommit(GURL("https://www.example2.com")); 209 NavigateAndCommit(GURL("https://www.example2.com"));
203 210
204 observer_->OnMessageReceived( 211 observer_->OnMessageReceived(
205 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing2), 212 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing2),
206 web_contents()->GetMainFrame()); 213 web_contents()->GetMainFrame());
207 // Navigate again to force logging. 214 // Navigate again to force logging.
208 NavigateAndCommit(GURL("https://www.example3.com")); 215 NavigateAndCommit(GURL("https://www.example3.com"));
209 histogram_tester_.ExpectTotalCount(kHistogramNameFromGWSFirstTextPaint, 2); 216 histogram_tester_.ExpectTotalCount(kHistogramNameFromGWSFirstTextPaint, 2);
210 histogram_tester_.ExpectBucketCount(kHistogramNameFromGWSFirstTextPaint, 217 histogram_tester_.ExpectBucketCount(kHistogramNameFromGWSFirstTextPaint,
211 timing.first_text_paint.InMilliseconds(), 218 timing.first_text_paint.InMilliseconds(),
212 1); 219 1);
213 histogram_tester_.ExpectBucketCount(kHistogramNameFromGWSFirstTextPaint, 220 histogram_tester_.ExpectBucketCount(kHistogramNameFromGWSFirstTextPaint,
214 timing2.first_text_paint.InMilliseconds(), 221 timing2.first_text_paint.InMilliseconds(),
215 1); 222 1);
216 } 223 }
217 224
218 TEST_F(PageLoadMetricsObserverTest, ReferralNotFromGWS) { 225 TEST_F(PageLoadMetricsObserverTest, ReferralNotFromGWS) {
219 page_load_metrics::PageLoadTiming timing; 226 page_load_metrics::PageLoadTiming timing;
220 timing.navigation_start = base::Time::FromDoubleT(1); 227 timing.navigation_start = base::Time::FromDoubleT(1);
221 timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 228 timing.first_text_paint = base::TimeDelta::FromMilliseconds(1);
229 embedder_interface_->set_referrer(content::Referrer(
230 GURL("https://www.anothersite.com"), blink::WebReferrerPolicyDefault));
222 NavigateAndCommit(GURL("https://www.example.com")); 231 NavigateAndCommit(GURL("https://www.example.com"));
223 gws_observer_->set_referrer(content::Referrer(
224 GURL("https://www.anothersite.com"), blink::WebReferrerPolicyDefault));
225 232
226 observer_->OnMessageReceived( 233 observer_->OnMessageReceived(
227 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing), 234 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing),
228 web_contents()->GetMainFrame()); 235 web_contents()->GetMainFrame());
229 236
230 // Navigate again to force logging. 237 // Navigate again to force logging.
231 NavigateAndCommit(GURL("https://www.google.com")); 238 NavigateAndCommit(GURL("https://www.google.com"));
232 histogram_tester_.ExpectTotalCount(kHistogramNameFromGWSFirstTextPaint, 0); 239 histogram_tester_.ExpectTotalCount(kHistogramNameFromGWSFirstTextPaint, 0);
233 } 240 }
234 241
235 TEST_F(PageLoadMetricsObserverTest, IsGoogleCaptcha) { 242 TEST_F(PageLoadMetricsObserverTest, IsGoogleCaptcha) {
236 struct { 243 struct {
237 std::string url; 244 std::string url;
238 bool expected; 245 bool expected;
239 } test_cases[] = { 246 } test_cases[] = {
240 {"", false}, 247 {"", false},
241 {"http://www.google.com/", false}, 248 {"http://www.google.com/", false},
242 {"http://www.cnn.com/", false}, 249 {"http://www.cnn.com/", false},
243 {"http://ipv4.google.com/", false}, 250 {"http://ipv4.google.com/", false},
244 {"https://ipv4.google.com/sorry/IndexRedirect?continue=http://a", true}, 251 {"https://ipv4.google.com/sorry/IndexRedirect?continue=http://a", true},
245 {"https://ipv6.google.com/sorry/IndexRedirect?continue=http://a", true}, 252 {"https://ipv6.google.com/sorry/IndexRedirect?continue=http://a", true},
246 {"https://ipv7.google.com/sorry/IndexRedirect?continue=http://a", false}, 253 {"https://ipv7.google.com/sorry/IndexRedirect?continue=http://a", false},
247 }; 254 };
248 for (const auto& test : test_cases) { 255 for (const auto& test : test_cases) {
249 EXPECT_EQ(test.expected, 256 EXPECT_EQ(test.expected,
250 google_captcha_observer::IsGoogleCaptcha(GURL(test.url))) 257 google_captcha_observer::IsGoogleCaptcha(GURL(test.url)))
251 << "for URL: " << test.url; 258 << "for URL: " << test.url;
252 } 259 }
253 } 260 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698