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