Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(321)

Side by Side Diff: omaha_request_params_unittest.cc

Issue 6225001: AU: Don't allow stateful /etc/lsb-release override in normal boot mode... (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/update_engine.git@master
Patch Set: ShouldLockDown and no rootfs track validation Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « omaha_request_params.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « omaha_request_params.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698