Index: chrome/browser/metrics/variations/variations_service_unittest.cc |
=================================================================== |
--- chrome/browser/metrics/variations/variations_service_unittest.cc (revision 255631) |
+++ chrome/browser/metrics/variations/variations_service_unittest.cc (working copy) |
@@ -40,7 +40,9 @@ |
TestVariationsService(TestRequestAllowedNotifier* test_notifier, |
PrefService* local_state) |
: VariationsService(test_notifier, local_state), |
- fetch_attempted_(false) { |
+ intercepts_fetch_(true), |
+ fetch_attempted_(false), |
+ seed_stored_(false) { |
// Set this so StartRepeatedVariationsSeedFetch can be called in tests. |
SetCreateTrialsFromSeedCalledForTesting(true); |
} |
@@ -48,15 +50,34 @@ |
virtual ~TestVariationsService() { |
} |
+ void set_intercepts_fetch(bool value) { |
+ intercepts_fetch_ = value; |
+ } |
+ |
bool fetch_attempted() const { return fetch_attempted_; } |
- protected: |
+ bool seed_stored() const { return seed_stored_; } |
+ |
virtual void DoActualFetch() OVERRIDE { |
- fetch_attempted_ = true; |
+ if (intercepts_fetch_) { |
+ fetch_attempted_ = true; |
+ return; |
+ } |
+ |
+ VariationsService::DoActualFetch(); |
} |
+ protected: |
+ virtual void StoreSeed(const std::string& seed_data, |
+ const std::string& seed_signature, |
+ const base::Time& date_fetched) OVERRIDE { |
+ seed_stored_ = true; |
+ } |
+ |
private: |
+ bool intercepts_fetch_; |
bool fetch_attempted_; |
+ bool seed_stored_; |
DISALLOW_COPY_AND_ASSIGN(TestVariationsService); |
}; |
@@ -84,18 +105,6 @@ |
return serialized_seed; |
} |
-// Serializes |seed| to base64-encoded protobuf binary format. |
-std::string SerializeSeedBase64(const VariationsSeed& seed, std::string* hash) { |
- std::string serialized_seed = SerializeSeed(seed); |
- if (hash != NULL) { |
- std::string sha1 = base::SHA1HashString(serialized_seed); |
- *hash = base::HexEncode(sha1.data(), sha1.size()); |
- } |
- std::string base64_serialized_seed; |
- base::Base64Encode(serialized_seed, &base64_serialized_seed); |
- return base64_serialized_seed; |
-} |
- |
// Simulates a variations service response by setting a date header and the |
// specified HTTP |response_code| on |fetcher|. |
void SimulateServerResponse(int response_code, net::TestURLFetcher* fetcher) { |
@@ -257,21 +266,19 @@ |
TestingPrefServiceSimple prefs; |
VariationsService::RegisterPrefs(prefs.registry()); |
- VariationsService variations_service(new TestRequestAllowedNotifier, &prefs); |
+ TestVariationsService service(new TestRequestAllowedNotifier, &prefs); |
+ service.set_intercepts_fetch(false); |
net::TestURLFetcherFactory factory; |
- variations_service.DoActualFetch(); |
+ service.DoActualFetch(); |
net::TestURLFetcher* fetcher = factory.GetFetcherByID(0); |
SimulateServerResponse(net::HTTP_OK, fetcher); |
- const VariationsSeed seed = CreateTestSeed(); |
- fetcher->SetResponseString(SerializeSeed(seed)); |
+ fetcher->SetResponseString(SerializeSeed(CreateTestSeed())); |
- EXPECT_TRUE(prefs.FindPreference(prefs::kVariationsSeed)->IsDefaultValue()); |
- variations_service.OnURLFetchComplete(fetcher); |
- EXPECT_FALSE(prefs.FindPreference(prefs::kVariationsSeed)->IsDefaultValue()); |
- const std::string expected_base64 = SerializeSeedBase64(seed, NULL); |
- EXPECT_EQ(expected_base64, prefs.GetString(prefs::kVariationsSeed)); |
+ EXPECT_FALSE(service.seed_stored()); |
+ service.OnURLFetchComplete(fetcher); |
+ EXPECT_TRUE(service.seed_stored()); |
} |
TEST_F(VariationsServiceTest, SeedNotStoredWhenNonOKStatus) { |