| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/prefs/pref_registry_simple.h" | 5 #include "base/prefs/pref_registry_simple.h" |
| 6 #include "base/prefs/testing_pref_service.h" | 6 #include "base/prefs/testing_pref_service.h" |
| 7 #include "base/strings/string_number_conversions.h" | 7 #include "base/strings/string_number_conversions.h" |
| 8 #include "base/utf_string_conversions.h" | 8 #include "base/utf_string_conversions.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 #include "chrome/browser/about_flags.h" | 10 #include "chrome/browser/about_flags.h" |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 | 111 |
| 112 class AboutFlagsTest : public ::testing::Test { | 112 class AboutFlagsTest : public ::testing::Test { |
| 113 protected: | 113 protected: |
| 114 AboutFlagsTest() { | 114 AboutFlagsTest() { |
| 115 prefs_.registry()->RegisterListPref(prefs::kEnabledLabsExperiments); | 115 prefs_.registry()->RegisterListPref(prefs::kEnabledLabsExperiments); |
| 116 testing::ClearState(); | 116 testing::ClearState(); |
| 117 } | 117 } |
| 118 | 118 |
| 119 virtual void SetUp() OVERRIDE { | 119 virtual void SetUp() OVERRIDE { |
| 120 for (size_t i = 0; i < arraysize(kExperiments); ++i) | 120 for (size_t i = 0; i < arraysize(kExperiments); ++i) |
| 121 kExperiments[i].supported_platforms = GetCurrentPlatform(); | 121 kExperiments[i].supported_platforms = GetCurrentPlatform(true); |
| 122 | 122 |
| 123 int os_other_than_current = 1; | 123 int os_other_than_current = 1; |
| 124 while (os_other_than_current == GetCurrentPlatform()) | 124 while (os_other_than_current == GetCurrentPlatform(true)) |
| 125 os_other_than_current <<= 1; | 125 os_other_than_current <<= 1; |
| 126 kExperiments[2].supported_platforms = os_other_than_current; | 126 kExperiments[2].supported_platforms = os_other_than_current; |
| 127 | 127 |
| 128 testing::SetExperiments(kExperiments, arraysize(kExperiments)); | 128 testing::SetExperiments(kExperiments, arraysize(kExperiments)); |
| 129 } | 129 } |
| 130 | 130 |
| 131 virtual void TearDown() OVERRIDE { | 131 virtual void TearDown() OVERRIDE { |
| 132 testing::SetExperiments(NULL, 0); | 132 testing::SetExperiments(NULL, 0); |
| 133 } | 133 } |
| 134 | 134 |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 260 EXPECT_FALSE(command_line.HasSwitch(kSwitch1)); | 260 EXPECT_FALSE(command_line.HasSwitch(kSwitch1)); |
| 261 EXPECT_FALSE(command_line.HasSwitch(kSwitch3)); | 261 EXPECT_FALSE(command_line.HasSwitch(kSwitch3)); |
| 262 | 262 |
| 263 // Convert the flags to switches. Experiment 3 shouldn't be among the switches | 263 // Convert the flags to switches. Experiment 3 shouldn't be among the switches |
| 264 // as it is not applicable to the current platform. | 264 // as it is not applicable to the current platform. |
| 265 ConvertFlagsToSwitches(&prefs_, &command_line); | 265 ConvertFlagsToSwitches(&prefs_, &command_line); |
| 266 EXPECT_TRUE(command_line.HasSwitch(kSwitch1)); | 266 EXPECT_TRUE(command_line.HasSwitch(kSwitch1)); |
| 267 EXPECT_FALSE(command_line.HasSwitch(kSwitch3)); | 267 EXPECT_FALSE(command_line.HasSwitch(kSwitch3)); |
| 268 | 268 |
| 269 // Experiment 3 should show still be persisted in preferences though. | 269 // Experiment 3 should show still be persisted in preferences though. |
| 270 scoped_ptr<ListValue> switch_prefs(GetFlagsExperimentsData(&prefs_)); | 270 scoped_ptr<ListValue> switch_prefs(GetFlagsExperimentsData(&prefs_, true)); |
| 271 ASSERT_TRUE(switch_prefs.get()); | 271 ASSERT_TRUE(switch_prefs.get()); |
| 272 EXPECT_EQ(arraysize(kExperiments), switch_prefs->GetSize()); | 272 EXPECT_EQ(arraysize(kExperiments), switch_prefs->GetSize()); |
| 273 } | 273 } |
| 274 | 274 |
| 275 // Tests that switches which should have values get them in the command | 275 // Tests that switches which should have values get them in the command |
| 276 // line. | 276 // line. |
| 277 TEST_F(AboutFlagsTest, CheckValues) { | 277 TEST_F(AboutFlagsTest, CheckValues) { |
| 278 // Enable experiments 1 and 2. | 278 // Enable experiments 1 and 2. |
| 279 SetExperimentEnabled(&prefs_, kFlags1, true); | 279 SetExperimentEnabled(&prefs_, kFlags1, true); |
| 280 SetExperimentEnabled(&prefs_, kFlags2, true); | 280 SetExperimentEnabled(&prefs_, kFlags2, true); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 310 #if defined(OS_WIN) | 310 #if defined(OS_WIN) |
| 311 EXPECT_NE(std::wstring::npos, | 311 EXPECT_NE(std::wstring::npos, |
| 312 command_line.GetCommandLineString().find( | 312 command_line.GetCommandLineString().find( |
| 313 ASCIIToWide(switch2_with_equals))); | 313 ASCIIToWide(switch2_with_equals))); |
| 314 #else | 314 #else |
| 315 EXPECT_NE(std::string::npos, | 315 EXPECT_NE(std::string::npos, |
| 316 command_line.GetCommandLineString().find(switch2_with_equals)); | 316 command_line.GetCommandLineString().find(switch2_with_equals)); |
| 317 #endif | 317 #endif |
| 318 | 318 |
| 319 // And it should persist | 319 // And it should persist |
| 320 scoped_ptr<ListValue> switch_prefs(GetFlagsExperimentsData(&prefs_)); | 320 scoped_ptr<ListValue> switch_prefs(GetFlagsExperimentsData(&prefs_, true)); |
| 321 ASSERT_TRUE(switch_prefs.get()); | 321 ASSERT_TRUE(switch_prefs.get()); |
| 322 EXPECT_EQ(arraysize(kExperiments), switch_prefs->GetSize()); | 322 EXPECT_EQ(arraysize(kExperiments), switch_prefs->GetSize()); |
| 323 } | 323 } |
| 324 | 324 |
| 325 // Tests multi-value type experiments. | 325 // Tests multi-value type experiments. |
| 326 TEST_F(AboutFlagsTest, MultiValues) { | 326 TEST_F(AboutFlagsTest, MultiValues) { |
| 327 const Experiment& experiment = kExperiments[3]; | 327 const Experiment& experiment = kExperiments[3]; |
| 328 ASSERT_EQ(kFlags4, experiment.internal_name); | 328 ASSERT_EQ(kFlags4, experiment.internal_name); |
| 329 | 329 |
| 330 // Initially, the first "deactivated" option of the multi experiment should | 330 // Initially, the first "deactivated" option of the multi experiment should |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 404 testing::SetExperiments(NULL, 0); | 404 testing::SetExperiments(NULL, 0); |
| 405 size_t count; | 405 size_t count; |
| 406 const Experiment* experiments = testing::GetExperiments(&count); | 406 const Experiment* experiments = testing::GetExperiments(&count); |
| 407 for (size_t i = 0; i < count; ++i) { | 407 for (size_t i = 0; i < count; ++i) { |
| 408 std::string name = experiments->internal_name; | 408 std::string name = experiments->internal_name; |
| 409 EXPECT_EQ(std::string::npos, name.find(testing::kMultiSeparator)) << i; | 409 EXPECT_EQ(std::string::npos, name.find(testing::kMultiSeparator)) << i; |
| 410 } | 410 } |
| 411 } | 411 } |
| 412 | 412 |
| 413 } // namespace about_flags | 413 } // namespace about_flags |
| OLD | NEW |