blob: 458f58221d8dbf1cb574862690367a283fa9d1d4 [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"
adlr@google.com3defe6a2009-12-04 20:57:17 +000011#include "update_engine/install_plan.h"
Darin Petkova4a8a8c2010-07-15 22:21:12 -070012#include "update_engine/omaha_request_params.h"
adlr@google.com3defe6a2009-12-04 20:57:17 +000013#include "update_engine/test_utils.h"
14#include "update_engine/utils.h"
15
16using std::string;
17
18namespace chromeos_update_engine {
19
Darin Petkova4a8a8c2010-07-15 22:21:12 -070020class OmahaRequestDeviceParamsTest : public ::testing::Test {
Darin Petkov5a7f5652010-07-22 21:40:09 -070021 protected:
Darin Petkova4a8a8c2010-07-15 22:21:12 -070022 // Return true iff the OmahaRequestDeviceParams::Init succeeded. If
23 // out is non-NULL, it's set w/ the generated data.
Darin Petkov5a7f5652010-07-22 21:40:09 -070024 bool DoTest(OmahaRequestParams* out, const string& app_version,
25 const string& omaha_url);
26
27 virtual void SetUp() {
28 ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + "/etc"));
29 ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir +
30 utils::kStatefulPartition + "/etc"));
Darin Petkov49d91322010-10-25 16:34:58 -070031 params_.set_root(string("./") + kTestDir);
Darin Petkov10d02dd2011-01-10 14:57:39 -080032 params_.SetLockDown(false);
Darin Petkov5a7f5652010-07-22 21:40:09 -070033 }
34
35 virtual void TearDown() {
36 EXPECT_EQ(0, System(string("rm -rf ") + kTestDir));
37 }
38
Darin Petkov49d91322010-10-25 16:34:58 -070039 OmahaRequestDeviceParams params_;
40
adlr@google.com3defe6a2009-12-04 20:57:17 +000041 static const string kTestDir;
42};
43
Darin Petkova4a8a8c2010-07-15 22:21:12 -070044const string OmahaRequestDeviceParamsTest::kTestDir =
45 "omaha_request_device_params-test";
adlr@google.com3defe6a2009-12-04 20:57:17 +000046
Darin Petkov5a7f5652010-07-22 21:40:09 -070047bool OmahaRequestDeviceParamsTest::DoTest(OmahaRequestParams* out,
48 const string& app_version,
49 const string& omaha_url) {
Darin Petkov49d91322010-10-25 16:34:58 -070050 bool success = params_.Init(app_version, omaha_url);
adlr@google.com3defe6a2009-12-04 20:57:17 +000051 if (out)
Darin Petkov49d91322010-10-25 16:34:58 -070052 *out = params_;
Darin Petkova4a8a8c2010-07-15 22:21:12 -070053 return success;
adlr@google.com3defe6a2009-12-04 20:57:17 +000054}
55
56namespace {
adlr@google.com3defe6a2009-12-04 20:57:17 +000057string GetMachineType() {
58 FILE* fp = popen("uname -m", "r");
59 if (!fp)
60 return "";
61 string ret;
62 for (;;) {
63 char buffer[10];
64 size_t r = fread(buffer, 1, sizeof(buffer), fp);
65 if (r == 0)
66 break;
67 ret.insert(ret.begin(), buffer, buffer + r);
68 }
69 // strip trailing '\n' if it exists
70 if ((*ret.rbegin()) == '\n')
71 ret.resize(ret.size() - 1);
72 fclose(fp);
73 return ret;
74}
75} // namespace {}
76
Darin Petkova4a8a8c2010-07-15 22:21:12 -070077TEST_F(OmahaRequestDeviceParamsTest, SimpleTest) {
Darin Petkov5a7f5652010-07-22 21:40:09 -070078 ASSERT_TRUE(WriteFileString(
79 kTestDir + "/etc/lsb-release",
80 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
81 "CHROMEOS_RELEASE_FOO=bar\n"
82 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
83 "CHROMEOS_RELEASE_TRACK=footrack\n"
84 "CHROMEOS_AUSERVER=http://www.google.com"));
85 OmahaRequestParams out;
86 EXPECT_TRUE(DoTest(&out, "", ""));
Darin Petkov5a7f5652010-07-22 21:40:09 -070087 EXPECT_EQ("Chrome OS", out.os_platform);
88 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp);
89 EXPECT_EQ("arm-generic", out.os_board);
90 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id);
91 EXPECT_EQ("0.2.2.3", out.app_version);
92 EXPECT_EQ("en-US", out.app_lang);
Darin Petkovfbb40092010-07-29 17:05:50 -070093 EXPECT_EQ("", out.hardware_class);
Darin Petkov5a7f5652010-07-22 21:40:09 -070094 EXPECT_TRUE(out.delta_okay);
95 EXPECT_EQ("footrack", out.app_track);
96 EXPECT_EQ("http://www.google.com", out.update_url);
adlr@google.com3defe6a2009-12-04 20:57:17 +000097}
98
Darin Petkovd315dc72010-11-15 09:52:24 -080099TEST_F(OmahaRequestDeviceParamsTest, AppIDTest) {
100 ASSERT_TRUE(WriteFileString(
101 kTestDir + "/etc/lsb-release",
102 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
103 "CHROMEOS_RELEASE_FOO=bar\n"
104 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
105 "CHROMEOS_RELEASE_TRACK=footrack\n"
106 "CHROMEOS_RELEASE_APPID={58c35cef-9d30-476e-9098-ce20377d535d}\n"
107 "CHROMEOS_AUSERVER=http://www.google.com"));
108 OmahaRequestParams out;
109 EXPECT_TRUE(DoTest(&out, "", ""));
110 EXPECT_EQ("Chrome OS", out.os_platform);
111 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp);
112 EXPECT_EQ("arm-generic", out.os_board);
113 EXPECT_EQ("{58c35cef-9d30-476e-9098-ce20377d535d}", out.app_id);
114 EXPECT_EQ("0.2.2.3", out.app_version);
115 EXPECT_EQ("en-US", out.app_lang);
116 EXPECT_EQ("", out.hardware_class);
117 EXPECT_TRUE(out.delta_okay);
118 EXPECT_EQ("footrack", out.app_track);
119 EXPECT_EQ("http://www.google.com", out.update_url);
120}
121
Darin Petkova4a8a8c2010-07-15 22:21:12 -0700122TEST_F(OmahaRequestDeviceParamsTest, MissingTrackTest) {
Darin Petkov5a7f5652010-07-22 21:40:09 -0700123 ASSERT_TRUE(WriteFileString(
124 kTestDir + "/etc/lsb-release",
125 "CHROMEOS_RELEASE_FOO=bar\n"
126 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
127 "CHROMEOS_RELEASE_TRXCK=footrack"));
128 OmahaRequestParams out;
129 EXPECT_TRUE(DoTest(&out, "", ""));
Darin Petkov5a7f5652010-07-22 21:40:09 -0700130 EXPECT_EQ("Chrome OS", out.os_platform);
131 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp);
132 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id);
133 EXPECT_EQ("0.2.2.3", out.app_version);
134 EXPECT_EQ("en-US", out.app_lang);
135 EXPECT_EQ("", out.app_track);
adlr@google.com3defe6a2009-12-04 20:57:17 +0000136}
137
Darin Petkova4a8a8c2010-07-15 22:21:12 -0700138TEST_F(OmahaRequestDeviceParamsTest, ConfusingReleaseTest) {
Darin Petkov5a7f5652010-07-22 21:40:09 -0700139 ASSERT_TRUE(WriteFileString(
140 kTestDir + "/etc/lsb-release",
141 "CHROMEOS_RELEASE_FOO=CHROMEOS_RELEASE_VERSION=1.2.3.4\n"
142 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
143 "CHROMEOS_RELEASE_TRXCK=footrack"));
144 OmahaRequestParams out;
145 EXPECT_TRUE(DoTest(&out, "", ""));
Darin Petkov5a7f5652010-07-22 21:40:09 -0700146 EXPECT_EQ("Chrome OS", out.os_platform);
147 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp);
148 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id);
149 EXPECT_EQ("0.2.2.3", out.app_version);
150 EXPECT_EQ("en-US", out.app_lang);
151 EXPECT_EQ("", out.app_track);
adlr@google.com3defe6a2009-12-04 20:57:17 +0000152}
153
Darin Petkov5a7f5652010-07-22 21:40:09 -0700154TEST_F(OmahaRequestDeviceParamsTest, MissingVersionTest) {
155 ASSERT_TRUE(WriteFileString(
156 kTestDir + "/etc/lsb-release",
157 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
158 "CHROMEOS_RELEASE_FOO=bar\n"
159 "CHROMEOS_RELEASE_TRACK=footrack"));
160 OmahaRequestParams out;
161 EXPECT_TRUE(DoTest(&out, "", ""));
Darin Petkov5a7f5652010-07-22 21:40:09 -0700162 EXPECT_EQ("Chrome OS", out.os_platform);
163 EXPECT_EQ(string("_") + GetMachineType(), out.os_sp);
164 EXPECT_EQ("arm-generic", out.os_board);
165 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id);
166 EXPECT_EQ("", out.app_version);
167 EXPECT_EQ("en-US", out.app_lang);
168 EXPECT_TRUE(out.delta_okay);
169 EXPECT_EQ("footrack", out.app_track);
170}
171
172TEST_F(OmahaRequestDeviceParamsTest, ForceVersionTest) {
173 ASSERT_TRUE(WriteFileString(
174 kTestDir + "/etc/lsb-release",
175 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
176 "CHROMEOS_RELEASE_FOO=bar\n"
177 "CHROMEOS_RELEASE_TRACK=footrack"));
178 OmahaRequestParams out;
179 EXPECT_TRUE(DoTest(&out, "ForcedVersion", ""));
Darin Petkov5a7f5652010-07-22 21:40:09 -0700180 EXPECT_EQ("Chrome OS", out.os_platform);
181 EXPECT_EQ(string("ForcedVersion_") + GetMachineType(), out.os_sp);
182 EXPECT_EQ("arm-generic", out.os_board);
183 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id);
184 EXPECT_EQ("ForcedVersion", out.app_version);
185 EXPECT_EQ("en-US", out.app_lang);
186 EXPECT_TRUE(out.delta_okay);
187 EXPECT_EQ("footrack", out.app_track);
188}
189
190TEST_F(OmahaRequestDeviceParamsTest, ForcedURLTest) {
191 ASSERT_TRUE(WriteFileString(
192 kTestDir + "/etc/lsb-release",
193 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
194 "CHROMEOS_RELEASE_FOO=bar\n"
195 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
196 "CHROMEOS_RELEASE_TRACK=footrack"));
197 OmahaRequestParams out;
198 EXPECT_TRUE(DoTest(&out, "", "http://forced.google.com"));
Darin Petkov5a7f5652010-07-22 21:40:09 -0700199 EXPECT_EQ("Chrome OS", out.os_platform);
200 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp);
201 EXPECT_EQ("arm-generic", out.os_board);
202 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id);
203 EXPECT_EQ("0.2.2.3", out.app_version);
204 EXPECT_EQ("en-US", out.app_lang);
205 EXPECT_TRUE(out.delta_okay);
206 EXPECT_EQ("footrack", out.app_track);
207 EXPECT_EQ("http://forced.google.com", out.update_url);
208}
209
210TEST_F(OmahaRequestDeviceParamsTest, MissingURLTest) {
211 ASSERT_TRUE(WriteFileString(
212 kTestDir + "/etc/lsb-release",
213 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
214 "CHROMEOS_RELEASE_FOO=bar\n"
215 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
216 "CHROMEOS_RELEASE_TRACK=footrack"));
217 OmahaRequestParams out;
218 EXPECT_TRUE(DoTest(&out, "", ""));
Darin Petkov5a7f5652010-07-22 21:40:09 -0700219 EXPECT_EQ("Chrome OS", out.os_platform);
220 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp);
221 EXPECT_EQ("arm-generic", out.os_board);
222 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id);
223 EXPECT_EQ("0.2.2.3", out.app_version);
224 EXPECT_EQ("en-US", out.app_lang);
225 EXPECT_TRUE(out.delta_okay);
226 EXPECT_EQ("footrack", out.app_track);
227 EXPECT_EQ(OmahaRequestParams::kUpdateUrl, out.update_url);
Andrew de los Reyes970bb282009-12-09 16:34:04 -0800228}
229
Andrew de los Reyes3f0303a2010-07-15 22:35:35 -0700230TEST_F(OmahaRequestDeviceParamsTest, NoDeltasTest) {
Andrew de los Reyes3f0303a2010-07-15 22:35:35 -0700231 ASSERT_TRUE(WriteFileString(
232 kTestDir + "/etc/lsb-release",
233 "CHROMEOS_RELEASE_FOO=CHROMEOS_RELEASE_VERSION=1.2.3.4\n"
234 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
235 "CHROMEOS_RELEASE_TRXCK=footrack"));
236 ASSERT_TRUE(WriteFileString(kTestDir + "/.nodelta", ""));
237 OmahaRequestParams out;
Darin Petkov5a7f5652010-07-22 21:40:09 -0700238 EXPECT_TRUE(DoTest(&out, "", ""));
Andrew de los Reyes3f0303a2010-07-15 22:35:35 -0700239 EXPECT_FALSE(out.delta_okay);
Andrew de los Reyes3f0303a2010-07-15 22:35:35 -0700240}
241
Darin Petkov49d91322010-10-25 16:34:58 -0700242TEST_F(OmahaRequestDeviceParamsTest, OverrideTest) {
243 ASSERT_TRUE(WriteFileString(
244 kTestDir + "/etc/lsb-release",
245 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
246 "CHROMEOS_RELEASE_FOO=bar\n"
247 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
248 "CHROMEOS_RELEASE_TRACK=footrack\n"
249 "CHROMEOS_AUSERVER=http://www.google.com"));
250 ASSERT_TRUE(WriteFileString(
251 kTestDir + utils::kStatefulPartition + "/etc/lsb-release",
252 "CHROMEOS_RELEASE_BOARD=x86-generic\n"
253 "CHROMEOS_RELEASE_TRACK=bartrack\n"
Darin Petkov10d02dd2011-01-10 14:57:39 -0800254 "CHROMEOS_AUSERVER=https://www.google.com"));
Darin Petkov49d91322010-10-25 16:34:58 -0700255 OmahaRequestParams out;
256 EXPECT_TRUE(DoTest(&out, "", ""));
257 EXPECT_EQ("Chrome OS", out.os_platform);
258 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp);
259 EXPECT_EQ("x86-generic", out.os_board);
260 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id);
261 EXPECT_EQ("0.2.2.3", out.app_version);
262 EXPECT_EQ("en-US", out.app_lang);
263 EXPECT_EQ("", out.hardware_class);
Darin Petkova3df55b2010-11-15 13:33:55 -0800264 EXPECT_FALSE(out.delta_okay);
Darin Petkov49d91322010-10-25 16:34:58 -0700265 EXPECT_EQ("bartrack", out.app_track);
Darin Petkov10d02dd2011-01-10 14:57:39 -0800266 EXPECT_EQ("https://www.google.com", out.update_url);
267}
268
269TEST_F(OmahaRequestDeviceParamsTest, OverrideLockDownTest) {
270 ASSERT_TRUE(WriteFileString(
271 kTestDir + "/etc/lsb-release",
272 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
273 "CHROMEOS_RELEASE_FOO=bar\n"
274 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
275 "CHROMEOS_RELEASE_TRACK=footrack\n"
276 "CHROMEOS_AUSERVER=https://www.google.com"));
277 ASSERT_TRUE(WriteFileString(
278 kTestDir + utils::kStatefulPartition + "/etc/lsb-release",
279 "CHROMEOS_RELEASE_BOARD=x86-generic\n"
280 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
281 "CHROMEOS_AUSERVER=http://www.google.com"));
282 params_.SetLockDown(true);
283 OmahaRequestParams out;
284 EXPECT_TRUE(DoTest(&out, "", ""));
285 EXPECT_EQ("arm-generic", out.os_board);
286 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id);
287 EXPECT_EQ("0.2.2.3", out.app_version);
288 EXPECT_EQ("", out.hardware_class);
289 EXPECT_FALSE(out.delta_okay);
290 EXPECT_EQ("dev-channel", out.app_track);
291 EXPECT_EQ("https://www.google.com", out.update_url);
Darin Petkov49d91322010-10-25 16:34:58 -0700292}
293
Darin Petkova3df55b2010-11-15 13:33:55 -0800294TEST_F(OmahaRequestDeviceParamsTest, OverrideSameTrackTest) {
295 ASSERT_TRUE(WriteFileString(
296 kTestDir + "/etc/lsb-release",
297 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
298 "CHROMEOS_RELEASE_FOO=bar\n"
299 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
300 "CHROMEOS_RELEASE_TRACK=footrack\n"
301 "CHROMEOS_AUSERVER=http://www.google.com"));
302 ASSERT_TRUE(WriteFileString(
303 kTestDir + utils::kStatefulPartition + "/etc/lsb-release",
304 "CHROMEOS_RELEASE_BOARD=x86-generic\n"
305 "CHROMEOS_RELEASE_TRACK=footrack"));
306 OmahaRequestParams out;
307 EXPECT_TRUE(DoTest(&out, "", ""));
Darin Petkova3df55b2010-11-15 13:33:55 -0800308 EXPECT_EQ("x86-generic", out.os_board);
309 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id);
310 EXPECT_EQ("0.2.2.3", out.app_version);
Darin Petkova3df55b2010-11-15 13:33:55 -0800311 EXPECT_EQ("", out.hardware_class);
312 EXPECT_TRUE(out.delta_okay);
313 EXPECT_EQ("footrack", out.app_track);
314 EXPECT_EQ("http://www.google.com", out.update_url);
315}
316
Darin Petkov49d91322010-10-25 16:34:58 -0700317TEST_F(OmahaRequestDeviceParamsTest, SetTrackSimpleTest) {
318 ASSERT_TRUE(WriteFileString(
319 kTestDir + "/etc/lsb-release",
320 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
321 "CHROMEOS_RELEASE_FOO=bar\n"
322 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
323 "CHROMEOS_RELEASE_TRACK=footrack\n"
324 "CHROMEOS_AUSERVER=http://www.google.com"));
325 {
326 OmahaRequestDeviceParams params;
327 params.set_root(string("./") + kTestDir);
Darin Petkov10d02dd2011-01-10 14:57:39 -0800328 params.SetLockDown(false);
Darin Petkov49d91322010-10-25 16:34:58 -0700329 EXPECT_TRUE(params.Init("", ""));
330 params.SetTrack("zootrack");
331 }
332 OmahaRequestParams out;
333 EXPECT_TRUE(DoTest(&out, "", ""));
334 EXPECT_EQ("arm-generic", out.os_board);
335 EXPECT_EQ("zootrack", out.app_track);
336}
337
338TEST_F(OmahaRequestDeviceParamsTest, SetTrackPreserveTest) {
339 ASSERT_TRUE(WriteFileString(
340 kTestDir + "/etc/lsb-release",
341 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
342 "CHROMEOS_RELEASE_FOO=bar\n"
343 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
344 "CHROMEOS_RELEASE_TRACK=footrack\n"
345 "CHROMEOS_AUSERVER=http://www.google.com"));
346 ASSERT_TRUE(WriteFileString(
347 kTestDir + utils::kStatefulPartition + "/etc/lsb-release",
348 "CHROMEOS_RELEASE_BOARD=x86-generic\n"
349 "CHROMEOS_RELEASE_TRACK=bartrack"));
350 {
351 OmahaRequestDeviceParams params;
352 params.set_root(string("./") + kTestDir);
Darin Petkov10d02dd2011-01-10 14:57:39 -0800353 params.SetLockDown(false);
Darin Petkov49d91322010-10-25 16:34:58 -0700354 EXPECT_TRUE(params.Init("", ""));
355 params.SetTrack("zootrack");
356 }
357 OmahaRequestParams out;
358 EXPECT_TRUE(DoTest(&out, "", ""));
359 EXPECT_EQ("x86-generic", out.os_board);
360 EXPECT_EQ("zootrack", out.app_track);
361}
362
363TEST_F(OmahaRequestDeviceParamsTest, SetTrackInvalidTest) {
364 ASSERT_TRUE(WriteFileString(
365 kTestDir + "/etc/lsb-release",
366 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
367 "CHROMEOS_RELEASE_FOO=bar\n"
368 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
369 "CHROMEOS_RELEASE_TRACK=footrack\n"
370 "CHROMEOS_AUSERVER=http://www.google.com"));
371 {
372 OmahaRequestDeviceParams params;
373 params.set_root(string("./") + kTestDir);
Darin Petkov10d02dd2011-01-10 14:57:39 -0800374 params.SetLockDown(true);
Darin Petkov49d91322010-10-25 16:34:58 -0700375 EXPECT_TRUE(params.Init("", ""));
376 params.SetTrack("zootrack");
377 }
378 OmahaRequestParams out;
379 EXPECT_TRUE(DoTest(&out, "", ""));
380 EXPECT_EQ("arm-generic", out.os_board);
381 EXPECT_EQ("footrack", out.app_track);
382}
383
384TEST_F(OmahaRequestDeviceParamsTest, IsValidTrackTest) {
Darin Petkov10d02dd2011-01-10 14:57:39 -0800385 params_.SetLockDown(true);
Darin Petkov3f375c72010-11-05 09:42:26 -0700386 EXPECT_TRUE(params_.IsValidTrack("canary-channel"));
Andrew de los Reyesdc928762011-04-12 13:15:25 -0700387 EXPECT_TRUE(params_.IsValidTrack("stable-channel"));
Darin Petkov49d91322010-10-25 16:34:58 -0700388 EXPECT_TRUE(params_.IsValidTrack("beta-channel"));
389 EXPECT_TRUE(params_.IsValidTrack("dev-channel"));
390 EXPECT_FALSE(params_.IsValidTrack("some-channel"));
391 EXPECT_FALSE(params_.IsValidTrack(""));
Darin Petkov10d02dd2011-01-10 14:57:39 -0800392 params_.SetLockDown(false);
Darin Petkov3f375c72010-11-05 09:42:26 -0700393 EXPECT_TRUE(params_.IsValidTrack("canary-channel"));
Andrew de los Reyesdc928762011-04-12 13:15:25 -0700394 EXPECT_TRUE(params_.IsValidTrack("stable-channel"));
Darin Petkov49d91322010-10-25 16:34:58 -0700395 EXPECT_TRUE(params_.IsValidTrack("beta-channel"));
396 EXPECT_TRUE(params_.IsValidTrack("dev-channel"));
397 EXPECT_TRUE(params_.IsValidTrack("some-channel"));
398 EXPECT_TRUE(params_.IsValidTrack(""));
399}
400
Darin Petkov49d91322010-10-25 16:34:58 -0700401TEST_F(OmahaRequestDeviceParamsTest, ValidTrackTest) {
402 ASSERT_TRUE(WriteFileString(
403 kTestDir + "/etc/lsb-release",
404 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
405 "CHROMEOS_RELEASE_FOO=bar\n"
406 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
407 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
408 "CHROMEOS_AUSERVER=http://www.google.com"));
Darin Petkov10d02dd2011-01-10 14:57:39 -0800409 params_.SetLockDown(true);
Darin Petkov49d91322010-10-25 16:34:58 -0700410 OmahaRequestParams out;
411 EXPECT_TRUE(DoTest(&out, "", ""));
412 EXPECT_EQ("Chrome OS", out.os_platform);
413 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp);
414 EXPECT_EQ("arm-generic", out.os_board);
415 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id);
416 EXPECT_EQ("0.2.2.3", out.app_version);
417 EXPECT_EQ("en-US", out.app_lang);
418 EXPECT_EQ("", out.hardware_class);
419 EXPECT_TRUE(out.delta_okay);
420 EXPECT_EQ("dev-channel", out.app_track);
421 EXPECT_EQ("http://www.google.com", out.update_url);
422}
423
Darin Petkov10d02dd2011-01-10 14:57:39 -0800424TEST_F(OmahaRequestDeviceParamsTest, ShouldLockDownTest) {
425 EXPECT_FALSE(params_.ShouldLockDown());
426}
427
adlr@google.com3defe6a2009-12-04 20:57:17 +0000428} // namespace chromeos_update_engine