OLD | NEW |
1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2010 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 <stdio.h> | 5 #include <stdio.h> |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
10 #include "gtest/gtest.h" | 10 #include "gtest/gtest.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 // Return true iff the OmahaRequestDeviceParams::Init succeeded. If | 22 // Return true iff the OmahaRequestDeviceParams::Init succeeded. If |
23 // out is non-NULL, it's set w/ the generated data. | 23 // out is non-NULL, it's set w/ the generated data. |
24 bool DoTest(OmahaRequestParams* out, const string& app_version, | 24 bool DoTest(OmahaRequestParams* out, const string& app_version, |
25 const string& omaha_url); | 25 const string& omaha_url); |
26 | 26 |
27 virtual void SetUp() { | 27 virtual void SetUp() { |
28 ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + "/etc")); | 28 ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + "/etc")); |
29 ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + | 29 ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + |
30 utils::kStatefulPartition + "/etc")); | 30 utils::kStatefulPartition + "/etc")); |
31 params_.set_root(string("./") + kTestDir); | 31 params_.set_root(string("./") + kTestDir); |
32 params_.SetBuildTypeOfficial(false); | 32 params_.SetLockDown(false); |
33 } | 33 } |
34 | 34 |
35 virtual void TearDown() { | 35 virtual void TearDown() { |
36 EXPECT_EQ(0, System(string("rm -rf ") + kTestDir)); | 36 EXPECT_EQ(0, System(string("rm -rf ") + kTestDir)); |
37 } | 37 } |
38 | 38 |
39 OmahaRequestDeviceParams params_; | 39 OmahaRequestDeviceParams params_; |
40 | 40 |
41 static const string kTestDir; | 41 static const string kTestDir; |
42 }; | 42 }; |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
257 kTestDir + "/etc/lsb-release", | 257 kTestDir + "/etc/lsb-release", |
258 "CHROMEOS_RELEASE_BOARD=arm-generic\n" | 258 "CHROMEOS_RELEASE_BOARD=arm-generic\n" |
259 "CHROMEOS_RELEASE_FOO=bar\n" | 259 "CHROMEOS_RELEASE_FOO=bar\n" |
260 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" | 260 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" |
261 "CHROMEOS_RELEASE_TRACK=footrack\n" | 261 "CHROMEOS_RELEASE_TRACK=footrack\n" |
262 "CHROMEOS_AUSERVER=http://www.google.com")); | 262 "CHROMEOS_AUSERVER=http://www.google.com")); |
263 ASSERT_TRUE(WriteFileString( | 263 ASSERT_TRUE(WriteFileString( |
264 kTestDir + utils::kStatefulPartition + "/etc/lsb-release", | 264 kTestDir + utils::kStatefulPartition + "/etc/lsb-release", |
265 "CHROMEOS_RELEASE_BOARD=x86-generic\n" | 265 "CHROMEOS_RELEASE_BOARD=x86-generic\n" |
266 "CHROMEOS_RELEASE_TRACK=bartrack\n" | 266 "CHROMEOS_RELEASE_TRACK=bartrack\n" |
267 "CHROMEOS_AUSERVER=http://www.google.com")); | 267 "CHROMEOS_AUSERVER=https://www.google.com")); |
268 OmahaRequestParams out; | 268 OmahaRequestParams out; |
269 EXPECT_TRUE(DoTest(&out, "", "")); | 269 EXPECT_TRUE(DoTest(&out, "", "")); |
270 EXPECT_EQ("Chrome OS", out.os_platform); | 270 EXPECT_EQ("Chrome OS", out.os_platform); |
271 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp); | 271 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp); |
272 EXPECT_EQ("x86-generic", out.os_board); | 272 EXPECT_EQ("x86-generic", out.os_board); |
273 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); | 273 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); |
274 EXPECT_EQ("0.2.2.3", out.app_version); | 274 EXPECT_EQ("0.2.2.3", out.app_version); |
275 EXPECT_EQ("en-US", out.app_lang); | 275 EXPECT_EQ("en-US", out.app_lang); |
276 EXPECT_EQ("", out.hardware_class); | 276 EXPECT_EQ("", out.hardware_class); |
277 EXPECT_FALSE(out.delta_okay); | 277 EXPECT_FALSE(out.delta_okay); |
278 EXPECT_EQ("bartrack", out.app_track); | 278 EXPECT_EQ("bartrack", out.app_track); |
279 EXPECT_EQ("http://www.google.com", out.update_url); | 279 EXPECT_EQ("https://www.google.com", out.update_url); |
| 280 } |
| 281 |
| 282 TEST_F(OmahaRequestDeviceParamsTest, OverrideLockDownTest) { |
| 283 ASSERT_TRUE(WriteFileString( |
| 284 kTestDir + "/etc/lsb-release", |
| 285 "CHROMEOS_RELEASE_BOARD=arm-generic\n" |
| 286 "CHROMEOS_RELEASE_FOO=bar\n" |
| 287 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" |
| 288 "CHROMEOS_RELEASE_TRACK=footrack\n" |
| 289 "CHROMEOS_AUSERVER=https://www.google.com")); |
| 290 ASSERT_TRUE(WriteFileString( |
| 291 kTestDir + utils::kStatefulPartition + "/etc/lsb-release", |
| 292 "CHROMEOS_RELEASE_BOARD=x86-generic\n" |
| 293 "CHROMEOS_RELEASE_TRACK=dev-channel\n" |
| 294 "CHROMEOS_AUSERVER=http://www.google.com")); |
| 295 params_.SetLockDown(true); |
| 296 OmahaRequestParams out; |
| 297 EXPECT_TRUE(DoTest(&out, "", "")); |
| 298 EXPECT_EQ("arm-generic", out.os_board); |
| 299 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); |
| 300 EXPECT_EQ("0.2.2.3", out.app_version); |
| 301 EXPECT_EQ("", out.hardware_class); |
| 302 EXPECT_FALSE(out.delta_okay); |
| 303 EXPECT_EQ("dev-channel", out.app_track); |
| 304 EXPECT_EQ("https://www.google.com", out.update_url); |
280 } | 305 } |
281 | 306 |
282 TEST_F(OmahaRequestDeviceParamsTest, OverrideSameTrackTest) { | 307 TEST_F(OmahaRequestDeviceParamsTest, OverrideSameTrackTest) { |
283 ASSERT_TRUE(WriteFileString( | 308 ASSERT_TRUE(WriteFileString( |
284 kTestDir + "/etc/lsb-release", | 309 kTestDir + "/etc/lsb-release", |
285 "CHROMEOS_RELEASE_BOARD=arm-generic\n" | 310 "CHROMEOS_RELEASE_BOARD=arm-generic\n" |
286 "CHROMEOS_RELEASE_FOO=bar\n" | 311 "CHROMEOS_RELEASE_FOO=bar\n" |
287 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" | 312 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" |
288 "CHROMEOS_RELEASE_TRACK=footrack\n" | 313 "CHROMEOS_RELEASE_TRACK=footrack\n" |
289 "CHROMEOS_AUSERVER=http://www.google.com")); | 314 "CHROMEOS_AUSERVER=http://www.google.com")); |
290 ASSERT_TRUE(WriteFileString( | 315 ASSERT_TRUE(WriteFileString( |
291 kTestDir + utils::kStatefulPartition + "/etc/lsb-release", | 316 kTestDir + utils::kStatefulPartition + "/etc/lsb-release", |
292 "CHROMEOS_RELEASE_BOARD=x86-generic\n" | 317 "CHROMEOS_RELEASE_BOARD=x86-generic\n" |
293 "CHROMEOS_RELEASE_TRACK=footrack")); | 318 "CHROMEOS_RELEASE_TRACK=footrack")); |
294 OmahaRequestParams out; | 319 OmahaRequestParams out; |
295 EXPECT_TRUE(DoTest(&out, "", "")); | 320 EXPECT_TRUE(DoTest(&out, "", "")); |
296 EXPECT_EQ("Chrome OS", out.os_platform); | |
297 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp); | |
298 EXPECT_EQ("x86-generic", out.os_board); | 321 EXPECT_EQ("x86-generic", out.os_board); |
299 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); | 322 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); |
300 EXPECT_EQ("0.2.2.3", out.app_version); | 323 EXPECT_EQ("0.2.2.3", out.app_version); |
301 EXPECT_EQ("en-US", out.app_lang); | |
302 EXPECT_EQ("", out.hardware_class); | 324 EXPECT_EQ("", out.hardware_class); |
303 EXPECT_TRUE(out.delta_okay); | 325 EXPECT_TRUE(out.delta_okay); |
304 EXPECT_EQ("footrack", out.app_track); | 326 EXPECT_EQ("footrack", out.app_track); |
305 EXPECT_EQ("http://www.google.com", out.update_url); | 327 EXPECT_EQ("http://www.google.com", out.update_url); |
306 } | 328 } |
307 | 329 |
308 TEST_F(OmahaRequestDeviceParamsTest, SetTrackSimpleTest) { | 330 TEST_F(OmahaRequestDeviceParamsTest, SetTrackSimpleTest) { |
309 ASSERT_TRUE(WriteFileString( | 331 ASSERT_TRUE(WriteFileString( |
310 kTestDir + "/etc/lsb-release", | 332 kTestDir + "/etc/lsb-release", |
311 "CHROMEOS_RELEASE_BOARD=arm-generic\n" | 333 "CHROMEOS_RELEASE_BOARD=arm-generic\n" |
312 "CHROMEOS_RELEASE_FOO=bar\n" | 334 "CHROMEOS_RELEASE_FOO=bar\n" |
313 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" | 335 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" |
314 "CHROMEOS_RELEASE_TRACK=footrack\n" | 336 "CHROMEOS_RELEASE_TRACK=footrack\n" |
315 "CHROMEOS_AUSERVER=http://www.google.com")); | 337 "CHROMEOS_AUSERVER=http://www.google.com")); |
316 { | 338 { |
317 OmahaRequestDeviceParams params; | 339 OmahaRequestDeviceParams params; |
318 params.set_root(string("./") + kTestDir); | 340 params.set_root(string("./") + kTestDir); |
319 params.SetBuildTypeOfficial(false); | 341 params.SetLockDown(false); |
320 EXPECT_TRUE(params.Init("", "")); | 342 EXPECT_TRUE(params.Init("", "")); |
321 params.SetTrack("zootrack"); | 343 params.SetTrack("zootrack"); |
322 } | 344 } |
323 OmahaRequestParams out; | 345 OmahaRequestParams out; |
324 EXPECT_TRUE(DoTest(&out, "", "")); | 346 EXPECT_TRUE(DoTest(&out, "", "")); |
325 EXPECT_EQ("arm-generic", out.os_board); | 347 EXPECT_EQ("arm-generic", out.os_board); |
326 EXPECT_EQ("zootrack", out.app_track); | 348 EXPECT_EQ("zootrack", out.app_track); |
327 } | 349 } |
328 | 350 |
329 TEST_F(OmahaRequestDeviceParamsTest, SetTrackPreserveTest) { | 351 TEST_F(OmahaRequestDeviceParamsTest, SetTrackPreserveTest) { |
330 ASSERT_TRUE(WriteFileString( | 352 ASSERT_TRUE(WriteFileString( |
331 kTestDir + "/etc/lsb-release", | 353 kTestDir + "/etc/lsb-release", |
332 "CHROMEOS_RELEASE_BOARD=arm-generic\n" | 354 "CHROMEOS_RELEASE_BOARD=arm-generic\n" |
333 "CHROMEOS_RELEASE_FOO=bar\n" | 355 "CHROMEOS_RELEASE_FOO=bar\n" |
334 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" | 356 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" |
335 "CHROMEOS_RELEASE_TRACK=footrack\n" | 357 "CHROMEOS_RELEASE_TRACK=footrack\n" |
336 "CHROMEOS_AUSERVER=http://www.google.com")); | 358 "CHROMEOS_AUSERVER=http://www.google.com")); |
337 ASSERT_TRUE(WriteFileString( | 359 ASSERT_TRUE(WriteFileString( |
338 kTestDir + utils::kStatefulPartition + "/etc/lsb-release", | 360 kTestDir + utils::kStatefulPartition + "/etc/lsb-release", |
339 "CHROMEOS_RELEASE_BOARD=x86-generic\n" | 361 "CHROMEOS_RELEASE_BOARD=x86-generic\n" |
340 "CHROMEOS_RELEASE_TRACK=bartrack")); | 362 "CHROMEOS_RELEASE_TRACK=bartrack")); |
341 { | 363 { |
342 OmahaRequestDeviceParams params; | 364 OmahaRequestDeviceParams params; |
343 params.set_root(string("./") + kTestDir); | 365 params.set_root(string("./") + kTestDir); |
344 params.SetBuildTypeOfficial(false); | 366 params.SetLockDown(false); |
345 EXPECT_TRUE(params.Init("", "")); | 367 EXPECT_TRUE(params.Init("", "")); |
346 params.SetTrack("zootrack"); | 368 params.SetTrack("zootrack"); |
347 } | 369 } |
348 OmahaRequestParams out; | 370 OmahaRequestParams out; |
349 EXPECT_TRUE(DoTest(&out, "", "")); | 371 EXPECT_TRUE(DoTest(&out, "", "")); |
350 EXPECT_EQ("x86-generic", out.os_board); | 372 EXPECT_EQ("x86-generic", out.os_board); |
351 EXPECT_EQ("zootrack", out.app_track); | 373 EXPECT_EQ("zootrack", out.app_track); |
352 } | 374 } |
353 | 375 |
354 TEST_F(OmahaRequestDeviceParamsTest, SetTrackInvalidTest) { | 376 TEST_F(OmahaRequestDeviceParamsTest, SetTrackInvalidTest) { |
355 ASSERT_TRUE(WriteFileString( | 377 ASSERT_TRUE(WriteFileString( |
356 kTestDir + "/etc/lsb-release", | 378 kTestDir + "/etc/lsb-release", |
357 "CHROMEOS_RELEASE_BOARD=arm-generic\n" | 379 "CHROMEOS_RELEASE_BOARD=arm-generic\n" |
358 "CHROMEOS_RELEASE_FOO=bar\n" | 380 "CHROMEOS_RELEASE_FOO=bar\n" |
359 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" | 381 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" |
360 "CHROMEOS_RELEASE_TRACK=footrack\n" | 382 "CHROMEOS_RELEASE_TRACK=footrack\n" |
361 "CHROMEOS_AUSERVER=http://www.google.com")); | 383 "CHROMEOS_AUSERVER=http://www.google.com")); |
362 { | 384 { |
363 OmahaRequestDeviceParams params; | 385 OmahaRequestDeviceParams params; |
364 params.set_root(string("./") + kTestDir); | 386 params.set_root(string("./") + kTestDir); |
365 params.SetBuildTypeOfficial(true); | 387 params.SetLockDown(true); |
366 EXPECT_TRUE(params.Init("", "")); | 388 EXPECT_TRUE(params.Init("", "")); |
367 params.SetTrack("zootrack"); | 389 params.SetTrack("zootrack"); |
368 } | 390 } |
369 OmahaRequestParams out; | 391 OmahaRequestParams out; |
370 EXPECT_TRUE(DoTest(&out, "", "")); | 392 EXPECT_TRUE(DoTest(&out, "", "")); |
371 EXPECT_EQ("arm-generic", out.os_board); | 393 EXPECT_EQ("arm-generic", out.os_board); |
372 EXPECT_EQ("footrack", out.app_track); | 394 EXPECT_EQ("footrack", out.app_track); |
373 } | 395 } |
374 | 396 |
375 TEST_F(OmahaRequestDeviceParamsTest, IsValidTrackTest) { | 397 TEST_F(OmahaRequestDeviceParamsTest, IsValidTrackTest) { |
376 params_.SetBuildTypeOfficial(true); | 398 params_.SetLockDown(true); |
377 EXPECT_TRUE(params_.IsValidTrack("canary-channel")); | 399 EXPECT_TRUE(params_.IsValidTrack("canary-channel")); |
378 EXPECT_TRUE(params_.IsValidTrack("beta-channel")); | 400 EXPECT_TRUE(params_.IsValidTrack("beta-channel")); |
379 EXPECT_TRUE(params_.IsValidTrack("dev-channel")); | 401 EXPECT_TRUE(params_.IsValidTrack("dev-channel")); |
380 EXPECT_FALSE(params_.IsValidTrack("some-channel")); | 402 EXPECT_FALSE(params_.IsValidTrack("some-channel")); |
381 EXPECT_FALSE(params_.IsValidTrack("")); | 403 EXPECT_FALSE(params_.IsValidTrack("")); |
382 params_.SetBuildTypeOfficial(false); | 404 params_.SetLockDown(false); |
383 EXPECT_TRUE(params_.IsValidTrack("canary-channel")); | 405 EXPECT_TRUE(params_.IsValidTrack("canary-channel")); |
384 EXPECT_TRUE(params_.IsValidTrack("beta-channel")); | 406 EXPECT_TRUE(params_.IsValidTrack("beta-channel")); |
385 EXPECT_TRUE(params_.IsValidTrack("dev-channel")); | 407 EXPECT_TRUE(params_.IsValidTrack("dev-channel")); |
386 EXPECT_TRUE(params_.IsValidTrack("some-channel")); | 408 EXPECT_TRUE(params_.IsValidTrack("some-channel")); |
387 EXPECT_TRUE(params_.IsValidTrack("")); | 409 EXPECT_TRUE(params_.IsValidTrack("")); |
388 } | 410 } |
389 | 411 |
390 TEST_F(OmahaRequestDeviceParamsTest, InvalidTrackTest) { | |
391 ASSERT_TRUE(WriteFileString( | |
392 kTestDir + "/etc/lsb-release", | |
393 "CHROMEOS_RELEASE_BOARD=arm-generic\n" | |
394 "CHROMEOS_RELEASE_FOO=bar\n" | |
395 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" | |
396 "CHROMEOS_RELEASE_TRACK=footrack\n" | |
397 "CHROMEOS_AUSERVER=http://www.google.com")); | |
398 params_.SetBuildTypeOfficial(true); | |
399 OmahaRequestParams out; | |
400 EXPECT_TRUE(DoTest(&out, "", "")); | |
401 EXPECT_EQ("Chrome OS", out.os_platform); | |
402 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp); | |
403 EXPECT_EQ("arm-generic", out.os_board); | |
404 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); | |
405 EXPECT_EQ("0.2.2.3", out.app_version); | |
406 EXPECT_EQ("en-US", out.app_lang); | |
407 EXPECT_EQ("", out.hardware_class); | |
408 EXPECT_TRUE(out.delta_okay); | |
409 EXPECT_EQ("", out.app_track); | |
410 EXPECT_EQ("http://www.google.com", out.update_url); | |
411 } | |
412 | |
413 TEST_F(OmahaRequestDeviceParamsTest, ValidTrackTest) { | 412 TEST_F(OmahaRequestDeviceParamsTest, ValidTrackTest) { |
414 ASSERT_TRUE(WriteFileString( | 413 ASSERT_TRUE(WriteFileString( |
415 kTestDir + "/etc/lsb-release", | 414 kTestDir + "/etc/lsb-release", |
416 "CHROMEOS_RELEASE_BOARD=arm-generic\n" | 415 "CHROMEOS_RELEASE_BOARD=arm-generic\n" |
417 "CHROMEOS_RELEASE_FOO=bar\n" | 416 "CHROMEOS_RELEASE_FOO=bar\n" |
418 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" | 417 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" |
419 "CHROMEOS_RELEASE_TRACK=dev-channel\n" | 418 "CHROMEOS_RELEASE_TRACK=dev-channel\n" |
420 "CHROMEOS_AUSERVER=http://www.google.com")); | 419 "CHROMEOS_AUSERVER=http://www.google.com")); |
421 params_.SetBuildTypeOfficial(true); | 420 params_.SetLockDown(true); |
422 OmahaRequestParams out; | 421 OmahaRequestParams out; |
423 EXPECT_TRUE(DoTest(&out, "", "")); | 422 EXPECT_TRUE(DoTest(&out, "", "")); |
424 EXPECT_EQ("Chrome OS", out.os_platform); | 423 EXPECT_EQ("Chrome OS", out.os_platform); |
425 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp); | 424 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp); |
426 EXPECT_EQ("arm-generic", out.os_board); | 425 EXPECT_EQ("arm-generic", out.os_board); |
427 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); | 426 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); |
428 EXPECT_EQ("0.2.2.3", out.app_version); | 427 EXPECT_EQ("0.2.2.3", out.app_version); |
429 EXPECT_EQ("en-US", out.app_lang); | 428 EXPECT_EQ("en-US", out.app_lang); |
430 EXPECT_EQ("", out.hardware_class); | 429 EXPECT_EQ("", out.hardware_class); |
431 EXPECT_TRUE(out.delta_okay); | 430 EXPECT_TRUE(out.delta_okay); |
432 EXPECT_EQ("dev-channel", out.app_track); | 431 EXPECT_EQ("dev-channel", out.app_track); |
433 EXPECT_EQ("http://www.google.com", out.update_url); | 432 EXPECT_EQ("http://www.google.com", out.update_url); |
434 } | 433 } |
435 | 434 |
| 435 TEST_F(OmahaRequestDeviceParamsTest, ShouldLockDownTest) { |
| 436 EXPECT_FALSE(params_.ShouldLockDown()); |
| 437 } |
| 438 |
436 } // namespace chromeos_update_engine | 439 } // namespace chromeos_update_engine |
OLD | NEW |