AU: Don't allow stateful /etc/lsb-release override in normal boot mode...
... on official images except for the release track.
BUG=chromium-os:6244
TEST=unit tests, tested on device
Change-Id: I2d2a634c7b5ac7dd4619f52d1f79b6d88c359e46
Review URL: http://codereview.chromium.org/6225001
diff --git a/omaha_request_params_unittest.cc b/omaha_request_params_unittest.cc
index fdbf96e..8f2d7c8 100644
--- a/omaha_request_params_unittest.cc
+++ b/omaha_request_params_unittest.cc
@@ -29,7 +29,7 @@
ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir +
utils::kStatefulPartition + "/etc"));
params_.set_root(string("./") + kTestDir);
- params_.SetBuildTypeOfficial(false);
+ params_.SetLockDown(false);
}
virtual void TearDown() {
@@ -264,7 +264,7 @@
kTestDir + utils::kStatefulPartition + "/etc/lsb-release",
"CHROMEOS_RELEASE_BOARD=x86-generic\n"
"CHROMEOS_RELEASE_TRACK=bartrack\n"
- "CHROMEOS_AUSERVER=http://www.google.com"));
+ "CHROMEOS_AUSERVER=https://www.google.com"));
OmahaRequestParams out;
EXPECT_TRUE(DoTest(&out, "", ""));
EXPECT_EQ("Chrome OS", out.os_platform);
@@ -276,7 +276,32 @@
EXPECT_EQ("", out.hardware_class);
EXPECT_FALSE(out.delta_okay);
EXPECT_EQ("bartrack", out.app_track);
- EXPECT_EQ("http://www.google.com", out.update_url);
+ EXPECT_EQ("https://www.google.com", out.update_url);
+}
+
+TEST_F(OmahaRequestDeviceParamsTest, OverrideLockDownTest) {
+ ASSERT_TRUE(WriteFileString(
+ kTestDir + "/etc/lsb-release",
+ "CHROMEOS_RELEASE_BOARD=arm-generic\n"
+ "CHROMEOS_RELEASE_FOO=bar\n"
+ "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
+ "CHROMEOS_RELEASE_TRACK=footrack\n"
+ "CHROMEOS_AUSERVER=https://www.google.com"));
+ ASSERT_TRUE(WriteFileString(
+ kTestDir + utils::kStatefulPartition + "/etc/lsb-release",
+ "CHROMEOS_RELEASE_BOARD=x86-generic\n"
+ "CHROMEOS_RELEASE_TRACK=dev-channel\n"
+ "CHROMEOS_AUSERVER=http://www.google.com"));
+ params_.SetLockDown(true);
+ OmahaRequestParams out;
+ EXPECT_TRUE(DoTest(&out, "", ""));
+ EXPECT_EQ("arm-generic", out.os_board);
+ EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id);
+ EXPECT_EQ("0.2.2.3", out.app_version);
+ EXPECT_EQ("", out.hardware_class);
+ EXPECT_FALSE(out.delta_okay);
+ EXPECT_EQ("dev-channel", out.app_track);
+ EXPECT_EQ("https://www.google.com", out.update_url);
}
TEST_F(OmahaRequestDeviceParamsTest, OverrideSameTrackTest) {
@@ -293,12 +318,9 @@
"CHROMEOS_RELEASE_TRACK=footrack"));
OmahaRequestParams out;
EXPECT_TRUE(DoTest(&out, "", ""));
- EXPECT_EQ("Chrome OS", out.os_platform);
- EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp);
EXPECT_EQ("x86-generic", out.os_board);
EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id);
EXPECT_EQ("0.2.2.3", out.app_version);
- EXPECT_EQ("en-US", out.app_lang);
EXPECT_EQ("", out.hardware_class);
EXPECT_TRUE(out.delta_okay);
EXPECT_EQ("footrack", out.app_track);
@@ -316,7 +338,7 @@
{
OmahaRequestDeviceParams params;
params.set_root(string("./") + kTestDir);
- params.SetBuildTypeOfficial(false);
+ params.SetLockDown(false);
EXPECT_TRUE(params.Init("", ""));
params.SetTrack("zootrack");
}
@@ -341,7 +363,7 @@
{
OmahaRequestDeviceParams params;
params.set_root(string("./") + kTestDir);
- params.SetBuildTypeOfficial(false);
+ params.SetLockDown(false);
EXPECT_TRUE(params.Init("", ""));
params.SetTrack("zootrack");
}
@@ -362,7 +384,7 @@
{
OmahaRequestDeviceParams params;
params.set_root(string("./") + kTestDir);
- params.SetBuildTypeOfficial(true);
+ params.SetLockDown(true);
EXPECT_TRUE(params.Init("", ""));
params.SetTrack("zootrack");
}
@@ -373,13 +395,13 @@
}
TEST_F(OmahaRequestDeviceParamsTest, IsValidTrackTest) {
- params_.SetBuildTypeOfficial(true);
+ params_.SetLockDown(true);
EXPECT_TRUE(params_.IsValidTrack("canary-channel"));
EXPECT_TRUE(params_.IsValidTrack("beta-channel"));
EXPECT_TRUE(params_.IsValidTrack("dev-channel"));
EXPECT_FALSE(params_.IsValidTrack("some-channel"));
EXPECT_FALSE(params_.IsValidTrack(""));
- params_.SetBuildTypeOfficial(false);
+ params_.SetLockDown(false);
EXPECT_TRUE(params_.IsValidTrack("canary-channel"));
EXPECT_TRUE(params_.IsValidTrack("beta-channel"));
EXPECT_TRUE(params_.IsValidTrack("dev-channel"));
@@ -387,29 +409,6 @@
EXPECT_TRUE(params_.IsValidTrack(""));
}
-TEST_F(OmahaRequestDeviceParamsTest, InvalidTrackTest) {
- ASSERT_TRUE(WriteFileString(
- kTestDir + "/etc/lsb-release",
- "CHROMEOS_RELEASE_BOARD=arm-generic\n"
- "CHROMEOS_RELEASE_FOO=bar\n"
- "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
- "CHROMEOS_RELEASE_TRACK=footrack\n"
- "CHROMEOS_AUSERVER=http://www.google.com"));
- params_.SetBuildTypeOfficial(true);
- OmahaRequestParams out;
- EXPECT_TRUE(DoTest(&out, "", ""));
- EXPECT_EQ("Chrome OS", out.os_platform);
- EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp);
- EXPECT_EQ("arm-generic", out.os_board);
- EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id);
- EXPECT_EQ("0.2.2.3", out.app_version);
- EXPECT_EQ("en-US", out.app_lang);
- EXPECT_EQ("", out.hardware_class);
- EXPECT_TRUE(out.delta_okay);
- EXPECT_EQ("", out.app_track);
- EXPECT_EQ("http://www.google.com", out.update_url);
-}
-
TEST_F(OmahaRequestDeviceParamsTest, ValidTrackTest) {
ASSERT_TRUE(WriteFileString(
kTestDir + "/etc/lsb-release",
@@ -418,7 +417,7 @@
"CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
"CHROMEOS_RELEASE_TRACK=dev-channel\n"
"CHROMEOS_AUSERVER=http://www.google.com"));
- params_.SetBuildTypeOfficial(true);
+ params_.SetLockDown(true);
OmahaRequestParams out;
EXPECT_TRUE(DoTest(&out, "", ""));
EXPECT_EQ("Chrome OS", out.os_platform);
@@ -433,4 +432,8 @@
EXPECT_EQ("http://www.google.com", out.update_url);
}
+TEST_F(OmahaRequestDeviceParamsTest, ShouldLockDownTest) {
+ EXPECT_FALSE(params_.ShouldLockDown());
+}
+
} // namespace chromeos_update_engine