summaryrefslogtreecommitdiffstats
path: root/chrome/installer/util/product_state_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/installer/util/product_state_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/installer/util/product_state_unittest.cc')
-rw-r--r--chrome/installer/util/product_state_unittest.cc19
1 files changed, 14 insertions, 5 deletions
diff --git a/chrome/installer/util/product_state_unittest.cc b/chrome/installer/util/product_state_unittest.cc
index c6031359..b6c228f 100644
--- a/chrome/installer/util/product_state_unittest.cc
+++ b/chrome/installer/util/product_state_unittest.cc
@@ -303,8 +303,7 @@ TEST_F(ProductStateTest, InitializeUninstallCommand) {
ApplyUninstallCommand(NULL, L"--uninstall");
EXPECT_TRUE(state.Initialize(system_install_, dist_));
EXPECT_TRUE(state.GetSetupPath().empty());
- EXPECT_EQ(L"\"\" --uninstall",
- state.uninstall_command().command_line_string());
+ EXPECT_EQ(L" --uninstall", state.uninstall_command().command_line_string());
EXPECT_EQ(1U, state.uninstall_command().GetSwitchCount());
}
@@ -314,8 +313,18 @@ TEST_F(ProductStateTest, InitializeUninstallCommand) {
ApplyUninstallCommand(L"setup.exe", NULL);
EXPECT_TRUE(state.Initialize(system_install_, dist_));
EXPECT_EQ(L"setup.exe", state.GetSetupPath().value());
- EXPECT_EQ(L"\"setup.exe\"",
- state.uninstall_command().command_line_string());
+ EXPECT_EQ(L"setup.exe", state.uninstall_command().command_line_string());
+ EXPECT_EQ(0U, state.uninstall_command().GetSwitchCount());
+ }
+
+ // Uninstall command with exe that requires quoting.
+ {
+ ProductState state;
+ ApplyUninstallCommand(L"set up.exe", NULL);
+ EXPECT_TRUE(state.Initialize(system_install_, dist_));
+ EXPECT_EQ(L"set up.exe", state.GetSetupPath().value());
+ EXPECT_EQ(L"\"set up.exe\"",
+ state.uninstall_command().command_line_string());
EXPECT_EQ(0U, state.uninstall_command().GetSwitchCount());
}
@@ -325,7 +334,7 @@ TEST_F(ProductStateTest, InitializeUninstallCommand) {
ApplyUninstallCommand(L"setup.exe", L"--uninstall");
EXPECT_TRUE(state.Initialize(system_install_, dist_));
EXPECT_EQ(L"setup.exe", state.GetSetupPath().value());
- EXPECT_EQ(L"\"setup.exe\" --uninstall",
+ EXPECT_EQ(L"setup.exe --uninstall",
state.uninstall_command().command_line_string());
EXPECT_EQ(1U, state.uninstall_command().GetSwitchCount());
}