omaha_request_params_unittest.cc revision 8427b4a6d0e6e02beedbb53798272f8ddc39386f
1f2065b4d77be793fe0a5b4280fe23433cbecaa1bDarin Petkov// Copyright (c) 2011 The Chromium OS Authors. All rights reserved. 23defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com// Use of this source code is governed by a BSD-style license that can be 33defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com// found in the LICENSE file. 43defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 58427b4a6d0e6e02beedbb53798272f8ddc39386fAlex Deymo#include "update_engine/omaha_request_params.h" 68427b4a6d0e6e02beedbb53798272f8ddc39386fAlex Deymo 73defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com#include <stdio.h> 8fbb40098314ab45efa60667ad7ccae354c4f18daDarin Petkov 93defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com#include <string> 10fbb40098314ab45efa60667ad7ccae354c4f18daDarin Petkov 118427b4a6d0e6e02beedbb53798272f8ddc39386fAlex Deymo#include <base/files/file_util.h> 128427b4a6d0e6e02beedbb53798272f8ddc39386fAlex Deymo#include <gtest/gtest.h> 138427b4a6d0e6e02beedbb53798272f8ddc39386fAlex Deymo 14be45bef9e283188b00e7def8967f81843669a7f1Chris Sosa#include "update_engine/constants.h" 155bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold#include "update_engine/fake_system_state.h" 163defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com#include "update_engine/install_plan.h" 173defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com#include "update_engine/test_utils.h" 183defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com#include "update_engine/utils.h" 193defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 203defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.comusing std::string; 213defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 223defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.comnamespace chromeos_update_engine { 233defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 24ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasanclass OmahaRequestParamsTest : public ::testing::Test { 25ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan public: 265bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParamsTest() : params_(&fake_system_state_) {} 27ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan 285a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov protected: 29ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // Return true iff the OmahaRequestParams::Init succeeded. If 3088b591f24cb3f94f982d7024c2e8ed25c2cc26a2Alex Vakulenko // out is non-null, it's set w/ the generated data. 315a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov bool DoTest(OmahaRequestParams* out, const string& app_version, 325a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov const string& omaha_url); 335a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov 345a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov virtual void SetUp() { 35c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold // Create a uniquely named test directory. 36c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold ASSERT_TRUE(utils::MakeTempDirectory(kTestDirTemplate, 37c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold &test_dir_)); 38c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold 39c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold ASSERT_EQ(0, System(string("mkdir -p ") + test_dir_ + "/etc")); 40c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold ASSERT_EQ(0, System(string("mkdir -p ") + test_dir_ + 41be45bef9e283188b00e7def8967f81843669a7f1Chris Sosa kStatefulPartition + "/etc")); 42ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // Create a fresh copy of the params for each test, so there's no 43ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // unintended reuse of state across tests. 445bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams new_params(&fake_system_state_); 45ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan params_ = new_params; 46d04f8e24716d5acca6a7d116b63851adc1506845Gilad Arnold params_.set_root(test_dir_); 4710d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov params_.SetLockDown(false); 485a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov } 495a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov 505a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov virtual void TearDown() { 51c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold EXPECT_EQ(0, System(string("rm -rf ") + test_dir_)); 525a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov } 535a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov 54ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan OmahaRequestParams params_; 555bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold FakeSystemState fake_system_state_; 5649d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov 57c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold static const char* kTestDirTemplate; 58c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold string test_dir_; 593defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com}; 603defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 61c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnoldconst char* OmahaRequestParamsTest::kTestDirTemplate = 62c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold "omaha_request_params-test-XXXXXX"; 633defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 64ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasanbool OmahaRequestParamsTest::DoTest(OmahaRequestParams* out, 65ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan const string& app_version, 66ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan const string& omaha_url) { 67ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan bool success = params_.Init(app_version, omaha_url, false); 683defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com if (out) 6949d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov *out = params_; 70a4a8a8ccc2d9e0285728ed247b43f09433e63323Darin Petkov return success; 713defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com} 723defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 733defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.comnamespace { 743defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.comstring GetMachineType() { 7519a45f0eda0917b7788b925b501e774208474fdeGilad Arnold string machine_type; 7619a45f0eda0917b7788b925b501e774208474fdeGilad Arnold if (!utils::ReadPipe("uname -m", &machine_type)) 773defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com return ""; 7819a45f0eda0917b7788b925b501e774208474fdeGilad Arnold // Strip anything from the first newline char. 7919a45f0eda0917b7788b925b501e774208474fdeGilad Arnold size_t newline_pos = machine_type.find('\n'); 8019a45f0eda0917b7788b925b501e774208474fdeGilad Arnold if (newline_pos != string::npos) 8119a45f0eda0917b7788b925b501e774208474fdeGilad Arnold machine_type.erase(newline_pos); 8219a45f0eda0917b7788b925b501e774208474fdeGilad Arnold return machine_type; 833defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com} 84d2779df63aaad8b65fc5d4badee7dbc9bed7f2b6Alex Vakulenko} // namespace 853defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 86ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, SimpleTest) { 875a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov ASSERT_TRUE(WriteFileString( 88c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 895a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 905a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 915a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 92ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel\n" 935a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 945bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 955a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 96ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 97ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp()); 98ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("arm-generic", out.os_board()); 99db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 100ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 101ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 1025bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid()); 103ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.delta_okay()); 104ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", out.target_channel()); 105ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("http://www.google.com", out.update_url()); 1063defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com} 1073defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 108ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, AppIDTest) { 109d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov ASSERT_TRUE(WriteFileString( 110c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 111d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 112d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 113d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 114ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel\n" 115d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov "CHROMEOS_RELEASE_APPID={58c35cef-9d30-476e-9098-ce20377d535d}\n" 116d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 1175bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 118d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 119ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 120ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp()); 121ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("arm-generic", out.os_board()); 122db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{58c35cef-9d30-476e-9098-ce20377d535d}", out.GetAppId()); 123ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 124ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 1255bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid()); 126ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.delta_okay()); 127ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", out.target_channel()); 128ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("http://www.google.com", out.update_url()); 129d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov} 130d315dc7f336ceff8c1648ccd1a199ebb8c0a5a84Darin Petkov 131ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, MissingChannelTest) { 1325a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov ASSERT_TRUE(WriteFileString( 133c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 1345a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 1355a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 136ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRXCK=dev-channel")); 1375bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 1385a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 139ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 140ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp()); 141db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 142ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 143ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 144ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("", out.target_channel()); 1453defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com} 1463defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 147ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, ConfusingReleaseTest) { 1485a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov ASSERT_TRUE(WriteFileString( 149c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 1505a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_FOO=CHROMEOS_RELEASE_VERSION=1.2.3.4\n" 1515a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 152ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRXCK=dev-channel")); 1535bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 1545a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 155ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 156ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp()); 157db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 158ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 159ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 160ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("", out.target_channel()); 1613defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com} 1623defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com 163ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, MissingVersionTest) { 1645a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov ASSERT_TRUE(WriteFileString( 165c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 1665a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 1675a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 168ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel")); 1695bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 1705a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 171ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 172ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("_") + GetMachineType(), out.os_sp()); 173ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("arm-generic", out.os_board()); 174db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 175ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("", out.app_version()); 176ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 177ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.delta_okay()); 178ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", out.target_channel()); 1795a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov} 1805a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov 181ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, ForceVersionTest) { 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, "ForcedVersion", "")); 189ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 190ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("ForcedVersion_") + 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("ForcedVersion", 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, ForcedURLTest) { 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" 2045a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 205ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel")); 2065bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 2075a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov EXPECT_TRUE(DoTest(&out, "", "http://forced.google.com")); 208ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 209ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp()); 210ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("arm-generic", out.os_board()); 211db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 212ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 213ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 214ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.delta_okay()); 215ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", out.target_channel()); 216ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("http://forced.google.com", out.update_url()); 2175a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov} 2185a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov 219ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, MissingURLTest) { 2205a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov ASSERT_TRUE(WriteFileString( 221c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 2225a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 2235a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 2245a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 225ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel")); 2265bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 2275a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 228ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 229ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp()); 230ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("arm-generic", out.os_board()); 231db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 232ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 233ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 234ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.delta_okay()); 235ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", out.target_channel()); 236ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(kProductionOmahaUrl, out.update_url()); 237970bb28905b44bf9f2cb986bb412ecda1095b0b1Andrew de los Reyes} 238970bb28905b44bf9f2cb986bb412ecda1095b0b1Andrew de los Reyes 239ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, NoDeltasTest) { 2403f0303aa211e2de2d466cef063ff6f39fffe32ddAndrew de los Reyes ASSERT_TRUE(WriteFileString( 241c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 2423f0303aa211e2de2d466cef063ff6f39fffe32ddAndrew de los Reyes "CHROMEOS_RELEASE_FOO=CHROMEOS_RELEASE_VERSION=1.2.3.4\n" 2433f0303aa211e2de2d466cef063ff6f39fffe32ddAndrew de los Reyes "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 244ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRXCK=dev-channel")); 245c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold ASSERT_TRUE(WriteFileString(test_dir_ + "/.nodelta", "")); 2465bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 2475a7f565a542196f24eb87ddac96508f8a84e3329Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 248ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(out.delta_okay()); 2493f0303aa211e2de2d466cef063ff6f39fffe32ddAndrew de los Reyes} 2503f0303aa211e2de2d466cef063ff6f39fffe32ddAndrew de los Reyes 251ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, OverrideTest) { 25249d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov ASSERT_TRUE(WriteFileString( 253c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 25449d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 25549d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 25649d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 257ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel\n" 25849d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 25949d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov ASSERT_TRUE(WriteFileString( 260c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + kStatefulPartition + "/etc/lsb-release", 26149d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_BOARD=x86-generic\n" 262ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=beta-channel\n" 26310d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov "CHROMEOS_AUSERVER=https://www.google.com")); 2645bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 26549d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 266ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 267ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp()); 268ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("x86-generic", out.os_board()); 269db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 270ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 271ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 2725bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid()); 273ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(out.delta_okay()); 274ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("beta-channel", out.target_channel()); 275ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("https://www.google.com", out.update_url()); 27610d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov} 27710d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov 278ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, OverrideLockDownTest) { 27910d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov ASSERT_TRUE(WriteFileString( 280c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 28110d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 28210d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 28310d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 284ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel\n" 28510d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov "CHROMEOS_AUSERVER=https://www.google.com")); 28610d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov ASSERT_TRUE(WriteFileString( 287c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + kStatefulPartition + "/etc/lsb-release", 28810d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov "CHROMEOS_RELEASE_BOARD=x86-generic\n" 289ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=stable-channel\n" 29010d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 29110d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov params_.SetLockDown(true); 2925bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 29310d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 294ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("arm-generic", out.os_board()); 295db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 296ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 2975bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid()); 298ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(out.delta_okay()); 299ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("stable-channel", out.target_channel()); 300ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("https://www.google.com", out.update_url()); 30149d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov} 30249d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov 303ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, OverrideSameChannelTest) { 304a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov ASSERT_TRUE(WriteFileString( 305c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 306a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 307a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 308a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 309ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel\n" 310a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 311a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov ASSERT_TRUE(WriteFileString( 312c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + kStatefulPartition + "/etc/lsb-release", 313a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov "CHROMEOS_RELEASE_BOARD=x86-generic\n" 314ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel")); 3155bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 316a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 317ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("x86-generic", out.os_board()); 318db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 319ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 3205bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid()); 321ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.delta_okay()); 322ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", out.target_channel()); 323ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("http://www.google.com", out.update_url()); 324a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov} 325a3df55badfc7dc25792aba1ca6e7ade582b566a7Darin Petkov 326ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, SetTargetChannelTest) { 32749d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov ASSERT_TRUE(WriteFileString( 328c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 32949d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 33049d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 33149d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 332ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel\n" 33349d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 33449d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov { 3355bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams params(&fake_system_state_); 336d04f8e24716d5acca6a7d116b63851adc1506845Gilad Arnold params.set_root(test_dir_); 33710d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov params.SetLockDown(false); 338ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params.Init("", "", false)); 339ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan params.SetTargetChannel("canary-channel", false); 340ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(params.is_powerwash_allowed()); 34149d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov } 3425bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 34349d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 344ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("canary-channel", out.target_channel()); 345ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(out.is_powerwash_allowed()); 34649d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov} 34749d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov 348ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, SetIsPowerwashAllowedTest) { 34949d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov ASSERT_TRUE(WriteFileString( 350c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 35149d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 35249d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 35349d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 354ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel\n" 35549d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 35649d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov { 3575bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams params(&fake_system_state_); 358d04f8e24716d5acca6a7d116b63851adc1506845Gilad Arnold params.set_root(test_dir_); 35910d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov params.SetLockDown(false); 360ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params.Init("", "", false)); 361ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan params.SetTargetChannel("canary-channel", true); 362ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params.is_powerwash_allowed()); 36349d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov } 3645bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 36549d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 366ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("canary-channel", out.target_channel()); 367ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.is_powerwash_allowed()); 36849d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov} 36949d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov 370ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, SetTargetChannelInvalidTest) { 37149d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov ASSERT_TRUE(WriteFileString( 372c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 37349d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 37449d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 37549d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 376ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=dev-channel\n" 37749d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 37849d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov { 3795bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams params(&fake_system_state_); 380c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold params.set_root(string("./") + test_dir_); 38110d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov params.SetLockDown(true); 382ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params.Init("", "", false)); 383ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan params.SetTargetChannel("dogfood-channel", true); 384ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(params.is_powerwash_allowed()); 38549d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov } 3865bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 38749d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 388ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("arm-generic", out.os_board()); 389ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", out.target_channel()); 390ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(out.is_powerwash_allowed()); 39149d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov} 39249d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov 393ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, IsValidChannelTest) { 39410d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov params_.SetLockDown(false); 395ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params_.IsValidChannel("canary-channel")); 396ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params_.IsValidChannel("stable-channel")); 397ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params_.IsValidChannel("beta-channel")); 398ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params_.IsValidChannel("dev-channel")); 399ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(params_.IsValidChannel("testimage-channel")); 400ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(params_.IsValidChannel("dogfood-channel")); 401ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(params_.IsValidChannel("some-channel")); 402ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(params_.IsValidChannel("")); 40349d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov} 40449d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov 405ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, ValidChannelTest) { 40649d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov ASSERT_TRUE(WriteFileString( 407c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 40849d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_BOARD=arm-generic\n" 40949d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_FOO=bar\n" 41049d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 41149d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_RELEASE_TRACK=dev-channel\n" 41249d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov "CHROMEOS_AUSERVER=http://www.google.com")); 41310d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov params_.SetLockDown(true); 4145bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 41549d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov EXPECT_TRUE(DoTest(&out, "", "")); 416ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("Chrome OS", out.os_platform()); 417ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp()); 418ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("arm-generic", out.os_board()); 419db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId()); 420ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("0.2.2.3", out.app_version()); 421ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("en-US", out.app_lang()); 4225bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid()); 423ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.delta_okay()); 424ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", out.target_channel()); 425ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("http://www.google.com", out.update_url()); 42649d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov} 42749d91329a3a84d7e2b35f6e1ffc8a9b4d478515bDarin Petkov 428ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, SetTargetChannelWorks) { 4297fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy ASSERT_TRUE(WriteFileString( 430c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 4317fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy "CHROMEOS_RELEASE_BOARD=arm-generic\n" 4327fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy "CHROMEOS_RELEASE_FOO=bar\n" 4337fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 4347fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy "CHROMEOS_RELEASE_TRACK=dev-channel\n" 4357fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy "CHROMEOS_AUSERVER=http://www.google.com")); 436ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan params_.SetLockDown(false); 437ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan 438ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // Check LSB value is used by default when SetTargetChannel is not called. 439ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan params_.Init("", "", false); 440ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", params_.target_channel()); 441ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan 442ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // When an invalid value is set, it should be ignored and the 443ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // value from lsb-release should be used instead. 444ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan params_.Init("", "", false); 445ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(params_.SetTargetChannel("invalid-channel", false)); 446ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("dev-channel", params_.target_channel()); 447ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan 448ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // When set to a valid value, it should take effect. 449ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan params_.Init("", "", false); 450ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params_.SetTargetChannel("beta-channel", true)); 451ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("beta-channel", params_.target_channel()); 452ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan 453ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // When set to the same value, it should be idempotent. 454ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan params_.Init("", "", false); 455ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(params_.SetTargetChannel("beta-channel", true)); 456ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("beta-channel", params_.target_channel()); 457ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan 458ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // When set to a valid value while a change is already pending, it should 4591c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan // succeed. 460ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan params_.Init("", "", false); 4611c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan EXPECT_TRUE(params_.SetTargetChannel("stable-channel", true)); 4621c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan EXPECT_EQ("stable-channel", params_.target_channel()); 4631c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan 4641c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan // Set a different channel in stateful LSB release. 4651c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan ASSERT_TRUE(WriteFileString( 466c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + kStatefulPartition + "/etc/lsb-release", 4671c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan "CHROMEOS_RELEASE_TRACK=stable-channel\n" 4681c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan "CHROMEOS_IS_POWERWASH_ALLOWED=true\n")); 4691c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan 4701c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan // When set to a valid value while a change is already pending, it should 4711c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan // succeed. 4721c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan params_.Init("", "", false); 4731c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan EXPECT_TRUE(params_.SetTargetChannel("beta-channel", true)); 4741c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan // The target channel should reflect the change, but the download channel 4751c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan // should continue to retain the old value ... 4761c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan EXPECT_EQ("beta-channel", params_.target_channel()); 4771c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan EXPECT_EQ("stable-channel", params_.download_channel()); 4781c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan 4791c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan // ... until we update the download channel explicitly. 4801c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan params_.UpdateDownloadChannel(); 4811c0fe79c7ef2b43946d756b54c8505d2bf48b93bJay Srinivasan EXPECT_EQ("beta-channel", params_.download_channel()); 482ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("beta-channel", params_.target_channel()); 483ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan} 4847fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy 485ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, ChannelIndexTest) { 486ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan int canary = params_.GetChannelIndex("canary-channel"); 487ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan int dev = params_.GetChannelIndex("dev-channel"); 488ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan int beta = params_.GetChannelIndex("beta-channel"); 489ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan int stable = params_.GetChannelIndex("stable-channel"); 490ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_LE(canary, dev); 491ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_LE(dev, beta); 492ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_LE(beta, stable); 493ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan 494ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan // testimage-channel or other names are not recognized, so index will be -1. 495ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan int testimage = params_.GetChannelIndex("testimage-channel"); 496ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan int bogus = params_.GetChannelIndex("bogus-channel"); 497ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(-1, testimage); 498ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ(-1, bogus); 499ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan} 5007fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy 501ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, ToMoreStableChannelFlagTest) { 502ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan ASSERT_TRUE(WriteFileString( 503c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 504ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_BOARD=arm-generic\n" 505ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_FOO=bar\n" 506ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" 507ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=canary-channel\n" 508ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_AUSERVER=http://www.google.com")); 509ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan ASSERT_TRUE(WriteFileString( 510c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + kStatefulPartition + "/etc/lsb-release", 511ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_BOARD=x86-generic\n" 512ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_RELEASE_TRACK=stable-channel\n" 513ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan "CHROMEOS_AUSERVER=https://www.google.com")); 5145bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 515ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(DoTest(&out, "", "")); 516ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("https://www.google.com", out.update_url()); 517ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_FALSE(out.delta_okay()); 518ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_EQ("stable-channel", out.target_channel()); 519ae4697c073b84b260990a141acd53c6806da0708Jay Srinivasan EXPECT_TRUE(out.to_more_stable_channel()); 5207fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy} 5217fbbe8a9e57ec52f7bc597d0cb607036300ac54cPatrick Dubroy 522ae4697c073b84b260990a141acd53c6806da0708Jay SrinivasanTEST_F(OmahaRequestParamsTest, ShouldLockDownTest) { 52310d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov EXPECT_FALSE(params_.ShouldLockDown()); 52410d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov} 52510d02dd60d4c4f41f7f4ed92322fa7b597760118Darin Petkov 526db0acdfca1ea33987e8b29325f4594417d1fae57Jay SrinivasanTEST_F(OmahaRequestParamsTest, BoardAppIdUsedForNonCanaryChannelTest) { 527db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan ASSERT_TRUE(WriteFileString( 528c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 529db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_RELEASE_APPID=r\n" 530db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_BOARD_APPID=b\n" 531db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_CANARY_APPID=c\n" 532db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_RELEASE_TRACK=stable-channel\n")); 5335bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 534db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_TRUE(DoTest(&out, "", "")); 535db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("stable-channel", out.download_channel()); 536db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("b", out.GetAppId()); 537db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan} 538db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan 539db0acdfca1ea33987e8b29325f4594417d1fae57Jay SrinivasanTEST_F(OmahaRequestParamsTest, CanaryAppIdUsedForCanaryChannelTest) { 540db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan ASSERT_TRUE(WriteFileString( 541c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 542db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_RELEASE_APPID=r\n" 543db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_BOARD_APPID=b\n" 544db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_CANARY_APPID=c\n" 545db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_RELEASE_TRACK=canary-channel\n")); 5465bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 547db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_TRUE(DoTest(&out, "", "")); 548db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("canary-channel", out.download_channel()); 549db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("c", out.GetAppId()); 550db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan} 551db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan 552db0acdfca1ea33987e8b29325f4594417d1fae57Jay SrinivasanTEST_F(OmahaRequestParamsTest, ReleaseAppIdUsedAsDefaultTest) { 553db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan ASSERT_TRUE(WriteFileString( 554c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 555db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_RELEASE_APPID=r\n" 556db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_CANARY_APPID=c\n" 557db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan "CHROMEOS_RELEASE_TRACK=stable-channel\n")); 5585bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 559db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_TRUE(DoTest(&out, "", "")); 560db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("stable-channel", out.download_channel()); 561db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan EXPECT_EQ("r", out.GetAppId()); 562db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan} 563db0acdfca1ea33987e8b29325f4594417d1fae57Jay Srinivasan 564c1972483fa3446852b42ce97d1ea43b9caaaf56fChris SosaTEST_F(OmahaRequestParamsTest, CollectECFWVersionsTest) { 565c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa ASSERT_TRUE(WriteFileString( 566c9abbec864f283d1873883bc8f9b523020ee2acbGilad Arnold test_dir_ + "/etc/lsb-release", 567c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa "CHROMEOS_RELEASE_APPID=r\n" 568c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa "CHROMEOS_CANARY_APPID=c\n" 569c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa "CHROMEOS_RELEASE_TRACK=stable-channel\n")); 5705bb4c90b8bdf931426d1926b21b0316a86b4b4e4Gilad Arnold OmahaRequestParams out(&fake_system_state_); 571c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa out.hwid_ = string("STUMPY ALEX 12345"); 572c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa EXPECT_FALSE(out.CollectECFWVersions()); 573c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa 574c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa out.hwid_ = string("SNOW 12345"); 575c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa EXPECT_TRUE(out.CollectECFWVersions()); 576c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa 577c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa out.hwid_ = string("SAMS ALEX 12345"); 578c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa EXPECT_TRUE(out.CollectECFWVersions()); 579c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa} 580c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa 581c1972483fa3446852b42ce97d1ea43b9caaaf56fChris Sosa 5823defe6acb3609e70e851a6eff062577d25a2af9dadlr@google.com} // namespace chromeos_update_engine 583