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

Side by Side Diff: chrome/browser/about_flags_unittest.cc

Issue 7837006: Completely disable about:flags (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: tests pass Created 9 years, 3 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/about_flags.cc ('k') | chrome/browser/autocomplete/builtin_provider_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/string_number_conversions.h" 5 #include "base/string_number_conversions.h"
6 #include "base/utf_string_conversions.h" 6 #include "base/utf_string_conversions.h"
7 #include "base/values.h" 7 #include "base/values.h"
8 #include "chrome/browser/about_flags.h" 8 #include "chrome/browser/about_flags.h"
9 #include "chrome/common/chrome_switches.h" 9 #include "chrome/common/chrome_switches.h"
10 #include "chrome/common/pref_names.h" 10 #include "chrome/common/pref_names.h"
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 176
177 CommandLine command_line(CommandLine::NO_PROGRAM); 177 CommandLine command_line(CommandLine::NO_PROGRAM);
178 command_line.AppendSwitch("foo"); 178 command_line.AppendSwitch("foo");
179 179
180 EXPECT_TRUE(command_line.HasSwitch("foo")); 180 EXPECT_TRUE(command_line.HasSwitch("foo"));
181 EXPECT_FALSE(command_line.HasSwitch(kSwitch1)); 181 EXPECT_FALSE(command_line.HasSwitch(kSwitch1));
182 182
183 ConvertFlagsToSwitches(&prefs_, &command_line); 183 ConvertFlagsToSwitches(&prefs_, &command_line);
184 184
185 EXPECT_TRUE(command_line.HasSwitch("foo")); 185 EXPECT_TRUE(command_line.HasSwitch("foo"));
186 EXPECT_TRUE(command_line.HasSwitch(kSwitch1)); 186 // TODO(thakis): Undo
187 EXPECT_FALSE(command_line.HasSwitch(kSwitch1));
187 } 188 }
188 189
189 TEST_F(AboutFlagsTest, RemoveFlagSwitches) { 190 TEST_F(AboutFlagsTest, RemoveFlagSwitches) {
190 std::map<std::string, CommandLine::StringType> switch_list; 191 std::map<std::string, CommandLine::StringType> switch_list;
191 switch_list[kSwitch1] = CommandLine::StringType(); 192 switch_list[kSwitch1] = CommandLine::StringType();
192 switch_list[switches::kFlagSwitchesBegin] = CommandLine::StringType(); 193 switch_list[switches::kFlagSwitchesBegin] = CommandLine::StringType();
193 switch_list[switches::kFlagSwitchesEnd] = CommandLine::StringType(); 194 switch_list[switches::kFlagSwitchesEnd] = CommandLine::StringType();
194 switch_list["foo"] = CommandLine::StringType(); 195 switch_list["foo"] = CommandLine::StringType();
195 196
196 SetExperimentEnabled(&prefs_, kFlags1, true); 197 SetExperimentEnabled(&prefs_, kFlags1, true);
(...skipping 24 matching lines...) Expand all
221 // Enable experiments 1 and 3. 222 // Enable experiments 1 and 3.
222 SetExperimentEnabled(&prefs_, kFlags1, true); 223 SetExperimentEnabled(&prefs_, kFlags1, true);
223 SetExperimentEnabled(&prefs_, kFlags3, true); 224 SetExperimentEnabled(&prefs_, kFlags3, true);
224 CommandLine command_line(CommandLine::NO_PROGRAM); 225 CommandLine command_line(CommandLine::NO_PROGRAM);
225 EXPECT_FALSE(command_line.HasSwitch(kSwitch1)); 226 EXPECT_FALSE(command_line.HasSwitch(kSwitch1));
226 EXPECT_FALSE(command_line.HasSwitch(kSwitch3)); 227 EXPECT_FALSE(command_line.HasSwitch(kSwitch3));
227 228
228 // Convert the flags to switches. Experiment 3 shouldn't be among the switches 229 // Convert the flags to switches. Experiment 3 shouldn't be among the switches
229 // as it is not applicable to the current platform. 230 // as it is not applicable to the current platform.
230 ConvertFlagsToSwitches(&prefs_, &command_line); 231 ConvertFlagsToSwitches(&prefs_, &command_line);
231 EXPECT_TRUE(command_line.HasSwitch(kSwitch1)); 232 // TODO(thakis): undo.
233 EXPECT_FALSE(command_line.HasSwitch(kSwitch1));
232 EXPECT_FALSE(command_line.HasSwitch(kSwitch3)); 234 EXPECT_FALSE(command_line.HasSwitch(kSwitch3));
233 235
234 // Experiment 3 should show still be persisted in preferences though. 236 // Experiment 3 should show still be persisted in preferences though.
235 scoped_ptr<ListValue> switch_prefs(GetFlagsExperimentsData(&prefs_)); 237 scoped_ptr<ListValue> switch_prefs(GetFlagsExperimentsData(&prefs_));
236 ASSERT_TRUE(switch_prefs.get()); 238 ASSERT_TRUE(switch_prefs.get());
237 EXPECT_EQ(arraysize(kExperiments) - 1, switch_prefs->GetSize()); 239 EXPECT_EQ(arraysize(kExperiments) - 1, switch_prefs->GetSize());
238 } 240 }
239 241
240 // Tests that switches which should have values get them in the command 242 // Tests that switches which should have values get them in the command
241 // line. 243 // line.
242 TEST_F(AboutFlagsTest, CheckValues) { 244 TEST_F(AboutFlagsTest, CheckValues) {
243 // Enable experiments 1 and 2. 245 // Enable experiments 1 and 2.
244 SetExperimentEnabled(&prefs_, kFlags1, true); 246 SetExperimentEnabled(&prefs_, kFlags1, true);
245 SetExperimentEnabled(&prefs_, kFlags2, true); 247 SetExperimentEnabled(&prefs_, kFlags2, true);
246 CommandLine command_line(CommandLine::NO_PROGRAM); 248 CommandLine command_line(CommandLine::NO_PROGRAM);
249 // TODO(thakis): undo.
247 EXPECT_FALSE(command_line.HasSwitch(kSwitch1)); 250 EXPECT_FALSE(command_line.HasSwitch(kSwitch1));
248 EXPECT_FALSE(command_line.HasSwitch(kSwitch2)); 251 EXPECT_FALSE(command_line.HasSwitch(kSwitch2));
249 252
250 // Convert the flags to switches. 253 // Convert the flags to switches.
251 ConvertFlagsToSwitches(&prefs_, &command_line); 254 ConvertFlagsToSwitches(&prefs_, &command_line);
252 EXPECT_TRUE(command_line.HasSwitch(kSwitch1)); 255 EXPECT_FALSE(command_line.HasSwitch(kSwitch1));
253 EXPECT_EQ(std::string(""), command_line.GetSwitchValueASCII(kSwitch1)); 256 EXPECT_EQ(std::string(""), command_line.GetSwitchValueASCII(kSwitch1));
254 EXPECT_TRUE(command_line.HasSwitch(kSwitch2)); 257 // TODO(thakis): undo.
255 EXPECT_EQ(std::string(kValueForSwitch2), 258 EXPECT_FALSE(command_line.HasSwitch(kSwitch2));
259 // TODO(thakis): undo.
260 EXPECT_EQ("",
256 command_line.GetSwitchValueASCII(kSwitch2)); 261 command_line.GetSwitchValueASCII(kSwitch2));
257 262
258 // Confirm that there is no '=' in the command line for simple switches. 263 // Confirm that there is no '=' in the command line for simple switches.
259 std::string switch1_with_equals = std::string("--") + 264 std::string switch1_with_equals = std::string("--") +
260 std::string(kSwitch1) + 265 std::string(kSwitch1) +
261 std::string("="); 266 std::string("=");
262 #if defined(OS_WIN) 267 #if defined(OS_WIN)
263 EXPECT_EQ(std::wstring::npos, 268 EXPECT_EQ(std::wstring::npos,
264 command_line.GetCommandLineString().find( 269 command_line.GetCommandLineString().find(
265 ASCIIToWide(switch1_with_equals))); 270 ASCIIToWide(switch1_with_equals)));
266 #else 271 #else
267 EXPECT_EQ(std::string::npos, 272 EXPECT_EQ(std::string::npos,
268 command_line.GetCommandLineString().find(switch1_with_equals)); 273 command_line.GetCommandLineString().find(switch1_with_equals));
269 #endif 274 #endif
270 275
271 // And confirm there is a '=' for switches with values. 276 // And confirm there is a '=' for switches with values.
272 std::string switch2_with_equals = std::string("--") + 277 std::string switch2_with_equals = std::string("--") +
273 std::string(kSwitch2) + 278 std::string(kSwitch2) +
274 std::string("="); 279 std::string("=");
275 #if defined(OS_WIN) 280 #if defined(OS_WIN)
276 EXPECT_NE(std::wstring::npos, 281 // TODO(thakis): undo.
282 EXPECT_EQ(std::wstring::npos,
277 command_line.GetCommandLineString().find( 283 command_line.GetCommandLineString().find(
278 ASCIIToWide(switch2_with_equals))); 284 ASCIIToWide(switch2_with_equals)));
279 #else 285 #else
280 EXPECT_NE(std::string::npos, 286 // TODO(thakis): undo.
287 EXPECT_EQ(std::string::npos,
281 command_line.GetCommandLineString().find(switch2_with_equals)); 288 command_line.GetCommandLineString().find(switch2_with_equals));
282 #endif 289 #endif
283 290
284 // And it should persist 291 // And it should persist
285 scoped_ptr<ListValue> switch_prefs(GetFlagsExperimentsData(&prefs_)); 292 scoped_ptr<ListValue> switch_prefs(GetFlagsExperimentsData(&prefs_));
286 ASSERT_TRUE(switch_prefs.get()); 293 ASSERT_TRUE(switch_prefs.get());
287 EXPECT_EQ(arraysize(kExperiments) - 1, switch_prefs->GetSize()); 294 EXPECT_EQ(arraysize(kExperiments) - 1, switch_prefs->GetSize());
288 } 295 }
289 296
290 // Tests multi-value type experiments. 297 // Tests multi-value type experiments.
291 TEST_F(AboutFlagsTest, MultiValues) { 298 TEST_F(AboutFlagsTest, MultiValues) {
292 // Initially, the first "deactivated" option of the multi experiment should 299 // Initially, the first "deactivated" option of the multi experiment should
293 // be set. 300 // be set.
294 { 301 {
295 CommandLine command_line(CommandLine::NO_PROGRAM); 302 CommandLine command_line(CommandLine::NO_PROGRAM);
296 ConvertFlagsToSwitches(&prefs_, &command_line); 303 ConvertFlagsToSwitches(&prefs_, &command_line);
297 EXPECT_FALSE(command_line.HasSwitch(kMultiSwitch1)); 304 EXPECT_FALSE(command_line.HasSwitch(kMultiSwitch1));
298 EXPECT_FALSE(command_line.HasSwitch(kMultiSwitch2)); 305 EXPECT_FALSE(command_line.HasSwitch(kMultiSwitch2));
299 } 306 }
300 307
301 // Enable the 2nd choice of the multi-value. 308 // Enable the 2nd choice of the multi-value.
302 SetExperimentEnabled(&prefs_, std::string(kFlags4) + 309 SetExperimentEnabled(&prefs_, std::string(kFlags4) +
303 std::string(testing::kMultiSeparator) + 310 std::string(testing::kMultiSeparator) +
304 base::IntToString(2), true); 311 base::IntToString(2), true);
305 { 312 {
306 CommandLine command_line(CommandLine::NO_PROGRAM); 313 CommandLine command_line(CommandLine::NO_PROGRAM);
307 ConvertFlagsToSwitches(&prefs_, &command_line); 314 ConvertFlagsToSwitches(&prefs_, &command_line);
308 EXPECT_FALSE(command_line.HasSwitch(kMultiSwitch1)); 315 EXPECT_FALSE(command_line.HasSwitch(kMultiSwitch1));
309 EXPECT_TRUE(command_line.HasSwitch(kMultiSwitch2)); 316 // TODO(thakis): undo.
310 EXPECT_EQ(std::string(kValueForMultiSwitch2), 317 EXPECT_FALSE(command_line.HasSwitch(kMultiSwitch2));
318 // TODO(thakis): undo.
319 EXPECT_EQ("",
311 command_line.GetSwitchValueASCII(kMultiSwitch2)); 320 command_line.GetSwitchValueASCII(kMultiSwitch2));
312 } 321 }
313 322
314 // Disable the multi-value experiment. 323 // Disable the multi-value experiment.
315 SetExperimentEnabled(&prefs_, std::string(kFlags4) + 324 SetExperimentEnabled(&prefs_, std::string(kFlags4) +
316 std::string(testing::kMultiSeparator) + 325 std::string(testing::kMultiSeparator) +
317 base::IntToString(0), true); 326 base::IntToString(0), true);
318 { 327 {
319 CommandLine command_line(CommandLine::NO_PROGRAM); 328 CommandLine command_line(CommandLine::NO_PROGRAM);
320 ConvertFlagsToSwitches(&prefs_, &command_line); 329 ConvertFlagsToSwitches(&prefs_, &command_line);
321 EXPECT_FALSE(command_line.HasSwitch(kMultiSwitch1)); 330 EXPECT_FALSE(command_line.HasSwitch(kMultiSwitch1));
322 EXPECT_FALSE(command_line.HasSwitch(kMultiSwitch2)); 331 EXPECT_FALSE(command_line.HasSwitch(kMultiSwitch2));
323 } 332 }
324 } 333 }
325 334
326 // Makes sure there are no separators in any of the experiment names. 335 // Makes sure there are no separators in any of the experiment names.
327 TEST_F(AboutFlagsTest, NoSeparators) { 336 TEST_F(AboutFlagsTest, NoSeparators) {
328 testing::SetExperiments(NULL, 0); 337 testing::SetExperiments(NULL, 0);
329 size_t count; 338 size_t count;
330 const Experiment* experiments = testing::GetExperiments(&count); 339 const Experiment* experiments = testing::GetExperiments(&count);
331 for (size_t i = 0; i < count; ++i) { 340 for (size_t i = 0; i < count; ++i) {
332 std::string name = experiments->internal_name; 341 std::string name = experiments->internal_name;
333 EXPECT_EQ(std::string::npos, name.find(testing::kMultiSeparator)) << i; 342 EXPECT_EQ(std::string::npos, name.find(testing::kMultiSeparator)) << i;
334 } 343 }
335 } 344 }
336 345
337 } // namespace about_flags 346 } // namespace about_flags
OLDNEW
« no previous file with comments | « chrome/browser/about_flags.cc ('k') | chrome/browser/autocomplete/builtin_provider_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698