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