| 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/android/net/external_estimate_provider_android.h" | 5 #include "chrome/browser/android/net/external_estimate_provider_android.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include "base/test/histogram_tester.h" | |
| 10 #include "base/time/time.h" | 9 #include "base/time/time.h" |
| 11 #include "net/base/network_quality_estimator.h" | 10 #include "net/base/network_quality_estimator.h" |
| 12 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
| 13 | 12 |
| 14 namespace { | 13 namespace { |
| 15 | 14 |
| 16 // Tests if the |ExternalEstimateProviderAndroid| APIs return false without the | 15 // Tests if the |ExternalEstimateProviderAndroid| APIs return false without the |
| 17 // downstream implementation. | 16 // downstream implementation. |
| 18 TEST(ExternalEstimateProviderAndroidTest, BasicsTest) { | 17 TEST(ExternalEstimateProviderAndroidTest, BasicsTest) { |
| 19 chrome::android::ExternalEstimateProviderAndroid external_estimate_provider; | 18 chrome::android::ExternalEstimateProviderAndroid external_estimate_provider; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 35 TestNetworkQualityEstimator( | 34 TestNetworkQualityEstimator( |
| 36 scoped_ptr<chrome::android::ExternalEstimateProviderAndroid> | 35 scoped_ptr<chrome::android::ExternalEstimateProviderAndroid> |
| 37 external_estimate_provider, | 36 external_estimate_provider, |
| 38 const std::map<std::string, std::string>& variation_params) | 37 const std::map<std::string, std::string>& variation_params) |
| 39 : NetworkQualityEstimator(external_estimate_provider.Pass(), | 38 : NetworkQualityEstimator(external_estimate_provider.Pass(), |
| 40 variation_params), | 39 variation_params), |
| 41 notified_(false) {} | 40 notified_(false) {} |
| 42 | 41 |
| 43 ~TestNetworkQualityEstimator() override {} | 42 ~TestNetworkQualityEstimator() override {} |
| 44 | 43 |
| 45 void OnUpdatedEstimateAvailable() override { | 44 void OnUpdatedEstimateAvailable() override { notified_ = true; } |
| 46 notified_ = true; | |
| 47 net::NetworkQualityEstimator::OnUpdatedEstimateAvailable(); | |
| 48 } | |
| 49 | 45 |
| 50 bool IsNotified() const { return notified_; } | 46 bool IsNotified() const { return notified_; } |
| 51 | 47 |
| 52 private: | 48 private: |
| 53 bool notified_; | 49 bool notified_; |
| 54 }; | 50 }; |
| 55 | 51 |
| 56 class TestExternalEstimateProviderAndroid | 52 class TestExternalEstimateProviderAndroid |
| 57 : public chrome::android::ExternalEstimateProviderAndroid { | 53 : public chrome::android::ExternalEstimateProviderAndroid { |
| 58 public: | 54 public: |
| 59 TestExternalEstimateProviderAndroid() | 55 TestExternalEstimateProviderAndroid() |
| 60 : chrome::android::ExternalEstimateProviderAndroid() {} | 56 : chrome::android::ExternalEstimateProviderAndroid() {} |
| 61 ~TestExternalEstimateProviderAndroid() override {} | 57 ~TestExternalEstimateProviderAndroid() override {} |
| 62 using ExternalEstimateProviderAndroid::NotifyUpdatedEstimateAvailable; | 58 using ExternalEstimateProviderAndroid::NotifyUpdatedEstimateAvailable; |
| 63 | |
| 64 bool GetTimeSinceLastUpdate( | |
| 65 base::TimeDelta* time_since_last_update) const override { | |
| 66 *time_since_last_update = base::TimeDelta::FromMilliseconds(1); | |
| 67 return true; | |
| 68 } | |
| 69 }; | 59 }; |
| 70 | 60 |
| 71 // Tests if the |ExternalEstimateProviderAndroid| notifies | 61 // Tests if the |ExternalEstimateProviderAndroid| notifies |
| 72 // |NetworkQualityEstimator|. | 62 // |NetworkQualityEstimator|. |
| 73 TEST(ExternalEstimateProviderAndroidTest, DelegateTest) { | 63 TEST(ExternalEstimateProviderAndroidTest, DelegateTest) { |
| 74 base::HistogramTester histogram_tester; | |
| 75 scoped_ptr<TestExternalEstimateProviderAndroid> external_estimate_provider; | 64 scoped_ptr<TestExternalEstimateProviderAndroid> external_estimate_provider; |
| 76 external_estimate_provider.reset(new TestExternalEstimateProviderAndroid()); | 65 external_estimate_provider.reset(new TestExternalEstimateProviderAndroid()); |
| 77 | 66 |
| 78 TestExternalEstimateProviderAndroid* ptr = external_estimate_provider.get(); | 67 TestExternalEstimateProviderAndroid* ptr = external_estimate_provider.get(); |
| 79 std::map<std::string, std::string> variation_params; | 68 std::map<std::string, std::string> variation_params; |
| 80 TestNetworkQualityEstimator network_quality_estimator( | 69 TestNetworkQualityEstimator network_quality_estimator( |
| 81 external_estimate_provider.Pass(), variation_params); | 70 external_estimate_provider.Pass(), variation_params); |
| 82 ptr->NotifyUpdatedEstimateAvailable(); | 71 ptr->NotifyUpdatedEstimateAvailable(); |
| 83 DCHECK(network_quality_estimator.IsNotified()); | 72 DCHECK(network_quality_estimator.IsNotified()); |
| 84 | |
| 85 // EXTERNAL_ESTIMATE_PROVIDER_STATUS_NOT_AVAILABLE | |
| 86 histogram_tester.ExpectBucketCount("NQE.ExternalEstimateProviderStatus", 0, | |
| 87 0); | |
| 88 | |
| 89 // EXTERNAL_ESTIMATE_PROVIDER_STATUS_AVAILABLE | |
| 90 histogram_tester.ExpectBucketCount("NQE.ExternalEstimateProviderStatus", 1, | |
| 91 1); | |
| 92 | |
| 93 // EXTERNAL_ESTIMATE_PROVIDER_STATUS_QUERIED | |
| 94 // Updated once during NetworkQualityEstimator constructor and again, | |
| 95 // when |OnUpdatedEstimateAvailable| is called. | |
| 96 histogram_tester.ExpectBucketCount("NQE.ExternalEstimateProviderStatus", 2, | |
| 97 2); | |
| 98 | |
| 99 // EXTERNAL_ESTIMATE_PROVIDER_STATUS_QUERY_SUCCESSFUL | |
| 100 // Updated once during NetworkQualityEstimator constructor and again, | |
| 101 // when |OnUpdatedEstimateAvailable| is called. | |
| 102 histogram_tester.ExpectBucketCount("NQE.ExternalEstimateProviderStatus", 3, | |
| 103 2); | |
| 104 | |
| 105 // EXTERNAL_ESTIMATE_PROVIDER_STATUS_CALLBACK | |
| 106 histogram_tester.ExpectBucketCount("NQE.ExternalEstimateProviderStatus", 4, | |
| 107 1); | |
| 108 | |
| 109 histogram_tester.ExpectTotalCount("NQE.ExternalEstimateProviderStatus", 6); | |
| 110 } | 73 } |
| 111 | 74 |
| 112 } // namespace | 75 } // namespace |
| OLD | NEW |