| 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 |