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 "components/data_use_measurement/core/data_use_measurement.h" | 5 #include "components/data_use_measurement/core/data_use_measurement.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
439 "DataUse.AppTabState.Upstream.AppBackground", 1); | 439 "DataUse.AppTabState.Upstream.AppBackground", 1); |
440 histogram_tester.ExpectTotalCount( | 440 histogram_tester.ExpectTotalCount( |
441 "DataUse.AppTabState.Downstream.AppBackground", 1); | 441 "DataUse.AppTabState.Downstream.AppBackground", 1); |
442 } | 442 } |
443 | 443 |
444 TEST_F(DataUseMeasurementTest, ContentType) { | 444 TEST_F(DataUseMeasurementTest, ContentType) { |
445 { | 445 { |
446 base::HistogramTester histogram_tester; | 446 base::HistogramTester histogram_tester; |
447 std::unique_ptr<net::URLRequest> request = CreateTestRequest(kUserRequest); | 447 std::unique_ptr<net::URLRequest> request = CreateTestRequest(kUserRequest); |
448 data_use_measurement_.OnBeforeURLRequest(request.get()); | 448 data_use_measurement_.OnBeforeURLRequest(request.get()); |
449 data_use_measurement_.OnNetworkBytesReceived(*request, 1000); | 449 data_use_measurement_.OnNetworkBytesReceived(*request, 10 * 1024); |
450 histogram_tester.ExpectUniqueSample("DataUse.ContentType.UserTraffic", | 450 histogram_tester.ExpectUniqueSample("DataUse.ContentType.UserTrafficKB", |
451 DataUseUserData::OTHER, 1000); | 451 DataUseUserData::OTHER, 10); |
452 } | 452 } |
453 | 453 |
454 { | 454 { |
455 base::HistogramTester histogram_tester; | 455 base::HistogramTester histogram_tester; |
456 std::unique_ptr<net::URLRequest> request = | 456 std::unique_ptr<net::URLRequest> request = |
457 CreateTestRequest(kServiceRequest); | 457 CreateTestRequest(kServiceRequest); |
458 data_use_measurement_.OnBeforeURLRequest(request.get()); | 458 data_use_measurement_.OnBeforeURLRequest(request.get()); |
459 data_use_measurement_.OnNetworkBytesReceived(*request, 1000); | 459 data_use_measurement_.OnNetworkBytesReceived(*request, 1000); |
460 histogram_tester.ExpectUniqueSample("DataUse.ContentType.Services", | 460 histogram_tester.ExpectUniqueSample("DataUse.ContentType.Services", |
461 DataUseUserData::OTHER, 1000); | 461 DataUseUserData::OTHER, 1000); |
462 } | 462 } |
463 | 463 |
464 // Video request in foreground. | 464 // Video request in foreground. |
465 { | 465 { |
466 base::HistogramTester histogram_tester; | 466 base::HistogramTester histogram_tester; |
467 std::unique_ptr<net::URLRequest> request = CreateTestRequest(kUserRequest); | 467 std::unique_ptr<net::URLRequest> request = CreateTestRequest(kUserRequest); |
468 | 468 |
469 ascriber_.SetTabVisibility(true); | 469 ascriber_.SetTabVisibility(true); |
470 url_request_classifier_->set_content_type(DataUseUserData::VIDEO); | 470 url_request_classifier_->set_content_type(DataUseUserData::VIDEO); |
471 data_use_measurement_.OnBeforeURLRequest(request.get()); | 471 data_use_measurement_.OnBeforeURLRequest(request.get()); |
472 data_use_measurement_.OnHeadersReceived(request.get(), nullptr); | 472 data_use_measurement_.OnHeadersReceived(request.get(), nullptr); |
473 data_use_measurement_.OnNetworkBytesReceived(*request, 1000); | 473 data_use_measurement_.OnNetworkBytesReceived(*request, 10 * 1024); |
474 | 474 |
475 histogram_tester.ExpectUniqueSample("DataUse.ContentType.UserTraffic", | 475 histogram_tester.ExpectUniqueSample("DataUse.ContentType.UserTrafficKB", |
476 DataUseUserData::VIDEO, 1000); | 476 DataUseUserData::VIDEO, 10); |
477 } | 477 } |
478 | 478 |
479 // Audio request from background tab. | 479 // Audio request from background tab. |
480 { | 480 { |
481 base::HistogramTester histogram_tester; | 481 base::HistogramTester histogram_tester; |
482 std::unique_ptr<net::URLRequest> request = CreateTestRequest(kUserRequest); | 482 std::unique_ptr<net::URLRequest> request = CreateTestRequest(kUserRequest); |
483 ascriber_.SetTabVisibility(false); | 483 ascriber_.SetTabVisibility(false); |
484 url_request_classifier_->set_content_type(DataUseUserData::AUDIO); | 484 url_request_classifier_->set_content_type(DataUseUserData::AUDIO); |
485 data_use_measurement_.OnBeforeURLRequest(request.get()); | 485 data_use_measurement_.OnBeforeURLRequest(request.get()); |
486 data_use_measurement_.OnHeadersReceived(request.get(), nullptr); | 486 data_use_measurement_.OnHeadersReceived(request.get(), nullptr); |
487 data_use_measurement_.OnNetworkBytesReceived(*request, 1000); | 487 data_use_measurement_.OnNetworkBytesReceived(*request, 10 * 1024); |
488 | 488 |
489 histogram_tester.ExpectUniqueSample("DataUse.ContentType.UserTraffic", | 489 histogram_tester.ExpectUniqueSample("DataUse.ContentType.UserTrafficKB", |
490 DataUseUserData::AUDIO_TABBACKGROUND, | 490 DataUseUserData::AUDIO_TABBACKGROUND, |
491 1000); | 491 10); |
492 } | 492 } |
493 | 493 |
494 // Video request from background app. | 494 // Video request from background app. |
495 { | 495 { |
496 base::HistogramTester histogram_tester; | 496 base::HistogramTester histogram_tester; |
497 std::unique_ptr<net::URLRequest> request = CreateTestRequest(kUserRequest); | 497 std::unique_ptr<net::URLRequest> request = CreateTestRequest(kUserRequest); |
498 url_request_classifier_->set_content_type(DataUseUserData::VIDEO); | 498 url_request_classifier_->set_content_type(DataUseUserData::VIDEO); |
499 data_use_measurement()->OnApplicationStateChangeForTesting( | 499 data_use_measurement()->OnApplicationStateChangeForTesting( |
500 base::android::APPLICATION_STATE_HAS_STOPPED_ACTIVITIES); | 500 base::android::APPLICATION_STATE_HAS_STOPPED_ACTIVITIES); |
501 ascriber_.SetTabVisibility(false); | 501 ascriber_.SetTabVisibility(false); |
502 data_use_measurement_.OnBeforeURLRequest(request.get()); | 502 data_use_measurement_.OnBeforeURLRequest(request.get()); |
503 data_use_measurement_.OnHeadersReceived(request.get(), nullptr); | 503 data_use_measurement_.OnHeadersReceived(request.get(), nullptr); |
504 data_use_measurement_.OnNetworkBytesReceived(*request, 1000); | 504 data_use_measurement_.OnNetworkBytesReceived(*request, 10 * 1024); |
505 | 505 |
506 histogram_tester.ExpectUniqueSample("DataUse.ContentType.UserTraffic", | 506 histogram_tester.ExpectUniqueSample("DataUse.ContentType.UserTrafficKB", |
507 DataUseUserData::VIDEO_APPBACKGROUND, | 507 DataUseUserData::VIDEO_APPBACKGROUND, |
508 1000); | 508 10); |
509 } | 509 } |
510 } | 510 } |
511 | 511 |
| 512 TEST_F(DataUseMeasurementTest, ContentTypeInKB) { |
| 513 base::HistogramTester histogram_tester; |
| 514 std::unique_ptr<net::URLRequest> request = CreateTestRequest(kUserRequest); |
| 515 url_request_classifier_->set_content_type(DataUseUserData::VIDEO); |
| 516 data_use_measurement()->OnApplicationStateChangeForTesting( |
| 517 base::android::APPLICATION_STATE_HAS_STOPPED_ACTIVITIES); |
| 518 ascriber_.SetTabVisibility(false); |
| 519 data_use_measurement_.OnBeforeURLRequest(request.get()); |
| 520 data_use_measurement_.OnHeadersReceived(request.get(), nullptr); |
| 521 data_use_measurement_.OnNetworkBytesReceived(*request, 600); |
| 522 |
| 523 // UserTrafficKB metric is not recorded for the first 600 bytes of data use. |
| 524 histogram_tester.ExpectTotalCount("DataUse.ContentType.UserTrafficKB", 0); |
| 525 |
| 526 data_use_measurement_.OnNetworkBytesReceived(*request, 600); |
| 527 |
| 528 // UserTrafficKB recorded for 1KB. |
| 529 histogram_tester.ExpectUniqueSample("DataUse.ContentType.UserTrafficKB", |
| 530 DataUseUserData::VIDEO_APPBACKGROUND, 1); |
| 531 } |
| 532 |
512 #endif | 533 #endif |
513 | 534 |
514 } // namespace data_use_measurement | 535 } // namespace data_use_measurement |
OLD | NEW |