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

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

Powered by Google App Engine
This is Rietveld 408576698