blob: 1523270abd128a53f7238056683512de0ded0726 [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
5#include <stdio.h>
Darin Petkovfbb40092010-07-29 17:05:50 -07006
adlr@google.com3defe6a2009-12-04 20:57:17 +00007#include <string>
Darin Petkovfbb40092010-07-29 17:05:50 -07008
9#include "base/file_util.h"
10#include "gtest/gtest.h"
Chris Sosabe45bef2013-04-09 18:25:12 -070011#include "update_engine/constants.h"
adlr@google.com3defe6a2009-12-04 20:57:17 +000012#include "update_engine/install_plan.h"
Jay Srinivasanae4697c2013-03-18 17:08:08 -070013#include "update_engine/mock_system_state.h"
Darin Petkova4a8a8c2010-07-15 22:21:12 -070014#include "update_engine/omaha_request_params.h"
adlr@google.com3defe6a2009-12-04 20:57:17 +000015#include "update_engine/test_utils.h"
16#include "update_engine/utils.h"
17
18using std::string;
19
20namespace chromeos_update_engine {
21
Jay Srinivasanae4697c2013-03-18 17:08:08 -070022class OmahaRequestParamsTest : public ::testing::Test {
23 public:
24 OmahaRequestParamsTest() : params_(NULL) {}
25
Darin Petkov5a7f5652010-07-22 21:40:09 -070026 protected:
Jay Srinivasanae4697c2013-03-18 17:08:08 -070027 // Return true iff the OmahaRequestParams::Init succeeded. If
Darin Petkova4a8a8c2010-07-15 22:21:12 -070028 // out is non-NULL, it's set w/ the generated data.
Darin Petkov5a7f5652010-07-22 21:40:09 -070029 bool DoTest(OmahaRequestParams* out, const string& app_version,
30 const string& omaha_url);
31
32 virtual void SetUp() {
Gilad Arnoldc9abbec2013-07-01 06:24:42 -070033 // Create a uniquely named test directory.
34 ASSERT_TRUE(utils::MakeTempDirectory(kTestDirTemplate,
35 &test_dir_));
36
37 ASSERT_EQ(0, System(string("mkdir -p ") + test_dir_ + "/etc"));
38 ASSERT_EQ(0, System(string("mkdir -p ") + test_dir_ +
Chris Sosabe45bef2013-04-09 18:25:12 -070039 kStatefulPartition + "/etc"));
Jay Srinivasanae4697c2013-03-18 17:08:08 -070040 // Create a fresh copy of the params for each test, so there's no
41 // unintended reuse of state across tests.
42 MockSystemState mock_system_state;
43 OmahaRequestParams new_params(&mock_system_state);
44 params_ = new_params;
Gilad Arnoldc9abbec2013-07-01 06:24:42 -070045 params_.set_root(string("./") + test_dir_);
Darin Petkov10d02dd2011-01-10 14:57:39 -080046 params_.SetLockDown(false);
Darin Petkov5a7f5652010-07-22 21:40:09 -070047 }
48
49 virtual void TearDown() {
Gilad Arnoldc9abbec2013-07-01 06:24:42 -070050 EXPECT_EQ(0, System(string("rm -rf ") + test_dir_));
Darin Petkov5a7f5652010-07-22 21:40:09 -070051 }
52
Jay Srinivasanae4697c2013-03-18 17:08:08 -070053 OmahaRequestParams params_;
Darin Petkov49d91322010-10-25 16:34:58 -070054
Gilad Arnoldc9abbec2013-07-01 06:24:42 -070055 static const char* kTestDirTemplate;
56 string test_dir_;
adlr@google.com3defe6a2009-12-04 20:57:17 +000057};
58
Gilad Arnoldc9abbec2013-07-01 06:24:42 -070059const char* OmahaRequestParamsTest::kTestDirTemplate =
60 "omaha_request_params-test-XXXXXX";
adlr@google.com3defe6a2009-12-04 20:57:17 +000061
Jay Srinivasanae4697c2013-03-18 17:08:08 -070062bool OmahaRequestParamsTest::DoTest(OmahaRequestParams* out,
63 const string& app_version,
64 const string& omaha_url) {
65 bool success = params_.Init(app_version, omaha_url, false);
adlr@google.com3defe6a2009-12-04 20:57:17 +000066 if (out)
Darin Petkov49d91322010-10-25 16:34:58 -070067 *out = params_;
Darin Petkova4a8a8c2010-07-15 22:21:12 -070068 return success;
adlr@google.com3defe6a2009-12-04 20:57:17 +000069}
70
71namespace {
adlr@google.com3defe6a2009-12-04 20:57:17 +000072string GetMachineType() {
Gilad Arnold19a45f02012-07-19 12:36:10 -070073 string machine_type;
74 if (!utils::ReadPipe("uname -m", &machine_type))
adlr@google.com3defe6a2009-12-04 20:57:17 +000075 return "";
Gilad Arnold19a45f02012-07-19 12:36:10 -070076 // Strip anything from the first newline char.
77 size_t newline_pos = machine_type.find('\n');
78 if (newline_pos != string::npos)
79 machine_type.erase(newline_pos);
80 return machine_type;
adlr@google.com3defe6a2009-12-04 20:57:17 +000081}
82} // namespace {}
83
Jay Srinivasanae4697c2013-03-18 17:08:08 -070084TEST_F(OmahaRequestParamsTest, SimpleTest) {
Darin Petkov5a7f5652010-07-22 21:40:09 -070085 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -070086 test_dir_ + "/etc/lsb-release",
Darin Petkov5a7f5652010-07-22 21:40:09 -070087 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
88 "CHROMEOS_RELEASE_FOO=bar\n"
89 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -070090 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
Darin Petkov5a7f5652010-07-22 21:40:09 -070091 "CHROMEOS_AUSERVER=http://www.google.com"));
Jay Srinivasanae4697c2013-03-18 17:08:08 -070092 MockSystemState mock_system_state;
93 OmahaRequestParams out(&mock_system_state);
Darin Petkov5a7f5652010-07-22 21:40:09 -070094 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -070095 EXPECT_EQ("Chrome OS", out.os_platform());
96 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp());
97 EXPECT_EQ("arm-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -070098 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -070099 EXPECT_EQ("0.2.2.3", out.app_version());
100 EXPECT_EQ("en-US", out.app_lang());
101 EXPECT_EQ("", out.hwid());
102 EXPECT_TRUE(out.delta_okay());
103 EXPECT_EQ("dev-channel", out.target_channel());
104 EXPECT_EQ("http://www.google.com", out.update_url());
adlr@google.com3defe6a2009-12-04 20:57:17 +0000105}
106
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700107TEST_F(OmahaRequestParamsTest, AppIDTest) {
Darin Petkovd315dc72010-11-15 09:52:24 -0800108 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700109 test_dir_ + "/etc/lsb-release",
Darin Petkovd315dc72010-11-15 09:52:24 -0800110 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
111 "CHROMEOS_RELEASE_FOO=bar\n"
112 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700113 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
Darin Petkovd315dc72010-11-15 09:52:24 -0800114 "CHROMEOS_RELEASE_APPID={58c35cef-9d30-476e-9098-ce20377d535d}\n"
115 "CHROMEOS_AUSERVER=http://www.google.com"));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700116 MockSystemState mock_system_state;
117 OmahaRequestParams out(&mock_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());
125 EXPECT_EQ("", out.hwid());
126 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"));
137 MockSystemState mock_system_state;
138 OmahaRequestParams out(&mock_system_state);
Darin Petkov5a7f5652010-07-22 21:40:09 -0700139 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700140 EXPECT_EQ("Chrome OS", out.os_platform());
141 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700142 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700143 EXPECT_EQ("0.2.2.3", out.app_version());
144 EXPECT_EQ("en-US", out.app_lang());
145 EXPECT_EQ("", out.target_channel());
adlr@google.com3defe6a2009-12-04 20:57:17 +0000146}
147
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700148TEST_F(OmahaRequestParamsTest, ConfusingReleaseTest) {
Darin Petkov5a7f5652010-07-22 21:40:09 -0700149 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700150 test_dir_ + "/etc/lsb-release",
Darin Petkov5a7f5652010-07-22 21:40:09 -0700151 "CHROMEOS_RELEASE_FOO=CHROMEOS_RELEASE_VERSION=1.2.3.4\n"
152 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700153 "CHROMEOS_RELEASE_TRXCK=dev-channel"));
154 MockSystemState mock_system_state;
155 OmahaRequestParams out(&mock_system_state);
Darin Petkov5a7f5652010-07-22 21:40:09 -0700156 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700157 EXPECT_EQ("Chrome OS", out.os_platform());
158 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700159 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700160 EXPECT_EQ("0.2.2.3", out.app_version());
161 EXPECT_EQ("en-US", out.app_lang());
162 EXPECT_EQ("", out.target_channel());
adlr@google.com3defe6a2009-12-04 20:57:17 +0000163}
164
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700165TEST_F(OmahaRequestParamsTest, MissingVersionTest) {
Darin Petkov5a7f5652010-07-22 21:40:09 -0700166 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700167 test_dir_ + "/etc/lsb-release",
Darin Petkov5a7f5652010-07-22 21:40:09 -0700168 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
169 "CHROMEOS_RELEASE_FOO=bar\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700170 "CHROMEOS_RELEASE_TRACK=dev-channel"));
171 MockSystemState mock_system_state;
172 OmahaRequestParams out(&mock_system_state);
Darin Petkov5a7f5652010-07-22 21:40:09 -0700173 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700174 EXPECT_EQ("Chrome OS", out.os_platform());
175 EXPECT_EQ(string("_") + GetMachineType(), out.os_sp());
176 EXPECT_EQ("arm-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700177 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700178 EXPECT_EQ("", out.app_version());
179 EXPECT_EQ("en-US", out.app_lang());
180 EXPECT_TRUE(out.delta_okay());
181 EXPECT_EQ("dev-channel", out.target_channel());
Darin Petkov5a7f5652010-07-22 21:40:09 -0700182}
183
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700184TEST_F(OmahaRequestParamsTest, ForceVersionTest) {
Darin Petkov5a7f5652010-07-22 21:40:09 -0700185 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700186 test_dir_ + "/etc/lsb-release",
Darin Petkov5a7f5652010-07-22 21:40:09 -0700187 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
188 "CHROMEOS_RELEASE_FOO=bar\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700189 "CHROMEOS_RELEASE_TRACK=dev-channel"));
190 MockSystemState mock_system_state;
191 OmahaRequestParams out(&mock_system_state);
Darin Petkov5a7f5652010-07-22 21:40:09 -0700192 EXPECT_TRUE(DoTest(&out, "ForcedVersion", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700193 EXPECT_EQ("Chrome OS", out.os_platform());
194 EXPECT_EQ(string("ForcedVersion_") + GetMachineType(), out.os_sp());
195 EXPECT_EQ("arm-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700196 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700197 EXPECT_EQ("ForcedVersion", out.app_version());
198 EXPECT_EQ("en-US", out.app_lang());
199 EXPECT_TRUE(out.delta_okay());
200 EXPECT_EQ("dev-channel", out.target_channel());
Darin Petkov5a7f5652010-07-22 21:40:09 -0700201}
202
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700203TEST_F(OmahaRequestParamsTest, ForcedURLTest) {
Darin Petkov5a7f5652010-07-22 21:40:09 -0700204 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700205 test_dir_ + "/etc/lsb-release",
Darin Petkov5a7f5652010-07-22 21:40:09 -0700206 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
207 "CHROMEOS_RELEASE_FOO=bar\n"
208 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700209 "CHROMEOS_RELEASE_TRACK=dev-channel"));
210 MockSystemState mock_system_state;
211 OmahaRequestParams out(&mock_system_state);
Darin Petkov5a7f5652010-07-22 21:40:09 -0700212 EXPECT_TRUE(DoTest(&out, "", "http://forced.google.com"));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700213 EXPECT_EQ("Chrome OS", out.os_platform());
214 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp());
215 EXPECT_EQ("arm-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700216 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700217 EXPECT_EQ("0.2.2.3", out.app_version());
218 EXPECT_EQ("en-US", out.app_lang());
219 EXPECT_TRUE(out.delta_okay());
220 EXPECT_EQ("dev-channel", out.target_channel());
221 EXPECT_EQ("http://forced.google.com", out.update_url());
Darin Petkov5a7f5652010-07-22 21:40:09 -0700222}
223
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700224TEST_F(OmahaRequestParamsTest, MissingURLTest) {
Darin Petkov5a7f5652010-07-22 21:40:09 -0700225 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700226 test_dir_ + "/etc/lsb-release",
Darin Petkov5a7f5652010-07-22 21:40:09 -0700227 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
228 "CHROMEOS_RELEASE_FOO=bar\n"
229 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700230 "CHROMEOS_RELEASE_TRACK=dev-channel"));
231 MockSystemState mock_system_state;
232 OmahaRequestParams out(&mock_system_state);
Darin Petkov5a7f5652010-07-22 21:40:09 -0700233 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700234 EXPECT_EQ("Chrome OS", out.os_platform());
235 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp());
236 EXPECT_EQ("arm-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700237 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700238 EXPECT_EQ("0.2.2.3", out.app_version());
239 EXPECT_EQ("en-US", out.app_lang());
240 EXPECT_TRUE(out.delta_okay());
241 EXPECT_EQ("dev-channel", out.target_channel());
242 EXPECT_EQ(kProductionOmahaUrl, out.update_url());
Andrew de los Reyes970bb282009-12-09 16:34:04 -0800243}
244
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700245TEST_F(OmahaRequestParamsTest, NoDeltasTest) {
Andrew de los Reyes3f0303a2010-07-15 22:35:35 -0700246 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700247 test_dir_ + "/etc/lsb-release",
Andrew de los Reyes3f0303a2010-07-15 22:35:35 -0700248 "CHROMEOS_RELEASE_FOO=CHROMEOS_RELEASE_VERSION=1.2.3.4\n"
249 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700250 "CHROMEOS_RELEASE_TRXCK=dev-channel"));
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700251 ASSERT_TRUE(WriteFileString(test_dir_ + "/.nodelta", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700252 MockSystemState mock_system_state;
253 OmahaRequestParams out(&mock_system_state);
Darin Petkov5a7f5652010-07-22 21:40:09 -0700254 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700255 EXPECT_FALSE(out.delta_okay());
Andrew de los Reyes3f0303a2010-07-15 22:35:35 -0700256}
257
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700258TEST_F(OmahaRequestParamsTest, OverrideTest) {
Darin Petkov49d91322010-10-25 16:34:58 -0700259 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700260 test_dir_ + "/etc/lsb-release",
Darin Petkov49d91322010-10-25 16:34:58 -0700261 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
262 "CHROMEOS_RELEASE_FOO=bar\n"
263 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Darin Petkov10d02dd2011-01-10 14:57:39 -0800264 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
265 "CHROMEOS_AUSERVER=http://www.google.com"));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700266 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700267 test_dir_ + kStatefulPartition + "/etc/lsb-release",
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700268 "CHROMEOS_RELEASE_BOARD=x86-generic\n"
269 "CHROMEOS_RELEASE_TRACK=beta-channel\n"
270 "CHROMEOS_AUSERVER=https://www.google.com"));
271 MockSystemState mock_system_state;
272 OmahaRequestParams out(&mock_system_state);
273 EXPECT_TRUE(DoTest(&out, "", ""));
274 EXPECT_EQ("Chrome OS", out.os_platform());
275 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp());
276 EXPECT_EQ("x86-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700277 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700278 EXPECT_EQ("0.2.2.3", out.app_version());
279 EXPECT_EQ("en-US", out.app_lang());
280 EXPECT_EQ("", out.hwid());
281 EXPECT_FALSE(out.delta_okay());
282 EXPECT_EQ("beta-channel", out.target_channel());
283 EXPECT_EQ("https://www.google.com", out.update_url());
284}
285
286TEST_F(OmahaRequestParamsTest, OverrideLockDownTest) {
287 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700288 test_dir_ + "/etc/lsb-release",
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700289 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
290 "CHROMEOS_RELEASE_FOO=bar\n"
291 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
292 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
293 "CHROMEOS_AUSERVER=https://www.google.com"));
294 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700295 test_dir_ + kStatefulPartition + "/etc/lsb-release",
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700296 "CHROMEOS_RELEASE_BOARD=x86-generic\n"
297 "CHROMEOS_RELEASE_TRACK=stable-channel\n"
298 "CHROMEOS_AUSERVER=http://www.google.com"));
Darin Petkov10d02dd2011-01-10 14:57:39 -0800299 params_.SetLockDown(true);
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700300 MockSystemState mock_system_state;
301 OmahaRequestParams out(&mock_system_state);
Darin Petkov10d02dd2011-01-10 14:57:39 -0800302 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700303 EXPECT_EQ("arm-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700304 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700305 EXPECT_EQ("0.2.2.3", out.app_version());
306 EXPECT_EQ("", out.hwid());
307 EXPECT_FALSE(out.delta_okay());
308 EXPECT_EQ("stable-channel", out.target_channel());
309 EXPECT_EQ("https://www.google.com", out.update_url());
Darin Petkov49d91322010-10-25 16:34:58 -0700310}
311
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700312TEST_F(OmahaRequestParamsTest, OverrideSameChannelTest) {
Darin Petkova3df55b2010-11-15 13:33:55 -0800313 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700314 test_dir_ + "/etc/lsb-release",
Darin Petkova3df55b2010-11-15 13:33:55 -0800315 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
316 "CHROMEOS_RELEASE_FOO=bar\n"
317 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700318 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
Darin Petkova3df55b2010-11-15 13:33:55 -0800319 "CHROMEOS_AUSERVER=http://www.google.com"));
320 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700321 test_dir_ + kStatefulPartition + "/etc/lsb-release",
Darin Petkova3df55b2010-11-15 13:33:55 -0800322 "CHROMEOS_RELEASE_BOARD=x86-generic\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700323 "CHROMEOS_RELEASE_TRACK=dev-channel"));
324 MockSystemState mock_system_state;
325 OmahaRequestParams out(&mock_system_state);
Darin Petkova3df55b2010-11-15 13:33:55 -0800326 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700327 EXPECT_EQ("x86-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700328 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700329 EXPECT_EQ("0.2.2.3", out.app_version());
330 EXPECT_EQ("", out.hwid());
331 EXPECT_TRUE(out.delta_okay());
332 EXPECT_EQ("dev-channel", out.target_channel());
333 EXPECT_EQ("http://www.google.com", out.update_url());
Darin Petkova3df55b2010-11-15 13:33:55 -0800334}
335
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700336TEST_F(OmahaRequestParamsTest, SetTargetChannelTest) {
Darin Petkov49d91322010-10-25 16:34:58 -0700337 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700338 test_dir_ + "/etc/lsb-release",
Darin Petkov49d91322010-10-25 16:34:58 -0700339 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
340 "CHROMEOS_RELEASE_FOO=bar\n"
341 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700342 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
Darin Petkov49d91322010-10-25 16:34:58 -0700343 "CHROMEOS_AUSERVER=http://www.google.com"));
344 {
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700345 MockSystemState mock_system_state;
346 OmahaRequestParams params(&mock_system_state);
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700347 params.set_root(string("./") + test_dir_);
Darin Petkov10d02dd2011-01-10 14:57:39 -0800348 params.SetLockDown(false);
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700349 EXPECT_TRUE(params.Init("", "", false));
350 params.SetTargetChannel("canary-channel", false);
351 EXPECT_FALSE(params.is_powerwash_allowed());
Darin Petkov49d91322010-10-25 16:34:58 -0700352 }
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700353 MockSystemState mock_system_state;
354 OmahaRequestParams out(&mock_system_state);
Darin Petkov49d91322010-10-25 16:34:58 -0700355 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700356 EXPECT_EQ("canary-channel", out.target_channel());
357 EXPECT_FALSE(out.is_powerwash_allowed());
Darin Petkov49d91322010-10-25 16:34:58 -0700358}
359
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700360TEST_F(OmahaRequestParamsTest, SetIsPowerwashAllowedTest) {
Darin Petkov49d91322010-10-25 16:34:58 -0700361 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700362 test_dir_ + "/etc/lsb-release",
Darin Petkov49d91322010-10-25 16:34:58 -0700363 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
364 "CHROMEOS_RELEASE_FOO=bar\n"
365 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700366 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
Darin Petkov49d91322010-10-25 16:34:58 -0700367 "CHROMEOS_AUSERVER=http://www.google.com"));
Darin Petkov49d91322010-10-25 16:34:58 -0700368 {
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700369 MockSystemState mock_system_state;
370 OmahaRequestParams params(&mock_system_state);
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700371 params.set_root(string("./") + test_dir_);
Darin Petkov10d02dd2011-01-10 14:57:39 -0800372 params.SetLockDown(false);
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700373 EXPECT_TRUE(params.Init("", "", false));
374 params.SetTargetChannel("canary-channel", true);
375 EXPECT_TRUE(params.is_powerwash_allowed());
Darin Petkov49d91322010-10-25 16:34:58 -0700376 }
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700377 MockSystemState mock_system_state;
378 OmahaRequestParams out(&mock_system_state);
Darin Petkov49d91322010-10-25 16:34:58 -0700379 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700380 EXPECT_EQ("canary-channel", out.target_channel());
381 EXPECT_TRUE(out.is_powerwash_allowed());
Darin Petkov49d91322010-10-25 16:34:58 -0700382}
383
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700384TEST_F(OmahaRequestParamsTest, SetTargetChannelInvalidTest) {
Darin Petkov49d91322010-10-25 16:34:58 -0700385 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700386 test_dir_ + "/etc/lsb-release",
Darin Petkov49d91322010-10-25 16:34:58 -0700387 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
388 "CHROMEOS_RELEASE_FOO=bar\n"
389 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700390 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
Darin Petkov49d91322010-10-25 16:34:58 -0700391 "CHROMEOS_AUSERVER=http://www.google.com"));
392 {
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700393 MockSystemState mock_system_state;
394 OmahaRequestParams params(&mock_system_state);
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700395 params.set_root(string("./") + test_dir_);
Darin Petkov10d02dd2011-01-10 14:57:39 -0800396 params.SetLockDown(true);
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700397 EXPECT_TRUE(params.Init("", "", false));
398 params.SetTargetChannel("dogfood-channel", true);
399 EXPECT_FALSE(params.is_powerwash_allowed());
Darin Petkov49d91322010-10-25 16:34:58 -0700400 }
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700401 MockSystemState mock_system_state;
402 OmahaRequestParams out(&mock_system_state);
Darin Petkov49d91322010-10-25 16:34:58 -0700403 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700404 EXPECT_EQ("arm-generic", out.os_board());
405 EXPECT_EQ("dev-channel", out.target_channel());
406 EXPECT_FALSE(out.is_powerwash_allowed());
Darin Petkov49d91322010-10-25 16:34:58 -0700407}
408
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700409TEST_F(OmahaRequestParamsTest, IsValidChannelTest) {
Darin Petkov10d02dd2011-01-10 14:57:39 -0800410 params_.SetLockDown(false);
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700411 EXPECT_TRUE(params_.IsValidChannel("canary-channel"));
412 EXPECT_TRUE(params_.IsValidChannel("stable-channel"));
413 EXPECT_TRUE(params_.IsValidChannel("beta-channel"));
414 EXPECT_TRUE(params_.IsValidChannel("dev-channel"));
415 EXPECT_FALSE(params_.IsValidChannel("testimage-channel"));
416 EXPECT_FALSE(params_.IsValidChannel("dogfood-channel"));
417 EXPECT_FALSE(params_.IsValidChannel("some-channel"));
418 EXPECT_FALSE(params_.IsValidChannel(""));
Darin Petkov49d91322010-10-25 16:34:58 -0700419}
420
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700421TEST_F(OmahaRequestParamsTest, ValidChannelTest) {
Darin Petkov49d91322010-10-25 16:34:58 -0700422 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700423 test_dir_ + "/etc/lsb-release",
Darin Petkov49d91322010-10-25 16:34:58 -0700424 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
425 "CHROMEOS_RELEASE_FOO=bar\n"
426 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
427 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
428 "CHROMEOS_AUSERVER=http://www.google.com"));
Darin Petkov10d02dd2011-01-10 14:57:39 -0800429 params_.SetLockDown(true);
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700430 MockSystemState mock_system_state;
431 OmahaRequestParams out(&mock_system_state);
Darin Petkov49d91322010-10-25 16:34:58 -0700432 EXPECT_TRUE(DoTest(&out, "", ""));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700433 EXPECT_EQ("Chrome OS", out.os_platform());
434 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp());
435 EXPECT_EQ("arm-generic", out.os_board());
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700436 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.GetAppId());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700437 EXPECT_EQ("0.2.2.3", out.app_version());
438 EXPECT_EQ("en-US", out.app_lang());
439 EXPECT_EQ("", out.hwid());
440 EXPECT_TRUE(out.delta_okay());
441 EXPECT_EQ("dev-channel", out.target_channel());
442 EXPECT_EQ("http://www.google.com", out.update_url());
Darin Petkov49d91322010-10-25 16:34:58 -0700443}
444
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700445TEST_F(OmahaRequestParamsTest, SetTargetChannelWorks) {
Patrick Dubroy7fbbe8a2011-08-01 17:28:22 +0200446 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700447 test_dir_ + "/etc/lsb-release",
Patrick Dubroy7fbbe8a2011-08-01 17:28:22 +0200448 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
449 "CHROMEOS_RELEASE_FOO=bar\n"
450 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
451 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
452 "CHROMEOS_AUSERVER=http://www.google.com"));
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700453 params_.SetLockDown(false);
Patrick Dubroy7fbbe8a2011-08-01 17:28:22 +0200454
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700455 // Check LSB value is used by default when SetTargetChannel is not called.
456 params_.Init("", "", false);
457 EXPECT_EQ("dev-channel", params_.target_channel());
Patrick Dubroy7fbbe8a2011-08-01 17:28:22 +0200458
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700459 // When an invalid value is set, it should be ignored and the
460 // value from lsb-release should be used instead.
461 params_.Init("", "", false);
462 EXPECT_FALSE(params_.SetTargetChannel("invalid-channel", false));
463 EXPECT_EQ("dev-channel", params_.target_channel());
464
465 // When set to a valid value, it should take effect.
466 params_.Init("", "", false);
467 EXPECT_TRUE(params_.SetTargetChannel("beta-channel", true));
468 EXPECT_EQ("beta-channel", params_.target_channel());
469
470 // When set to the same value, it should be idempotent.
471 params_.Init("", "", false);
472 EXPECT_TRUE(params_.SetTargetChannel("beta-channel", true));
473 EXPECT_EQ("beta-channel", params_.target_channel());
474
475 // When set to a valid value while a change is already pending, it should
Jay Srinivasan1c0fe792013-03-28 16:45:25 -0700476 // succeed.
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700477 params_.Init("", "", false);
Jay Srinivasan1c0fe792013-03-28 16:45:25 -0700478 EXPECT_TRUE(params_.SetTargetChannel("stable-channel", true));
479 EXPECT_EQ("stable-channel", params_.target_channel());
480
481 // Set a different channel in stateful LSB release.
482 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700483 test_dir_ + kStatefulPartition + "/etc/lsb-release",
Jay Srinivasan1c0fe792013-03-28 16:45:25 -0700484 "CHROMEOS_RELEASE_TRACK=stable-channel\n"
485 "CHROMEOS_IS_POWERWASH_ALLOWED=true\n"));
486
487 // When set to a valid value while a change is already pending, it should
488 // succeed.
489 params_.Init("", "", false);
490 EXPECT_TRUE(params_.SetTargetChannel("beta-channel", true));
491 // The target channel should reflect the change, but the download channel
492 // should continue to retain the old value ...
493 EXPECT_EQ("beta-channel", params_.target_channel());
494 EXPECT_EQ("stable-channel", params_.download_channel());
495
496 // ... until we update the download channel explicitly.
497 params_.UpdateDownloadChannel();
498 EXPECT_EQ("beta-channel", params_.download_channel());
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700499 EXPECT_EQ("beta-channel", params_.target_channel());
Patrick Dubroy7fbbe8a2011-08-01 17:28:22 +0200500}
501
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700502TEST_F(OmahaRequestParamsTest, ChannelIndexTest) {
503 int canary = params_.GetChannelIndex("canary-channel");
504 int dev = params_.GetChannelIndex("dev-channel");
505 int beta = params_.GetChannelIndex("beta-channel");
506 int stable = params_.GetChannelIndex("stable-channel");
507 EXPECT_LE(canary, dev);
508 EXPECT_LE(dev, beta);
509 EXPECT_LE(beta, stable);
510
511 // testimage-channel or other names are not recognized, so index will be -1.
512 int testimage = params_.GetChannelIndex("testimage-channel");
513 int bogus = params_.GetChannelIndex("bogus-channel");
514 EXPECT_EQ(-1, testimage);
515 EXPECT_EQ(-1, bogus);
516}
517
518TEST_F(OmahaRequestParamsTest, ToMoreStableChannelFlagTest) {
519 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700520 test_dir_ + "/etc/lsb-release",
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700521 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
522 "CHROMEOS_RELEASE_FOO=bar\n"
523 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
524 "CHROMEOS_RELEASE_TRACK=canary-channel\n"
525 "CHROMEOS_AUSERVER=http://www.google.com"));
526 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700527 test_dir_ + kStatefulPartition + "/etc/lsb-release",
Jay Srinivasanae4697c2013-03-18 17:08:08 -0700528 "CHROMEOS_RELEASE_BOARD=x86-generic\n"
529 "CHROMEOS_RELEASE_TRACK=stable-channel\n"
530 "CHROMEOS_AUSERVER=https://www.google.com"));
531 MockSystemState mock_system_state;
532 OmahaRequestParams out(&mock_system_state);
533 EXPECT_TRUE(DoTest(&out, "", ""));
534 EXPECT_EQ("https://www.google.com", out.update_url());
535 EXPECT_FALSE(out.delta_okay());
536 EXPECT_EQ("stable-channel", out.target_channel());
537 EXPECT_TRUE(out.to_more_stable_channel());
538}
539
540TEST_F(OmahaRequestParamsTest, ShouldLockDownTest) {
Darin Petkov10d02dd2011-01-10 14:57:39 -0800541 EXPECT_FALSE(params_.ShouldLockDown());
542}
543
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700544TEST_F(OmahaRequestParamsTest, BoardAppIdUsedForNonCanaryChannelTest) {
545 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700546 test_dir_ + "/etc/lsb-release",
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700547 "CHROMEOS_RELEASE_APPID=r\n"
548 "CHROMEOS_BOARD_APPID=b\n"
549 "CHROMEOS_CANARY_APPID=c\n"
550 "CHROMEOS_RELEASE_TRACK=stable-channel\n"));
551 MockSystemState mock_system_state;
552 OmahaRequestParams out(&mock_system_state);
553 EXPECT_TRUE(DoTest(&out, "", ""));
554 EXPECT_EQ("stable-channel", out.download_channel());
555 EXPECT_EQ("b", out.GetAppId());
556}
557
558TEST_F(OmahaRequestParamsTest, CanaryAppIdUsedForCanaryChannelTest) {
559 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700560 test_dir_ + "/etc/lsb-release",
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700561 "CHROMEOS_RELEASE_APPID=r\n"
562 "CHROMEOS_BOARD_APPID=b\n"
563 "CHROMEOS_CANARY_APPID=c\n"
564 "CHROMEOS_RELEASE_TRACK=canary-channel\n"));
565 MockSystemState mock_system_state;
566 OmahaRequestParams out(&mock_system_state);
567 EXPECT_TRUE(DoTest(&out, "", ""));
568 EXPECT_EQ("canary-channel", out.download_channel());
569 EXPECT_EQ("c", out.GetAppId());
570}
571
572TEST_F(OmahaRequestParamsTest, ReleaseAppIdUsedAsDefaultTest) {
573 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700574 test_dir_ + "/etc/lsb-release",
Jay Srinivasandb0acdf2013-04-02 14:47:45 -0700575 "CHROMEOS_RELEASE_APPID=r\n"
576 "CHROMEOS_CANARY_APPID=c\n"
577 "CHROMEOS_RELEASE_TRACK=stable-channel\n"));
578 MockSystemState mock_system_state;
579 OmahaRequestParams out(&mock_system_state);
580 EXPECT_TRUE(DoTest(&out, "", ""));
581 EXPECT_EQ("stable-channel", out.download_channel());
582 EXPECT_EQ("r", out.GetAppId());
583}
584
Chris Sosac1972482013-04-30 22:31:10 -0700585TEST_F(OmahaRequestParamsTest, CollectECFWVersionsTest) {
586 ASSERT_TRUE(WriteFileString(
Gilad Arnoldc9abbec2013-07-01 06:24:42 -0700587 test_dir_ + "/etc/lsb-release",
Chris Sosac1972482013-04-30 22:31:10 -0700588 "CHROMEOS_RELEASE_APPID=r\n"
589 "CHROMEOS_CANARY_APPID=c\n"
590 "CHROMEOS_RELEASE_TRACK=stable-channel\n"));
591 MockSystemState mock_system_state;
592 OmahaRequestParams out(&mock_system_state);
593 out.hwid_ = string("STUMPY ALEX 12345");
594 EXPECT_FALSE(out.CollectECFWVersions());
595
596 out.hwid_ = string("SNOW 12345");
597 EXPECT_TRUE(out.CollectECFWVersions());
598
599 out.hwid_ = string("SAMS ALEX 12345");
600 EXPECT_TRUE(out.CollectECFWVersions());
601}
602
603
adlr@google.com3defe6a2009-12-04 20:57:17 +0000604} // namespace chromeos_update_engine