OLD | NEW |
1 // Copyright (c) 2009 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium OS 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 <string> | 5 #include <string> |
6 #include <vector> | 6 #include <vector> |
7 #include <glib.h> | 7 #include <glib.h> |
8 #include <gtest/gtest.h> | 8 #include <gtest/gtest.h> |
9 #include "update_engine/action_pipe.h" | 9 #include "update_engine/action_pipe.h" |
10 #include "update_engine/update_check_action.h" | 10 #include "update_engine/update_check_action.h" |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 *out_post_data = fetcher->post_data(); | 152 *out_post_data = fetcher->post_data(); |
153 return collector_action.has_input_object_; | 153 return collector_action.has_input_object_; |
154 } | 154 } |
155 | 155 |
156 TEST(UpdateCheckActionTest, NoUpdateTest) { | 156 TEST(UpdateCheckActionTest, NoUpdateTest) { |
157 UpdateCheckParams params("", // machine_id | 157 UpdateCheckParams params("", // machine_id |
158 "", // user_id | 158 "", // user_id |
159 UpdateCheckParams::kOsPlatform, | 159 UpdateCheckParams::kOsPlatform, |
160 UpdateCheckParams::kOsVersion, | 160 UpdateCheckParams::kOsVersion, |
161 "", // os_sp | 161 "", // os_sp |
| 162 "x86-generic", |
162 UpdateCheckParams::kAppId, | 163 UpdateCheckParams::kAppId, |
163 "0.1.0.0", | 164 "0.1.0.0", |
164 "en-US", | 165 "en-US", |
165 "unittest", | 166 "unittest", |
166 ""); // url | 167 ""); // url |
167 UpdateCheckResponse response; | 168 UpdateCheckResponse response; |
168 ASSERT_TRUE( | 169 ASSERT_TRUE( |
169 TestUpdateCheckAction(params, | 170 TestUpdateCheckAction(params, |
170 GetNoUpdateResponse(UpdateCheckParams::kAppId), | 171 GetNoUpdateResponse(UpdateCheckParams::kAppId), |
171 true, | 172 true, |
172 &response, | 173 &response, |
173 NULL)); | 174 NULL)); |
174 EXPECT_FALSE(response.update_exists); | 175 EXPECT_FALSE(response.update_exists); |
175 } | 176 } |
176 | 177 |
177 TEST(UpdateCheckActionTest, ValidUpdateTest) { | 178 TEST(UpdateCheckActionTest, ValidUpdateTest) { |
178 UpdateCheckParams params("machine_id", | 179 UpdateCheckParams params("machine_id", |
179 "user_id", | 180 "user_id", |
180 UpdateCheckParams::kOsPlatform, | 181 UpdateCheckParams::kOsPlatform, |
181 UpdateCheckParams::kOsVersion, | 182 UpdateCheckParams::kOsVersion, |
182 "service_pack", | 183 "service_pack", |
| 184 "arm-generic", |
183 UpdateCheckParams::kAppId, | 185 UpdateCheckParams::kAppId, |
184 "0.1.0.0", | 186 "0.1.0.0", |
185 "en-US", | 187 "en-US", |
186 "unittest_track", | 188 "unittest_track", |
187 ""); // url | 189 ""); // url |
188 UpdateCheckResponse response; | 190 UpdateCheckResponse response; |
189 ASSERT_TRUE( | 191 ASSERT_TRUE( |
190 TestUpdateCheckAction(params, | 192 TestUpdateCheckAction(params, |
191 GetUpdateResponse(UpdateCheckParams::kAppId, | 193 GetUpdateResponse(UpdateCheckParams::kAppId, |
192 "1.2.3.4", // version | 194 "1.2.3.4", // version |
(...skipping 15 matching lines...) Expand all Loading... |
208 EXPECT_FALSE(response.needs_admin); | 210 EXPECT_FALSE(response.needs_admin); |
209 EXPECT_TRUE(response.prompt); | 211 EXPECT_TRUE(response.prompt); |
210 } | 212 } |
211 | 213 |
212 TEST(UpdateCheckActionTest, NoOutputPipeTest) { | 214 TEST(UpdateCheckActionTest, NoOutputPipeTest) { |
213 UpdateCheckParams params("", // machine_id | 215 UpdateCheckParams params("", // machine_id |
214 "", // usr_id | 216 "", // usr_id |
215 UpdateCheckParams::kOsPlatform, | 217 UpdateCheckParams::kOsPlatform, |
216 UpdateCheckParams::kOsVersion, | 218 UpdateCheckParams::kOsVersion, |
217 "", // os_sp | 219 "", // os_sp |
| 220 "", // os_board |
218 UpdateCheckParams::kAppId, | 221 UpdateCheckParams::kAppId, |
219 "0.1.0.0", | 222 "0.1.0.0", |
220 "en-US", | 223 "en-US", |
221 "unittest", | 224 "unittest", |
222 ""); // url | 225 ""); // url |
223 const string http_response(GetNoUpdateResponse(UpdateCheckParams::kAppId)); | 226 const string http_response(GetNoUpdateResponse(UpdateCheckParams::kAppId)); |
224 | 227 |
225 GMainLoop *loop = g_main_loop_new(g_main_context_default(), FALSE); | 228 GMainLoop *loop = g_main_loop_new(g_main_context_default(), FALSE); |
226 | 229 |
227 ObjectFeederAction<UpdateCheckParams> feeder_action; | 230 ObjectFeederAction<UpdateCheckParams> feeder_action; |
(...skipping 13 matching lines...) Expand all Loading... |
241 g_main_loop_unref(loop); | 244 g_main_loop_unref(loop); |
242 EXPECT_FALSE(processor.IsRunning()); | 245 EXPECT_FALSE(processor.IsRunning()); |
243 } | 246 } |
244 | 247 |
245 TEST(UpdateCheckActionTest, InvalidXmlTest) { | 248 TEST(UpdateCheckActionTest, InvalidXmlTest) { |
246 UpdateCheckParams params("machine_id", | 249 UpdateCheckParams params("machine_id", |
247 "user_id", | 250 "user_id", |
248 UpdateCheckParams::kOsPlatform, | 251 UpdateCheckParams::kOsPlatform, |
249 UpdateCheckParams::kOsVersion, | 252 UpdateCheckParams::kOsVersion, |
250 "service_pack", | 253 "service_pack", |
| 254 "x86-generic", |
251 UpdateCheckParams::kAppId, | 255 UpdateCheckParams::kAppId, |
252 "0.1.0.0", | 256 "0.1.0.0", |
253 "en-US", | 257 "en-US", |
254 "unittest_track", | 258 "unittest_track", |
255 "http://url"); | 259 "http://url"); |
256 UpdateCheckResponse response; | 260 UpdateCheckResponse response; |
257 ASSERT_FALSE( | 261 ASSERT_FALSE( |
258 TestUpdateCheckAction(params, | 262 TestUpdateCheckAction(params, |
259 "invalid xml>", | 263 "invalid xml>", |
260 false, | 264 false, |
261 &response, | 265 &response, |
262 NULL)); | 266 NULL)); |
263 EXPECT_FALSE(response.update_exists); | 267 EXPECT_FALSE(response.update_exists); |
264 } | 268 } |
265 | 269 |
266 TEST(UpdateCheckActionTest, MissingStatusTest) { | 270 TEST(UpdateCheckActionTest, MissingStatusTest) { |
267 UpdateCheckParams params("machine_id", | 271 UpdateCheckParams params("machine_id", |
268 "user_id", | 272 "user_id", |
269 UpdateCheckParams::kOsPlatform, | 273 UpdateCheckParams::kOsPlatform, |
270 UpdateCheckParams::kOsVersion, | 274 UpdateCheckParams::kOsVersion, |
271 "service_pack", | 275 "service_pack", |
| 276 "x86-generic", |
272 UpdateCheckParams::kAppId, | 277 UpdateCheckParams::kAppId, |
273 "0.1.0.0", | 278 "0.1.0.0", |
274 "en-US", | 279 "en-US", |
275 "unittest_track", | 280 "unittest_track", |
276 "http://url"); | 281 "http://url"); |
277 UpdateCheckResponse response; | 282 UpdateCheckResponse response; |
278 ASSERT_FALSE(TestUpdateCheckAction( | 283 ASSERT_FALSE(TestUpdateCheckAction( |
279 params, | 284 params, |
280 "<?xml version=\"1.0\" encoding=\"UTF-8\"?><gupdate " | 285 "<?xml version=\"1.0\" encoding=\"UTF-8\"?><gupdate " |
281 "xmlns=\"http://www.google.com/update2/response\" protocol=\"2.0\"><app " | 286 "xmlns=\"http://www.google.com/update2/response\" protocol=\"2.0\"><app " |
282 "appid=\"foo\" status=\"ok\"><ping " | 287 "appid=\"foo\" status=\"ok\"><ping " |
283 "status=\"ok\"/><updatecheck/></app></gupdate>", | 288 "status=\"ok\"/><updatecheck/></app></gupdate>", |
284 false, | 289 false, |
285 &response, | 290 &response, |
286 NULL)); | 291 NULL)); |
287 EXPECT_FALSE(response.update_exists); | 292 EXPECT_FALSE(response.update_exists); |
288 } | 293 } |
289 | 294 |
290 TEST(UpdateCheckActionTest, InvalidStatusTest) { | 295 TEST(UpdateCheckActionTest, InvalidStatusTest) { |
291 UpdateCheckParams params("machine_id", | 296 UpdateCheckParams params("machine_id", |
292 "user_id", | 297 "user_id", |
293 UpdateCheckParams::kOsPlatform, | 298 UpdateCheckParams::kOsPlatform, |
294 UpdateCheckParams::kOsVersion, | 299 UpdateCheckParams::kOsVersion, |
295 "service_pack", | 300 "service_pack", |
| 301 "x86-generic", |
296 UpdateCheckParams::kAppId, | 302 UpdateCheckParams::kAppId, |
297 "0.1.0.0", | 303 "0.1.0.0", |
298 "en-US", | 304 "en-US", |
299 "unittest_track", | 305 "unittest_track", |
300 "http://url"); | 306 "http://url"); |
301 UpdateCheckResponse response; | 307 UpdateCheckResponse response; |
302 ASSERT_FALSE(TestUpdateCheckAction( | 308 ASSERT_FALSE(TestUpdateCheckAction( |
303 params, | 309 params, |
304 "<?xml version=\"1.0\" encoding=\"UTF-8\"?><gupdate " | 310 "<?xml version=\"1.0\" encoding=\"UTF-8\"?><gupdate " |
305 "xmlns=\"http://www.google.com/update2/response\" protocol=\"2.0\"><app " | 311 "xmlns=\"http://www.google.com/update2/response\" protocol=\"2.0\"><app " |
306 "appid=\"foo\" status=\"ok\"><ping " | 312 "appid=\"foo\" status=\"ok\"><ping " |
307 "status=\"ok\"/><updatecheck status=\"foo\"/></app></gupdate>", | 313 "status=\"ok\"/><updatecheck status=\"foo\"/></app></gupdate>", |
308 false, | 314 false, |
309 &response, | 315 &response, |
310 NULL)); | 316 NULL)); |
311 EXPECT_FALSE(response.update_exists); | 317 EXPECT_FALSE(response.update_exists); |
312 } | 318 } |
313 | 319 |
314 TEST(UpdateCheckActionTest, MissingNodesetTest) { | 320 TEST(UpdateCheckActionTest, MissingNodesetTest) { |
315 UpdateCheckParams params("machine_id", | 321 UpdateCheckParams params("machine_id", |
316 "user_id", | 322 "user_id", |
317 UpdateCheckParams::kOsPlatform, | 323 UpdateCheckParams::kOsPlatform, |
318 UpdateCheckParams::kOsVersion, | 324 UpdateCheckParams::kOsVersion, |
319 "service_pack", | 325 "service_pack", |
| 326 "x86-generic", |
320 UpdateCheckParams::kAppId, | 327 UpdateCheckParams::kAppId, |
321 "0.1.0.0", | 328 "0.1.0.0", |
322 "en-US", | 329 "en-US", |
323 "unittest_track", | 330 "unittest_track", |
324 "http://url"); | 331 "http://url"); |
325 UpdateCheckResponse response; | 332 UpdateCheckResponse response; |
326 ASSERT_FALSE(TestUpdateCheckAction( | 333 ASSERT_FALSE(TestUpdateCheckAction( |
327 params, | 334 params, |
328 "<?xml version=\"1.0\" encoding=\"UTF-8\"?><gupdate " | 335 "<?xml version=\"1.0\" encoding=\"UTF-8\"?><gupdate " |
329 "xmlns=\"http://www.google.com/update2/response\" protocol=\"2.0\"><app " | 336 "xmlns=\"http://www.google.com/update2/response\" protocol=\"2.0\"><app " |
330 "appid=\"foo\" status=\"ok\"><ping " | 337 "appid=\"foo\" status=\"ok\"><ping " |
331 "status=\"ok\"/></app></gupdate>", | 338 "status=\"ok\"/></app></gupdate>", |
332 false, | 339 false, |
333 &response, | 340 &response, |
334 NULL)); | 341 NULL)); |
335 EXPECT_FALSE(response.update_exists); | 342 EXPECT_FALSE(response.update_exists); |
336 } | 343 } |
337 | 344 |
338 TEST(UpdateCheckActionTest, MissingFieldTest) { | 345 TEST(UpdateCheckActionTest, MissingFieldTest) { |
339 UpdateCheckParams params("machine_id", | 346 UpdateCheckParams params("machine_id", |
340 "user_id", | 347 "user_id", |
341 UpdateCheckParams::kOsPlatform, | 348 UpdateCheckParams::kOsPlatform, |
342 UpdateCheckParams::kOsVersion, | 349 UpdateCheckParams::kOsVersion, |
343 "service_pack", | 350 "service_pack", |
| 351 "x86-generic", |
344 UpdateCheckParams::kAppId, | 352 UpdateCheckParams::kAppId, |
345 "0.1.0.0", | 353 "0.1.0.0", |
346 "en-US", | 354 "en-US", |
347 "unittest_track", | 355 "unittest_track", |
348 "http://url"); | 356 "http://url"); |
349 UpdateCheckResponse response; | 357 UpdateCheckResponse response; |
350 ASSERT_TRUE(TestUpdateCheckAction(params, | 358 ASSERT_TRUE(TestUpdateCheckAction(params, |
351 string("<?xml version=\"1.0\" " | 359 string("<?xml version=\"1.0\" " |
352 "encoding=\"UTF-8\"?><gupdate " | 360 "encoding=\"UTF-8\"?><gupdate " |
353 "xmlns=\"http://www.google.com/" | 361 "xmlns=\"http://www.google.com/" |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
393 return FALSE; | 401 return FALSE; |
394 } | 402 } |
395 } // namespace {} | 403 } // namespace {} |
396 | 404 |
397 TEST(UpdateCheckActionTest, TerminateTransferTest) { | 405 TEST(UpdateCheckActionTest, TerminateTransferTest) { |
398 UpdateCheckParams params("", // machine_id | 406 UpdateCheckParams params("", // machine_id |
399 "", // usr_id | 407 "", // usr_id |
400 UpdateCheckParams::kOsPlatform, | 408 UpdateCheckParams::kOsPlatform, |
401 UpdateCheckParams::kOsVersion, | 409 UpdateCheckParams::kOsVersion, |
402 "", // os_sp | 410 "", // os_sp |
| 411 "", // os_board |
403 UpdateCheckParams::kAppId, | 412 UpdateCheckParams::kAppId, |
404 "0.1.0.0", | 413 "0.1.0.0", |
405 "en-US", | 414 "en-US", |
406 "unittest", | 415 "unittest", |
407 "http://url"); | 416 "http://url"); |
408 string http_response("doesn't matter"); | 417 string http_response("doesn't matter"); |
409 GMainLoop *loop = g_main_loop_new(g_main_context_default(), FALSE); | 418 GMainLoop *loop = g_main_loop_new(g_main_context_default(), FALSE); |
410 | 419 |
411 ObjectFeederAction<UpdateCheckParams> feeder_action; | 420 ObjectFeederAction<UpdateCheckParams> feeder_action; |
412 feeder_action.set_obj(params); | 421 feeder_action.set_obj(params); |
(...skipping 20 matching lines...) Expand all Loading... |
433 EXPECT_EQ("&lt;&amp;&gt;", XmlEncode("<&>")); | 442 EXPECT_EQ("&lt;&amp;&gt;", XmlEncode("<&>")); |
434 | 443 |
435 vector<char> post_data; | 444 vector<char> post_data; |
436 | 445 |
437 // Make sure XML Encode is being called on the params | 446 // Make sure XML Encode is being called on the params |
438 UpdateCheckParams params("testthemachine<id", | 447 UpdateCheckParams params("testthemachine<id", |
439 "testtheuser_id<", | 448 "testtheuser_id<", |
440 UpdateCheckParams::kOsPlatform, | 449 UpdateCheckParams::kOsPlatform, |
441 UpdateCheckParams::kOsVersion, | 450 UpdateCheckParams::kOsVersion, |
442 "testtheservice_pack>", | 451 "testtheservice_pack>", |
| 452 "x86 generic", |
443 UpdateCheckParams::kAppId, | 453 UpdateCheckParams::kAppId, |
444 "0.1.0.0", | 454 "0.1.0.0", |
445 "en-US", | 455 "en-US", |
446 "unittest_track", | 456 "unittest_track", |
447 "http://url"); | 457 "http://url"); |
448 UpdateCheckResponse response; | 458 UpdateCheckResponse response; |
449 ASSERT_FALSE( | 459 ASSERT_FALSE( |
450 TestUpdateCheckAction(params, | 460 TestUpdateCheckAction(params, |
451 "invalid xml>", | 461 "invalid xml>", |
452 false, | 462 false, |
453 &response, | 463 &response, |
454 &post_data)); | 464 &post_data)); |
455 // convert post_data to string | 465 // convert post_data to string |
456 string post_str(&post_data[0], post_data.size()); | 466 string post_str(&post_data[0], post_data.size()); |
457 EXPECT_NE(post_str.find("testthemachine<id"), string::npos); | 467 EXPECT_NE(post_str.find("testthemachine<id"), string::npos); |
458 EXPECT_EQ(post_str.find("testthemachine<id"), string::npos); | 468 EXPECT_EQ(post_str.find("testthemachine<id"), string::npos); |
459 EXPECT_NE(post_str.find("testtheuser_id&lt;"), string::npos); | 469 EXPECT_NE(post_str.find("testtheuser_id&lt;"), string::npos); |
460 EXPECT_EQ(post_str.find("testtheuser_id<"), string::npos); | 470 EXPECT_EQ(post_str.find("testtheuser_id<"), string::npos); |
461 EXPECT_NE(post_str.find("testtheservice_pack>"), string::npos); | 471 EXPECT_NE(post_str.find("testtheservice_pack>"), string::npos); |
462 EXPECT_EQ(post_str.find("testtheservice_pack>"), string::npos); | 472 EXPECT_EQ(post_str.find("testtheservice_pack>"), string::npos); |
| 473 EXPECT_NE(post_str.find("x86 generic"), string::npos); |
463 } | 474 } |
464 | 475 |
465 TEST(UpdateCheckActionTest, XmlDecodeTest) { | 476 TEST(UpdateCheckActionTest, XmlDecodeTest) { |
466 UpdateCheckParams params("machine_id", | 477 UpdateCheckParams params("machine_id", |
467 "user_id", | 478 "user_id", |
468 UpdateCheckParams::kOsPlatform, | 479 UpdateCheckParams::kOsPlatform, |
469 UpdateCheckParams::kOsVersion, | 480 UpdateCheckParams::kOsVersion, |
470 "service_pack", | 481 "service_pack", |
| 482 "x86-generic", |
471 UpdateCheckParams::kAppId, | 483 UpdateCheckParams::kAppId, |
472 "0.1.0.0", | 484 "0.1.0.0", |
473 "en-US", | 485 "en-US", |
474 "unittest_track", | 486 "unittest_track", |
475 "http://url"); | 487 "http://url"); |
476 UpdateCheckResponse response; | 488 UpdateCheckResponse response; |
477 ASSERT_TRUE( | 489 ASSERT_TRUE( |
478 TestUpdateCheckAction(params, | 490 TestUpdateCheckAction(params, |
479 GetUpdateResponse(UpdateCheckParams::kAppId, | 491 GetUpdateResponse(UpdateCheckParams::kAppId, |
480 "1.2.3.4", // version | 492 "1.2.3.4", // version |
(...skipping 10 matching lines...) Expand all Loading... |
491 EXPECT_EQ(response.more_info_url, "testthe<url"); | 503 EXPECT_EQ(response.more_info_url, "testthe<url"); |
492 EXPECT_EQ(response.codebase, "testthe&codebase"); | 504 EXPECT_EQ(response.codebase, "testthe&codebase"); |
493 } | 505 } |
494 | 506 |
495 TEST(UpdateCheckActionTest, ParseIntTest) { | 507 TEST(UpdateCheckActionTest, ParseIntTest) { |
496 UpdateCheckParams params("machine_id", | 508 UpdateCheckParams params("machine_id", |
497 "user_id", | 509 "user_id", |
498 UpdateCheckParams::kOsPlatform, | 510 UpdateCheckParams::kOsPlatform, |
499 UpdateCheckParams::kOsVersion, | 511 UpdateCheckParams::kOsVersion, |
500 "service_pack", | 512 "service_pack", |
| 513 "the_board", |
501 UpdateCheckParams::kAppId, | 514 UpdateCheckParams::kAppId, |
502 "0.1.0.0", | 515 "0.1.0.0", |
503 "en-US", | 516 "en-US", |
504 "unittest_track", | 517 "unittest_track", |
505 "http://url"); | 518 "http://url"); |
506 UpdateCheckResponse response; | 519 UpdateCheckResponse response; |
507 ASSERT_TRUE( | 520 ASSERT_TRUE( |
508 TestUpdateCheckAction(params, | 521 TestUpdateCheckAction(params, |
509 GetUpdateResponse(UpdateCheckParams::kAppId, | 522 GetUpdateResponse(UpdateCheckParams::kAppId, |
510 "1.2.3.4", // version | 523 "1.2.3.4", // version |
511 "theurl", // more info | 524 "theurl", // more info |
512 "true", // prompt | 525 "true", // prompt |
513 "thecodebase", // dl url | 526 "thecodebase", // dl url |
514 "HASH1234=", // checksum | 527 "HASH1234=", // checksum |
515 "false", // needs admin | 528 "false", // needs admin |
516 // overflows int32: | 529 // overflows int32: |
517 "123123123123123"), // size | 530 "123123123123123"), // size |
518 true, | 531 true, |
519 &response, | 532 &response, |
520 NULL)); | 533 NULL)); |
521 | 534 |
522 EXPECT_EQ(response.size, 123123123123123ll); | 535 EXPECT_EQ(response.size, 123123123123123ll); |
523 } | 536 } |
524 | 537 |
525 } // namespace chromeos_update_engine | 538 } // namespace chromeos_update_engine |
OLD | NEW |