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

Unified Diff: chrome/browser/metrics/variations/variations_service_unittest.cc

Issue 883803002: Expose API on VariationsService to set the restrict mode param. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
Index: chrome/browser/metrics/variations/variations_service_unittest.cc
diff --git a/chrome/browser/metrics/variations/variations_service_unittest.cc b/chrome/browser/metrics/variations/variations_service_unittest.cc
index c7df80946ed2296ef96ee20a70eb3fd2bb0e64ba..6f67e9cd0e1923b10e6d88e3a066cca96c2d34cf 100644
--- a/chrome/browser/metrics/variations/variations_service_unittest.cc
+++ b/chrome/browser/metrics/variations/variations_service_unittest.cc
@@ -151,106 +151,114 @@ void SimulateServerResponse(int response_code, net::TestURLFetcher* fetcher) {
fetcher->set_response_code(response_code);
}
-} // namespace
-
-class VariationsServiceTest : public ::testing::Test {
- protected:
- VariationsServiceTest() {}
-
- private:
-#if defined(OS_CHROMEOS)
- // Not used directly. Initializes CrosSettings for testing.
- chromeos::ScopedTestDeviceSettingsService test_device_settings_service_;
- chromeos::ScopedTestCrosSettings test_cros_settings_;
-#endif
-
- DISALLOW_COPY_AND_ASSIGN(VariationsServiceTest);
-};
-
-#if !defined(OS_CHROMEOS)
-TEST_F(VariationsServiceTest, VariationsURLIsValid) {
+// Helper class that abstracts away platform-specific details relating to the
+// pref store used for the "restrict" param policy.
+class TestVariationsPrefsStore {
+ public:
+ TestVariationsPrefsStore() {
#if defined(OS_ANDROID)
- // Android uses profile prefs as the PrefService to generate the URL.
- TestingPrefServiceSyncable prefs;
- VariationsService::RegisterProfilePrefs(prefs.registry());
+ // Android uses profile prefs as the PrefService to generate the URL.
+ VariationsService::RegisterProfilePrefs(prefs_.registry());
#else
- TestingPrefServiceSimple prefs;
- VariationsService::RegisterPrefs(prefs.registry());
+ VariationsService::RegisterPrefs(prefs_.registry());
#endif
- const std::string default_variations_url =
- VariationsService::GetDefaultVariationsServerURLForTesting();
- std::string value;
- GURL url = VariationsService::GetVariationsServerURL(&prefs);
- EXPECT_TRUE(StartsWithASCII(url.spec(), default_variations_url, true));
- EXPECT_FALSE(net::GetValueForKeyInQuery(url, "restrict", &value));
-
- prefs.SetString(prefs::kVariationsRestrictParameter, "restricted");
- url = VariationsService::GetVariationsServerURL(&prefs);
- EXPECT_TRUE(StartsWithASCII(url.spec(), default_variations_url, true));
- EXPECT_TRUE(net::GetValueForKeyInQuery(url, "restrict", &value));
- EXPECT_EQ("restricted", value);
-}
-#else
-class VariationsServiceTestChromeOS : public VariationsServiceTest {
- protected:
- VariationsServiceTestChromeOS() {}
-
- void SetUp() override {
+#if defined(OS_CHROMEOS)
cros_settings_ = chromeos::CrosSettings::Get();
DCHECK(cros_settings_ != NULL);
// Remove the real DeviceSettingsProvider and replace it with a stub that
// allows modifications in a test.
+ // TODO(asvitkine): Make a scoped helper class for this operation.
device_settings_provider_ = cros_settings_->GetProvider(
chromeos::kReportDeviceVersionInfo);
EXPECT_TRUE(device_settings_provider_ != NULL);
EXPECT_TRUE(cros_settings_->RemoveSettingsProvider(
device_settings_provider_));
cros_settings_->AddSettingsProvider(&stub_settings_provider_);
+#endif
}
- void TearDown() override {
+ ~TestVariationsPrefsStore() {
+#if defined(OS_CHROMEOS)
// Restore the real DeviceSettingsProvider.
EXPECT_TRUE(
cros_settings_->RemoveSettingsProvider(&stub_settings_provider_));
cros_settings_->AddSettingsProvider(device_settings_provider_);
+#endif
}
- void SetVariationsRestrictParameterPolicyValue(std::string value) {
+ void SetVariationsRestrictParameterPolicyValue(const std::string& value) {
+#if defined(OS_CHROMEOS)
cros_settings_->SetString(chromeos::kVariationsRestrictParameter, value);
+#else
+ prefs_.SetString(prefs::kVariationsRestrictParameter, value);
+#endif
}
+ PrefService* prefs() { return &prefs_; }
+
private:
+#if defined(OS_ANDROID)
+ // Android uses profile prefs as the PrefService to generate the URL.
+ TestingPrefServiceSyncable prefs_;
+#else
+ TestingPrefServiceSimple prefs_;
+#endif
+
+#if defined(OS_CHROMEOS)
chromeos::CrosSettings* cros_settings_;
chromeos::StubCrosSettingsProvider stub_settings_provider_;
chromeos::CrosSettingsProvider* device_settings_provider_;
+#endif
- DISALLOW_COPY_AND_ASSIGN(VariationsServiceTestChromeOS);
+ DISALLOW_COPY_AND_ASSIGN(TestVariationsPrefsStore);
};
-TEST_F(VariationsServiceTestChromeOS, VariationsURLIsValid) {
- TestingPrefServiceSimple prefs;
- VariationsService::RegisterPrefs(prefs.registry());
+} // namespace
+
+class VariationsServiceTest : public ::testing::Test {
+ protected:
+ VariationsServiceTest() {}
+
+ private:
+#if defined(OS_CHROMEOS)
+ // Not used directly. Initializes CrosSettings for testing.
+ chromeos::ScopedTestDeviceSettingsService test_device_settings_service_;
+ chromeos::ScopedTestCrosSettings test_cros_settings_;
+#endif
+
+ DISALLOW_COPY_AND_ASSIGN(VariationsServiceTest);
+};
+
+TEST_F(VariationsServiceTest, GetVariationsServerURL) {
+ TestVariationsPrefsStore prefs_store;
+ PrefService* prefs = prefs_store.prefs();
const std::string default_variations_url =
VariationsService::GetDefaultVariationsServerURLForTesting();
std::string value;
- GURL url = VariationsService::GetVariationsServerURL(&prefs);
+ GURL url = VariationsService::GetVariationsServerURL(prefs, std::string());
EXPECT_TRUE(StartsWithASCII(url.spec(), default_variations_url, true));
EXPECT_FALSE(net::GetValueForKeyInQuery(url, "restrict", &value));
- SetVariationsRestrictParameterPolicyValue("restricted");
- url = VariationsService::GetVariationsServerURL(&prefs);
+ prefs_store.SetVariationsRestrictParameterPolicyValue("restricted");
+ url = VariationsService::GetVariationsServerURL(prefs, std::string());
EXPECT_TRUE(StartsWithASCII(url.spec(), default_variations_url, true));
EXPECT_TRUE(net::GetValueForKeyInQuery(url, "restrict", &value));
EXPECT_EQ("restricted", value);
+
+ // The override value should take precedence over what's in prefs.
+ url = VariationsService::GetVariationsServerURL(prefs, "override");
+ EXPECT_TRUE(StartsWithASCII(url.spec(), default_variations_url, true));
+ EXPECT_TRUE(net::GetValueForKeyInQuery(url, "restrict", &value));
+ EXPECT_EQ("override", value);
}
-#endif
TEST_F(VariationsServiceTest, VariationsURLHasOSNameParam) {
TestingPrefServiceSimple prefs;
VariationsService::RegisterPrefs(prefs.registry());
- const GURL url = VariationsService::GetVariationsServerURL(&prefs);
+ const GURL url =
+ VariationsService::GetVariationsServerURL(&prefs, std::string());
std::string value;
EXPECT_TRUE(net::GetValueForKeyInQuery(url, "osname", &value));
@@ -306,8 +314,8 @@ TEST_F(VariationsServiceTest, SeedStoredWhenOKStatus) {
TestVariationsService service(
new web_resource::TestRequestAllowedNotifier(&prefs), &prefs);
- const GURL url = VariationsService::GetVariationsServerURL(&prefs);
- service.variations_server_url_ = url;
+ service.variations_server_url_ =
+ VariationsService::GetVariationsServerURL(&prefs, std::string());
service.set_intercepts_fetch(false);
net::TestURLFetcherFactory factory;
@@ -339,8 +347,8 @@ TEST_F(VariationsServiceTest, SeedNotStoredWhenNonOKStatus) {
VariationsService service(
new web_resource::TestRequestAllowedNotifier(&prefs), &prefs, NULL);
- const GURL url = VariationsService::GetVariationsServerURL(&prefs);
- service.variations_server_url_ = url;
+ service.variations_server_url_ =
+ VariationsService::GetVariationsServerURL(&prefs, std::string());
for (size_t i = 0; i < arraysize(non_ok_status_codes); ++i) {
net::TestURLFetcherFactory factory;
service.DoActualFetch();
@@ -364,8 +372,8 @@ TEST_F(VariationsServiceTest, SeedDateUpdatedOn304Status) {
net::TestURLFetcherFactory factory;
VariationsService service(
new web_resource::TestRequestAllowedNotifier(&prefs), &prefs, NULL);
- const GURL url = VariationsService::GetVariationsServerURL(&prefs);
- service.variations_server_url_ = url;
+ service.variations_server_url_ =
+ VariationsService::GetVariationsServerURL(&prefs, std::string());
service.DoActualFetch();
EXPECT_TRUE(
prefs.FindPreference(prefs::kVariationsSeedDate)->IsDefaultValue());
« no previous file with comments | « chrome/browser/metrics/variations/variations_service.cc ('k') | chrome/browser/policy/policy_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698