summaryrefslogtreecommitdiffstats
path: root/chrome/common/switch_utils_unittest.cc
diff options
context:
space:
mode:
authormsw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-14 01:10:24 +0000
committermsw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-14 01:10:24 +0000
commita40ca43033ac86cc3224d843c233a71e94e72dbf (patch)
tree3172d0bd0d9430a8f155df047c6b14d188557abc /chrome/common/switch_utils_unittest.cc
parentdc09efb7dd87597a7e4b5fe790d0ce3a2511380e (diff)
downloadchromium_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.cc37
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