// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/common/switch_utils.h" #include "base/basictypes.h" #include "base/command_line.h" #include "base/files/file_path.h" #include "testing/gtest/include/gtest/gtest.h" TEST(SwitchUtilsTest, RemoveSwitches) { const CommandLine::CharType* argv[] = { FILE_PATH_LITERAL("program"), FILE_PATH_LITERAL("--app=http://www.google.com/"), FILE_PATH_LITERAL("--force-first-run"), FILE_PATH_LITERAL("--make-default-browser"), FILE_PATH_LITERAL("--foo"), FILE_PATH_LITERAL("--bar")}; CommandLine cmd_line(arraysize(argv), argv); EXPECT_FALSE(cmd_line.GetCommandLineString().empty()); std::map<std::string, CommandLine::StringType> switches = cmd_line.GetSwitches(); EXPECT_EQ(5U, switches.size()); switches::RemoveSwitchesForAutostart(&switches); EXPECT_EQ(2U, switches.size()); EXPECT_TRUE(cmd_line.HasSwitch("foo")); EXPECT_TRUE(cmd_line.HasSwitch("bar")); } #if defined(OS_WIN) TEST(SwitchUtilsTest, RemoveSwitchesFromString) { // All these command line args (except foo and bar) will // be removed after RemoveSwitchesForAutostart: CommandLine cmd_line = CommandLine::FromString( L"program" L" --app=http://www.google.com/" L" --force-first-run" L" --make-default-browser" L" --foo" L" --bar"); EXPECT_FALSE(cmd_line.GetCommandLineString().empty()); std::map<std::string, CommandLine::StringType> switches = cmd_line.GetSwitches(); EXPECT_EQ(5U, switches.size()); switches::RemoveSwitchesForAutostart(&switches); EXPECT_EQ(2U, switches.size()); EXPECT_TRUE(cmd_line.HasSwitch("foo")); EXPECT_TRUE(cmd_line.HasSwitch("bar")); } #endif