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

Unified Diff: chrome/browser/net/spdyproxy/data_reduction_proxy_settings_unittest.cc

Issue 111113006: Metrics fix for data reduction proxy. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/net/spdyproxy/data_reduction_proxy_settings_unittest.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/net/spdyproxy/data_reduction_proxy_settings_unittest.cc
diff --git a/chrome/browser/net/spdyproxy/data_reduction_proxy_settings_unittest.cc b/chrome/browser/net/spdyproxy/data_reduction_proxy_settings_unittest.cc
index 67b226416cbd5718c209282777ad6af36c7ad568..5d933974f79da97cd47fe9fd1e65d62d9ec6c0a9 100644
--- a/chrome/browser/net/spdyproxy/data_reduction_proxy_settings_unittest.cc
+++ b/chrome/browser/net/spdyproxy/data_reduction_proxy_settings_unittest.cc
@@ -7,6 +7,8 @@
#include "base/command_line.h"
#include "base/md5.h"
#include "base/metrics/field_trial.h"
+#include "base/metrics/histogram_samples.h"
+#include "base/metrics/statistics_recorder.h"
#include "base/prefs/pref_registry_simple.h"
#include "base/prefs/pref_service.h"
#include "base/prefs/scoped_user_pref_update.h"
@@ -51,6 +53,20 @@ void HeadersToRaw(std::string* headers) {
*headers += '\0';
}
+ProbeURLFetchResult FetchResult(bool enabled, bool success) {
+ if (enabled) {
+ if (success)
+ return spdyproxy::SUCCEEDED_PROXY_ALREADY_ENABLED;
+ else
+ return spdyproxy::FAILED_PROXY_DISABLED;
+ } else {
+ if (success)
+ return spdyproxy::SUCCEEDED_PROXY_ENABLED;
+ else
+ return spdyproxy::FAILED_PROXY_ALREADY_DISABLED;
+ }
+}
+
DataReductionProxySettingsTestBase::DataReductionProxySettingsTestBase()
: testing::Test() {
}
@@ -119,13 +135,16 @@ template <class C>
void DataReductionProxySettingsTestBase::SetProbeResult(
const std::string& test_url,
const std::string& response,
+ ProbeURLFetchResult result,
bool success,
int expected_calls) {
MockDataReductionProxySettings<C>* settings =
static_cast<MockDataReductionProxySettings<C>*>(settings_.get());
if (0 == expected_calls) {
EXPECT_CALL(*settings, GetURLFetcher()).Times(0);
+ EXPECT_CALL(*settings, RecordProbeURLFetchResult(_)).Times(0);
} else {
+ EXPECT_CALL(*settings, RecordProbeURLFetchResult(result)).Times(1);
EXPECT_CALL(*settings, GetURLFetcher())
.Times(expected_calls)
.WillRepeatedly(Return(new net::FakeURLFetcher(
@@ -143,12 +162,14 @@ template void
DataReductionProxySettingsTestBase::SetProbeResult<DataReductionProxySettings>(
const std::string& test_url,
const std::string& response,
+ ProbeURLFetchResult result,
bool success,
int expected_calls);
template void
DataReductionProxySettingsTestBase::SetProbeResult<
DataReductionProxySettingsAndroid>(const std::string& test_url,
const std::string& response,
+ ProbeURLFetchResult result,
bool success,
int expected_calls);
@@ -184,13 +205,19 @@ void DataReductionProxySettingsTestBase::CheckProbe(
bool initially_enabled,
const std::string& probe_url,
const std::string& response,
- bool request_success,
+ bool request_succeeded,
bool expected_enabled,
bool expected_restricted) {
pref_service_.SetBoolean(prefs::kSpdyProxyAuthEnabled, initially_enabled);
+ if (initially_enabled)
+ settings_->enabled_by_user_ = true;
settings_->restricted_by_carrier_ = false;
- SetProbeResult(
- probe_url, response, request_success, initially_enabled ? 1 : 0);
+ SetProbeResult(probe_url,
+ response,
+ FetchResult(initially_enabled,
+ request_succeeded && (response == "OK")),
+ request_succeeded,
+ initially_enabled ? 1 : 0);
settings_->MaybeActivateDataReductionProxy(false);
base::MessageLoop::current()->RunUntilIdle();
CheckProxyConfigs(expected_enabled, expected_restricted);
@@ -199,9 +226,14 @@ void DataReductionProxySettingsTestBase::CheckProbe(
void DataReductionProxySettingsTestBase::CheckProbeOnIPChange(
const std::string& probe_url,
const std::string& response,
- bool request_success,
+ bool request_succeeded,
bool expected_restricted) {
- SetProbeResult(probe_url, response, request_success, 1);
+ SetProbeResult(probe_url,
+ response,
+ FetchResult(!settings_->restricted_by_carrier_,
+ request_succeeded && (response == "OK")),
+ request_succeeded,
+ 1);
settings_->OnIPAddressChanged();
base::MessageLoop::current()->RunUntilIdle();
CheckProxyConfigs(true, expected_restricted);
@@ -211,8 +243,11 @@ void DataReductionProxySettingsTestBase::CheckOnPrefChange(
bool enabled,
bool expected_enabled) {
// Always have a sucessful probe for pref change tests.
- SetProbeResult(
- kProbeURLWithOKResponse, "OK", true, expected_enabled ? 1 : 0);
+ SetProbeResult(kProbeURLWithOKResponse,
+ "OK",
+ FetchResult(enabled, true),
+ true,
+ expected_enabled ? 1 : 0);
pref_service_.SetBoolean(prefs::kSpdyProxyAuthEnabled, enabled);
base::MessageLoop::current()->RunUntilIdle();
// Never expect the proxy to be restricted for pref change tests.
@@ -224,8 +259,11 @@ void DataReductionProxySettingsTestBase::CheckInitDataReductionProxy(
AddProxyToCommandLine();
base::MessageLoopForUI loop;
pref_service_.SetBoolean(prefs::kSpdyProxyAuthEnabled, enabled_at_startup);
- SetProbeResult(
- kProbeURLWithOKResponse, "OK", true, enabled_at_startup ? 1 : 0);
+ SetProbeResult(kProbeURLWithOKResponse,
+ "OK",
+ FetchResult(enabled_at_startup, true),
+ true,
+ enabled_at_startup ? 1 : 0);
settings_->InitDataReductionProxySettings();
base::MessageLoop::current()->RunUntilIdle();
if (enabled_at_startup) {
@@ -497,6 +535,10 @@ TEST_F(DataReductionProxySettingsTest, TestOnIPAddressChanged) {
AddProxyToCommandLine();
base::MessageLoopForUI loop;
// The proxy is enabled initially.
+ pref_service_.SetBoolean(prefs::kSpdyProxyAuthEnabled, true);
+ settings_->spdy_proxy_auth_enabled_.Init(
+ prefs::kSpdyProxyAuthEnabled,
+ settings_->GetOriginalProfilePrefs());
settings_->enabled_by_user_ = true;
settings_->restricted_by_carrier_ = false;
settings_->SetProxyConfigs(true, false, true);
@@ -525,6 +567,8 @@ TEST_F(DataReductionProxySettingsTest, TestOnProxyEnabledPrefChange) {
}
TEST_F(DataReductionProxySettingsTest, TestInitDataReductionProxyOn) {
+ MockSettings* settings = static_cast<MockSettings*>(settings_.get());
+ EXPECT_CALL(*settings, RecordStartupState(spdyproxy::PROXY_ENABLED));
CheckInitDataReductionProxy(true);
}
@@ -533,6 +577,7 @@ TEST_F(DataReductionProxySettingsTest, TestInitDataReductionProxyOff) {
// LogProxyState.
MockSettings* settings = static_cast<MockSettings*>(settings_.get());
EXPECT_CALL(*settings, LogProxyState(false, false, true)).Times(1);
+ EXPECT_CALL(*settings, RecordStartupState(spdyproxy::PROXY_DISABLED));
CheckInitDataReductionProxy(false);
}
@@ -616,3 +661,12 @@ TEST_F(DataReductionProxySettingsTest, WasFetchedViaProxy) {
DataReductionProxySettings::WasFetchedViaProxy(parsed));
}
}
+
+TEST_F(DataReductionProxySettingsTest, CheckInitMetricsWhenNotAllowed) {
+ // No call to |AddProxyToCommandLine()| was made, so the proxy feature
+ // should be unavailable.
+ EXPECT_FALSE(DataReductionProxySettings::IsDataReductionProxyAllowed());
+ MockSettings* settings = static_cast<MockSettings*>(settings_.get());
+ EXPECT_CALL(*settings, RecordStartupState(spdyproxy::PROXY_NOT_AVAILABLE));
+ settings_->InitDataReductionProxySettings();
+}
« no previous file with comments | « chrome/browser/net/spdyproxy/data_reduction_proxy_settings_unittest.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698