| 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 "chrome/browser/engagement/site_engagement_helper.h" | 5 #include "chrome/browser/engagement/site_engagement_helper.h" |
| 6 | 6 |
| 7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
| 8 #include "base/test/histogram_tester.h" | 8 #include "base/test/histogram_tester.h" |
| 9 #include "base/timer/mock_timer.h" | 9 #include "base/timer/mock_timer.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 } | 144 } |
| 145 | 145 |
| 146 TEST_F(SiteEngagementHelperTest, MouseDownEventEngagementAccumulation) { | 146 TEST_F(SiteEngagementHelperTest, MouseDownEventEngagementAccumulation) { |
| 147 UserInputAccumulation(blink::WebInputEvent::MouseDown); | 147 UserInputAccumulation(blink::WebInputEvent::MouseDown); |
| 148 } | 148 } |
| 149 | 149 |
| 150 TEST_F(SiteEngagementHelperTest, ScrollEventEngagementAccumulation) { | 150 TEST_F(SiteEngagementHelperTest, ScrollEventEngagementAccumulation) { |
| 151 UserInputAccumulation(blink::WebInputEvent::GestureScrollBegin); | 151 UserInputAccumulation(blink::WebInputEvent::GestureScrollBegin); |
| 152 } | 152 } |
| 153 | 153 |
| 154 TEST_F(SiteEngagementHelperTest, GestureEngagementAccumulation) { | 154 TEST_F(SiteEngagementHelperTest, TouchEngagementAccumulation) { |
| 155 UserInputAccumulation(blink::WebInputEvent::GestureTapDown); | 155 UserInputAccumulation(blink::WebInputEvent::TouchStart); |
| 156 } | 156 } |
| 157 | 157 |
| 158 TEST_F(SiteEngagementHelperTest, MediaEngagementAccumulation) { | 158 TEST_F(SiteEngagementHelperTest, MediaEngagementAccumulation) { |
| 159 GURL url1("https://www.google.com/"); | 159 GURL url1("https://www.google.com/"); |
| 160 GURL url2("http://www.google.com/"); | 160 GURL url2("http://www.google.com/"); |
| 161 content::WebContents* contents = web_contents(); | 161 content::WebContents* contents = web_contents(); |
| 162 | 162 |
| 163 SiteEngagementService::Helper* helper = GetHelper(contents); | 163 SiteEngagementService::Helper* helper = GetHelper(contents); |
| 164 SiteEngagementService* service = SiteEngagementService::Get(profile()); | 164 SiteEngagementService* service = SiteEngagementService::Get(profile()); |
| 165 DCHECK(service); | 165 DCHECK(service); |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 301 histograms.ExpectTotalCount(SiteEngagementMetrics::kEngagementTypeHistogram, | 301 histograms.ExpectTotalCount(SiteEngagementMetrics::kEngagementTypeHistogram, |
| 302 2); | 302 2); |
| 303 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, | 303 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, |
| 304 SiteEngagementMetrics::ENGAGEMENT_NAVIGATION, 1); | 304 SiteEngagementMetrics::ENGAGEMENT_NAVIGATION, 1); |
| 305 histograms.ExpectBucketCount( | 305 histograms.ExpectBucketCount( |
| 306 SiteEngagementMetrics::kEngagementTypeHistogram, | 306 SiteEngagementMetrics::kEngagementTypeHistogram, |
| 307 SiteEngagementMetrics::ENGAGEMENT_FIRST_DAILY_ENGAGEMENT, 1); | 307 SiteEngagementMetrics::ENGAGEMENT_FIRST_DAILY_ENGAGEMENT, 1); |
| 308 | 308 |
| 309 HandleUserInputAndRestartTracking(helper, blink::WebInputEvent::RawKeyDown); | 309 HandleUserInputAndRestartTracking(helper, blink::WebInputEvent::RawKeyDown); |
| 310 HandleUserInputAndRestartTracking(helper, | 310 HandleUserInputAndRestartTracking(helper, |
| 311 blink::WebInputEvent::GestureTapDown); | 311 blink::WebInputEvent::TouchStart); |
| 312 HandleUserInputAndRestartTracking(helper, | 312 HandleUserInputAndRestartTracking(helper, |
| 313 blink::WebInputEvent::GestureTapDown); | 313 blink::WebInputEvent::TouchStart); |
| 314 HandleUserInputAndRestartTracking(helper, blink::WebInputEvent::RawKeyDown); | 314 HandleUserInputAndRestartTracking(helper, blink::WebInputEvent::RawKeyDown); |
| 315 HandleUserInputAndRestartTracking(helper, blink::WebInputEvent::MouseDown); | 315 HandleUserInputAndRestartTracking(helper, blink::WebInputEvent::MouseDown); |
| 316 | 316 |
| 317 EXPECT_DOUBLE_EQ(0.75, service->GetScore(url1)); | 317 EXPECT_DOUBLE_EQ(0.75, service->GetScore(url1)); |
| 318 EXPECT_EQ(0, service->GetScore(url2)); | 318 EXPECT_EQ(0, service->GetScore(url2)); |
| 319 histograms.ExpectTotalCount(SiteEngagementMetrics::kEngagementTypeHistogram, | 319 histograms.ExpectTotalCount(SiteEngagementMetrics::kEngagementTypeHistogram, |
| 320 7); | 320 7); |
| 321 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, | 321 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, |
| 322 SiteEngagementMetrics::ENGAGEMENT_NAVIGATION, 1); | 322 SiteEngagementMetrics::ENGAGEMENT_NAVIGATION, 1); |
| 323 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, | 323 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, |
| 324 SiteEngagementMetrics::ENGAGEMENT_KEYPRESS, 2); | 324 SiteEngagementMetrics::ENGAGEMENT_KEYPRESS, 2); |
| 325 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, | 325 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, |
| 326 SiteEngagementMetrics::ENGAGEMENT_MOUSE, 1); | 326 SiteEngagementMetrics::ENGAGEMENT_MOUSE, 1); |
| 327 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, | 327 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, |
| 328 SiteEngagementMetrics::ENGAGEMENT_TOUCH_GESTURE, | 328 SiteEngagementMetrics::ENGAGEMENT_TOUCH_GESTURE, |
| 329 2); | 329 2); |
| 330 histograms.ExpectBucketCount( | 330 histograms.ExpectBucketCount( |
| 331 SiteEngagementMetrics::kEngagementTypeHistogram, | 331 SiteEngagementMetrics::kEngagementTypeHistogram, |
| 332 SiteEngagementMetrics::ENGAGEMENT_FIRST_DAILY_ENGAGEMENT, 1); | 332 SiteEngagementMetrics::ENGAGEMENT_FIRST_DAILY_ENGAGEMENT, 1); |
| 333 | 333 |
| 334 HandleUserInputAndRestartTracking(helper, | 334 HandleUserInputAndRestartTracking(helper, |
| 335 blink::WebInputEvent::GestureScrollBegin); | 335 blink::WebInputEvent::GestureScrollBegin); |
| 336 HandleUserInputAndRestartTracking(helper, blink::WebInputEvent::MouseDown); | 336 HandleUserInputAndRestartTracking(helper, blink::WebInputEvent::MouseDown); |
| 337 HandleMediaPlaying(helper, true); | 337 HandleMediaPlaying(helper, true); |
| 338 HandleUserInputAndRestartTracking(helper, | 338 HandleUserInputAndRestartTracking(helper, |
| 339 blink::WebInputEvent::GestureTapDown); | 339 blink::WebInputEvent::TouchStart); |
| 340 HandleMediaPlaying(helper, false); | 340 HandleMediaPlaying(helper, false); |
| 341 | 341 |
| 342 EXPECT_DOUBLE_EQ(0.93, service->GetScore(url1)); | 342 EXPECT_DOUBLE_EQ(0.93, service->GetScore(url1)); |
| 343 EXPECT_EQ(0, service->GetScore(url2)); | 343 EXPECT_EQ(0, service->GetScore(url2)); |
| 344 histograms.ExpectTotalCount(SiteEngagementMetrics::kEngagementTypeHistogram, | 344 histograms.ExpectTotalCount(SiteEngagementMetrics::kEngagementTypeHistogram, |
| 345 12); | 345 12); |
| 346 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, | 346 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, |
| 347 SiteEngagementMetrics::ENGAGEMENT_MOUSE, 2); | 347 SiteEngagementMetrics::ENGAGEMENT_MOUSE, 2); |
| 348 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, | 348 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, |
| 349 SiteEngagementMetrics::ENGAGEMENT_SCROLL, 1); | 349 SiteEngagementMetrics::ENGAGEMENT_SCROLL, 1); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 361 SiteEngagementMetrics::ENGAGEMENT_FIRST_DAILY_ENGAGEMENT, 1); | 361 SiteEngagementMetrics::ENGAGEMENT_FIRST_DAILY_ENGAGEMENT, 1); |
| 362 | 362 |
| 363 Navigate(url2); | 363 Navigate(url2); |
| 364 TrackingStarted(helper); | 364 TrackingStarted(helper); |
| 365 | 365 |
| 366 EXPECT_DOUBLE_EQ(0.93, service->GetScore(url1)); | 366 EXPECT_DOUBLE_EQ(0.93, service->GetScore(url1)); |
| 367 EXPECT_DOUBLE_EQ(0.5, service->GetScore(url2)); | 367 EXPECT_DOUBLE_EQ(0.5, service->GetScore(url2)); |
| 368 EXPECT_DOUBLE_EQ(1.43, service->GetTotalEngagementPoints()); | 368 EXPECT_DOUBLE_EQ(1.43, service->GetTotalEngagementPoints()); |
| 369 | 369 |
| 370 HandleUserInputAndRestartTracking(helper, | 370 HandleUserInputAndRestartTracking(helper, |
| 371 blink::WebInputEvent::GestureTapDown); | 371 blink::WebInputEvent::TouchStart); |
| 372 HandleUserInputAndRestartTracking(helper, blink::WebInputEvent::RawKeyDown); | 372 HandleUserInputAndRestartTracking(helper, blink::WebInputEvent::RawKeyDown); |
| 373 | 373 |
| 374 EXPECT_DOUBLE_EQ(0.93, service->GetScore(url1)); | 374 EXPECT_DOUBLE_EQ(0.93, service->GetScore(url1)); |
| 375 EXPECT_DOUBLE_EQ(0.6, service->GetScore(url2)); | 375 EXPECT_DOUBLE_EQ(0.6, service->GetScore(url2)); |
| 376 EXPECT_DOUBLE_EQ(1.53, service->GetTotalEngagementPoints()); | 376 EXPECT_DOUBLE_EQ(1.53, service->GetTotalEngagementPoints()); |
| 377 histograms.ExpectTotalCount(SiteEngagementMetrics::kEngagementTypeHistogram, | 377 histograms.ExpectTotalCount(SiteEngagementMetrics::kEngagementTypeHistogram, |
| 378 16); | 378 16); |
| 379 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, | 379 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, |
| 380 SiteEngagementMetrics::ENGAGEMENT_NAVIGATION, 2); | 380 SiteEngagementMetrics::ENGAGEMENT_NAVIGATION, 2); |
| 381 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, | 381 histograms.ExpectBucketCount(SiteEngagementMetrics::kEngagementTypeHistogram, |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 434 | 434 |
| 435 EXPECT_DOUBLE_EQ(0.57, service->GetScore(url1)); | 435 EXPECT_DOUBLE_EQ(0.57, service->GetScore(url1)); |
| 436 EXPECT_EQ(0, service->GetScore(url2)); | 436 EXPECT_EQ(0, service->GetScore(url2)); |
| 437 | 437 |
| 438 input_tracker_timer->Fire(); | 438 input_tracker_timer->Fire(); |
| 439 EXPECT_FALSE(input_tracker_timer->IsRunning()); | 439 EXPECT_FALSE(input_tracker_timer->IsRunning()); |
| 440 EXPECT_TRUE(IsTrackingInput(helper)); | 440 EXPECT_TRUE(IsTrackingInput(helper)); |
| 441 EXPECT_TRUE(media_tracker_timer->IsRunning()); | 441 EXPECT_TRUE(media_tracker_timer->IsRunning()); |
| 442 | 442 |
| 443 // Timer should start running again after input. | 443 // Timer should start running again after input. |
| 444 HandleUserInput(helper, blink::WebInputEvent::GestureTapDown); | 444 HandleUserInput(helper, blink::WebInputEvent::TouchStart); |
| 445 EXPECT_TRUE(input_tracker_timer->IsRunning()); | 445 EXPECT_TRUE(input_tracker_timer->IsRunning()); |
| 446 EXPECT_FALSE(IsTrackingInput(helper)); | 446 EXPECT_FALSE(IsTrackingInput(helper)); |
| 447 EXPECT_TRUE(media_tracker_timer->IsRunning()); | 447 EXPECT_TRUE(media_tracker_timer->IsRunning()); |
| 448 | 448 |
| 449 EXPECT_DOUBLE_EQ(0.62, service->GetScore(url1)); | 449 EXPECT_DOUBLE_EQ(0.62, service->GetScore(url1)); |
| 450 EXPECT_EQ(0, service->GetScore(url2)); | 450 EXPECT_EQ(0, service->GetScore(url2)); |
| 451 | 451 |
| 452 input_tracker_timer->Fire(); | 452 input_tracker_timer->Fire(); |
| 453 EXPECT_FALSE(input_tracker_timer->IsRunning()); | 453 EXPECT_FALSE(input_tracker_timer->IsRunning()); |
| 454 EXPECT_TRUE(IsTrackingInput(helper)); | 454 EXPECT_TRUE(IsTrackingInput(helper)); |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 // When the timer fires, callbacks are added. | 569 // When the timer fires, callbacks are added. |
| 570 input_tracker_timer->Fire(); | 570 input_tracker_timer->Fire(); |
| 571 EXPECT_FALSE(input_tracker_timer->IsRunning()); | 571 EXPECT_FALSE(input_tracker_timer->IsRunning()); |
| 572 EXPECT_TRUE(IsTrackingInput(helper)); | 572 EXPECT_TRUE(IsTrackingInput(helper)); |
| 573 | 573 |
| 574 // Navigation should start the initial delay timer again. | 574 // Navigation should start the initial delay timer again. |
| 575 Navigate(url1); | 575 Navigate(url1); |
| 576 EXPECT_TRUE(input_tracker_timer->IsRunning()); | 576 EXPECT_TRUE(input_tracker_timer->IsRunning()); |
| 577 EXPECT_FALSE(IsTrackingInput(helper)); | 577 EXPECT_FALSE(IsTrackingInput(helper)); |
| 578 } | 578 } |
| OLD | NEW |