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

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

Issue 2415703005: Refine NetworkTimeTracker histograms (Closed)
Patch Set: Created 4 years, 2 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>
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 TestingPrefServiceSimple pref_service_; 234 TestingPrefServiceSimple pref_service_;
235 std::unique_ptr<base::FieldTrialList> field_trial_list_; 235 std::unique_ptr<base::FieldTrialList> field_trial_list_;
236 std::unique_ptr<NetworkTimeTracker> tracker_; 236 std::unique_ptr<NetworkTimeTracker> tracker_;
237 std::unique_ptr<net::EmbeddedTestServer> test_server_; 237 std::unique_ptr<net::EmbeddedTestServer> test_server_;
238 std::unique_ptr<base::test::ScopedFeatureList> scoped_feature_list_; 238 std::unique_ptr<base::test::ScopedFeatureList> scoped_feature_list_;
239 }; 239 };
240 240
241 TEST_F(NetworkTimeTrackerTest, Uninitialized) { 241 TEST_F(NetworkTimeTrackerTest, Uninitialized) {
242 base::Time network_time; 242 base::Time network_time;
243 base::TimeDelta uncertainty; 243 base::TimeDelta uncertainty;
244 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC, 244 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC_ATTEMPT,
245 tracker_->GetNetworkTime(&network_time, &uncertainty)); 245 tracker_->GetNetworkTime(&network_time, &uncertainty));
246 } 246 }
247 247
248 TEST_F(NetworkTimeTrackerTest, LongPostingDelay) { 248 TEST_F(NetworkTimeTrackerTest, LongPostingDelay) {
249 // The request arrives at the server, which records the time. Advance the 249 // The request arrives at the server, which records the time. Advance the
250 // clock to simulate the latency of sending the reply, which we'll say for 250 // clock to simulate the latency of sending the reply, which we'll say for
251 // convenience is half the total latency. 251 // convenience is half the total latency.
252 base::Time in_network_time = clock_->Now(); 252 base::Time in_network_time = clock_->Now();
253 AdvanceBoth(latency_ / 2); 253 AdvanceBoth(latency_ / 2);
254 254
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 double local, network; 465 double local, network;
466 const base::DictionaryValue* saved_prefs = 466 const base::DictionaryValue* saved_prefs =
467 pref_service_.GetDictionary(prefs::kNetworkTimeMapping); 467 pref_service_.GetDictionary(prefs::kNetworkTimeMapping);
468 saved_prefs->GetDouble("local", &local); 468 saved_prefs->GetDouble("local", &local);
469 saved_prefs->GetDouble("network", &network); 469 saved_prefs->GetDouble("network", &network);
470 base::DictionaryValue prefs; 470 base::DictionaryValue prefs;
471 prefs.SetDouble("local", local); 471 prefs.SetDouble("local", local);
472 prefs.SetDouble("network", network); 472 prefs.SetDouble("network", network);
473 pref_service_.Set(prefs::kNetworkTimeMapping, prefs); 473 pref_service_.Set(prefs::kNetworkTimeMapping, prefs);
474 Reset(); 474 Reset();
475 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC, 475 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC_ATTEMPT,
476 tracker_->GetNetworkTime(&out_network_time, nullptr)); 476 tracker_->GetNetworkTime(&out_network_time, nullptr));
477 } 477 }
478 478
479 TEST_F(NetworkTimeTrackerTest, SerializeWithLongDelay) { 479 TEST_F(NetworkTimeTrackerTest, SerializeWithLongDelay) {
480 // Test that if the serialized data are more than a week old, they are 480 // Test that if the serialized data are more than a week old, they are
481 // discarded. 481 // discarded.
482 base::Time in_network_time = clock_->Now() - base::TimeDelta::FromDays(90); 482 base::Time in_network_time = clock_->Now() - base::TimeDelta::FromDays(90);
483 UpdateNetworkTime(in_network_time - latency_ / 2, resolution_, latency_, 483 UpdateNetworkTime(in_network_time - latency_ / 2, resolution_, latency_,
484 tick_clock_->NowTicks()); 484 tick_clock_->NowTicks());
485 base::Time out_network_time; 485 base::Time out_network_time;
486 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_AVAILABLE, 486 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_AVAILABLE,
487 tracker_->GetNetworkTime(&out_network_time, nullptr)); 487 tracker_->GetNetworkTime(&out_network_time, nullptr));
488 AdvanceBoth(base::TimeDelta::FromDays(8)); 488 AdvanceBoth(base::TimeDelta::FromDays(8));
489 Reset(); 489 Reset();
490 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC, 490 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC_ATTEMPT,
491 tracker_->GetNetworkTime(&out_network_time, nullptr)); 491 tracker_->GetNetworkTime(&out_network_time, nullptr));
492 } 492 }
493 493
494 TEST_F(NetworkTimeTrackerTest, SerializeWithTickClockAdvance) { 494 TEST_F(NetworkTimeTrackerTest, SerializeWithTickClockAdvance) {
495 // Test that serialized data are discarded if the wall clock and tick clock 495 // Test that serialized data are discarded if the wall clock and tick clock
496 // have not advanced consistently since data were serialized. 496 // have not advanced consistently since data were serialized.
497 base::Time in_network_time = clock_->Now() - base::TimeDelta::FromDays(90); 497 base::Time in_network_time = clock_->Now() - base::TimeDelta::FromDays(90);
498 UpdateNetworkTime(in_network_time - latency_ / 2, resolution_, latency_, 498 UpdateNetworkTime(in_network_time - latency_ / 2, resolution_, latency_,
499 tick_clock_->NowTicks()); 499 tick_clock_->NowTicks());
500 base::Time out_network_time; 500 base::Time out_network_time;
(...skipping 20 matching lines...) Expand all
521 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_SYNC_LOST, 521 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_SYNC_LOST,
522 tracker_->GetNetworkTime(&out_network_time, nullptr)); 522 tracker_->GetNetworkTime(&out_network_time, nullptr));
523 } 523 }
524 524
525 TEST_F(NetworkTimeTrackerTest, UpdateFromNetwork) { 525 TEST_F(NetworkTimeTrackerTest, UpdateFromNetwork) {
526 base::HistogramTester histograms; 526 base::HistogramTester histograms;
527 histograms.ExpectTotalCount(kFetchFailedHistogram, 0); 527 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
528 histograms.ExpectTotalCount(kFetchValidHistogram, 0); 528 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
529 529
530 base::Time out_network_time; 530 base::Time out_network_time;
531 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC, 531 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC_ATTEMPT,
532 tracker_->GetNetworkTime(&out_network_time, nullptr)); 532 tracker_->GetNetworkTime(&out_network_time, nullptr));
533 // First query should happen soon. 533 // First query should happen soon.
534 EXPECT_EQ(base::TimeDelta::FromMinutes(0), 534 EXPECT_EQ(base::TimeDelta::FromMinutes(0),
535 tracker_->GetTimerDelayForTesting()); 535 tracker_->GetTimerDelayForTesting());
536 536
537 test_server_->RegisterRequestHandler( 537 test_server_->RegisterRequestHandler(
538 base::Bind(&NetworkTimeTrackerTest::GoodTimeResponseHandler)); 538 base::Bind(&NetworkTimeTrackerTest::GoodTimeResponseHandler));
539 EXPECT_TRUE(test_server_->Start()); 539 EXPECT_TRUE(test_server_->Start());
540 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/")); 540 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/"));
541 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting()); 541 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 histograms.ExpectTotalCount(kFetchValidHistogram, 0); 598 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
599 599
600 test_server_->RegisterRequestHandler( 600 test_server_->RegisterRequestHandler(
601 base::Bind(&NetworkTimeTrackerTest::BadSignatureResponseHandler)); 601 base::Bind(&NetworkTimeTrackerTest::BadSignatureResponseHandler));
602 EXPECT_TRUE(test_server_->Start()); 602 EXPECT_TRUE(test_server_->Start());
603 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/")); 603 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/"));
604 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting()); 604 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
605 tracker_->WaitForFetchForTesting(123123123); 605 tracker_->WaitForFetchForTesting(123123123);
606 606
607 base::Time out_network_time; 607 base::Time out_network_time;
608 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC, 608 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SUCCESSFUL_SYNC,
609 tracker_->GetNetworkTime(&out_network_time, nullptr)); 609 tracker_->GetNetworkTime(&out_network_time, nullptr));
610 EXPECT_EQ(base::TimeDelta::FromMinutes(120), 610 EXPECT_EQ(base::TimeDelta::FromMinutes(120),
611 tracker_->GetTimerDelayForTesting()); 611 tracker_->GetTimerDelayForTesting());
612 612
613 histograms.ExpectTotalCount(kFetchFailedHistogram, 0); 613 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
614 histograms.ExpectTotalCount(kFetchValidHistogram, 1); 614 histograms.ExpectTotalCount(kFetchValidHistogram, 1);
615 histograms.ExpectBucketCount(kFetchValidHistogram, false, 1); 615 histograms.ExpectBucketCount(kFetchValidHistogram, false, 1);
616 } 616 }
617 617
618 static const uint8_t kDevKeyPubBytes[] = { 618 static const uint8_t kDevKeyPubBytes[] = {
(...skipping 14 matching lines...) Expand all
633 test_server_->RegisterRequestHandler( 633 test_server_->RegisterRequestHandler(
634 base::Bind(&NetworkTimeTrackerTest::BadDataResponseHandler)); 634 base::Bind(&NetworkTimeTrackerTest::BadDataResponseHandler));
635 EXPECT_TRUE(test_server_->Start()); 635 EXPECT_TRUE(test_server_->Start());
636 base::StringPiece key = {reinterpret_cast<const char*>(kDevKeyPubBytes), 636 base::StringPiece key = {reinterpret_cast<const char*>(kDevKeyPubBytes),
637 sizeof(kDevKeyPubBytes)}; 637 sizeof(kDevKeyPubBytes)};
638 tracker_->SetPublicKeyForTesting(key); 638 tracker_->SetPublicKeyForTesting(key);
639 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/")); 639 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/"));
640 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting()); 640 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
641 tracker_->WaitForFetchForTesting(123123123); 641 tracker_->WaitForFetchForTesting(123123123);
642 base::Time out_network_time; 642 base::Time out_network_time;
643 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC, 643 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SUCCESSFUL_SYNC,
644 tracker_->GetNetworkTime(&out_network_time, nullptr)); 644 tracker_->GetNetworkTime(&out_network_time, nullptr));
645 EXPECT_EQ(base::TimeDelta::FromMinutes(120), 645 EXPECT_EQ(base::TimeDelta::FromMinutes(120),
646 tracker_->GetTimerDelayForTesting()); 646 tracker_->GetTimerDelayForTesting());
647 647
648 histograms.ExpectTotalCount(kFetchFailedHistogram, 0); 648 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
649 histograms.ExpectTotalCount(kFetchValidHistogram, 1); 649 histograms.ExpectTotalCount(kFetchValidHistogram, 1);
650 histograms.ExpectBucketCount(kFetchValidHistogram, false, 1); 650 histograms.ExpectBucketCount(kFetchValidHistogram, false, 1);
651 } 651 }
652 652
653 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkServerError) { 653 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkServerError) {
654 base::HistogramTester histograms; 654 base::HistogramTester histograms;
655 histograms.ExpectTotalCount(kFetchFailedHistogram, 0); 655 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
656 histograms.ExpectTotalCount(kFetchValidHistogram, 0); 656 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
657 657
658 test_server_->RegisterRequestHandler( 658 test_server_->RegisterRequestHandler(
659 base::Bind(&NetworkTimeTrackerTest::ServerErrorResponseHandler)); 659 base::Bind(&NetworkTimeTrackerTest::ServerErrorResponseHandler));
660 EXPECT_TRUE(test_server_->Start()); 660 EXPECT_TRUE(test_server_->Start());
661 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/")); 661 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/"));
662 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting()); 662 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
663 tracker_->WaitForFetchForTesting(123123123); 663 tracker_->WaitForFetchForTesting(123123123);
664 664
665 base::Time out_network_time; 665 base::Time out_network_time;
666 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC, 666 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SUCCESSFUL_SYNC,
667 tracker_->GetNetworkTime(&out_network_time, nullptr)); 667 tracker_->GetNetworkTime(&out_network_time, nullptr));
668 // Should see backoff in the error case. 668 // Should see backoff in the error case.
669 EXPECT_EQ(base::TimeDelta::FromMinutes(120), 669 EXPECT_EQ(base::TimeDelta::FromMinutes(120),
670 tracker_->GetTimerDelayForTesting()); 670 tracker_->GetTimerDelayForTesting());
671 671
672 histograms.ExpectTotalCount(kFetchFailedHistogram, 1); 672 histograms.ExpectTotalCount(kFetchFailedHistogram, 1);
673 // There was no network error, so the histogram is recorded as 673 // There was no network error, so the histogram is recorded as
674 // net::OK, indicating that the connection succeeded but there was a 674 // net::OK, indicating that the connection succeeded but there was a
675 // non-200 HTTP status code. 675 // non-200 HTTP status code.
676 histograms.ExpectBucketCount(kFetchFailedHistogram, net::OK, 1); 676 histograms.ExpectBucketCount(kFetchFailedHistogram, net::OK, 1);
677 histograms.ExpectTotalCount(kFetchValidHistogram, 0); 677 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
678 } 678 }
679 679
680 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkNetworkError) { 680 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkNetworkError) {
681 base::HistogramTester histograms; 681 base::HistogramTester histograms;
682 histograms.ExpectTotalCount(kFetchFailedHistogram, 0); 682 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
683 histograms.ExpectTotalCount(kFetchValidHistogram, 0); 683 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
684 684
685 test_server_->RegisterRequestHandler( 685 test_server_->RegisterRequestHandler(
686 base::Bind(&NetworkTimeTrackerTest::NetworkErrorResponseHandler)); 686 base::Bind(&NetworkTimeTrackerTest::NetworkErrorResponseHandler));
687 EXPECT_TRUE(test_server_->Start()); 687 EXPECT_TRUE(test_server_->Start());
688 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/")); 688 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/"));
689 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting()); 689 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
690 tracker_->WaitForFetchForTesting(123123123); 690 tracker_->WaitForFetchForTesting(123123123);
691 691
692 base::Time out_network_time; 692 base::Time out_network_time;
693 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC, 693 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SUCCESSFUL_SYNC,
694 tracker_->GetNetworkTime(&out_network_time, nullptr)); 694 tracker_->GetNetworkTime(&out_network_time, nullptr));
695 // Should see backoff in the error case. 695 // Should see backoff in the error case.
696 EXPECT_EQ(base::TimeDelta::FromMinutes(120), 696 EXPECT_EQ(base::TimeDelta::FromMinutes(120),
697 tracker_->GetTimerDelayForTesting()); 697 tracker_->GetTimerDelayForTesting());
698 698
699 histograms.ExpectTotalCount(kFetchFailedHistogram, 1); 699 histograms.ExpectTotalCount(kFetchFailedHistogram, 1);
700 histograms.ExpectBucketCount(kFetchFailedHistogram, -net::ERR_EMPTY_RESPONSE, 700 histograms.ExpectBucketCount(kFetchFailedHistogram, -net::ERR_EMPTY_RESPONSE,
701 1); 701 1);
702 histograms.ExpectTotalCount(kFetchValidHistogram, 0); 702 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
703 } 703 }
704 704
705 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkLargeResponse) { 705 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkLargeResponse) {
706 base::HistogramTester histograms; 706 base::HistogramTester histograms;
707 histograms.ExpectTotalCount(kFetchFailedHistogram, 0); 707 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
708 histograms.ExpectTotalCount(kFetchValidHistogram, 0); 708 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
709 709
710 test_server_->RegisterRequestHandler( 710 test_server_->RegisterRequestHandler(
711 base::Bind(&NetworkTimeTrackerTest::GoodTimeResponseHandler)); 711 base::Bind(&NetworkTimeTrackerTest::GoodTimeResponseHandler));
712 EXPECT_TRUE(test_server_->Start()); 712 EXPECT_TRUE(test_server_->Start());
713 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/")); 713 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/"));
714 714
715 base::Time out_network_time; 715 base::Time out_network_time;
716 716
717 tracker_->SetMaxResponseSizeForTesting(3); 717 tracker_->SetMaxResponseSizeForTesting(3);
718 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting()); 718 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
719 tracker_->WaitForFetchForTesting(123123123); 719 tracker_->WaitForFetchForTesting(123123123);
720 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC, 720 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SUCCESSFUL_SYNC,
721 tracker_->GetNetworkTime(&out_network_time, nullptr)); 721 tracker_->GetNetworkTime(&out_network_time, nullptr));
722 722
723 histograms.ExpectTotalCount(kFetchFailedHistogram, 1); 723 histograms.ExpectTotalCount(kFetchFailedHistogram, 1);
724 histograms.ExpectTotalCount(kFetchValidHistogram, 0); 724 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
725 725
726 tracker_->SetMaxResponseSizeForTesting(1024); 726 tracker_->SetMaxResponseSizeForTesting(1024);
727 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting()); 727 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
728 tracker_->WaitForFetchForTesting(123123123); 728 tracker_->WaitForFetchForTesting(123123123);
729 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_AVAILABLE, 729 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_AVAILABLE,
730 tracker_->GetNetworkTime(&out_network_time, nullptr)); 730 tracker_->GetNetworkTime(&out_network_time, nullptr));
731 731
732 histograms.ExpectTotalCount(kFetchFailedHistogram, 1); 732 histograms.ExpectTotalCount(kFetchFailedHistogram, 1);
733 histograms.ExpectTotalCount(kFetchValidHistogram, 1); 733 histograms.ExpectTotalCount(kFetchValidHistogram, 1);
734 histograms.ExpectBucketCount(kFetchValidHistogram, true, 1); 734 histograms.ExpectBucketCount(kFetchValidHistogram, true, 1);
735 } 735 }
736 736
737 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkFirstSyncPending) {
738 base::HistogramTester histograms;
739 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
740 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
741
742 test_server_->RegisterRequestHandler(
743 base::Bind(&NetworkTimeTrackerTest::BadDataResponseHandler));
744 EXPECT_TRUE(test_server_->Start());
745 base::StringPiece key = {reinterpret_cast<const char*>(kDevKeyPubBytes),
746 sizeof(kDevKeyPubBytes)};
747 tracker_->SetPublicKeyForTesting(key);
748 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/"));
749 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
750
751 // Do not wait for the fetch to complete; ask for the network time
752 // immediately while the request is still pending..
mab 2016/10/14 06:35:02 Nit: ..
estark 2016/10/14 07:23:46 Done.
753 base::Time out_network_time;
754 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_FIRST_SYNC_PENDING,
755 tracker_->GetNetworkTime(&out_network_time, nullptr));
756 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
757 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
758
759 tracker_->WaitForFetchForTesting(123123123);
760 }
761
762 TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkSubseqeuntSyncPending) {
763 base::HistogramTester histograms;
764 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
765 histograms.ExpectTotalCount(kFetchValidHistogram, 0);
766
767 test_server_->RegisterRequestHandler(
768 base::Bind(&NetworkTimeTrackerTest::BadDataResponseHandler));
769 EXPECT_TRUE(test_server_->Start());
770 base::StringPiece key = {reinterpret_cast<const char*>(kDevKeyPubBytes),
771 sizeof(kDevKeyPubBytes)};
772 tracker_->SetPublicKeyForTesting(key);
773 tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/"));
774 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
775 tracker_->WaitForFetchForTesting(123123123);
776
777 base::Time out_network_time;
778 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SUCCESSFUL_SYNC,
779 tracker_->GetNetworkTime(&out_network_time, nullptr));
780
781 // After one sync attempt failed, kick off another one, and ask for
782 // the network time while it is still pending.
783 EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
784 EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_SUBSEQUENT_SYNC_PENDING,
785 tracker_->GetNetworkTime(&out_network_time, nullptr));
786 histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
787 histograms.ExpectTotalCount(kFetchValidHistogram, 1);
788 histograms.ExpectBucketCount(kFetchValidHistogram, false, 1);
789
790 tracker_->WaitForFetchForTesting(123123123);
791 }
792
737 } // namespace network_time 793 } // namespace network_time
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698