blob: c4e84ad9c41fc77a26a6cf6ca162747ce4f68475 [file] [log] [blame]
Darin Petkovf2065b42011-05-17 16:36:27 -07001// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
adlr@google.com3defe6a2009-12-04 20:57:17 +00002// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Alex Deymo8427b4a2014-11-05 14:00:32 -08005#include "update_engine/omaha_request_params.h"
6
adlr@google.com3defe6a2009-12-04 20:57:17 +00007#include <stdio.h>
Darin Petkovfbb40092010-07-29 17:05:50 -07008
adlr@google.com3defe6a2009-12-04 20:57:17 +00009#include <string>
Darin Petkovfbb40092010-07-29 17:05:50 -070010
Alex Deymo8427b4a2014-11-05 14:00:32 -080011#include <base/files/file_util.h>
12#include <gtest/gtest.h>
13
Chris Sosabe45bef2013-04-09 18:25:12 -070014#include "update_engine/constants.h"
Gilad Arnold5bb4c902014-04-10 12:32:13 -070015#include "update_engine/fake_system_state.h"
adlr@google.com3defe6a2009-12-04 20:57:17 +000016#include "update_engine/install_plan.h"
adlr@google.com3defe6a2009-12-04 20:57:17 +000017#include "update_engine/test_utils.h"
18#include "update_engine/utils.h"
19
20using std::string;
21
22namespace chromeos_update_engine {
23
Jay Srinivasanae4697c2013-03-18 17:08:08 -070024class OmahaRequestParamsTest : public ::testing::Test {
25 public:
Gilad Arnold5bb4c902014-04-10 12:32:13 -070026 OmahaRequestParamsTest() : params_(&fake_system_state_) {}
Jay Srinivasanae4697c2013-03-18 17:08:08 -070027
Darin Petkov5a7f5652010-07-22 21:40:09 -070028 protected:
Jay Srinivasanae4697c2013-03-18 17:08:08 -070029 // Return true iff the OmahaRequestParams::Init succeeded. If
Alex Vakulenko88b591f2014-08-28 16:48:57 -070030 // out is non-null, it's set w/ the generated data.
Darin Petkov5a7f5652010-07-22 21:40:09 -070031 bool DoTest(OmahaRequestParams* out, const string& app_version,
32 const string& omaha_url);
33
34 virtual void SetUp() {
Gilad Arnoldc9abbec2013-07-01 06:24:42 -070035 // Create a uniquely named test directory.
36 ASSERT_TRUE(utils::MakeTempDirectory(kTestDirTemplate,
37 &test_dir_));
38
39 ASSERT_EQ(0, System(string("mkdir -p ") + test_dir_ + "/etc"));
40 ASSERT_EQ(0, System(string("mkdir -p ") + test_dir_ +
Chris Sosabe45bef2013-04-09 18:25:12 -070041 kStatefulPartition + "/etc"));
Jay Srinivasanae4697c2013-03-18 17:08:08 -070042 // Create a fresh copy of the params for each test, so there's no
43 // unintended reuse of state across tests.
Gilad Arnold5bb4c902014-04-10 12:32:13 -070044 OmahaRequestParams new_params(&fake_system_state_);
Jay Srinivasanae4697c2013-03-18 17:08:08 -070045 params_ = new_params;
Gilad Arnoldd04f8e22014-01-09 13:13:40 -080046 params_.set_root(test_dir_);
Darin Petkov10d02dd2011-01-10 14:57:39 -080047 params_.SetLockDown(false);
Darin Petkov5a7f5652010-07-22 21:40:09 -070048 }
49
50 virtual void TearDown() {
Gilad Arnoldc9abbec2013-07-01 06:24:42 -070051 EXPECT_EQ(0, System(string("rm -rf ") + test_dir_));
Darin Petkov5a7f5652010-07-22 21:40:09 -070052 }
53
Jay Srinivasanae4697c2013-03-18 17:08:08 -070054 OmahaRequestParams params_;
Gilad Arnold5bb4c902014-04-10 12:32:13 -070055 FakeSystemState fake_system_state_;
Darin Petkov49d91322010-10-25 16:34:58 -070056
Gilad Arnoldc9abbec2013-07-01 06:24:42 -070057 static const char* kTestDirTemplate;
58 string test_dir_;
adlr@google.com3defe6a2009-12-04 20:57:17 +000059};
60
Gilad Arnoldc9abbec2013-07-01 06:24:42 -070061const char* OmahaRequestParamsTest::kTestDirTemplate =
62 "omaha_request_params-test-XXXXXX";
adlr@google.com3defe6a2009-12-04 20:57:17 +000063
Jay Srinivasanae4697c2013-03-18 17:08:08 -070064bool OmahaRequestParamsTest::DoTest(OmahaRequestParams* out,
65 const string& app_version,
66 const string& omaha_url) {
67 bool success = params_.Init(app_version, omaha_url, false);
adlr@google.com3defe6a2009-12-04 20:57:17 +000068 if (out)
Darin Petkov49d91322010-10-25 16:34:58 -070069 *out = params_;
Darin Petkova4a8a8c2010-07-15 22:21:12 -070070 return success;
adlr@google.com3defe6a2009-12-04 20:57:17 +000071}
72
73namespace {
adlr@google.com3defe6a2009-12-04 20:57:17 +000074string GetMachineType() {
Gilad Arnold19a45f02012-07-19 12:36:10 -070075 string machine_type;
76 if (!utils::ReadPipe("uname -m", &machine_type))
adlr@google.com3defe6a2009-12-04 20:57:17 +000077 return "";
Gilad Arnold19a45f02012-07-19 12:36:10 -070078 // Strip anything from the first newline char.
79 size_t newline_pos = machine_type.find('\n');
80 if (newline_pos != string::npos)
81 machine_type.erase(newline_pos);
82 return machine_type;
adlr@google.com3defe6a2009-12-04 20:57:17 +000083}
Alex Vakulenkod2779df2014-06-16 13:19:00 -070084} // namespace
adlr@google.com3defe6a2009-12-04 20:57:17 +000085
Jay Srinivasanae4697c2013-03-18 17:08:08 -070086TEST_F(OmahaRequestParamsTest, SimpleTest) {
Darin Petkov5a7f5652010-07-22 21:40:09 -070087 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -070088 test_dir_ + "/etc/lsb-release",
Darin Petkov5a7f5652010-07-22 21:40:09 -070089 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
90 "CHROMEOS_RELEASE_FOO=bar\n"
91 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -070092 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
Darin Petkov5a7f5652010-07-22 21:40:09 -070093 "CHROMEOS_AUSERVER=http://www.google.com"));
Gilad Arnold5bb4c902014-04-10 12:32:13 -070094 OmahaRequestParams out(&fake_system_state_);
Darin Petkov5a7f5652010-07-22 21:40:09 -070095 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -070096 EXPECT_EQ("Chrome OS", out.os_platform());
97 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp());
98 EXPECT_EQ("arm-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -070099 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700100 EXPECT_EQ("0.2.2.3", out.app_version());
101 EXPECT_EQ("en-US", out.app_lang());
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700102 EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700103 EXPECT_TRUE(out.delta_okay());
104 EXPECT_EQ("dev-channel", out.target_channel());
105 EXPECT_EQ("http://www.google.com", out.update_url());
adlr@google.com3defe6a2009-12-04 20:57:17 +0000106}
107
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700108TEST_F(OmahaRequestParamsTest, AppIDTest) {
Darin Petkovd315dc72010-11-15 09:52:24 -0800109 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700110 test_dir_ + "/etc/lsb-release",
Darin Petkovd315dc72010-11-15 09:52:24 -0800111 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
112 "CHROMEOS_RELEASE_FOO=bar\n"
113 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700114 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
Darin Petkovd315dc72010-11-15 09:52:24 -0800115 "CHROMEOS_RELEASE_APPID={58c35cef-9d30-476e-9098-ce20377d535d}\n"
116 "CHROMEOS_AUSERVER=http://www.google.com"));
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700117 OmahaRequestParams out(&fake_system_state_);
Darin Petkovd315dc72010-11-15 09:52:24 -0800118 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700119 EXPECT_EQ("Chrome OS", out.os_platform());
120 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp());
121 EXPECT_EQ("arm-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700122 EXPECT_EQ("{58c35cef-9d30-476e-9098-ce20377d535d}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700123 EXPECT_EQ("0.2.2.3", out.app_version());
124 EXPECT_EQ("en-US", out.app_lang());
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700125 EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700126 EXPECT_TRUE(out.delta_okay());
127 EXPECT_EQ("dev-channel", out.target_channel());
128 EXPECT_EQ("http://www.google.com", out.update_url());
Darin Petkovd315dc72010-11-15 09:52:24 -0800129}
130
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700131TEST_F(OmahaRequestParamsTest, MissingChannelTest) {
Darin Petkov5a7f5652010-07-22 21:40:09 -0700132 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700133 test_dir_ + "/etc/lsb-release",
Darin Petkov5a7f5652010-07-22 21:40:09 -0700134 "CHROMEOS_RELEASE_FOO=bar\n"
135 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700136 "CHROMEOS_RELEASE_TRXCK=dev-channel"));
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700137 OmahaRequestParams out(&fake_system_state_);
Darin Petkov5a7f5652010-07-22 21:40:09 -0700138 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700139 EXPECT_EQ("Chrome OS", out.os_platform());
140 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700141 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700142 EXPECT_EQ("0.2.2.3", out.app_version());
143 EXPECT_EQ("en-US", out.app_lang());
144 EXPECT_EQ("", out.target_channel());
adlr@google.com3defe6a2009-12-04 20:57:17 +0000145}
146
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700147TEST_F(OmahaRequestParamsTest, ConfusingReleaseTest) {
Darin Petkov5a7f5652010-07-22 21:40:09 -0700148 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700149 test_dir_ + "/etc/lsb-release",
Darin Petkov5a7f5652010-07-22 21:40:09 -0700150 "CHROMEOS_RELEASE_FOO=CHROMEOS_RELEASE_VERSION=1.2.3.4\n"
151 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700152 "CHROMEOS_RELEASE_TRXCK=dev-channel"));
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700153 OmahaRequestParams out(&fake_system_state_);
Darin Petkov5a7f5652010-07-22 21:40:09 -0700154 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700155 EXPECT_EQ("Chrome OS", out.os_platform());
156 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700157 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700158 EXPECT_EQ("0.2.2.3", out.app_version());
159 EXPECT_EQ("en-US", out.app_lang());
160 EXPECT_EQ("", out.target_channel());
adlr@google.com3defe6a2009-12-04 20:57:17 +0000161}
162
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700163TEST_F(OmahaRequestParamsTest, MissingVersionTest) {
Darin Petkov5a7f5652010-07-22 21:40:09 -0700164 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700165 test_dir_ + "/etc/lsb-release",
Darin Petkov5a7f5652010-07-22 21:40:09 -0700166 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
167 "CHROMEOS_RELEASE_FOO=bar\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700168 "CHROMEOS_RELEASE_TRACK=dev-channel"));
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700169 OmahaRequestParams out(&fake_system_state_);
Darin Petkov5a7f5652010-07-22 21:40:09 -0700170 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700171 EXPECT_EQ("Chrome OS", out.os_platform());
172 EXPECT_EQ(string("_") + GetMachineType(), out.os_sp());
173 EXPECT_EQ("arm-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700174 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700175 EXPECT_EQ("", out.app_version());
176 EXPECT_EQ("en-US", out.app_lang());
177 EXPECT_TRUE(out.delta_okay());
178 EXPECT_EQ("dev-channel", out.target_channel());
Darin Petkov5a7f5652010-07-22 21:40:09 -0700179}
180
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700181TEST_F(OmahaRequestParamsTest, ForceVersionTest) {
Darin Petkov5a7f5652010-07-22 21:40:09 -0700182 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700183 test_dir_ + "/etc/lsb-release",
Darin Petkov5a7f5652010-07-22 21:40:09 -0700184 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
185 "CHROMEOS_RELEASE_FOO=bar\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700186 "CHROMEOS_RELEASE_TRACK=dev-channel"));
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700187 OmahaRequestParams out(&fake_system_state_);
Darin Petkov5a7f5652010-07-22 21:40:09 -0700188 EXPECT_TRUE(DoTest(&out, "ForcedVersion", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700189 EXPECT_EQ("Chrome OS", out.os_platform());
190 EXPECT_EQ(string("ForcedVersion_") + GetMachineType(), out.os_sp());
191 EXPECT_EQ("arm-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700192 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700193 EXPECT_EQ("ForcedVersion", out.app_version());
194 EXPECT_EQ("en-US", out.app_lang());
195 EXPECT_TRUE(out.delta_okay());
196 EXPECT_EQ("dev-channel", out.target_channel());
Darin Petkov5a7f5652010-07-22 21:40:09 -0700197}
198
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700199TEST_F(OmahaRequestParamsTest, ForcedURLTest) {
Darin Petkov5a7f5652010-07-22 21:40:09 -0700200 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700201 test_dir_ + "/etc/lsb-release",
Darin Petkov5a7f5652010-07-22 21:40:09 -0700202 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
203 "CHROMEOS_RELEASE_FOO=bar\n"
204 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700205 "CHROMEOS_RELEASE_TRACK=dev-channel"));
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700206 OmahaRequestParams out(&fake_system_state_);
Darin Petkov5a7f5652010-07-22 21:40:09 -0700207 EXPECT_TRUE(DoTest(&out, "", "http://forced.google.com"));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700208 EXPECT_EQ("Chrome OS", out.os_platform());
209 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp());
210 EXPECT_EQ("arm-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700211 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700212 EXPECT_EQ("0.2.2.3", out.app_version());
213 EXPECT_EQ("en-US", out.app_lang());
214 EXPECT_TRUE(out.delta_okay());
215 EXPECT_EQ("dev-channel", out.target_channel());
216 EXPECT_EQ("http://forced.google.com", out.update_url());
Darin Petkov5a7f5652010-07-22 21:40:09 -0700217}
218
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700219TEST_F(OmahaRequestParamsTest, MissingURLTest) {
Darin Petkov5a7f5652010-07-22 21:40:09 -0700220 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700221 test_dir_ + "/etc/lsb-release",
Darin Petkov5a7f5652010-07-22 21:40:09 -0700222 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
223 "CHROMEOS_RELEASE_FOO=bar\n"
224 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700225 "CHROMEOS_RELEASE_TRACK=dev-channel"));
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700226 OmahaRequestParams out(&fake_system_state_);
Darin Petkov5a7f5652010-07-22 21:40:09 -0700227 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700228 EXPECT_EQ("Chrome OS", out.os_platform());
229 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp());
230 EXPECT_EQ("arm-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700231 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700232 EXPECT_EQ("0.2.2.3", out.app_version());
233 EXPECT_EQ("en-US", out.app_lang());
234 EXPECT_TRUE(out.delta_okay());
235 EXPECT_EQ("dev-channel", out.target_channel());
236 EXPECT_EQ(kProductionOmahaUrl, out.update_url());
Andrew de los Reyes970bb282009-12-09 16:34:04 -0800237}
238
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700239TEST_F(OmahaRequestParamsTest, NoDeltasTest) {
Andrew de los Reyes3f0303a2010-07-15 22:35:35 -0700240 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700241 test_dir_ + "/etc/lsb-release",
Andrew de los Reyes3f0303a2010-07-15 22:35:35 -0700242 "CHROMEOS_RELEASE_FOO=CHROMEOS_RELEASE_VERSION=1.2.3.4\n"
243 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700244 "CHROMEOS_RELEASE_TRXCK=dev-channel"));
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700245 ASSERT_TRUE(WriteFileString(test_dir_ + "/.nodelta", ""));
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700246 OmahaRequestParams out(&fake_system_state_);
Darin Petkov5a7f5652010-07-22 21:40:09 -0700247 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700248 EXPECT_FALSE(out.delta_okay());
Andrew de los Reyes3f0303a2010-07-15 22:35:35 -0700249}
250
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700251TEST_F(OmahaRequestParamsTest, OverrideTest) {
Darin Petkov49d91322010-10-25 16:34:58 -0700252 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700253 test_dir_ + "/etc/lsb-release",
Darin Petkov49d91322010-10-25 16:34:58 -0700254 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
255 "CHROMEOS_RELEASE_FOO=bar\n"
256 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Darin Petkov10d02dd2011-01-10 14:57:39 -0800257 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
258 "CHROMEOS_AUSERVER=http://www.google.com"));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700259 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700260 test_dir_ + kStatefulPartition + "/etc/lsb-release",
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700261 "CHROMEOS_RELEASE_BOARD=x86-generic\n"
262 "CHROMEOS_RELEASE_TRACK=beta-channel\n"
263 "CHROMEOS_AUSERVER=https://www.google.com"));
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700264 OmahaRequestParams out(&fake_system_state_);
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700265 EXPECT_TRUE(DoTest(&out, "", ""));
266 EXPECT_EQ("Chrome OS", out.os_platform());
267 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp());
268 EXPECT_EQ("x86-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700269 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700270 EXPECT_EQ("0.2.2.3", out.app_version());
271 EXPECT_EQ("en-US", out.app_lang());
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700272 EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700273 EXPECT_FALSE(out.delta_okay());
274 EXPECT_EQ("beta-channel", out.target_channel());
275 EXPECT_EQ("https://www.google.com", out.update_url());
276}
277
278TEST_F(OmahaRequestParamsTest, OverrideLockDownTest) {
279 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700280 test_dir_ + "/etc/lsb-release",
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700281 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
282 "CHROMEOS_RELEASE_FOO=bar\n"
283 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
284 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
285 "CHROMEOS_AUSERVER=https://www.google.com"));
286 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700287 test_dir_ + kStatefulPartition + "/etc/lsb-release",
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700288 "CHROMEOS_RELEASE_BOARD=x86-generic\n"
289 "CHROMEOS_RELEASE_TRACK=stable-channel\n"
290 "CHROMEOS_AUSERVER=http://www.google.com"));
Darin Petkov10d02dd2011-01-10 14:57:39 -0800291 params_.SetLockDown(true);
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700292 OmahaRequestParams out(&fake_system_state_);
Darin Petkov10d02dd2011-01-10 14:57:39 -0800293 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700294 EXPECT_EQ("arm-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700295 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700296 EXPECT_EQ("0.2.2.3", out.app_version());
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700297 EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700298 EXPECT_FALSE(out.delta_okay());
299 EXPECT_EQ("stable-channel", out.target_channel());
300 EXPECT_EQ("https://www.google.com", out.update_url());
Darin Petkov49d91322010-10-25 16:34:58 -0700301}
302
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700303TEST_F(OmahaRequestParamsTest, OverrideSameChannelTest) {
Darin Petkova3df55b2010-11-15 13:33:55 -0800304 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700305 test_dir_ + "/etc/lsb-release",
Darin Petkova3df55b2010-11-15 13:33:55 -0800306 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
307 "CHROMEOS_RELEASE_FOO=bar\n"
308 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700309 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
Darin Petkova3df55b2010-11-15 13:33:55 -0800310 "CHROMEOS_AUSERVER=http://www.google.com"));
311 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700312 test_dir_ + kStatefulPartition + "/etc/lsb-release",
Darin Petkova3df55b2010-11-15 13:33:55 -0800313 "CHROMEOS_RELEASE_BOARD=x86-generic\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700314 "CHROMEOS_RELEASE_TRACK=dev-channel"));
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700315 OmahaRequestParams out(&fake_system_state_);
Darin Petkova3df55b2010-11-15 13:33:55 -0800316 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700317 EXPECT_EQ("x86-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700318 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700319 EXPECT_EQ("0.2.2.3", out.app_version());
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700320 EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700321 EXPECT_TRUE(out.delta_okay());
322 EXPECT_EQ("dev-channel", out.target_channel());
323 EXPECT_EQ("http://www.google.com", out.update_url());
Darin Petkova3df55b2010-11-15 13:33:55 -0800324}
325
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700326TEST_F(OmahaRequestParamsTest, SetTargetChannelTest) {
Darin Petkov49d91322010-10-25 16:34:58 -0700327 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700328 test_dir_ + "/etc/lsb-release",
Darin Petkov49d91322010-10-25 16:34:58 -0700329 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
330 "CHROMEOS_RELEASE_FOO=bar\n"
331 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700332 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
Darin Petkov49d91322010-10-25 16:34:58 -0700333 "CHROMEOS_AUSERVER=http://www.google.com"));
334 {
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700335 OmahaRequestParams params(&fake_system_state_);
Gilad Arnoldd04f8e22014-01-09 13:13:40 -0800336 params.set_root(test_dir_);
Darin Petkov10d02dd2011-01-10 14:57:39 -0800337 params.SetLockDown(false);
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700338 EXPECT_TRUE(params.Init("", "", false));
339 params.SetTargetChannel("canary-channel", false);
340 EXPECT_FALSE(params.is_powerwash_allowed());
Darin Petkov49d91322010-10-25 16:34:58 -0700341 }
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700342 OmahaRequestParams out(&fake_system_state_);
Darin Petkov49d91322010-10-25 16:34:58 -0700343 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700344 EXPECT_EQ("canary-channel", out.target_channel());
345 EXPECT_FALSE(out.is_powerwash_allowed());
Darin Petkov49d91322010-10-25 16:34:58 -0700346}
347
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700348TEST_F(OmahaRequestParamsTest, SetIsPowerwashAllowedTest) {
Darin Petkov49d91322010-10-25 16:34:58 -0700349 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700350 test_dir_ + "/etc/lsb-release",
Darin Petkov49d91322010-10-25 16:34:58 -0700351 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
352 "CHROMEOS_RELEASE_FOO=bar\n"
353 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700354 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
Darin Petkov49d91322010-10-25 16:34:58 -0700355 "CHROMEOS_AUSERVER=http://www.google.com"));
Darin Petkov49d91322010-10-25 16:34:58 -0700356 {
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700357 OmahaRequestParams params(&fake_system_state_);
Gilad Arnoldd04f8e22014-01-09 13:13:40 -0800358 params.set_root(test_dir_);
Darin Petkov10d02dd2011-01-10 14:57:39 -0800359 params.SetLockDown(false);
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700360 EXPECT_TRUE(params.Init("", "", false));
361 params.SetTargetChannel("canary-channel", true);
362 EXPECT_TRUE(params.is_powerwash_allowed());
Darin Petkov49d91322010-10-25 16:34:58 -0700363 }
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700364 OmahaRequestParams out(&fake_system_state_);
Darin Petkov49d91322010-10-25 16:34:58 -0700365 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700366 EXPECT_EQ("canary-channel", out.target_channel());
367 EXPECT_TRUE(out.is_powerwash_allowed());
Darin Petkov49d91322010-10-25 16:34:58 -0700368}
369
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700370TEST_F(OmahaRequestParamsTest, SetTargetChannelInvalidTest) {
Darin Petkov49d91322010-10-25 16:34:58 -0700371 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700372 test_dir_ + "/etc/lsb-release",
Darin Petkov49d91322010-10-25 16:34:58 -0700373 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
374 "CHROMEOS_RELEASE_FOO=bar\n"
375 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700376 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
Darin Petkov49d91322010-10-25 16:34:58 -0700377 "CHROMEOS_AUSERVER=http://www.google.com"));
378 {
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700379 OmahaRequestParams params(&fake_system_state_);
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700380 params.set_root(string("./") + test_dir_);
Darin Petkov10d02dd2011-01-10 14:57:39 -0800381 params.SetLockDown(true);
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700382 EXPECT_TRUE(params.Init("", "", false));
383 params.SetTargetChannel("dogfood-channel", true);
384 EXPECT_FALSE(params.is_powerwash_allowed());
Darin Petkov49d91322010-10-25 16:34:58 -0700385 }
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700386 OmahaRequestParams out(&fake_system_state_);
Darin Petkov49d91322010-10-25 16:34:58 -0700387 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700388 EXPECT_EQ("arm-generic", out.os_board());
389 EXPECT_EQ("dev-channel", out.target_channel());
390 EXPECT_FALSE(out.is_powerwash_allowed());
Darin Petkov49d91322010-10-25 16:34:58 -0700391}
392
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700393TEST_F(OmahaRequestParamsTest, IsValidChannelTest) {
Darin Petkov10d02dd2011-01-10 14:57:39 -0800394 params_.SetLockDown(false);
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700395 EXPECT_TRUE(params_.IsValidChannel("canary-channel"));
396 EXPECT_TRUE(params_.IsValidChannel("stable-channel"));
397 EXPECT_TRUE(params_.IsValidChannel("beta-channel"));
398 EXPECT_TRUE(params_.IsValidChannel("dev-channel"));
399 EXPECT_FALSE(params_.IsValidChannel("testimage-channel"));
400 EXPECT_FALSE(params_.IsValidChannel("dogfood-channel"));
401 EXPECT_FALSE(params_.IsValidChannel("some-channel"));
402 EXPECT_FALSE(params_.IsValidChannel(""));
Darin Petkov49d91322010-10-25 16:34:58 -0700403}
404
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700405TEST_F(OmahaRequestParamsTest, ValidChannelTest) {
Darin Petkov49d91322010-10-25 16:34:58 -0700406 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700407 test_dir_ + "/etc/lsb-release",
Darin Petkov49d91322010-10-25 16:34:58 -0700408 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
409 "CHROMEOS_RELEASE_FOO=bar\n"
410 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
411 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
412 "CHROMEOS_AUSERVER=http://www.google.com"));
Darin Petkov10d02dd2011-01-10 14:57:39 -0800413 params_.SetLockDown(true);
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700414 OmahaRequestParams out(&fake_system_state_);
Darin Petkov49d91322010-10-25 16:34:58 -0700415 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700416 EXPECT_EQ("Chrome OS", out.os_platform());
417 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp());
418 EXPECT_EQ("arm-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700419 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700420 EXPECT_EQ("0.2.2.3", out.app_version());
421 EXPECT_EQ("en-US", out.app_lang());
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700422 EXPECT_EQ(fake_system_state_.hardware()->GetHardwareClass(), out.hwid());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700423 EXPECT_TRUE(out.delta_okay());
424 EXPECT_EQ("dev-channel", out.target_channel());
425 EXPECT_EQ("http://www.google.com", out.update_url());
Darin Petkov49d91322010-10-25 16:34:58 -0700426}
427
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700428TEST_F(OmahaRequestParamsTest, SetTargetChannelWorks) {
Patrick Dubroy7fbbe8a2011-08-01 17:28:22 +0200429 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700430 test_dir_ + "/etc/lsb-release",
Patrick Dubroy7fbbe8a2011-08-01 17:28:22 +0200431 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
432 "CHROMEOS_RELEASE_FOO=bar\n"
433 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
434 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
435 "CHROMEOS_AUSERVER=http://www.google.com"));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700436 params_.SetLockDown(false);
Patrick Dubroy7fbbe8a2011-08-01 17:28:22 +0200437
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700438 // Check LSB value is used by default when SetTargetChannel is not called.
439 params_.Init("", "", false);
440 EXPECT_EQ("dev-channel", params_.target_channel());
Patrick Dubroy7fbbe8a2011-08-01 17:28:22 +0200441
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700442 // When an invalid value is set, it should be ignored and the
443 // value from lsb-release should be used instead.
444 params_.Init("", "", false);
445 EXPECT_FALSE(params_.SetTargetChannel("invalid-channel", false));
446 EXPECT_EQ("dev-channel", params_.target_channel());
447
448 // When set to a valid value, it should take effect.
449 params_.Init("", "", false);
450 EXPECT_TRUE(params_.SetTargetChannel("beta-channel", true));
451 EXPECT_EQ("beta-channel", params_.target_channel());
452
453 // When set to the same value, it should be idempotent.
454 params_.Init("", "", false);
455 EXPECT_TRUE(params_.SetTargetChannel("beta-channel", true));
456 EXPECT_EQ("beta-channel", params_.target_channel());
457
458 // When set to a valid value while a change is already pending, it should
Jay Srinivasan1c0fe792013-03-28 16:45:25 -0700459 // succeed.
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700460 params_.Init("", "", false);
Jay Srinivasan1c0fe792013-03-28 16:45:25 -0700461 EXPECT_TRUE(params_.SetTargetChannel("stable-channel", true));
462 EXPECT_EQ("stable-channel", params_.target_channel());
463
464 // Set a different channel in stateful LSB release.
465 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700466 test_dir_ + kStatefulPartition + "/etc/lsb-release",
Jay Srinivasan1c0fe792013-03-28 16:45:25 -0700467 "CHROMEOS_RELEASE_TRACK=stable-channel\n"
468 "CHROMEOS_IS_POWERWASH_ALLOWED=true\n"));
469
470 // When set to a valid value while a change is already pending, it should
471 // succeed.
472 params_.Init("", "", false);
473 EXPECT_TRUE(params_.SetTargetChannel("beta-channel", true));
474 // The target channel should reflect the change, but the download channel
475 // should continue to retain the old value ...
476 EXPECT_EQ("beta-channel", params_.target_channel());
477 EXPECT_EQ("stable-channel", params_.download_channel());
478
479 // ... until we update the download channel explicitly.
480 params_.UpdateDownloadChannel();
481 EXPECT_EQ("beta-channel", params_.download_channel());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700482 EXPECT_EQ("beta-channel", params_.target_channel());
Patrick Dubroy7fbbe8a2011-08-01 17:28:22 +0200483}
484
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700485TEST_F(OmahaRequestParamsTest, ChannelIndexTest) {
486 int canary = params_.GetChannelIndex("canary-channel");
487 int dev = params_.GetChannelIndex("dev-channel");
488 int beta = params_.GetChannelIndex("beta-channel");
489 int stable = params_.GetChannelIndex("stable-channel");
490 EXPECT_LE(canary, dev);
491 EXPECT_LE(dev, beta);
492 EXPECT_LE(beta, stable);
493
494 // testimage-channel or other names are not recognized, so index will be -1.
495 int testimage = params_.GetChannelIndex("testimage-channel");
496 int bogus = params_.GetChannelIndex("bogus-channel");
497 EXPECT_EQ(-1, testimage);
498 EXPECT_EQ(-1, bogus);
499}
500
501TEST_F(OmahaRequestParamsTest, ToMoreStableChannelFlagTest) {
502 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700503 test_dir_ + "/etc/lsb-release",
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700504 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
505 "CHROMEOS_RELEASE_FOO=bar\n"
506 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
507 "CHROMEOS_RELEASE_TRACK=canary-channel\n"
508 "CHROMEOS_AUSERVER=http://www.google.com"));
509 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700510 test_dir_ + kStatefulPartition + "/etc/lsb-release",
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700511 "CHROMEOS_RELEASE_BOARD=x86-generic\n"
512 "CHROMEOS_RELEASE_TRACK=stable-channel\n"
513 "CHROMEOS_AUSERVER=https://www.google.com"));
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700514 OmahaRequestParams out(&fake_system_state_);
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700515 EXPECT_TRUE(DoTest(&out, "", ""));
516 EXPECT_EQ("https://www.google.com", out.update_url());
517 EXPECT_FALSE(out.delta_okay());
518 EXPECT_EQ("stable-channel", out.target_channel());
519 EXPECT_TRUE(out.to_more_stable_channel());
520}
521
522TEST_F(OmahaRequestParamsTest, ShouldLockDownTest) {
Darin Petkov10d02dd2011-01-10 14:57:39 -0800523 EXPECT_FALSE(params_.ShouldLockDown());
524}
525
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700526TEST_F(OmahaRequestParamsTest, BoardAppIdUsedForNonCanaryChannelTest) {
527 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700528 test_dir_ + "/etc/lsb-release",
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700529 "CHROMEOS_RELEASE_APPID=r\n"
530 "CHROMEOS_BOARD_APPID=b\n"
531 "CHROMEOS_CANARY_APPID=c\n"
532 "CHROMEOS_RELEASE_TRACK=stable-channel\n"));
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700533 OmahaRequestParams out(&fake_system_state_);
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700534 EXPECT_TRUE(DoTest(&out, "", ""));
535 EXPECT_EQ("stable-channel", out.download_channel());
536 EXPECT_EQ("b", out.GetAppId());
537}
538
539TEST_F(OmahaRequestParamsTest, CanaryAppIdUsedForCanaryChannelTest) {
540 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700541 test_dir_ + "/etc/lsb-release",
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700542 "CHROMEOS_RELEASE_APPID=r\n"
543 "CHROMEOS_BOARD_APPID=b\n"
544 "CHROMEOS_CANARY_APPID=c\n"
545 "CHROMEOS_RELEASE_TRACK=canary-channel\n"));
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700546 OmahaRequestParams out(&fake_system_state_);
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700547 EXPECT_TRUE(DoTest(&out, "", ""));
548 EXPECT_EQ("canary-channel", out.download_channel());
549 EXPECT_EQ("c", out.GetAppId());
550}
551
552TEST_F(OmahaRequestParamsTest, ReleaseAppIdUsedAsDefaultTest) {
553 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700554 test_dir_ + "/etc/lsb-release",
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700555 "CHROMEOS_RELEASE_APPID=r\n"
556 "CHROMEOS_CANARY_APPID=c\n"
557 "CHROMEOS_RELEASE_TRACK=stable-channel\n"));
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700558 OmahaRequestParams out(&fake_system_state_);
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700559 EXPECT_TRUE(DoTest(&out, "", ""));
560 EXPECT_EQ("stable-channel", out.download_channel());
561 EXPECT_EQ("r", out.GetAppId());
562}
563
Chris Sosac1972482013-04-30 22:31:10 -0700564TEST_F(OmahaRequestParamsTest, CollectECFWVersionsTest) {
565 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700566 test_dir_ + "/etc/lsb-release",
Chris Sosac1972482013-04-30 22:31:10 -0700567 "CHROMEOS_RELEASE_APPID=r\n"
568 "CHROMEOS_CANARY_APPID=c\n"
569 "CHROMEOS_RELEASE_TRACK=stable-channel\n"));
Gilad Arnold5bb4c902014-04-10 12:32:13 -0700570 OmahaRequestParams out(&fake_system_state_);
Chris Sosac1972482013-04-30 22:31:10 -0700571 out.hwid_ = string("STUMPY ALEX 12345");
572 EXPECT_FALSE(out.CollectECFWVersions());
573
574 out.hwid_ = string("SNOW 12345");
575 EXPECT_TRUE(out.CollectECFWVersions());
576
577 out.hwid_ = string("SAMS ALEX 12345");
578 EXPECT_TRUE(out.CollectECFWVersions());
579}
580
581
adlr@google.com3defe6a2009-12-04 20:57:17 +0000582} // namespace chromeos_update_engine