Update FallbackDNSTestResult metric.
Update the metric for FallbackDNSTestResult to be technology specific.
BUG=chromium:366301
TEST=unit tests, manaul
Manual Test:
1. Connect a chrome device to an AP with no internet access, then
browse to "chrome://histograms" and verify there is a histogram
for "Network.Shill.Wifi.FallbackDNSTestResult".
Change-Id: I12606d34bede86557d00e0cb5b32b0c12ad37710
Reviewed-on: https://chromium-review.googlesource.com/200573
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
diff --git a/device.cc b/device.cc
index b4a4a22..806ce00 100644
--- a/device.cc
+++ b/device.cc
@@ -910,11 +910,11 @@
}
void Device::DNSClientCallback(const Error &error, const IPAddress& ip) {
- int result = Metrics::kDNSTestResultFailure;
+ int result = Metrics::kFallbackDNSTestResultFailure;
if (error.IsSuccess()) {
- result = Metrics::kDNSTestResultSuccess;
+ result = Metrics::kFallbackDNSTestResultSuccess;
}
- metrics()->NotifyFallbackDNSTestResult(result);
+ metrics()->NotifyFallbackDNSTestResult(technology_, result);
fallback_dns_test_client_.reset();
}
diff --git a/device_unittest.cc b/device_unittest.cc
index bc5ad9b..9fa9c76 100644
--- a/device_unittest.cc
+++ b/device_unittest.cc
@@ -1408,12 +1408,14 @@
TEST_F(DevicePortalDetectionTest, DNSClientCallback) {
EXPECT_CALL(metrics_,
- NotifyFallbackDNSTestResult(Metrics::kDNSTestResultFailure)).Times(1);
+ NotifyFallbackDNSTestResult(_, Metrics::kFallbackDNSTestResultFailure))
+ .Times(1);
InvokeDNSClientCallback(false);
Mock::VerifyAndClearExpectations(&metrics_);
EXPECT_CALL(metrics_,
- NotifyFallbackDNSTestResult(Metrics::kDNSTestResultSuccess)).Times(1);
+ NotifyFallbackDNSTestResult(_, Metrics::kFallbackDNSTestResultSuccess))
+ .Times(1);
InvokeDNSClientCallback(true);
}
diff --git a/metrics.cc b/metrics.cc
index d42e2b3..b11f20d 100644
--- a/metrics.cc
+++ b/metrics.cc
@@ -301,8 +301,8 @@
"Network.Shill.WiFi.UserInitiatedConnectionResult";
// static
-const char Metrics::kMetricFallbackDNSTestResult[] =
- "Network.Shill.FallbackDNSTestResult";
+const char Metrics::kMetricFallbackDNSTestResultSuffix[] =
+ "FallbackDNSTestResult";
// static
const char Metrics::kMetricNetworkProblemDetectedSuffix[] =
@@ -1132,10 +1132,13 @@
kUserInitiatedConnectionResultMax);
}
-void Metrics::NotifyFallbackDNSTestResult(int result) {
- SendEnumToUMA(kMetricFallbackDNSTestResult,
+void Metrics::NotifyFallbackDNSTestResult(Technology::Identifier technology_id,
+ int result) {
+ string histogram = GetFullMetricName(kMetricFallbackDNSTestResultSuffix,
+ technology_id);
+ SendEnumToUMA(histogram,
result,
- kDNSTestResultMax);
+ kFallbackDNSTestResultMax);
}
void Metrics::NotifyNetworkProblemDetected(Technology::Identifier technology_id,
diff --git a/metrics.h b/metrics.h
index 9abdd0e..457346d 100644
--- a/metrics.h
+++ b/metrics.h
@@ -286,9 +286,9 @@
};
enum DNSTestResult {
- kDNSTestResultSuccess = 0,
- kDNSTestResultFailure,
- kDNSTestResultMax
+ kFallbackDNSTestResultSuccess = 0,
+ kFallbackDNSTestResultFailure,
+ kFallbackDNSTestResultMax
};
// Network problem detected by traffic monitor.
@@ -499,7 +499,7 @@
static const char kMetricWifiUserInitiatedConnectionResult[];
// DNS test result.
- static const char kMetricFallbackDNSTestResult[];
+ static const char kMetricFallbackDNSTestResultSuffix[];
// Network problem detected by traffic monitor
static const char kMetricNetworkProblemDetectedSuffix[];
@@ -691,7 +691,8 @@
virtual void NotifyUserInitiatedEvent(int event);
// Notifies this object about the result of the fallback DNS test.
- virtual void NotifyFallbackDNSTestResult(int result);
+ virtual void NotifyFallbackDNSTestResult(Technology::Identifier technology_id,
+ int result);
// Notifies this object about a network problem detected on the currently
// connected network.
diff --git a/metrics_unittest.cc b/metrics_unittest.cc
index 111d8a4..0f2da45 100644
--- a/metrics_unittest.cc
+++ b/metrics_unittest.cc
@@ -793,10 +793,11 @@
TEST_F(MetricsTest, NotifyFallbackDNSTestResult) {
EXPECT_CALL(library_,
- SendEnumToUMA(Metrics::kMetricFallbackDNSTestResult,
- Metrics::kDNSTestResultSuccess,
- Metrics::kDNSTestResultMax));
- metrics_.NotifyFallbackDNSTestResult(Metrics::kDNSTestResultSuccess);
+ SendEnumToUMA("Network.Shill.Wifi.FallbackDNSTestResult",
+ Metrics::kFallbackDNSTestResultSuccess,
+ Metrics::kFallbackDNSTestResultMax));
+ metrics_.NotifyFallbackDNSTestResult(Technology::kWifi,
+ Metrics::kFallbackDNSTestResultSuccess);
}
TEST_F(MetricsTest, NotifyNetworkProblemDetected) {
diff --git a/mock_metrics.h b/mock_metrics.h
index 35087d7..4b4f48b 100644
--- a/mock_metrics.h
+++ b/mock_metrics.h
@@ -49,9 +49,10 @@
MOCK_METHOD1(NotifyWifiTxBitrate, void(int bitrate));
MOCK_METHOD2(NotifyUserInitiatedConnectionResult,
void(const std::string &name, int result));
- MOCK_METHOD1(NotifyFallbackDNSTestResult, void(int result));
MOCK_METHOD2(NotifyNetworkProblemDetected,
void(Technology::Identifier technology_id, int reason));
+ MOCK_METHOD2(NotifyFallbackDNSTestResult,
+ void(Technology::Identifier technology_id, int result));
private:
DISALLOW_COPY_AND_ASSIGN(MockMetrics);