diff options
author | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-14 01:10:24 +0000 |
---|---|---|
committer | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-14 01:10:24 +0000 |
commit | a40ca43033ac86cc3224d843c233a71e94e72dbf (patch) | |
tree | 3172d0bd0d9430a8f155df047c6b14d188557abc /chrome/common/switch_utils_unittest.cc | |
parent | dc09efb7dd87597a7e4b5fe790d0ce3a2511380e (diff) | |
download | chromium_src-a40ca43033ac86cc3224d843c233a71e94e72dbf.zip chromium_src-a40ca43033ac86cc3224d843c233a71e94e72dbf.tar.gz chromium_src-a40ca43033ac86cc3224d843c233a71e94e72dbf.tar.bz2 |
Consolidate most CommandLine code across platforms.
Significant refactoring with some notable behavior changes:
1. Switches are appended preceding existing arguments (after other swtiches).
2. (Windows) command_line_string() is generated and properly quoted/escaped.
3. Appended switches will retain their (optional) included prefixes (--,-,/).
Notable internal changes (shouldn't affect behavior):
1. (Windows) Generate the cl string, instead of storing&updating the original.
2. Explicitly retain switch prefixes (--,-,/) (was automatic in init*/ctor).
Update (obvious) code expecting switches to be appended antecedent to args.
Add Nico's test from: codereview.chromium.org/6728016/.
An intermediary CL landed between patch set 3 and 4, see:
http://codereview.chromium.org/6596020
BUG=73195,67764
TEST=Commandline usage.
Review URL: http://codereview.chromium.org/6526040
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85360 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/switch_utils_unittest.cc')
-rw-r--r-- | chrome/common/switch_utils_unittest.cc | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/chrome/common/switch_utils_unittest.cc b/chrome/common/switch_utils_unittest.cc index 528030e..49f2c38 100644 --- a/chrome/common/switch_utils_unittest.cc +++ b/chrome/common/switch_utils_unittest.cc @@ -6,10 +6,34 @@ #include "base/basictypes.h" #include "base/command_line.h" +#include "base/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("--first-run"), + FILE_PATH_LITERAL("--import"), + FILE_PATH_LITERAL("--import-from-file=c:\\test.html"), + FILE_PATH_LITERAL("--make-default-browser"), + FILE_PATH_LITERAL("--foo"), + FILE_PATH_LITERAL("--bar")}; + CommandLine cmd_line(arraysize(argv), argv); + EXPECT_FALSE(cmd_line.command_line_string().empty()); + + std::map<std::string, CommandLine::StringType> switches = + cmd_line.GetSwitches(); + EXPECT_EQ(7U, 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( @@ -22,18 +46,6 @@ TEST(SwitchUtilsTest, RemoveSwitches) { L" --foo" L" --bar"); EXPECT_FALSE(cmd_line.command_line_string().empty()); -#elif defined(OS_POSIX) - const char* argv[] = { - "program", - "--app=http://www.google.com/", - "--first-run", - "--import", - "--import-from-file=c:\\test.html", - "--make-default-browser", - "--foo", - "--bar"}; - CommandLine cmd_line(arraysize(argv), argv); -#endif std::map<std::string, CommandLine::StringType> switches = cmd_line.GetSwitches(); @@ -44,3 +56,4 @@ TEST(SwitchUtilsTest, RemoveSwitches) { EXPECT_TRUE(cmd_line.HasSwitch("foo")); EXPECT_TRUE(cmd_line.HasSwitch("bar")); } +#endif |