| 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/test/histogram_tester.h" | 7 #include "base/test/histogram_tester.h" |
| 8 #include "base/timer/mock_timer.h" | 8 #include "base/timer/mock_timer.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 #include "chrome/browser/engagement/site_engagement_service.h" | 10 #include "chrome/browser/engagement/site_engagement_service.h" |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 HandleMediaPlaying(helper, false); | 202 HandleMediaPlaying(helper, false); |
| 203 HandleMediaPlaying(helper, false); | 203 HandleMediaPlaying(helper, false); |
| 204 EXPECT_DOUBLE_EQ(0.6, service->GetScore(url1)); | 204 EXPECT_DOUBLE_EQ(0.6, service->GetScore(url1)); |
| 205 EXPECT_DOUBLE_EQ(0.54, service->GetScore(url2)); | 205 EXPECT_DOUBLE_EQ(0.54, service->GetScore(url2)); |
| 206 EXPECT_DOUBLE_EQ(1.14, service->GetTotalEngagementPoints()); | 206 EXPECT_DOUBLE_EQ(1.14, service->GetTotalEngagementPoints()); |
| 207 } | 207 } |
| 208 | 208 |
| 209 TEST_F(SiteEngagementHelperTest, MediaEngagement) { | 209 TEST_F(SiteEngagementHelperTest, MediaEngagement) { |
| 210 GURL url1("https://www.google.com/"); | 210 GURL url1("https://www.google.com/"); |
| 211 GURL url2("http://www.google.com/"); | 211 GURL url2("http://www.google.com/"); |
| 212 content::WebContents* contents = web_contents(); | |
| 213 | 212 |
| 214 base::MockTimer* media_tracker_timer = new base::MockTimer(true, false); | 213 base::MockTimer* media_tracker_timer = new base::MockTimer(true, false); |
| 215 SiteEngagementHelper* helper = GetHelper(contents); | 214 SiteEngagementHelper* helper = GetHelper(web_contents()); |
| 216 SetMediaTrackerPauseTimer(helper, make_scoped_ptr(media_tracker_timer)); | 215 SetMediaTrackerPauseTimer(helper, make_scoped_ptr(media_tracker_timer)); |
| 217 SiteEngagementService* service = | 216 SiteEngagementService* service = |
| 218 SiteEngagementServiceFactory::GetForProfile(profile()); | 217 SiteEngagementServiceFactory::GetForProfile(profile()); |
| 219 DCHECK(service); | 218 DCHECK(service); |
| 220 | 219 |
| 221 Navigate(url1); | 220 Navigate(url1); |
| 222 MediaStartedPlaying(helper); | 221 MediaStartedPlaying(helper); |
| 223 | 222 |
| 224 EXPECT_DOUBLE_EQ(0.50, service->GetScore(url1)); | 223 EXPECT_DOUBLE_EQ(0.50, service->GetScore(url1)); |
| 225 EXPECT_EQ(0, service->GetScore(url2)); | 224 EXPECT_EQ(0, service->GetScore(url2)); |
| 226 EXPECT_TRUE(media_tracker_timer->IsRunning()); | 225 EXPECT_TRUE(media_tracker_timer->IsRunning()); |
| 227 | 226 |
| 228 media_tracker_timer->Fire(); | 227 media_tracker_timer->Fire(); |
| 229 EXPECT_DOUBLE_EQ(0.52, service->GetScore(url1)); | 228 EXPECT_DOUBLE_EQ(0.52, service->GetScore(url1)); |
| 230 EXPECT_EQ(0, service->GetScore(url2)); | 229 EXPECT_EQ(0, service->GetScore(url2)); |
| 231 EXPECT_TRUE(media_tracker_timer->IsRunning()); | 230 EXPECT_TRUE(media_tracker_timer->IsRunning()); |
| 232 | 231 |
| 233 contents->WasHidden(); | 232 SimulateHide(); |
| 234 media_tracker_timer->Fire(); | 233 media_tracker_timer->Fire(); |
| 235 EXPECT_DOUBLE_EQ(0.53, service->GetScore(url1)); | 234 EXPECT_DOUBLE_EQ(0.53, service->GetScore(url1)); |
| 236 EXPECT_EQ(0, service->GetScore(url2)); | 235 EXPECT_EQ(0, service->GetScore(url2)); |
| 237 EXPECT_TRUE(media_tracker_timer->IsRunning()); | 236 EXPECT_TRUE(media_tracker_timer->IsRunning()); |
| 238 | 237 |
| 239 MediaStoppedPlaying(helper); | 238 MediaStoppedPlaying(helper); |
| 240 media_tracker_timer->Fire(); | 239 media_tracker_timer->Fire(); |
| 241 EXPECT_DOUBLE_EQ(0.53, service->GetScore(url1)); | 240 EXPECT_DOUBLE_EQ(0.53, service->GetScore(url1)); |
| 242 EXPECT_EQ(0, service->GetScore(url2)); | 241 EXPECT_EQ(0, service->GetScore(url2)); |
| 243 EXPECT_TRUE(media_tracker_timer->IsRunning()); | 242 EXPECT_TRUE(media_tracker_timer->IsRunning()); |
| 244 | 243 |
| 245 contents->WasShown(); | 244 SimulateShow(); |
| 246 media_tracker_timer->Fire(); | 245 media_tracker_timer->Fire(); |
| 247 EXPECT_DOUBLE_EQ(0.53, service->GetScore(url1)); | 246 EXPECT_DOUBLE_EQ(0.53, service->GetScore(url1)); |
| 248 EXPECT_EQ(0, service->GetScore(url2)); | 247 EXPECT_EQ(0, service->GetScore(url2)); |
| 249 EXPECT_TRUE(media_tracker_timer->IsRunning()); | 248 EXPECT_TRUE(media_tracker_timer->IsRunning()); |
| 250 | 249 |
| 251 MediaStartedPlaying(helper); | 250 MediaStartedPlaying(helper); |
| 252 media_tracker_timer->Fire(); | 251 media_tracker_timer->Fire(); |
| 253 EXPECT_DOUBLE_EQ(0.55, service->GetScore(url1)); | 252 EXPECT_DOUBLE_EQ(0.55, service->GetScore(url1)); |
| 254 EXPECT_EQ(0, service->GetScore(url2)); | 253 EXPECT_EQ(0, service->GetScore(url2)); |
| 255 EXPECT_TRUE(media_tracker_timer->IsRunning()); | 254 EXPECT_TRUE(media_tracker_timer->IsRunning()); |
| 256 | 255 |
| 257 Navigate(url2); | 256 Navigate(url2); |
| 258 EXPECT_DOUBLE_EQ(0.55, service->GetScore(url1)); | 257 EXPECT_DOUBLE_EQ(0.55, service->GetScore(url1)); |
| 259 EXPECT_EQ(0.5, service->GetScore(url2)); | 258 EXPECT_EQ(0.5, service->GetScore(url2)); |
| 260 EXPECT_FALSE(media_tracker_timer->IsRunning()); | 259 EXPECT_FALSE(media_tracker_timer->IsRunning()); |
| 261 | 260 |
| 262 MediaStartedPlaying(helper); | 261 MediaStartedPlaying(helper); |
| 263 media_tracker_timer->Fire(); | 262 media_tracker_timer->Fire(); |
| 264 EXPECT_DOUBLE_EQ(0.55, service->GetScore(url1)); | 263 EXPECT_DOUBLE_EQ(0.55, service->GetScore(url1)); |
| 265 EXPECT_EQ(0.52, service->GetScore(url2)); | 264 EXPECT_EQ(0.52, service->GetScore(url2)); |
| 266 EXPECT_TRUE(media_tracker_timer->IsRunning()); | 265 EXPECT_TRUE(media_tracker_timer->IsRunning()); |
| 267 | 266 |
| 268 contents->WasHidden(); | 267 SimulateHide(); |
| 269 media_tracker_timer->Fire(); | 268 media_tracker_timer->Fire(); |
| 270 EXPECT_DOUBLE_EQ(0.55, service->GetScore(url1)); | 269 EXPECT_DOUBLE_EQ(0.55, service->GetScore(url1)); |
| 271 EXPECT_EQ(0.53, service->GetScore(url2)); | 270 EXPECT_EQ(0.53, service->GetScore(url2)); |
| 272 EXPECT_TRUE(media_tracker_timer->IsRunning()); | 271 EXPECT_TRUE(media_tracker_timer->IsRunning()); |
| 273 | 272 |
| 274 MediaStoppedPlaying(helper); | 273 MediaStoppedPlaying(helper); |
| 275 contents->WasShown(); | 274 SimulateShow(); |
| 276 media_tracker_timer->Fire(); | 275 media_tracker_timer->Fire(); |
| 277 EXPECT_DOUBLE_EQ(0.55, service->GetScore(url1)); | 276 EXPECT_DOUBLE_EQ(0.55, service->GetScore(url1)); |
| 278 EXPECT_EQ(0.53, service->GetScore(url2)); | 277 EXPECT_EQ(0.53, service->GetScore(url2)); |
| 279 EXPECT_TRUE(media_tracker_timer->IsRunning()); | 278 EXPECT_TRUE(media_tracker_timer->IsRunning()); |
| 280 } | 279 } |
| 281 | 280 |
| 282 TEST_F(SiteEngagementHelperTest, MixedInputEngagementAccumulation) { | 281 TEST_F(SiteEngagementHelperTest, MixedInputEngagementAccumulation) { |
| 283 GURL url1("https://www.google.com/"); | 282 GURL url1("https://www.google.com/"); |
| 284 GURL url2("http://www.google.com/"); | 283 GURL url2("http://www.google.com/"); |
| 285 content::WebContents* contents = web_contents(); | 284 content::WebContents* contents = web_contents(); |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 505 base::MockTimer* input_tracker_timer = new base::MockTimer(true, false); | 504 base::MockTimer* input_tracker_timer = new base::MockTimer(true, false); |
| 506 base::MockTimer* media_tracker_timer = new base::MockTimer(true, false); | 505 base::MockTimer* media_tracker_timer = new base::MockTimer(true, false); |
| 507 SiteEngagementHelper* helper = GetHelper(contents); | 506 SiteEngagementHelper* helper = GetHelper(contents); |
| 508 SetInputTrackerPauseTimer(helper, make_scoped_ptr(input_tracker_timer)); | 507 SetInputTrackerPauseTimer(helper, make_scoped_ptr(input_tracker_timer)); |
| 509 SetMediaTrackerPauseTimer(helper, make_scoped_ptr(media_tracker_timer)); | 508 SetMediaTrackerPauseTimer(helper, make_scoped_ptr(media_tracker_timer)); |
| 510 | 509 |
| 511 Navigate(url1); | 510 Navigate(url1); |
| 512 input_tracker_timer->Fire(); | 511 input_tracker_timer->Fire(); |
| 513 | 512 |
| 514 // Hiding the tab should stop input tracking. Media tracking remains inactive. | 513 // Hiding the tab should stop input tracking. Media tracking remains inactive. |
| 515 contents->WasHidden(); | 514 SimulateHide(); |
| 516 EXPECT_FALSE(input_tracker_timer->IsRunning()); | 515 EXPECT_FALSE(input_tracker_timer->IsRunning()); |
| 517 EXPECT_FALSE(media_tracker_timer->IsRunning()); | 516 EXPECT_FALSE(media_tracker_timer->IsRunning()); |
| 518 EXPECT_FALSE(IsTrackingInput(helper)); | 517 EXPECT_FALSE(IsTrackingInput(helper)); |
| 519 | 518 |
| 520 // Showing the tab should start tracking again after another delay. Media | 519 // Showing the tab should start tracking again after another delay. Media |
| 521 // tracking remains inactive. | 520 // tracking remains inactive. |
| 522 contents->WasShown(); | 521 SimulateShow(); |
| 523 EXPECT_TRUE(input_tracker_timer->IsRunning()); | 522 EXPECT_TRUE(input_tracker_timer->IsRunning()); |
| 524 EXPECT_FALSE(media_tracker_timer->IsRunning()); | 523 EXPECT_FALSE(media_tracker_timer->IsRunning()); |
| 525 EXPECT_FALSE(IsTrackingInput(helper)); | 524 EXPECT_FALSE(IsTrackingInput(helper)); |
| 526 | 525 |
| 527 // Start media tracking. | 526 // Start media tracking. |
| 528 MediaStartedPlaying(helper); | 527 MediaStartedPlaying(helper); |
| 529 EXPECT_TRUE(media_tracker_timer->IsRunning()); | 528 EXPECT_TRUE(media_tracker_timer->IsRunning()); |
| 530 | 529 |
| 531 // Hiding the tab should stop input tracking, but not media tracking. | 530 // Hiding the tab should stop input tracking, but not media tracking. |
| 532 contents->WasHidden(); | 531 SimulateHide(); |
| 533 EXPECT_FALSE(input_tracker_timer->IsRunning()); | 532 EXPECT_FALSE(input_tracker_timer->IsRunning()); |
| 534 EXPECT_TRUE(media_tracker_timer->IsRunning()); | 533 EXPECT_TRUE(media_tracker_timer->IsRunning()); |
| 535 EXPECT_FALSE(IsTrackingInput(helper)); | 534 EXPECT_FALSE(IsTrackingInput(helper)); |
| 536 | 535 |
| 537 // Showing the tab should start tracking again after another delay. Media | 536 // Showing the tab should start tracking again after another delay. Media |
| 538 // tracking continues. | 537 // tracking continues. |
| 539 contents->WasShown(); | 538 SimulateShow(); |
| 540 EXPECT_TRUE(input_tracker_timer->IsRunning()); | 539 EXPECT_TRUE(input_tracker_timer->IsRunning()); |
| 541 EXPECT_TRUE(media_tracker_timer->IsRunning()); | 540 EXPECT_TRUE(media_tracker_timer->IsRunning()); |
| 542 EXPECT_FALSE(IsTrackingInput(helper)); | 541 EXPECT_FALSE(IsTrackingInput(helper)); |
| 543 | 542 |
| 544 input_tracker_timer->Fire(); | 543 input_tracker_timer->Fire(); |
| 545 media_tracker_timer->Fire(); | 544 media_tracker_timer->Fire(); |
| 546 EXPECT_FALSE(input_tracker_timer->IsRunning()); | 545 EXPECT_FALSE(input_tracker_timer->IsRunning()); |
| 547 EXPECT_TRUE(media_tracker_timer->IsRunning()); | 546 EXPECT_TRUE(media_tracker_timer->IsRunning()); |
| 548 EXPECT_TRUE(IsTrackingInput(helper)); | 547 EXPECT_TRUE(IsTrackingInput(helper)); |
| 549 } | 548 } |
| (...skipping 21 matching lines...) Expand all Loading... |
| 571 // When the timer fires, callbacks are added. | 570 // When the timer fires, callbacks are added. |
| 572 input_tracker_timer->Fire(); | 571 input_tracker_timer->Fire(); |
| 573 EXPECT_FALSE(input_tracker_timer->IsRunning()); | 572 EXPECT_FALSE(input_tracker_timer->IsRunning()); |
| 574 EXPECT_TRUE(IsTrackingInput(helper)); | 573 EXPECT_TRUE(IsTrackingInput(helper)); |
| 575 | 574 |
| 576 // Navigation should start the initial delay timer again. | 575 // Navigation should start the initial delay timer again. |
| 577 Navigate(url1); | 576 Navigate(url1); |
| 578 EXPECT_TRUE(input_tracker_timer->IsRunning()); | 577 EXPECT_TRUE(input_tracker_timer->IsRunning()); |
| 579 EXPECT_FALSE(IsTrackingInput(helper)); | 578 EXPECT_FALSE(IsTrackingInput(helper)); |
| 580 } | 579 } |
| OLD | NEW |