OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/install_static/install_util.h" | 5 #include "chrome/install_static/install_util.h" |
6 | 6 |
7 #include <tuple> | 7 #include <tuple> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
83 | 83 |
84 // Whitespace after a switch. | 84 // Whitespace after a switch. |
85 value = | 85 value = |
86 GetSwitchValueFromCommandLine(L"c:\\temp\\bleh.exe --type= ", L"type"); | 86 GetSwitchValueFromCommandLine(L"c:\\temp\\bleh.exe --type= ", L"type"); |
87 EXPECT_TRUE(value.empty()); | 87 EXPECT_TRUE(value.empty()); |
88 | 88 |
89 // Just tabs after a switch. | 89 // Just tabs after a switch. |
90 value = GetSwitchValueFromCommandLine(L"c:\\temp\\bleh.exe --type=\t\t\t", | 90 value = GetSwitchValueFromCommandLine(L"c:\\temp\\bleh.exe --type=\t\t\t", |
91 L"type"); | 91 L"type"); |
92 EXPECT_TRUE(value.empty()); | 92 EXPECT_TRUE(value.empty()); |
93 } | |
93 | 94 |
94 // Whitespace after the "=" before the value. | 95 TEST(InstallStaticTest, SpacesAndQuotesInCommandLineArguments) { |
grt (UTC plus 2)
2016/12/01 09:07:13
would you be so kind as to add an expectation for
scottmg
2016/12/01 19:04:22
Done. The windowsinspired.com ones were primarily
| |
95 value = | 96 std::vector<std::wstring> tokenized; |
96 GetSwitchValueFromCommandLine(L"c:\\temp\\bleh.exe --type= bar", L"type"); | |
97 EXPECT_EQ(L"bar", value); | |
98 | 97 |
99 // Tabs after the "=" before the value. | 98 tokenized = TokenizeCommandLineToArray(L"\"C:\\a\\b.exe\""); |
100 value = GetSwitchValueFromCommandLine(L"c:\\temp\\bleh.exe --type=\t\t\tbar", | 99 ASSERT_EQ(1u, tokenized.size()); |
101 L"type"); | 100 EXPECT_EQ(L"C:\\a\\b.exe", tokenized[0]); |
102 EXPECT_EQ(value, L"bar"); | 101 |
102 tokenized = TokenizeCommandLineToArray(L"x.exe"); | |
103 ASSERT_EQ(1u, tokenized.size()); | |
104 EXPECT_EQ(L"x.exe", tokenized[0]); | |
105 | |
106 tokenized = TokenizeCommandLineToArray(L"\"c:\\with space\\something.exe\""); | |
107 ASSERT_EQ(1u, tokenized.size()); | |
108 EXPECT_EQ(L"c:\\with space\\something.exe", tokenized[0]); | |
109 | |
110 tokenized = TokenizeCommandLineToArray(L"\"C:\\a\\b.exe\" arg"); | |
111 ASSERT_EQ(2u, tokenized.size()); | |
112 EXPECT_EQ(L"C:\\a\\b.exe", tokenized[0]); | |
113 EXPECT_EQ(L"arg", tokenized[1]); | |
114 | |
115 tokenized = TokenizeCommandLineToArray(L"\"C:\\with space\\b.exe\" \"arg\""); | |
116 ASSERT_EQ(2u, tokenized.size()); | |
117 EXPECT_EQ(L"C:\\with space\\b.exe", tokenized[0]); | |
118 EXPECT_EQ(L"arg", tokenized[1]); | |
119 | |
120 tokenized = TokenizeCommandLineToArray(L"\"C:\\a\\b.exe\" c:\\tmp\\"); | |
121 ASSERT_EQ(2u, tokenized.size()); | |
122 EXPECT_EQ(L"C:\\a\\b.exe", tokenized[0]); | |
123 EXPECT_EQ(L"c:\\tmp\\", tokenized[1]); | |
124 | |
125 tokenized = | |
126 TokenizeCommandLineToArray(L"\"C:\\a\\b.exe\" \"c:\\some file path\\\""); | |
127 ASSERT_EQ(2, tokenized.size()); | |
128 EXPECT_EQ(L"C:\\a\\b.exe", tokenized[0]); | |
129 EXPECT_EQ(L"c:\\some file path\"", tokenized[1]); | |
130 | |
131 tokenized = TokenizeCommandLineToArray( | |
132 L"\"C:\\with space\\b.exe\" \\\\x\\\\ \\\\y\\\\"); | |
133 ASSERT_EQ(3u, tokenized.size()); | |
134 EXPECT_EQ(L"C:\\with space\\b.exe", tokenized[0]); | |
135 EXPECT_EQ(L"\\\\x\\\\", tokenized[1]); | |
136 EXPECT_EQ(L"\\\\y\\\\", tokenized[2]); | |
137 | |
138 tokenized = TokenizeCommandLineToArray( | |
139 L"\"C:\\with space\\b.exe\" \"\\\\space quoted\\\\\""); | |
140 ASSERT_EQ(2u, tokenized.size()); | |
141 EXPECT_EQ(L"C:\\with space\\b.exe", tokenized[0]); | |
142 EXPECT_EQ(L"\\\\space quoted\\", tokenized[1]); | |
143 | |
144 tokenized = TokenizeCommandLineToArray( | |
145 L"\"C:\\with space\\b.exe\" --stuff -x -Y \"c:\\some thing\\\" " | |
146 L"weewaa "); | |
147 EXPECT_EQ(5u, tokenized.size()); | |
148 EXPECT_EQ(L"C:\\with space\\b.exe", tokenized[0]); | |
149 EXPECT_EQ(L"--stuff", tokenized[1]); | |
150 EXPECT_EQ(L"-x", tokenized[2]); | |
151 EXPECT_EQ(L"-Y", tokenized[3]); | |
152 EXPECT_EQ(L"c:\\some thing\" weewaa ", tokenized[4]); | |
153 | |
154 tokenized = TokenizeCommandLineToArray( | |
155 L"\"C:\\with space\\b.exe\" --stuff=\"d:\\stuff and things\""); | |
156 EXPECT_EQ(2u, tokenized.size()); | |
157 EXPECT_EQ(L"C:\\with space\\b.exe", tokenized[0]); | |
158 EXPECT_EQ(L"--stuff=d:\\stuff and things", tokenized[1]); | |
103 } | 159 } |
104 | 160 |
105 TEST(InstallStaticTest, BrowserProcessTest) { | 161 TEST(InstallStaticTest, BrowserProcessTest) { |
106 EXPECT_EQ(ProcessType::UNINITIALIZED, g_process_type); | 162 EXPECT_EQ(ProcessType::UNINITIALIZED, g_process_type); |
107 InitializeProcessType(); | 163 InitializeProcessType(); |
108 EXPECT_FALSE(IsNonBrowserProcess()); | 164 EXPECT_FALSE(IsNonBrowserProcess()); |
109 } | 165 } |
110 | 166 |
111 class InstallStaticUtilTest | 167 class InstallStaticUtilTest |
112 : public ::testing::TestWithParam< | 168 : public ::testing::TestWithParam< |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
293 #else // GOOGLE_CHROME_BUILD | 349 #else // GOOGLE_CHROME_BUILD |
294 // Chromium supports multi-install at user and system levels. | 350 // Chromium supports multi-install at user and system levels. |
295 INSTANTIATE_TEST_CASE_P(Chromium, | 351 INSTANTIATE_TEST_CASE_P(Chromium, |
296 InstallStaticUtilTest, | 352 InstallStaticUtilTest, |
297 testing::Combine(testing::Values(CHROMIUM_INDEX), | 353 testing::Combine(testing::Values(CHROMIUM_INDEX), |
298 testing::Values("user", "system"), | 354 testing::Values("user", "system"), |
299 testing::Values("single", "multi"))); | 355 testing::Values("single", "multi"))); |
300 #endif // !GOOGLE_CHROME_BUILD | 356 #endif // !GOOGLE_CHROME_BUILD |
301 | 357 |
302 } // namespace install_static | 358 } // namespace install_static |
OLD | NEW |