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/installer/util/product_state_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/installer/util/product_state_unittest.cc')
-rw-r--r-- | chrome/installer/util/product_state_unittest.cc | 19 |
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()); } |