OLD | NEW |
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 } |
OLD | NEW |