OLD | NEW |
| (Empty) |
1 // Copyright 2008-2009 Google Inc. | |
2 // | |
3 // Licensed under the Apache License, Version 2.0 (the "License"); | |
4 // you may not use this file except in compliance with the License. | |
5 // You may obtain a copy of the License at | |
6 // | |
7 // http://www.apache.org/licenses/LICENSE-2.0 | |
8 // | |
9 // Unless required by applicable law or agreed to in writing, software | |
10 // distributed under the License is distributed on an "AS IS" BASIS, | |
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
12 // See the License for the specific language governing permissions and | |
13 // limitations under the License. | |
14 // ======================================================================== | |
15 | |
16 #include "omaha/common/command_line_builder.h" | |
17 #include "omaha/testing/unit_test.h" | |
18 | |
19 namespace omaha { | |
20 | |
21 TEST(CommandLineBuilder, BuildUnknown) { | |
22 CommandLineBuilder builder(COMMANDLINE_MODE_UNKNOWN); | |
23 ExpectAsserts expect_asserts; | |
24 CString cmd_line = builder.GetCommandLineArgs(); | |
25 EXPECT_STREQ(_T(""), cmd_line); | |
26 } | |
27 | |
28 TEST(CommandLineBuilder, BuildNoArgs) { | |
29 CommandLineBuilder builder(COMMANDLINE_MODE_NOARGS); | |
30 CString cmd_line = builder.GetCommandLineArgs(); | |
31 EXPECT_STREQ(_T(""), cmd_line); | |
32 } | |
33 | |
34 TEST(CommandLineBuilder, BuildCore) { | |
35 CommandLineBuilder builder(COMMANDLINE_MODE_CORE); | |
36 CString cmd_line = builder.GetCommandLineArgs(); | |
37 EXPECT_STREQ(_T("/c"), cmd_line); | |
38 } | |
39 | |
40 TEST(CommandLineBuilder, BuildService) { | |
41 CommandLineBuilder builder(COMMANDLINE_MODE_SERVICE); | |
42 CString cmd_line = builder.GetCommandLineArgs(); | |
43 EXPECT_STREQ(_T("/svc"), cmd_line); | |
44 } | |
45 | |
46 TEST(CommandLineBuilder, BuildMediumService) { | |
47 CommandLineBuilder builder(COMMANDLINE_MODE_MEDIUM_SERVICE); | |
48 CString cmd_line = builder.GetCommandLineArgs(); | |
49 EXPECT_STREQ(_T("/medsvc"), cmd_line); | |
50 } | |
51 | |
52 TEST(CommandLineBuilder, BuildRegServer) { | |
53 CommandLineBuilder builder(COMMANDLINE_MODE_REGSERVER); | |
54 CString cmd_line = builder.GetCommandLineArgs(); | |
55 EXPECT_STREQ(_T("/regserver"), cmd_line); | |
56 } | |
57 | |
58 TEST(CommandLineBuilder, BuildUnregServer) { | |
59 CommandLineBuilder builder(COMMANDLINE_MODE_UNREGSERVER); | |
60 CString cmd_line = builder.GetCommandLineArgs(); | |
61 EXPECT_STREQ(_T("/unregserver"), cmd_line); | |
62 } | |
63 | |
64 TEST(CommandLineBuilder, BuildNetDiags) { | |
65 CommandLineBuilder builder(COMMANDLINE_MODE_NETDIAGS); | |
66 CString cmd_line = builder.GetCommandLineArgs(); | |
67 EXPECT_STREQ(_T("/netdiags"), cmd_line); | |
68 } | |
69 | |
70 TEST(CommandLineBuilder, BuildCrashNoFilename) { | |
71 CommandLineBuilder builder(COMMANDLINE_MODE_CRASH); | |
72 CString cmd_line = builder.GetCommandLineArgs(); | |
73 EXPECT_STREQ(_T("/crash"), cmd_line); | |
74 } | |
75 | |
76 TEST(CommandLineBuilder, BuildReportCrash) { | |
77 CommandLineBuilder builder(COMMANDLINE_MODE_REPORTCRASH); | |
78 ExpectAsserts expect_asserts; // Missing filename. | |
79 CString cmd_line = builder.GetCommandLineArgs(); | |
80 EXPECT_STREQ(_T(""), cmd_line); | |
81 } | |
82 | |
83 TEST(CommandLineBuilder, BuildReportCrashWithFilename) { | |
84 CommandLineBuilder builder(COMMANDLINE_MODE_REPORTCRASH); | |
85 builder.set_crash_filename(_T("foo.dmp")); | |
86 CString cmd_line = builder.GetCommandLineArgs(); | |
87 EXPECT_STREQ(_T("/report \"foo.dmp\""), cmd_line); | |
88 } | |
89 | |
90 TEST(CommandLineBuilder, BuildReportCrashWithFilenameMachine) { | |
91 CommandLineBuilder builder(COMMANDLINE_MODE_REPORTCRASH); | |
92 builder.set_crash_filename(_T("foo.dmp")); | |
93 builder.set_is_machine_set(true); | |
94 CString cmd_line = builder.GetCommandLineArgs(); | |
95 EXPECT_STREQ(_T("/report \"foo.dmp\" /machine"), cmd_line); | |
96 } | |
97 | |
98 TEST(CommandLineBuilder, BuildReportCrashWithEnclosedFilename) { | |
99 CommandLineBuilder builder(COMMANDLINE_MODE_REPORTCRASH); | |
100 builder.set_crash_filename(_T("\"foo.dmp\"")); | |
101 CString cmd_line = builder.GetCommandLineArgs(); | |
102 EXPECT_STREQ(_T("/report \"foo.dmp\""), cmd_line); | |
103 } | |
104 | |
105 TEST(CommandLineBuilder, BuildReportCrashWithCustomInfo) { | |
106 CommandLineBuilder builder(COMMANDLINE_MODE_REPORTCRASH); | |
107 ExpectAsserts expect_asserts; // Missing filename. | |
108 builder.set_custom_info_filename(_T("foo.txt")); | |
109 CString cmd_line = builder.GetCommandLineArgs(); | |
110 EXPECT_STREQ(_T(""), cmd_line); | |
111 } | |
112 | |
113 TEST(CommandLineBuilder, BuildReportCrashWithFileanameWithCustomInfo) { | |
114 CommandLineBuilder builder(COMMANDLINE_MODE_REPORTCRASH); | |
115 builder.set_crash_filename(_T("foo.dmp")); | |
116 builder.set_custom_info_filename(_T("foo.txt")); | |
117 CString cmd_line = builder.GetCommandLineArgs(); | |
118 EXPECT_STREQ(_T("/report \"foo.dmp\" /custom_info_filename \"foo.txt\""), | |
119 cmd_line); | |
120 } | |
121 | |
122 TEST(CommandLineBuilder, BuildReportCrashWithFileanameWithCustomInfoMachine) { | |
123 CommandLineBuilder builder(COMMANDLINE_MODE_REPORTCRASH); | |
124 builder.set_crash_filename(_T("foo.dmp")); | |
125 builder.set_custom_info_filename(_T("foo.txt")); | |
126 builder.set_is_machine_set(true); | |
127 CString cmd_line = builder.GetCommandLineArgs(); | |
128 EXPECT_STREQ( | |
129 _T("/report \"foo.dmp\" /machine /custom_info_filename \"foo.txt\""), | |
130 cmd_line); | |
131 } | |
132 | |
133 TEST(CommandLineBuilder, BuildReportCrashWithEnclosedFileanameWithCustomInfo) { | |
134 CommandLineBuilder builder(COMMANDLINE_MODE_REPORTCRASH); | |
135 builder.set_crash_filename(_T("\"foo.dmp\"")); | |
136 builder.set_custom_info_filename(_T("\"foo.txt\"")); | |
137 CString cmd_line = builder.GetCommandLineArgs(); | |
138 EXPECT_STREQ(_T("/report \"foo.dmp\" /custom_info_filename \"foo.txt\""), | |
139 cmd_line); | |
140 } | |
141 | |
142 TEST(CommandLineBuilder, BuildReportCrashInteractiveWithFilename) { | |
143 CommandLineBuilder builder(COMMANDLINE_MODE_REPORTCRASH); | |
144 builder.set_crash_filename(_T("foo.dmp")); | |
145 builder.set_is_interactive_set(true); | |
146 CString cmd_line = builder.GetCommandLineArgs(); | |
147 EXPECT_STREQ(_T("/report /i \"foo.dmp\""), cmd_line); | |
148 } | |
149 | |
150 TEST(CommandLineBuilder, BuildReportCrashMachineInteractiveWithFilename) { | |
151 CommandLineBuilder builder(COMMANDLINE_MODE_REPORTCRASH); | |
152 builder.set_crash_filename(_T("foo.dmp")); | |
153 builder.set_is_machine_set(true); | |
154 builder.set_is_interactive_set(true); | |
155 CString cmd_line = builder.GetCommandLineArgs(); | |
156 EXPECT_STREQ(_T("/report /i \"foo.dmp\" /machine"), cmd_line); | |
157 } | |
158 | |
159 TEST(CommandLineBuilder, BuildInstall) { | |
160 CommandLineBuilder builder(COMMANDLINE_MODE_INSTALL); | |
161 ExpectAsserts expect_asserts; // Missing parameters. | |
162 CString cmd_line = builder.GetCommandLineArgs(); | |
163 EXPECT_STREQ(_T(""), cmd_line); | |
164 } | |
165 | |
166 TEST(CommandLineBuilder, BuildInstallWithExtraArgs) { | |
167 CommandLineBuilder builder(COMMANDLINE_MODE_INSTALL); | |
168 builder.set_extra_args(_T("appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
169 _T("appname=YouTubeUploader&needsadmin=False&") | |
170 _T("lang=en")); | |
171 CString cmd_line = builder.GetCommandLineArgs(); | |
172 EXPECT_STREQ(_T("/install \"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
173 _T("appname=YouTubeUploader&needsadmin=False&lang=en\""), | |
174 cmd_line); | |
175 } | |
176 | |
177 TEST(CommandLineBuilder, BuildInstallWithExtraArgsSilent) { | |
178 CommandLineBuilder builder(COMMANDLINE_MODE_INSTALL); | |
179 builder.set_extra_args(_T("appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
180 _T("appname=YouTubeUploader&needsadmin=False&") | |
181 _T("lang=en")); | |
182 builder.set_is_silent_set(true); | |
183 CString cmd_line = builder.GetCommandLineArgs(); | |
184 EXPECT_STREQ(_T("/install \"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
185 _T("appname=YouTubeUploader&needsadmin=False&lang=en\" /silent"), | |
186 cmd_line); | |
187 } | |
188 | |
189 TEST(CommandLineBuilder, BuildInstallWithExtraArgsSessionId) { | |
190 CommandLineBuilder builder(COMMANDLINE_MODE_INSTALL); | |
191 builder.set_extra_args(_T("appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
192 _T("appname=YouTubeUploader&needsadmin=False&") | |
193 _T("lang=en")); | |
194 builder.set_session_id(_T("{756dfdc2-0ef0-44b7-bfb1-21a4be6a1213}")); | |
195 CString cmd_line = builder.GetCommandLineArgs(); | |
196 EXPECT_STREQ(_T("/install \"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
197 _T("appname=YouTubeUploader&needsadmin=False&lang=en\"") | |
198 _T(" /sessionid \"{756dfdc2-0ef0-44b7-bfb1-21a4be6a1213}\""), | |
199 cmd_line); | |
200 } | |
201 | |
202 TEST(CommandLineBuilder, BuildUpdate) { | |
203 CommandLineBuilder builder(COMMANDLINE_MODE_UPDATE); | |
204 CString cmd_line = builder.GetCommandLineArgs(); | |
205 EXPECT_STREQ(_T("/update"), cmd_line); | |
206 } | |
207 | |
208 TEST(CommandLineBuilder, BuildUpdateWithSessionId) { | |
209 CommandLineBuilder builder(COMMANDLINE_MODE_UPDATE); | |
210 builder.set_session_id(_T("{756dfdc2-0ef0-44b7-bfb1-21a4be6a1213}")); | |
211 CString cmd_line = builder.GetCommandLineArgs(); | |
212 EXPECT_STREQ( | |
213 _T("/update /sessionid \"{756dfdc2-0ef0-44b7-bfb1-21a4be6a1213}\""), | |
214 cmd_line); | |
215 } | |
216 | |
217 // The /update builder works when not used with GoogleUpdate.exe. | |
218 TEST(CommandLineBuilder, BuildUpdateAndGetCommandLineWithNonGoogleUpdateExe) { | |
219 CommandLineBuilder builder(COMMANDLINE_MODE_UPDATE); | |
220 CString cmd_line = builder.GetCommandLine(_T("C:\\GoogleUpdateSetup_en.exe")); | |
221 EXPECT_STREQ(_T("\"C:\\GoogleUpdateSetup_en.exe\" /update"), cmd_line); | |
222 } | |
223 | |
224 // The /update builder should not be used with GoogleUpdate.exe directly. | |
225 TEST(CommandLineBuilder, BuildUpdateAndGetCommandLineWithGoogleUpdateExe) { | |
226 CommandLineBuilder builder(COMMANDLINE_MODE_UPDATE); | |
227 ExpectAsserts expect_asserts; | |
228 CString cmd_line = builder.GetCommandLine(_T("C:\\GoogleUpdate.exe")); | |
229 EXPECT_STREQ(_T("\"C:\\GoogleUpdate.exe\" /update"), cmd_line); | |
230 } | |
231 | |
232 TEST(CommandLineBuilder, BuildComServer) { | |
233 CommandLineBuilder builder(COMMANDLINE_MODE_COMSERVER); | |
234 CString cmd_line = builder.GetCommandLineArgs(); | |
235 EXPECT_STREQ(_T("-Embedding"), cmd_line); | |
236 } | |
237 | |
238 TEST(CommandLineBuilder, BuildComBroker) { | |
239 CommandLineBuilder builder(COMMANDLINE_MODE_COMBROKER); | |
240 CString cmd_line = builder.GetCommandLineArgs(); | |
241 EXPECT_STREQ(_T("/broker"), cmd_line); | |
242 } | |
243 | |
244 TEST(CommandLineBuilder, BuildOnDemand) { | |
245 CommandLineBuilder builder(COMMANDLINE_MODE_ONDEMAND); | |
246 CString cmd_line = builder.GetCommandLineArgs(); | |
247 EXPECT_STREQ(_T("/ondemand"), cmd_line); | |
248 } | |
249 | |
250 TEST(CommandLineBuilder, BuildCodeRedCheck) { | |
251 CommandLineBuilder builder(COMMANDLINE_MODE_CODE_RED_CHECK); | |
252 CString cmd_line = builder.GetCommandLineArgs(); | |
253 EXPECT_STREQ(_T("/cr"), cmd_line); | |
254 } | |
255 | |
256 TEST(CommandLineBuilder, BuildWebPlugin) { | |
257 CommandLineBuilder builder(COMMANDLINE_MODE_WEBPLUGIN); | |
258 ExpectAsserts expect_asserts; | |
259 CString cmd_line = builder.GetCommandLineArgs(); | |
260 EXPECT_STREQ(_T(""), cmd_line); | |
261 } | |
262 | |
263 TEST(CommandLineBuilder, BuildWebPluginWithUrlArgsAndInstallSource) { | |
264 CommandLineBuilder builder(COMMANDLINE_MODE_WEBPLUGIN); | |
265 builder.set_webplugin_args(_T("piargs")); | |
266 builder.set_webplugin_url_domain(_T("http://www.google.com/")); | |
267 builder.set_install_source(_T("oneclick")); | |
268 CString cmd_line = builder.GetCommandLineArgs(); | |
269 EXPECT_STREQ(_T("/pi \"http://www.google.com/\" \"piargs\"") | |
270 _T(" /installsource oneclick"), | |
271 cmd_line); | |
272 } | |
273 | |
274 TEST(CommandLineBuilder, BuildRecover) { | |
275 CommandLineBuilder builder(COMMANDLINE_MODE_RECOVER); | |
276 ExpectAsserts expect_asserts; | |
277 CString cmd_line = builder.GetCommandLineArgs(); | |
278 EXPECT_STREQ(_T(""), cmd_line); | |
279 } | |
280 | |
281 TEST(CommandLineBuilder, BuildRecoverWithMIPath) { | |
282 CommandLineBuilder builder(COMMANDLINE_MODE_RECOVER); | |
283 builder.set_code_red_metainstaller_path(_T("foo.exe")); | |
284 CString cmd_line = builder.GetCommandLineArgs(); | |
285 EXPECT_STREQ(_T("/recover foo.exe"), cmd_line); | |
286 } | |
287 | |
288 TEST(CommandLineBuilder, BuildUA) { | |
289 CommandLineBuilder builder(COMMANDLINE_MODE_UA); | |
290 ExpectAsserts expect_asserts; | |
291 CString cmd_line = builder.GetCommandLineArgs(); | |
292 EXPECT_STREQ(_T(""), cmd_line); | |
293 } | |
294 | |
295 TEST(CommandLineBuilder, BuildUAWithInstallSource) { | |
296 CommandLineBuilder builder(COMMANDLINE_MODE_UA); | |
297 builder.set_install_source(_T("blah")); | |
298 CString cmd_line = builder.GetCommandLineArgs(); | |
299 EXPECT_STREQ(_T("/ua /installsource blah"), cmd_line); | |
300 } | |
301 | |
302 TEST(CommandLineBuilder, BuildHandoffInstall) { | |
303 CommandLineBuilder builder(COMMANDLINE_MODE_HANDOFF_INSTALL); | |
304 ExpectAsserts expect_asserts; // Missing extra args. | |
305 CString cmd_line = builder.GetCommandLineArgs(); | |
306 EXPECT_STREQ(_T(""), cmd_line); | |
307 } | |
308 | |
309 TEST(CommandLineBuilder, BuildHandoffInstallWithExtraArgs) { | |
310 CommandLineBuilder builder(COMMANDLINE_MODE_HANDOFF_INSTALL); | |
311 builder.set_extra_args(_T("appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
312 _T("appname=YouTubeUploader&needsadmin=False&") | |
313 _T("lang=en")); | |
314 CString cmd_line = builder.GetCommandLineArgs(); | |
315 EXPECT_STREQ(_T("/handoff \"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
316 _T("appname=YouTubeUploader&needsadmin=False&lang=en\""), | |
317 cmd_line); | |
318 } | |
319 | |
320 TEST(CommandLineBuilder, BuildHandoffInstallWithExtraArgsSessionId) { | |
321 CommandLineBuilder builder(COMMANDLINE_MODE_HANDOFF_INSTALL); | |
322 builder.set_extra_args(_T("appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
323 _T("appname=YouTubeUploader&needsadmin=False&") | |
324 _T("lang=en")); | |
325 builder.set_session_id(_T("{756dfdc2-0ef0-44b7-bfb1-21a4be6a1213}")); | |
326 CString cmd_line = builder.GetCommandLineArgs(); | |
327 EXPECT_STREQ(_T("/handoff \"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
328 _T("appname=YouTubeUploader&needsadmin=False&lang=en\"") | |
329 _T(" /sessionid \"{756dfdc2-0ef0-44b7-bfb1-21a4be6a1213}\""), | |
330 cmd_line); | |
331 } | |
332 | |
333 TEST(CommandLineBuilder, BuildHandoffInstallWithExtraArgsOffline) { | |
334 CommandLineBuilder builder(COMMANDLINE_MODE_HANDOFF_INSTALL); | |
335 builder.set_extra_args(_T("appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
336 _T("appname=YouTubeUploader&needsadmin=False&") | |
337 _T("lang=en")); | |
338 builder.set_install_source(_T("offline")); | |
339 builder.SetOfflineDir(_T("c:\\offline_dir\\")); | |
340 | |
341 CString cmd_line = builder.GetCommandLineArgs(); | |
342 EXPECT_STREQ(_T("/handoff \"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
343 _T("appname=YouTubeUploader&needsadmin=False&lang=en\"") | |
344 _T(" /installsource offline") | |
345 _T(" /offlinedir \"c:\\offline_dir\""), | |
346 cmd_line); | |
347 } | |
348 | |
349 TEST(CommandLineBuilder, BuildHandoffInstallWithExtraArgsSilentOffline) { | |
350 CommandLineBuilder builder(COMMANDLINE_MODE_HANDOFF_INSTALL); | |
351 builder.set_extra_args(_T("appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
352 _T("appname=YouTubeUploader&needsadmin=False&") | |
353 _T("lang=en")); | |
354 builder.set_install_source(_T("offline")); | |
355 builder.set_is_silent_set(true); | |
356 builder.SetOfflineDir(_T("c:\\offline dir")); | |
357 | |
358 CString cmd_line = builder.GetCommandLineArgs(); | |
359 EXPECT_STREQ(_T("/handoff \"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
360 _T("appname=YouTubeUploader&needsadmin=False&lang=en\"") | |
361 _T(" /installsource offline") | |
362 _T(" /silent /offlinedir \"c:\\offline dir\""), | |
363 cmd_line); | |
364 } | |
365 | |
366 TEST(CommandLineBuilder, BuildHandoffWithAppArgsSilentOffline) { | |
367 CommandLineBuilder builder(COMMANDLINE_MODE_HANDOFF_INSTALL); | |
368 builder.set_extra_args(_T("appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
369 _T("appname=YouTubeUploader&needsadmin=False&") | |
370 _T("lang=en")); | |
371 builder.set_app_args(_T("appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
372 _T("installerdata=foobar%45")); | |
373 builder.set_install_source(_T("offline")); | |
374 builder.set_is_silent_set(true); | |
375 builder.SetOfflineDir(_T("c:\\offline dir")); | |
376 | |
377 CString cmd_line = builder.GetCommandLineArgs(); | |
378 EXPECT_STREQ(_T("/handoff \"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
379 _T("appname=YouTubeUploader&needsadmin=False&lang=en\"") | |
380 _T(" /appargs \"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
381 _T("installerdata=foobar%45\"") | |
382 _T(" /installsource offline") | |
383 _T(" /silent /offlinedir \"c:\\offline dir\""), | |
384 cmd_line); | |
385 } | |
386 | |
387 TEST(CommandLineBuilder, BuildHandoffWithAppArgsSilentOfflineEulaRequired) { | |
388 CommandLineBuilder builder(COMMANDLINE_MODE_HANDOFF_INSTALL); | |
389 builder.set_extra_args(_T("appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
390 _T("appname=YouTubeUploader&needsadmin=False&") | |
391 _T("lang=en")); | |
392 builder.set_app_args(_T("appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
393 _T("installerdata=foobar%45")); | |
394 builder.set_install_source(_T("offline")); | |
395 builder.set_is_silent_set(true); | |
396 builder.set_is_eula_required_set(true); | |
397 builder.SetOfflineDir(_T("c:\\offline dir")); | |
398 | |
399 CString cmd_line = builder.GetCommandLineArgs(); | |
400 EXPECT_STREQ(_T("/handoff \"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
401 _T("appname=YouTubeUploader&needsadmin=False&lang=en\"") | |
402 _T(" /appargs \"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") | |
403 _T("installerdata=foobar%45\"") | |
404 _T(" /installsource offline") | |
405 _T(" /silent /eularequired /offlinedir \"c:\\offline dir\""), | |
406 cmd_line); | |
407 } | |
408 | |
409 TEST(CommandLineBuilder, BuildRegisterProduct) { | |
410 CommandLineBuilder builder(COMMANDLINE_MODE_REGISTER_PRODUCT); | |
411 builder.set_extra_args(_T("appguid={7DD3DAE3-87F1-4CFE-8BF4-452C74421401}&") | |
412 _T("appname=Google Toolbar&needsadmin=True&") | |
413 _T("lang=en")); | |
414 CString cmd_line = builder.GetCommandLineArgs(); | |
415 EXPECT_STREQ(_T("/registerproduct ") | |
416 _T("\"appguid={7DD3DAE3-87F1-4CFE-8BF4-452C74421401}&") | |
417 _T("appname=Google Toolbar&needsadmin=True&lang=en\""), | |
418 cmd_line); | |
419 } | |
420 | |
421 TEST(CommandLineBuilder, BuildUnregisterProduc) { | |
422 CommandLineBuilder builder(COMMANDLINE_MODE_UNREGISTER_PRODUCT); | |
423 builder.set_extra_args(_T("appguid={7DD3DAE3-87F1-4CFE-8BF4-452C74421401}&") | |
424 _T("needsadmin=True&lang=en")); | |
425 CString cmd_line = builder.GetCommandLineArgs(); | |
426 EXPECT_STREQ(_T("/unregisterproduct ") | |
427 _T("\"appguid={7DD3DAE3-87F1-4CFE-8BF4-452C74421401}&") | |
428 _T("needsadmin=True&lang=en\""), | |
429 cmd_line); | |
430 } | |
431 | |
432 TEST(CommandLineBuilder, BuildUninstall) { | |
433 CommandLineBuilder builder(COMMANDLINE_MODE_UNINSTALL); | |
434 CString cmd_line = builder.GetCommandLineArgs(); | |
435 EXPECT_STREQ(_T("/uninstall"), cmd_line); | |
436 } | |
437 | |
438 TEST(CommandLineBuilder, BuildPing) { | |
439 CommandLineBuilder builder(COMMANDLINE_MODE_PING); | |
440 builder.set_ping_string(_T("foo")); | |
441 CString cmd_line = builder.GetCommandLineArgs(); | |
442 EXPECT_STREQ(_T("/ping foo"), cmd_line); | |
443 } | |
444 | |
445 } // namespace omaha | |
446 | |
OLD | NEW |