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

Side by Side Diff: components/network_time/network_time_tracker_unittest.cc

Issue 2176373003: Add NetworkTimeTracker UMA histograms (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/network_time/network_time_tracker.h" 5 #include "components/network_time/network_time_tracker.h"
6 6
7 #include <map> 7 #include <map>
8 #include <memory> 8 #include <memory>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
11 11
12 #include "base/compiler_specific.h" 12 #include "base/compiler_specific.h"
13 #include "base/feature_list.h" 13 #include "base/feature_list.h"
14 #include "base/metrics/field_trial.h" 14 #include "base/metrics/field_trial.h"
15 #include "base/strings/string_number_conversions.h" 15 #include "base/strings/string_number_conversions.h"
16 #include "base/strings/stringprintf.h" 16 #include "base/strings/stringprintf.h"
17 #include "base/test/histogram_tester.h"
17 #include "base/test/mock_entropy_provider.h" 18 #include "base/test/mock_entropy_provider.h"
18 #include "base/test/simple_test_clock.h" 19 #include "base/test/simple_test_clock.h"
19 #include "base/test/simple_test_tick_clock.h" 20 #include "base/test/simple_test_tick_clock.h"
20 #include "components/client_update_protocol/ecdsa.h" 21 #include "components/client_update_protocol/ecdsa.h"
21 #include "components/network_time/network_time_pref_names.h" 22 #include "components/network_time/network_time_pref_names.h"
22 #include "components/prefs/testing_pref_service.h" 23 #include "components/prefs/testing_pref_service.h"
23 #include "components/variations/variations_associated_data.h" 24 #include "components/variations/variations_associated_data.h"
24 #include "net/http/http_response_headers.h" 25 #include "net/http/http_response_headers.h"
25 #include "net/test/embedded_test_server/embedded_test_server.h" 26 #include "net/test/embedded_test_server/embedded_test_server.h"
26 #include "net/test/embedded_test_server/http_response.h" 27 #include "net/test/embedded_test_server/http_response.h"
27 #include "net/url_request/url_fetcher.h" 28 #include "net/url_request/url_fetcher.h"
28 #include "net/url_request/url_request_test_util.h" 29 #include "net/url_request/url_request_test_util.h"
29 #include "testing/gtest/include/gtest/gtest.h" 30 #include "testing/gtest/include/gtest/gtest.h"
30 31
31 namespace network_time { 32 namespace network_time {
32 33
34 namespace {
35 const char kFetchAttemptHistogram[] =
36 "NetworkTimeTracker.UpdateTimeFetchAttempted";
37 const char kFetchFailedHistogram[] = "NetworkTimeTracker.UpdateTimeFetchFailed";
38 const char kFetchSucceededHistogram[] =
39 "NetworkTimeTracker.UpdateTimeFetchSucceeded";
40 const char kFetchValidHistogram[] = "NetworkTimeTracker.UpdateTimeFetchValid";
41 } // namespace
42
33 class NetworkTimeTrackerTest : public testing::Test { 43 class NetworkTimeTrackerTest : public testing::Test {
34 public: 44 public:
35 ~NetworkTimeTrackerTest() override {} 45 ~NetworkTimeTrackerTest() override {}
36 46
37 NetworkTimeTrackerTest() 47 NetworkTimeTrackerTest()
38 : io_thread_("IO thread"), 48 : io_thread_("IO thread"),
39 clock_(new base::SimpleTestClock), 49 clock_(new base::SimpleTestClock),
40 tick_clock_(new base::SimpleTestTickClock), 50 tick_clock_(new base::SimpleTestTickClock),
41 test_server_(new net::EmbeddedTestServer) { 51 test_server_(new net::EmbeddedTestServer) {
42 base::Thread::Options thread_options; 52 base::Thread::Options thread_options;
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 tick_clock_->NowTicks()); 437 tick_clock_->NowTicks());
428 438
429 base::Time out_network_time; 439 base::Time out_network_time;
430 EXPECT_TRUE(tracker_->GetNetworkTime(&out_network_time, nullptr)); 440 EXPECT_TRUE(tracker_->GetNetworkTime(&out_network_time, nullptr));
431 clock_->Advance(base::TimeDelta::FromDays(1)); 441 clock_->Advance(base::TimeDelta::FromDays(1));
432 Reset(); 442 Reset();
433 EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr)); 443 EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr));
434 } 444 }
435 445
436 TEST_F(NetworkTimeTrackerTest, UpdateFromNetwork) { 446 TEST_F(NetworkTimeTrackerTest, UpdateFromNetwork) {
447 base::HistogramTester histograms;
448 histograms.ExpectTotalCount(kFetchAttemptHistogram, 0);
449 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
450 histograms.ExpectTotalCount(kFetchSucceededHistogram, 0);
451 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
452
437 base::Time out_network_time; 453 base::Time out_network_time;
438 EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr)); 454 EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr));
439 // First query should happen soon. 455 // First query should happen soon.
440 EXPECT_EQ(base::TimeDelta::FromMinutes(0), 456 EXPECT_EQ(base::TimeDelta::FromMinutes(0),
441 tracker_->GetTimerDelayForTesting()); 457 tracker_->GetTimerDelayForTesting());
442 458
443 test_server_->RegisterRequestHandler( 459 test_server_->RegisterRequestHandler(
444 base::Bind(&NetworkTimeTrackerTest::GoodTimeResponseHandler)); 460 base::Bind(&NetworkTimeTrackerTest::GoodTimeResponseHandler));
445 EXPECT_TRUE(test_server_->Start()); 461 EXPECT_TRUE(test_server_->Start());
446 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/")); 462 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/"));
447 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting()); 463 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
448 tracker_->WaitForFetchForTesting(123123123); 464 tracker_->WaitForFetchForTesting(123123123);
449 465
450 EXPECT_TRUE(tracker_->GetNetworkTime(&out_network_time, nullptr)); 466 EXPECT_TRUE(tracker_->GetNetworkTime(&out_network_time, nullptr));
451 EXPECT_EQ(base::Time::UnixEpoch() + 467 EXPECT_EQ(base::Time::UnixEpoch() +
452 base::TimeDelta::FromMilliseconds(1461621971825), 468 base::TimeDelta::FromMilliseconds(1461621971825),
453 out_network_time); 469 out_network_time);
454 // Should see no backoff in the success case. 470 // Should see no backoff in the success case.
455 EXPECT_EQ(base::TimeDelta::FromMinutes(60), 471 EXPECT_EQ(base::TimeDelta::FromMinutes(60),
456 tracker_->GetTimerDelayForTesting()); 472 tracker_->GetTimerDelayForTesting());
473
474 histograms.ExpectTotalCount(kFetchAttemptHistogram, 1);
475 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
476 histograms.ExpectTotalCount(kFetchSucceededHistogram, 1);
477 histograms.ExpectTotalCount(kFetchValidHistogram, 1);
457 } 478 }
458 479
459 TEST_F(NetworkTimeTrackerTest, NoNetworkQueryWhileSynced) { 480 TEST_F(NetworkTimeTrackerTest, NoNetworkQueryWhileSynced) {
460 test_server_->RegisterRequestHandler( 481 test_server_->RegisterRequestHandler(
461 base::Bind(&NetworkTimeTrackerTest::GoodTimeResponseHandler)); 482 base::Bind(&NetworkTimeTrackerTest::GoodTimeResponseHandler));
462 EXPECT_TRUE(test_server_->Start()); 483 EXPECT_TRUE(test_server_->Start());
463 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/")); 484 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/"));
464 485
465 SetNetworkQueriesWithVariationsService(true, 0.0); 486 SetNetworkQueriesWithVariationsService(true, 0.0);
466 base::Time in_network_time = clock_->Now(); 487 base::Time in_network_time = clock_->Now();
(...skipping 20 matching lines...) Expand all
487 EXPECT_EQ(base::TimeDelta::FromMinutes(6), 508 EXPECT_EQ(base::TimeDelta::FromMinutes(6),
488 tracker_->GetTimerDelayForTesting()); 509 tracker_->GetTimerDelayForTesting());
489 510
490 // Enable time queries and check that a query is sent. 511 // Enable time queries and check that a query is sent.
491 SetNetworkQueriesWithVariationsService(true, 0.0); 512 SetNetworkQueriesWithVariationsService(true, 0.0);
492 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting()); 513 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
493 tracker_->WaitForFetchForTesting(123123123); 514 tracker_->WaitForFetchForTesting(123123123);
494 } 515 }
495 516
496 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkBadSignature) { 517 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkBadSignature) {
518 base::HistogramTester histograms;
519 histograms.ExpectTotalCount(kFetchAttemptHistogram, 0);
520 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
521 histograms.ExpectTotalCount(kFetchSucceededHistogram, 0);
522 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
523
497 test_server_->RegisterRequestHandler( 524 test_server_->RegisterRequestHandler(
498 base::Bind(&NetworkTimeTrackerTest::BadSignatureResponseHandler)); 525 base::Bind(&NetworkTimeTrackerTest::BadSignatureResponseHandler));
499 EXPECT_TRUE(test_server_->Start()); 526 EXPECT_TRUE(test_server_->Start());
500 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/")); 527 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/"));
501 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting()); 528 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
502 tracker_->WaitForFetchForTesting(123123123); 529 tracker_->WaitForFetchForTesting(123123123);
503 530
504 base::Time out_network_time; 531 base::Time out_network_time;
505 EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr)); 532 EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr));
506 EXPECT_EQ(base::TimeDelta::FromMinutes(120), 533 EXPECT_EQ(base::TimeDelta::FromMinutes(120),
507 tracker_->GetTimerDelayForTesting()); 534 tracker_->GetTimerDelayForTesting());
535
536 histograms.ExpectTotalCount(kFetchAttemptHistogram, 1);
537 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
538 histograms.ExpectTotalCount(kFetchSucceededHistogram, 1);
539 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
508 } 540 }
509 541
510 static const uint8_t kDevKeyPubBytes[] = { 542 static const uint8_t kDevKeyPubBytes[] = {
511 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 543 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02,
512 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 544 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03,
513 0x42, 0x00, 0x04, 0xe0, 0x6b, 0x0d, 0x76, 0x75, 0xa3, 0x99, 0x7d, 0x7c, 545 0x42, 0x00, 0x04, 0xe0, 0x6b, 0x0d, 0x76, 0x75, 0xa3, 0x99, 0x7d, 0x7c,
514 0x1b, 0xd6, 0x3c, 0x73, 0xbb, 0x4b, 0xfe, 0x0a, 0xe7, 0x2f, 0x61, 0x3d, 546 0x1b, 0xd6, 0x3c, 0x73, 0xbb, 0x4b, 0xfe, 0x0a, 0xe7, 0x2f, 0x61, 0x3d,
515 0x77, 0x0a, 0xaa, 0x14, 0xd8, 0x5a, 0xbf, 0x14, 0x60, 0xec, 0xf6, 0x32, 547 0x77, 0x0a, 0xaa, 0x14, 0xd8, 0x5a, 0xbf, 0x14, 0x60, 0xec, 0xf6, 0x32,
516 0x77, 0xb5, 0xa7, 0xe6, 0x35, 0xa5, 0x61, 0xaf, 0xdc, 0xdf, 0x91, 0xce, 548 0x77, 0xb5, 0xa7, 0xe6, 0x35, 0xa5, 0x61, 0xaf, 0xdc, 0xdf, 0x91, 0xce,
517 0x45, 0x34, 0x5f, 0x36, 0x85, 0x2f, 0xb9, 0x53, 0x00, 0x5d, 0x86, 0xe7, 549 0x45, 0x34, 0x5f, 0x36, 0x85, 0x2f, 0xb9, 0x53, 0x00, 0x5d, 0x86, 0xe7,
518 0x04, 0x16, 0xe2, 0x3d, 0x21, 0x76, 0x2b}; 550 0x04, 0x16, 0xe2, 0x3d, 0x21, 0x76, 0x2b};
519 551
520 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkBadData) { 552 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkBadData) {
553 base::HistogramTester histograms;
554 histograms.ExpectTotalCount(kFetchAttemptHistogram, 0);
555 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
556 histograms.ExpectTotalCount(kFetchSucceededHistogram, 0);
557 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
558
521 test_server_->RegisterRequestHandler( 559 test_server_->RegisterRequestHandler(
522 base::Bind(&NetworkTimeTrackerTest::BadDataResponseHandler)); 560 base::Bind(&NetworkTimeTrackerTest::BadDataResponseHandler));
523 EXPECT_TRUE(test_server_->Start()); 561 EXPECT_TRUE(test_server_->Start());
524 base::StringPiece key = {reinterpret_cast<const char*>(kDevKeyPubBytes), 562 base::StringPiece key = {reinterpret_cast<const char*>(kDevKeyPubBytes),
525 sizeof(kDevKeyPubBytes)}; 563 sizeof(kDevKeyPubBytes)};
526 tracker_->SetPublicKeyForTesting(key); 564 tracker_->SetPublicKeyForTesting(key);
527 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/")); 565 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/"));
528 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting()); 566 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
529 tracker_->WaitForFetchForTesting(123123123); 567 tracker_->WaitForFetchForTesting(123123123);
530 base::Time out_network_time; 568 base::Time out_network_time;
531 EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr)); 569 EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr));
532 EXPECT_EQ(base::TimeDelta::FromMinutes(120), 570 EXPECT_EQ(base::TimeDelta::FromMinutes(120),
533 tracker_->GetTimerDelayForTesting()); 571 tracker_->GetTimerDelayForTesting());
572
573 histograms.ExpectTotalCount(kFetchAttemptHistogram, 1);
574 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
575 histograms.ExpectTotalCount(kFetchSucceededHistogram, 1);
576 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
534 } 577 }
535 578
536 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkServerError) { 579 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkServerError) {
580 base::HistogramTester histograms;
581 histograms.ExpectTotalCount(kFetchAttemptHistogram, 0);
582 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
583 histograms.ExpectTotalCount(kFetchSucceededHistogram, 0);
584 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
585
537 test_server_->RegisterRequestHandler( 586 test_server_->RegisterRequestHandler(
538 base::Bind(&NetworkTimeTrackerTest::ServerErrorResponseHandler)); 587 base::Bind(&NetworkTimeTrackerTest::ServerErrorResponseHandler));
539 EXPECT_TRUE(test_server_->Start()); 588 EXPECT_TRUE(test_server_->Start());
540 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/")); 589 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/"));
541 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting()); 590 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
542 tracker_->WaitForFetchForTesting(123123123); 591 tracker_->WaitForFetchForTesting(123123123);
543 592
544 base::Time out_network_time; 593 base::Time out_network_time;
545 EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr)); 594 EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr));
546 // Should see backoff in the error case. 595 // Should see backoff in the error case.
547 EXPECT_EQ(base::TimeDelta::FromMinutes(120), 596 EXPECT_EQ(base::TimeDelta::FromMinutes(120),
548 tracker_->GetTimerDelayForTesting()); 597 tracker_->GetTimerDelayForTesting());
598
599 histograms.ExpectTotalCount(kFetchAttemptHistogram, 1);
600 histograms.ExpectTotalCount(kFetchFailedHistogram, 1);
601 histograms.ExpectBucketCount(kFetchFailedHistogram, net::OK, 1);
mab 2016/07/28 06:58:55 Why is this net::OK for an error response?
estark 2016/07/28 18:27:58 net::OK because there was no network error, just a
602 histograms.ExpectTotalCount(kFetchSucceededHistogram, 0);
603 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
549 } 604 }
550 605
551 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworNetworkError) { 606 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkNetworkError) {
607 base::HistogramTester histograms;
608 histograms.ExpectTotalCount(kFetchAttemptHistogram, 0);
609 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
610 histograms.ExpectTotalCount(kFetchSucceededHistogram, 0);
611 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
612
552 test_server_->RegisterRequestHandler( 613 test_server_->RegisterRequestHandler(
553 base::Bind(&NetworkTimeTrackerTest::NetworkErrorResponseHandler)); 614 base::Bind(&NetworkTimeTrackerTest::NetworkErrorResponseHandler));
554 EXPECT_TRUE(test_server_->Start()); 615 EXPECT_TRUE(test_server_->Start());
555 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/")); 616 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/"));
556 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting()); 617 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
557 tracker_->WaitForFetchForTesting(123123123); 618 tracker_->WaitForFetchForTesting(123123123);
558 619
559 base::Time out_network_time; 620 base::Time out_network_time;
560 EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr)); 621 EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr));
561 // Should see backoff in the error case. 622 // Should see backoff in the error case.
562 EXPECT_EQ(base::TimeDelta::FromMinutes(120), 623 EXPECT_EQ(base::TimeDelta::FromMinutes(120),
563 tracker_->GetTimerDelayForTesting()); 624 tracker_->GetTimerDelayForTesting());
625
626 histograms.ExpectTotalCount(kFetchAttemptHistogram, 1);
627 histograms.ExpectTotalCount(kFetchFailedHistogram, 1);
628 histograms.ExpectBucketCount(kFetchFailedHistogram, -net::ERR_EMPTY_RESPONSE,
629 1);
630 histograms.ExpectTotalCount(kFetchSucceededHistogram, 0);
631 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
564 } 632 }
565 633
566 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkLargeResponse) { 634 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkLargeResponse) {
635 base::HistogramTester histograms;
636 histograms.ExpectTotalCount(kFetchAttemptHistogram, 0);
637 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
638 histograms.ExpectTotalCount(kFetchSucceededHistogram, 0);
639 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
640
567 test_server_->RegisterRequestHandler( 641 test_server_->RegisterRequestHandler(
568 base::Bind(&NetworkTimeTrackerTest::GoodTimeResponseHandler)); 642 base::Bind(&NetworkTimeTrackerTest::GoodTimeResponseHandler));
569 EXPECT_TRUE(test_server_->Start()); 643 EXPECT_TRUE(test_server_->Start());
570 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/")); 644 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/"));
571 645
572 base::Time out_network_time; 646 base::Time out_network_time;
573 647
574 tracker_->SetMaxResponseSizeForTesting(3); 648 tracker_->SetMaxResponseSizeForTesting(3);
575 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting()); 649 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
576 tracker_->WaitForFetchForTesting(123123123); 650 tracker_->WaitForFetchForTesting(123123123);
577 EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr)); 651 EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr));
578 652
653 histograms.ExpectTotalCount(kFetchAttemptHistogram, 1);
654 histograms.ExpectTotalCount(kFetchFailedHistogram, 1);
655 histograms.ExpectTotalCount(kFetchSucceededHistogram, 0);
656 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
657
579 tracker_->SetMaxResponseSizeForTesting(1024); 658 tracker_->SetMaxResponseSizeForTesting(1024);
580 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting()); 659 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
581 tracker_->WaitForFetchForTesting(123123123); 660 tracker_->WaitForFetchForTesting(123123123);
582 EXPECT_TRUE(tracker_->GetNetworkTime(&out_network_time, nullptr)); 661 EXPECT_TRUE(tracker_->GetNetworkTime(&out_network_time, nullptr));
662
663 histograms.ExpectTotalCount(kFetchAttemptHistogram, 2);
664 histograms.ExpectTotalCount(kFetchFailedHistogram, 1);
665 histograms.ExpectTotalCount(kFetchSucceededHistogram, 1);
666 histograms.ExpectTotalCount(kFetchValidHistogram, 1);
583 } 667 }
584 668
585 } // namespace network_time 669 } // namespace network_time
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698