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

Unified Diff: chrome/browser/profile_resetter/automatic_profile_resetter_unittest.cc

Issue 50883003: Added the ability to specify AutomaticProfileResetter's evaluation program through field trials. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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/profile_resetter/automatic_profile_resetter_factory.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/profile_resetter/automatic_profile_resetter_unittest.cc
diff --git a/chrome/browser/profile_resetter/automatic_profile_resetter_unittest.cc b/chrome/browser/profile_resetter/automatic_profile_resetter_unittest.cc
index 084a68690a740de4cccf72ffa122f1375d5ac101..2d89a353182fc52a2564bd3a06432421b92513a6 100644
--- a/chrome/browser/profile_resetter/automatic_profile_resetter_unittest.cc
+++ b/chrome/browser/profile_resetter/automatic_profile_resetter_unittest.cc
@@ -25,6 +25,7 @@
#include "chrome/test/base/testing_pref_service_syncable.h"
#include "chrome/test/base/testing_profile.h"
#include "components/user_prefs/pref_registry_syncable.h"
+#include "components/variations/variations_associated_data.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/test/test_browser_thread_bundle.h"
#include "testing/gmock/include/gmock/gmock.h"
@@ -407,6 +408,7 @@ class AutomaticProfileResetterTestBase : public testing::Test {
local_state_(TestingBrowserProcess::GetGlobal()),
profile_(new TestingProfile()),
experiment_group_name_(experiment_group_name),
+ inject_data_through_variation_params_(false),
mock_delegate_(NULL) {
// Make sure the factory is not optimized away, so whatever preferences it
// wants to register will actually get registered.
@@ -429,18 +431,14 @@ class AutomaticProfileResetterTestBase : public testing::Test {
virtual void SetUp() OVERRIDE {
field_trials_.reset(new base::FieldTrialList(NULL));
+ chrome_variations::testing::ClearAllVariationParams();
base::FieldTrialList::CreateFieldTrial(kAutomaticProfileResetStudyName,
experiment_group_name_);
-
- resetter_.reset(new testing::StrictMock<AutomaticProfileResetterUnderTest>(
- profile_.get()));
-
- scoped_ptr<MockProfileResetterDelegate> mock_delegate(
+ resetter_.reset(
+ new testing::StrictMock<AutomaticProfileResetterUnderTest>(profile()));
+ mock_delegate_owned_.reset(
new testing::StrictMock<MockProfileResetterDelegate>());
- mock_delegate_ = mock_delegate.get();
- resetter_->SetDelegateForTesting(
- mock_delegate.PassAs<AutomaticProfileResetterDelegate>());
- resetter_->SetTaskRunnerForWaitingForTesting(waiting_task_runner_);
+ mock_delegate_ = mock_delegate_owned_.get();
}
void SetTestingHashSeed(const std::string& hash_seed) {
@@ -451,14 +449,32 @@ class AutomaticProfileResetterTestBase : public testing::Test {
testing_program_ = source_code;
}
- void UnleashResetterAndWait() {
- resetter_->SetHashSeedForTesting(testing_hash_seed_);
- resetter_->SetProgramForTesting(testing_program_);
+ void set_inject_data_through_variation_params(bool value) {
+ inject_data_through_variation_params_ = value;
+ }
+ void UnleashResetterAndWait() {
+ if (inject_data_through_variation_params_) {
+ std::map<std::string, std::string> variation_params;
+ variation_params["program"] = testing_program_;
+ variation_params["hash_seed"] = testing_hash_seed_;
+ ASSERT_TRUE(chrome_variations::AssociateVariationParams(
+ kAutomaticProfileResetStudyName,
+ experiment_group_name_,
+ variation_params));
+ }
+ resetter_->Initialize();
+ resetter_->SetDelegateForTesting(
+ mock_delegate_owned_.PassAs<AutomaticProfileResetterDelegate>());
+ resetter_->SetTaskRunnerForWaitingForTesting(waiting_task_runner_);
+ if (!inject_data_through_variation_params_) {
+ resetter_->SetProgramForTesting(testing_program_);
+ resetter_->SetHashSeedForTesting(testing_hash_seed_);
+ }
resetter_->Activate();
if (waiting_task_runner_->HasPendingTask()) {
- EXPECT_EQ(base::TimeDelta::FromSeconds(55),
+ ASSERT_EQ(base::TimeDelta::FromSeconds(55),
vabr (Chromium) 2013/11/04 14:16:40 optional: For better reading and maintainability,
engedy 2013/11/04 16:19:38 Yes, there is actually a couple more of these magi
waiting_task_runner_->NextPendingTaskDelay());
waiting_task_runner_->RunPendingTasks();
}
@@ -482,8 +498,10 @@ class AutomaticProfileResetterTestBase : public testing::Test {
std::string experiment_group_name_;
std::string testing_program_;
std::string testing_hash_seed_;
+ bool inject_data_through_variation_params_;
scoped_ptr<AutomaticProfileResetterUnderTest> resetter_;
+ scoped_ptr<MockProfileResetterDelegate> mock_delegate_owned_;
MockProfileResetterDelegate* mock_delegate_;
DISALLOW_COPY_AND_ASSIGN(AutomaticProfileResetterTestBase);
@@ -776,6 +794,33 @@ TEST_F(AutomaticProfileResetterTest, OtherConditionSatisfied) {
EXPECT_EQ(kTestMementoValue, memento_in_file.ReadValue());
}
+#if defined(GOOGLE_CHROME_BUILD)
+TEST_F(AutomaticProfileResetterTest, ProgramSetThroughVariationParams) {
+ PreferenceHostedPromptMemento memento_in_prefs(profile());
+ LocalStateHostedPromptMemento memento_in_local_state(profile());
+ FileHostedPromptMementoSynchronous memento_in_file(profile());
+
+ EXPECT_EQ("", memento_in_prefs.ReadValue());
+ EXPECT_EQ("", memento_in_local_state.ReadValue());
+ EXPECT_EQ("", memento_in_file.ReadValue());
+
+ SetTestingProgram(ConstructProgram(true, true));
+ SetTestingHashSeed(kTestHashSeed);
+ set_inject_data_through_variation_params(true);
+
+ mock_delegate().ExpectCallsToDependenciesSetUpMethods();
+ mock_delegate().ExpectCallsToGetterMethods();
+ EXPECT_CALL(mock_delegate(), ShowPrompt());
+ EXPECT_CALL(resetter(), ReportStatistics(0x03u, 0x01u));
+
+ UnleashResetterAndWait();
+
+ EXPECT_EQ(kTestMementoValue, memento_in_prefs.ReadValue());
+ EXPECT_EQ(kTestMementoValue, memento_in_local_state.ReadValue());
+ EXPECT_EQ(kTestMementoValue, memento_in_file.ReadValue());
+}
+#endif
+
TEST_F(AutomaticProfileResetterTest, ConditionsSatisfiedAndInvalidMementos) {
PreferenceHostedPromptMemento memento_in_prefs(profile());
LocalStateHostedPromptMemento memento_in_local_state(profile());
« no previous file with comments | « chrome/browser/profile_resetter/automatic_profile_resetter_factory.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698