omaha_request_params_unittest.cc revision 39910dcd1d68987ccee7c3031dc269233a8490bb
1aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 2aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Copyright (C) 2011 The Android Open Source Project 3aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 4aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Licensed under the Apache License, Version 2.0 (the "License"); 5aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// you may not use this file except in compliance with the License. 6aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// You may obtain a copy of the License at 7aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 8aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// http://www.apache.org/licenses/LICENSE-2.0 9aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 10aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// Unless required by applicable law or agreed to in writing, software 11aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// distributed under the License is distributed on an "AS IS" BASIS, 12aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// See the License for the specific language governing permissions and 14aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// limitations under the License. 15aea4c1cea20dda7ae7e85fc8924a2d784f70d806Alex Deymo// 163defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 178427b4a6d0e6e02beedbb53798272f8ddc39386fAlex Deymo#include "update_engine/omaha_request_params.h" 188427b4a6d0e6e02beedbb53798272f8ddc39386fAlex Deymo 193defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com#include <stdio.h> 20fbb40098314ab45efa60667ad7ccae354c4f18daDarin Petkov 213defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com#include <string> 22fbb40098314ab45efa60667ad7ccae354c4f18daDarin Petkov 238427b4a6d0e6e02beedbb53798272f8ddc39386fAlex Deymo#include <base/files/file_util.h> 248427b4a6d0e6e02beedbb53798272f8ddc39386fAlex Deymo#include <gtest/gtest.h> 258427b4a6d0e6e02beedbb53798272f8ddc39386fAlex Deymo 2639910dcd1d68987ccee7c3031dc269233a8490bbAlex Deymo#include "update_engine/common/constants.h" 2739910dcd1d68987ccee7c3031dc269233a8490bbAlex Deymo#include "update_engine/common/platform_constants.h" 2839910dcd1d68987ccee7c3031dc269233a8490bbAlex Deymo#include "update_engine/common/test_utils.h" 2939910dcd1d68987ccee7c3031dc269233a8490bbAlex Deymo#include "update_engine/common/utils.h" 305bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold#include "update_engine/fake_system_state.h" 3139910dcd1d68987ccee7c3031dc269233a8490bbAlex Deymo#include "update_engine/payload_consumer/install_plan.h" 323defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 3310875d90cf67f883ba7c9ed13bc8d706aa8c6fbcAlex Deymousing chromeos_update_engine::test_utils::WriteFileString; 343defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.comusing std::string; 353defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 363defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.comnamespace chromeos_update_engine { 373defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 38ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasanclass OmahaRequestParamsTest : public ::testing::Test { 39ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan public: 405bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParamsTest() : params_(&fake_system_state_) {} 41ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan 425a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov protected: 43ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // Return true iff the OmahaRequestParams::Init succeeded. If 4488b591f24cb3f94f982d7024c2e8ed25c2cc26a2Alex Vakulenko // out is non-null, it's set w/ the generated data. 455a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov bool DoTest(OmahaRequestParams* out, const string& app_version, 465a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov const string& omaha_url); 475a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov 48610277efc6f7e5239158dfa4bb3b1021804326e0Alex Deymo void SetUp() override { 49c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold // Create a uniquely named test directory. 50856166594771c61973856f563e622ccb7dd48aa1Alex Deymo ASSERT_TRUE(utils::MakeTempDirectory(kTestDirTemplate, &test_dir_)); 51856166594771c61973856f563e622ccb7dd48aa1Alex Deymo EXPECT_TRUE(base::CreateDirectory(base::FilePath(test_dir_ + "/etc"))); 52856166594771c61973856f563e622ccb7dd48aa1Alex Deymo EXPECT_TRUE(base::CreateDirectory( 53856166594771c61973856f563e622ccb7dd48aa1Alex Deymo base::FilePath(test_dir_ + kStatefulPartition + "/etc"))); 54ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // Create a fresh copy of the params for each test, so there's no 55ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // unintended reuse of state across tests. 565bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams new_params(&fake_system_state_); 57ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan params_ = new_params; 58d04f8e24716d5acca6a7d116b63851adc1506845Gilad Arnold params_.set_root(test_dir_); 59856166594771c61973856f563e622ccb7dd48aa1Alex Deymo SetLockDown(false); 605a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov } 615a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov 62610277efc6f7e5239158dfa4bb3b1021804326e0Alex Deymo void TearDown() override { 63856166594771c61973856f563e622ccb7dd48aa1Alex Deymo EXPECT_TRUE(base::DeleteFile(base::FilePath(test_dir_), true)); 64856166594771c61973856f563e622ccb7dd48aa1Alex Deymo } 65856166594771c61973856f563e622ccb7dd48aa1Alex Deymo 66856166594771c61973856f563e622ccb7dd48aa1Alex Deymo void SetLockDown(bool locked_down) { 67856166594771c61973856f563e622ccb7dd48aa1Alex Deymo fake_system_state_.fake_hardware()->SetIsOfficialBuild(locked_down); 68856166594771c61973856f563e622ccb7dd48aa1Alex Deymo fake_system_state_.fake_hardware()->SetIsNormalBootMode(locked_down); 695a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov } 705a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov 71ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan OmahaRequestParams params_; 725bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold FakeSystemState fake_system_state_; 7349d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov 74c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold static const char* kTestDirTemplate; 75c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold string test_dir_; 763defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com}; 773defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 78c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnoldconst char* OmahaRequestParamsTest::kTestDirTemplate = 79c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold "omaha_request_params-test-XXXXXX"; 803defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 81ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasanbool OmahaRequestParamsTest::DoTest(OmahaRequestParams* out, 82ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan const string& app_version, 83ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan const string& omaha_url) { 84ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan bool success = params_.Init(app_version, omaha_url, false); 853defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com if (out) 8649d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov *out = params_; 87a4a8a8ccc2d9e0285728ed247b43f09433e63323Darin Petkov return success; 883defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com} 893defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 903defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.comnamespace { 913defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.comstring GetMachineType() { 9219a45f0eda0917b7788b925b501e774208474fdeGilad Arnold string machine_type; 9319a45f0eda0917b7788b925b501e774208474fdeGilad Arnold if (!utils::ReadPipe("uname -m", &machine_type)) 943defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com return ""; 9519a45f0eda0917b7788b925b501e774208474fdeGilad Arnold // Strip anything from the first newline char. 9619a45f0eda0917b7788b925b501e774208474fdeGilad Arnold size_t newline_pos = machine_type.find('\n'); 9719a45f0eda0917b7788b925b501e774208474fdeGilad Arnold if (newline_pos != string::npos) 9819a45f0eda0917b7788b925b501e774208474fdeGilad Arnold machine_type.erase(newline_pos); 9919a45f0eda0917b7788b925b501e774208474fdeGilad Arnold return machine_type; 1003defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com} 101d2779df63aaad8b65fc5d4badee7dbc9bed7f2b6Alex Vakulenko} // namespace 1023defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 103ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, SimpleTest) { 1045a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov ASSERT_TRUE(WriteFileString( 105c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 1065a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 1075a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 1085a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 109ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel\n" 1105a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 1115bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 1125a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 113ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 114ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp()); 115ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("arm-generic", out.os_board()); 116db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 117ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 118ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 1195bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid()); 120ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.delta_okay()); 121ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", out.target_channel()); 122ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("http://www.google.com", out.update_url()); 1233defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com} 1243defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 125ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, AppIDTest) { 126d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov ASSERT_TRUE(WriteFileString( 127c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 128d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 129d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 130d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 131ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel\n" 132d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov "CHROMEOS_RELEASE_APPID={58c35cef-9d30-476e-9098-ce20377d535d}\n" 133d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 1345bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 135d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 136ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 137ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp()); 138ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("arm-generic", out.os_board()); 139db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{58c35cef-9d30-476e-9098-ce20377d535d}", out.GetAppId()); 140ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 141ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 1425bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid()); 143ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.delta_okay()); 144ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", out.target_channel()); 145ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("http://www.google.com", out.update_url()); 146d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov} 147d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov 148ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, MissingChannelTest) { 1495a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov ASSERT_TRUE(WriteFileString( 150c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 1515a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 1525a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 153ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRXCK=dev-channel")); 1545bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 1555a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 156ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 157ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp()); 158db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 159ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 160ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 161856166594771c61973856f563e622ccb7dd48aa1Alex Deymo // By default, if no channel is set, we should track the stable-channel. 162856166594771c61973856f563e622ccb7dd48aa1Alex Deymo EXPECT_EQ("stable-channel", out.target_channel()); 1633defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com} 1643defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 165ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, ConfusingReleaseTest) { 1665a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov ASSERT_TRUE(WriteFileString( 167c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 1685a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_FOO=CHROMEOS_RELEASE_VERSION=1.2.3.4\n" 1695a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 170ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRXCK=dev-channel")); 1715bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 1725a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 173ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 174ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp()); 175db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 176ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 177ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 178856166594771c61973856f563e622ccb7dd48aa1Alex Deymo EXPECT_EQ("stable-channel", out.target_channel()); 1793defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com} 1803defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 181ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, MissingVersionTest) { 1825a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov ASSERT_TRUE(WriteFileString( 183c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 1845a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 1855a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 186ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel")); 1875bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 1885a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 189ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 190ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("_") + GetMachineType(), out.os_sp()); 191ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("arm-generic", out.os_board()); 192db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 193ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("", out.app_version()); 194ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 195ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.delta_okay()); 196ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", out.target_channel()); 1975a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov} 1985a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov 199ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, ForceVersionTest) { 2005a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov ASSERT_TRUE(WriteFileString( 201c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 2025a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 2035a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 204ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel")); 2055bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 2065a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov EXPECT_TRUE(DoTest(&out, "ForcedVersion", "")); 207ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 208ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("ForcedVersion_") + GetMachineType(), out.os_sp()); 209ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("arm-generic", out.os_board()); 210db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 211ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("ForcedVersion", out.app_version()); 212ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 213ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.delta_okay()); 214ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", out.target_channel()); 2155a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov} 2165a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov 217ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, ForcedURLTest) { 2185a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov ASSERT_TRUE(WriteFileString( 219c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 2205a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 2215a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 2225a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 223ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel")); 2245bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 2255a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov EXPECT_TRUE(DoTest(&out, "", "http://forced.google.com")); 226ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 227ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp()); 228ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("arm-generic", out.os_board()); 229db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 230ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 231ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 232ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.delta_okay()); 233ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", out.target_channel()); 234ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("http://forced.google.com", out.update_url()); 2355a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov} 2365a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov 237ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, MissingURLTest) { 2385a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov ASSERT_TRUE(WriteFileString( 239c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 2405a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 2415a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 2425a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 243ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel")); 2445bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 2455a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 246ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 247ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp()); 248ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("arm-generic", out.os_board()); 249db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 250ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 251ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 252ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.delta_okay()); 253ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", out.target_channel()); 254ac41a82e4be1be43913292d13d58b5eb2c572f53Alex Deymo EXPECT_EQ(constants::kOmahaDefaultProductionURL, out.update_url()); 255970bb28905b44bf9f2cb986bb412ecda1095b0b1Andrew de los Reyes} 256970bb28905b44bf9f2cb986bb412ecda1095b0b1Andrew de los Reyes 257ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, NoDeltasTest) { 2583f0303aa211e2de2d466cef063ff6f39fffe32ddAndrew de los Reyes ASSERT_TRUE(WriteFileString( 259c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 2603f0303aa211e2de2d466cef063ff6f39fffe32ddAndrew de los Reyes "CHROMEOS_RELEASE_FOO=CHROMEOS_RELEASE_VERSION=1.2.3.4\n" 2613f0303aa211e2de2d466cef063ff6f39fffe32ddAndrew de los Reyes "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 262ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRXCK=dev-channel")); 263c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold ASSERT_TRUE(WriteFileString(test_dir_ + "/.nodelta", "")); 2645bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 2655a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 266ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(out.delta_okay()); 2673f0303aa211e2de2d466cef063ff6f39fffe32ddAndrew de los Reyes} 2683f0303aa211e2de2d466cef063ff6f39fffe32ddAndrew de los Reyes 269ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, OverrideTest) { 27049d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov ASSERT_TRUE(WriteFileString( 271c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 27249d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 27349d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 27449d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 275ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel\n" 27649d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 27749d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov ASSERT_TRUE(WriteFileString( 278c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + kStatefulPartition + "/etc/lsb-release", 27949d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_BOARD=x86-generic\n" 280ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=beta-channel\n" 28110d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov "CHROMEOS_AUSERVER=https://www.google.com")); 2825bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 28349d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 284ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 285ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp()); 286ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("x86-generic", out.os_board()); 287db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 288ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 289ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 2905bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid()); 291ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(out.delta_okay()); 292ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("beta-channel", out.target_channel()); 293ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("https://www.google.com", out.update_url()); 29410d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov} 29510d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov 296ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, OverrideLockDownTest) { 29710d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov ASSERT_TRUE(WriteFileString( 298c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 29910d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 30010d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 30110d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 302ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel\n" 30310d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov "CHROMEOS_AUSERVER=https://www.google.com")); 30410d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov ASSERT_TRUE(WriteFileString( 305c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + kStatefulPartition + "/etc/lsb-release", 30610d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov "CHROMEOS_RELEASE_BOARD=x86-generic\n" 307ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=stable-channel\n" 30810d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 309856166594771c61973856f563e622ccb7dd48aa1Alex Deymo SetLockDown(true); 3105bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 31110d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 312ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("arm-generic", out.os_board()); 313db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 314ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 3155bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid()); 316ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(out.delta_okay()); 317ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("stable-channel", out.target_channel()); 318ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("https://www.google.com", out.update_url()); 31949d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov} 32049d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov 321ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, OverrideSameChannelTest) { 322a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov ASSERT_TRUE(WriteFileString( 323c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 324a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 325a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 326a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 327ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel\n" 328a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 329a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov ASSERT_TRUE(WriteFileString( 330c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + kStatefulPartition + "/etc/lsb-release", 331a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov "CHROMEOS_RELEASE_BOARD=x86-generic\n" 332ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel")); 3335bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 334a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 335ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("x86-generic", out.os_board()); 336db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 337ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 3385bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid()); 339ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.delta_okay()); 340ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", out.target_channel()); 341ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("http://www.google.com", out.update_url()); 342a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov} 343a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov 344ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, SetTargetChannelTest) { 34549d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov ASSERT_TRUE(WriteFileString( 346c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 34749d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 34849d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 34949d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 350ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel\n" 35149d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 35249d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov { 3535bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams params(&fake_system_state_); 354d04f8e24716d5acca6a7d116b63851adc1506845Gilad Arnold params.set_root(test_dir_); 355ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params.Init("", "", false)); 356d942f9d3c8529f896329b19261df6eba044de1b2Alex Deymo params.SetTargetChannel("canary-channel", false, nullptr); 357ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(params.is_powerwash_allowed()); 35849d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov } 3595bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 3603be05c82442b2fbab693b6399f64610e8542462bAlex Deymo out.set_root(test_dir_); 36149d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 362ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("canary-channel", out.target_channel()); 363ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(out.is_powerwash_allowed()); 36449d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov} 36549d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov 366ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, SetIsPowerwashAllowedTest) { 36749d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov ASSERT_TRUE(WriteFileString( 368c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 36949d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 37049d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 37149d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 372ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel\n" 37349d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 37449d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov { 3755bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams params(&fake_system_state_); 376d04f8e24716d5acca6a7d116b63851adc1506845Gilad Arnold params.set_root(test_dir_); 377ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params.Init("", "", false)); 378d942f9d3c8529f896329b19261df6eba044de1b2Alex Deymo params.SetTargetChannel("canary-channel", true, nullptr); 379ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params.is_powerwash_allowed()); 38049d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov } 3815bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 3823be05c82442b2fbab693b6399f64610e8542462bAlex Deymo out.set_root(test_dir_); 38349d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 384ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("canary-channel", out.target_channel()); 385ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.is_powerwash_allowed()); 38649d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov} 38749d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov 388ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, SetTargetChannelInvalidTest) { 38949d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov ASSERT_TRUE(WriteFileString( 390c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 39149d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 39249d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 39349d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 394ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel\n" 39549d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 39649d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov { 3975bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams params(&fake_system_state_); 398856166594771c61973856f563e622ccb7dd48aa1Alex Deymo params.set_root(test_dir_); 399856166594771c61973856f563e622ccb7dd48aa1Alex Deymo SetLockDown(true); 400ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params.Init("", "", false)); 401d942f9d3c8529f896329b19261df6eba044de1b2Alex Deymo string error_message; 402d942f9d3c8529f896329b19261df6eba044de1b2Alex Deymo EXPECT_FALSE( 403d942f9d3c8529f896329b19261df6eba044de1b2Alex Deymo params.SetTargetChannel("dogfood-channel", true, &error_message)); 404d942f9d3c8529f896329b19261df6eba044de1b2Alex Deymo // The error message should include a message about the valid channels. 405d942f9d3c8529f896329b19261df6eba044de1b2Alex Deymo EXPECT_NE(string::npos, error_message.find("stable-channel")); 406ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(params.is_powerwash_allowed()); 40749d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov } 4085bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 4093be05c82442b2fbab693b6399f64610e8542462bAlex Deymo out.set_root(test_dir_); 41049d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 411ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("arm-generic", out.os_board()); 412ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", out.target_channel()); 413ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(out.is_powerwash_allowed()); 41449d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov} 41549d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov 416ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, IsValidChannelTest) { 417ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params_.IsValidChannel("canary-channel")); 418ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params_.IsValidChannel("stable-channel")); 419ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params_.IsValidChannel("beta-channel")); 420ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params_.IsValidChannel("dev-channel")); 421ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(params_.IsValidChannel("testimage-channel")); 422ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(params_.IsValidChannel("dogfood-channel")); 423ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(params_.IsValidChannel("some-channel")); 424ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(params_.IsValidChannel("")); 42549d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov} 42649d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov 427ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, ValidChannelTest) { 42849d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov ASSERT_TRUE(WriteFileString( 429c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 43049d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 43149d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 43249d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 43349d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_TRACK=dev-channel\n" 43449d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 435856166594771c61973856f563e622ccb7dd48aa1Alex Deymo SetLockDown(true); 4365bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 43749d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 438ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 439ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp()); 440ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("arm-generic", out.os_board()); 441db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 442ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 443ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 4445bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid()); 445ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.delta_okay()); 446ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", out.target_channel()); 447ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("http://www.google.com", out.update_url()); 44849d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov} 44949d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov 450ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, SetTargetChannelWorks) { 4517fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy ASSERT_TRUE(WriteFileString( 452c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 4537fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy "CHROMEOS_RELEASE_BOARD=arm-generic\n" 4547fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy "CHROMEOS_RELEASE_FOO=bar\n" 4557fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 4567fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy "CHROMEOS_RELEASE_TRACK=dev-channel\n" 4577fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy "CHROMEOS_AUSERVER=http://www.google.com")); 458ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan 459ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // Check LSB value is used by default when SetTargetChannel is not called. 460ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan params_.Init("", "", false); 461ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", params_.target_channel()); 462ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan 463ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // When an invalid value is set, it should be ignored and the 464ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // value from lsb-release should be used instead. 465ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan params_.Init("", "", false); 466d942f9d3c8529f896329b19261df6eba044de1b2Alex Deymo EXPECT_FALSE(params_.SetTargetChannel("invalid-channel", false, nullptr)); 467ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", params_.target_channel()); 468ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan 469ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // When set to a valid value, it should take effect. 470ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan params_.Init("", "", false); 471d942f9d3c8529f896329b19261df6eba044de1b2Alex Deymo EXPECT_TRUE(params_.SetTargetChannel("beta-channel", true, nullptr)); 472ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("beta-channel", params_.target_channel()); 473ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan 474ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // When set to the same value, it should be idempotent. 475ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan params_.Init("", "", false); 476d942f9d3c8529f896329b19261df6eba044de1b2Alex Deymo EXPECT_TRUE(params_.SetTargetChannel("beta-channel", true, nullptr)); 477ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("beta-channel", params_.target_channel()); 478ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan 479ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // When set to a valid value while a change is already pending, it should 4801c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan // succeed. 481ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan params_.Init("", "", false); 482d942f9d3c8529f896329b19261df6eba044de1b2Alex Deymo EXPECT_TRUE(params_.SetTargetChannel("stable-channel", true, nullptr)); 4831c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan EXPECT_EQ("stable-channel", params_.target_channel()); 4841c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan 4851c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan // Set a different channel in stateful LSB release. 4861c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan ASSERT_TRUE(WriteFileString( 487c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + kStatefulPartition + "/etc/lsb-release", 4881c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan "CHROMEOS_RELEASE_TRACK=stable-channel\n" 4891c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan "CHROMEOS_IS_POWERWASH_ALLOWED=true\n")); 4901c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan 4911c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan // When set to a valid value while a change is already pending, it should 4921c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan // succeed. 4931c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan params_.Init("", "", false); 494d942f9d3c8529f896329b19261df6eba044de1b2Alex Deymo EXPECT_TRUE(params_.SetTargetChannel("beta-channel", true, nullptr)); 4951c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan // The target channel should reflect the change, but the download channel 4961c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan // should continue to retain the old value ... 4971c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan EXPECT_EQ("beta-channel", params_.target_channel()); 4981c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan EXPECT_EQ("stable-channel", params_.download_channel()); 4991c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan 5001c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan // ... until we update the download channel explicitly. 5011c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan params_.UpdateDownloadChannel(); 5021c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan EXPECT_EQ("beta-channel", params_.download_channel()); 503ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("beta-channel", params_.target_channel()); 504ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan} 5057fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy 506ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, ChannelIndexTest) { 507ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan int canary = params_.GetChannelIndex("canary-channel"); 508ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan int dev = params_.GetChannelIndex("dev-channel"); 509ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan int beta = params_.GetChannelIndex("beta-channel"); 510ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan int stable = params_.GetChannelIndex("stable-channel"); 511ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_LE(canary, dev); 512ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_LE(dev, beta); 513ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_LE(beta, stable); 514ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan 515ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // testimage-channel or other names are not recognized, so index will be -1. 516ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan int testimage = params_.GetChannelIndex("testimage-channel"); 517ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan int bogus = params_.GetChannelIndex("bogus-channel"); 518ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(-1, testimage); 519ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(-1, bogus); 520ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan} 5217fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy 522ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, ToMoreStableChannelFlagTest) { 523ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan ASSERT_TRUE(WriteFileString( 524c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 525ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_BOARD=arm-generic\n" 526ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_FOO=bar\n" 527ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 528ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=canary-channel\n" 529ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_AUSERVER=http://www.google.com")); 530ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan ASSERT_TRUE(WriteFileString( 531c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + kStatefulPartition + "/etc/lsb-release", 532ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_BOARD=x86-generic\n" 533ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=stable-channel\n" 534ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_AUSERVER=https://www.google.com")); 5355bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 536ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(DoTest(&out, "", "")); 537ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("https://www.google.com", out.update_url()); 538ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(out.delta_okay()); 539ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("stable-channel", out.target_channel()); 540ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.to_more_stable_channel()); 5417fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy} 5427fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy 543db0acdfca1ea33987e8b29325f4594417d1fae57Jay SrinivasanTEST_F(OmahaRequestParamsTest, BoardAppIdUsedForNonCanaryChannelTest) { 544db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan ASSERT_TRUE(WriteFileString( 545c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 546db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_RELEASE_APPID=r\n" 547db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_BOARD_APPID=b\n" 548db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_CANARY_APPID=c\n" 549db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_RELEASE_TRACK=stable-channel\n")); 5505bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 551db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_TRUE(DoTest(&out, "", "")); 552db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("stable-channel", out.download_channel()); 553db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("b", out.GetAppId()); 554db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan} 555db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan 556db0acdfca1ea33987e8b29325f4594417d1fae57Jay SrinivasanTEST_F(OmahaRequestParamsTest, CanaryAppIdUsedForCanaryChannelTest) { 557db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan ASSERT_TRUE(WriteFileString( 558c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 559db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_RELEASE_APPID=r\n" 560db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_BOARD_APPID=b\n" 561db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_CANARY_APPID=c\n" 562db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_RELEASE_TRACK=canary-channel\n")); 5635bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 564db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_TRUE(DoTest(&out, "", "")); 565db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("canary-channel", out.download_channel()); 566db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("c", out.GetAppId()); 567db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan} 568db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan 569db0acdfca1ea33987e8b29325f4594417d1fae57Jay SrinivasanTEST_F(OmahaRequestParamsTest, ReleaseAppIdUsedAsDefaultTest) { 570db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan ASSERT_TRUE(WriteFileString( 571c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 572db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_RELEASE_APPID=r\n" 573db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_CANARY_APPID=c\n" 574db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_RELEASE_TRACK=stable-channel\n")); 5755bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 576db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_TRUE(DoTest(&out, "", "")); 577db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("stable-channel", out.download_channel()); 578db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("r", out.GetAppId()); 579db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan} 580db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan 581c1972483fa3446852b42ce97d1ea43b9caaaf56fChris SosaTEST_F(OmahaRequestParamsTest, CollectECFWVersionsTest) { 582c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa ASSERT_TRUE(WriteFileString( 583c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 584c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa "CHROMEOS_RELEASE_APPID=r\n" 585c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa "CHROMEOS_CANARY_APPID=c\n" 586c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa "CHROMEOS_RELEASE_TRACK=stable-channel\n")); 5875bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 588c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa out.hwid_ = string("STUMPY ALEX 12345"); 589c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa EXPECT_FALSE(out.CollectECFWVersions()); 590c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa 591c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa out.hwid_ = string("SNOW 12345"); 592c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa EXPECT_TRUE(out.CollectECFWVersions()); 593c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa 594c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa out.hwid_ = string("SAMS ALEX 12345"); 595c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa EXPECT_TRUE(out.CollectECFWVersions()); 596c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa} 597c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa 5983defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com} // namespace chromeos_update_engine 599