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

Side by Side Diff: chrome/browser/engagement/site_engagement_service_browsertest.cc

Issue 1368533004: Add UMA metrics to the site engagement service. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@time-on-site
Patch Set: Refactor tests Created 5 years, 2 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 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/command_line.h" 5 #include "base/command_line.h"
6 #include "base/test/histogram_tester.h"
6 #include "base/timer/mock_timer.h" 7 #include "base/timer/mock_timer.h"
7 #include "base/values.h" 8 #include "base/values.h"
8 #include "chrome/browser/engagement/site_engagement_helper.h" 9 #include "chrome/browser/engagement/site_engagement_helper.h"
9 #include "chrome/browser/engagement/site_engagement_service.h" 10 #include "chrome/browser/engagement/site_engagement_service.h"
10 #include "chrome/browser/engagement/site_engagement_service_factory.h" 11 #include "chrome/browser/engagement/site_engagement_service_factory.h"
11 #include "chrome/browser/ui/browser.h" 12 #include "chrome/browser/ui/browser.h"
12 #include "chrome/browser/ui/tabs/tab_strip_model.h" 13 #include "chrome/browser/ui/tabs/tab_strip_model.h"
13 #include "chrome/common/chrome_switches.h" 14 #include "chrome/common/chrome_switches.h"
14 #include "chrome/test/base/in_process_browser_test.h" 15 #include "chrome/test/base/in_process_browser_test.h"
15 #include "chrome/test/base/ui_test_utils.h" 16 #include "chrome/test/base/ui_test_utils.h"
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 GURL url1("https://www.google.com/"); 154 GURL url1("https://www.google.com/");
154 GURL url2("http://www.google.com/"); 155 GURL url2("http://www.google.com/");
155 content::WebContents* web_contents = 156 content::WebContents* web_contents =
156 browser()->tab_strip_model()->GetActiveWebContents(); 157 browser()->tab_strip_model()->GetActiveWebContents();
157 158
158 scoped_ptr<SiteEngagementHelper> helper(CreateHelper(web_contents)); 159 scoped_ptr<SiteEngagementHelper> helper(CreateHelper(web_contents));
159 SiteEngagementService* service = 160 SiteEngagementService* service =
160 SiteEngagementServiceFactory::GetForProfile(browser()->profile()); 161 SiteEngagementServiceFactory::GetForProfile(browser()->profile());
161 DCHECK(service); 162 DCHECK(service);
162 163
164 base::HistogramTester histograms;
165
166 // Histograms should start off empty.
167 histograms.ExpectTotalCount(SiteEngagementMetrics::kEngagementTypeHistogram,
168 0);
169
163 ui_test_utils::NavigateToURL(browser(), url1); 170 ui_test_utils::NavigateToURL(browser(), url1);
164 EXPECT_DOUBLE_EQ(0.5, service->GetScore(url1)); 171 EXPECT_DOUBLE_EQ(0.5, service->GetScore(url1));
165 EXPECT_EQ(0, service->GetScore(url2)); 172 EXPECT_EQ(0, service->GetScore(url2));
173 histograms.ExpectTotalCount(SiteEngagementMetrics::kEngagementTypeHistogram,
174 1);
175 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram,
176 SiteEngagementMetrics::ENGAGEMENT_NAVIGATION, 1);
166 177
167 HandleKeyPress(helper.get(), ui::VKEY_UP); 178 HandleKeyPress(helper.get(), ui::VKEY_UP);
168 HandleKeyPress(helper.get(), ui::VKEY_RETURN); 179 HandleKeyPress(helper.get(), ui::VKEY_RETURN);
169 HandleKeyPress(helper.get(), ui::VKEY_J); 180 HandleKeyPress(helper.get(), ui::VKEY_J);
170 181
171 HandleMouseEvent(helper.get(), blink::WebMouseEvent::ButtonLeft, 182 HandleMouseEvent(helper.get(), blink::WebMouseEvent::ButtonLeft,
172 blink::WebInputEvent::MouseDown); 183 blink::WebInputEvent::MouseDown);
173 184
174 EXPECT_DOUBLE_EQ(0.7, service->GetScore(url1)); 185 EXPECT_DOUBLE_EQ(0.7, service->GetScore(url1));
175 EXPECT_EQ(0, service->GetScore(url2)); 186 EXPECT_EQ(0, service->GetScore(url2));
187 histograms.ExpectTotalCount(SiteEngagementMetrics::kEngagementTypeHistogram,
188 5);
189 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram,
190 SiteEngagementMetrics::ENGAGEMENT_NAVIGATION, 1);
191 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram,
192 SiteEngagementMetrics::ENGAGEMENT_KEYPRESS, 3);
193 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram,
194 SiteEngagementMetrics::ENGAGEMENT_MOUSE, 1);
176 195
177 HandleMouseEvent(helper.get(), blink::WebMouseEvent::ButtonRight, 196 HandleMouseEvent(helper.get(), blink::WebMouseEvent::ButtonRight,
178 blink::WebInputEvent::MouseDown); 197 blink::WebInputEvent::MouseDown);
179 HandleMouseEvent(helper.get(), blink::WebMouseEvent::ButtonMiddle, 198 HandleMouseEvent(helper.get(), blink::WebMouseEvent::ButtonMiddle,
180 blink::WebInputEvent::MouseDown); 199 blink::WebInputEvent::MouseDown);
181 HandleMouseEvent(helper.get(), blink::WebMouseEvent::ButtonNone, 200 HandleMouseEvent(helper.get(), blink::WebMouseEvent::ButtonNone,
182 blink::WebInputEvent::MouseWheel); 201 blink::WebInputEvent::MouseWheel);
183 202
184 EXPECT_DOUBLE_EQ(0.85, service->GetScore(url1)); 203 EXPECT_DOUBLE_EQ(0.85, service->GetScore(url1));
185 EXPECT_EQ(0, service->GetScore(url2)); 204 EXPECT_EQ(0, service->GetScore(url2));
205 histograms.ExpectTotalCount(SiteEngagementMetrics::kEngagementTypeHistogram,
206 8);
207 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram,
208 SiteEngagementMetrics::ENGAGEMENT_MOUSE, 4);
186 209
187 ui_test_utils::NavigateToURL(browser(), url2); 210 ui_test_utils::NavigateToURL(browser(), url2);
188 211
189 EXPECT_DOUBLE_EQ(0.85, service->GetScore(url1)); 212 EXPECT_DOUBLE_EQ(0.85, service->GetScore(url1));
190 EXPECT_DOUBLE_EQ(0.5, service->GetScore(url2)); 213 EXPECT_DOUBLE_EQ(0.5, service->GetScore(url2));
191 EXPECT_DOUBLE_EQ(1.35, service->GetTotalEngagementPoints()); 214 EXPECT_DOUBLE_EQ(1.35, service->GetTotalEngagementPoints());
192 215
193 HandleMouseEvent(helper.get(), blink::WebMouseEvent::ButtonNone, 216 HandleMouseEvent(helper.get(), blink::WebMouseEvent::ButtonNone,
194 blink::WebInputEvent::MouseWheel); 217 blink::WebInputEvent::MouseWheel);
195 HandleKeyPress(helper.get(), ui::VKEY_DOWN); 218 HandleKeyPress(helper.get(), ui::VKEY_DOWN);
196 219
197 EXPECT_DOUBLE_EQ(0.85, service->GetScore(url1)); 220 EXPECT_DOUBLE_EQ(0.85, service->GetScore(url1));
198 EXPECT_DOUBLE_EQ(0.6, service->GetScore(url2)); 221 EXPECT_DOUBLE_EQ(0.6, service->GetScore(url2));
199 EXPECT_DOUBLE_EQ(1.45, service->GetTotalEngagementPoints()); 222 EXPECT_DOUBLE_EQ(1.45, service->GetTotalEngagementPoints());
223 histograms.ExpectTotalCount(SiteEngagementMetrics::kEngagementTypeHistogram,
224 11);
225 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram,
226 SiteEngagementMetrics::ENGAGEMENT_NAVIGATION, 2);
227 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram,
228 SiteEngagementMetrics::ENGAGEMENT_KEYPRESS, 4);
229 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram,
230 SiteEngagementMetrics::ENGAGEMENT_MOUSE, 5);
200 } 231 }
201 232
202 IN_PROC_BROWSER_TEST_F(SiteEngagementServiceBrowserTest, 233 IN_PROC_BROWSER_TEST_F(SiteEngagementServiceBrowserTest,
203 CheckTimerAndCallbacks) { 234 CheckTimerAndCallbacks) {
204 GURL url1("https://www.google.com/"); 235 GURL url1("https://www.google.com/");
205 GURL url2("http://www.google.com/"); 236 GURL url2("http://www.google.com/");
206 content::WebContents* web_contents = 237 content::WebContents* web_contents =
207 browser()->tab_strip_model()->GetActiveWebContents(); 238 browser()->tab_strip_model()->GetActiveWebContents();
208 239
209 scoped_ptr<base::MockTimer> mock_timer(new base::MockTimer(true, false)); 240 scoped_ptr<base::MockTimer> mock_timer(new base::MockTimer(true, false));
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 283
253 HandleMouseEvent(helper.get(), blink::WebMouseEvent::ButtonRight, 284 HandleMouseEvent(helper.get(), blink::WebMouseEvent::ButtonRight,
254 blink::WebInputEvent::MouseDown); 285 blink::WebInputEvent::MouseDown);
255 EXPECT_TRUE(timer->IsRunning()); 286 EXPECT_TRUE(timer->IsRunning());
256 EXPECT_FALSE(CallbacksAdded(helper.get())); 287 EXPECT_FALSE(CallbacksAdded(helper.get()));
257 288
258 EXPECT_DOUBLE_EQ(0.6, service->GetScore(url1)); 289 EXPECT_DOUBLE_EQ(0.6, service->GetScore(url1));
259 EXPECT_DOUBLE_EQ(0.55, service->GetScore(url2)); 290 EXPECT_DOUBLE_EQ(0.55, service->GetScore(url2));
260 EXPECT_DOUBLE_EQ(1.15, service->GetTotalEngagementPoints()); 291 EXPECT_DOUBLE_EQ(1.15, service->GetTotalEngagementPoints());
261 } 292 }
OLDNEW
« no previous file with comments | « chrome/browser/engagement/site_engagement_service.cc ('k') | chrome/browser/engagement/site_engagement_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698