Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(492)

Side by Side Diff: omaha_request_params_unittest.cc

Issue 4103002: AU: Implement switching of tracks through SetTrack. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/update_engine.git
Patch Set: review comments Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « omaha_request_params.cc ('k') | update_engine_client.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stdio.h> 5 #include <stdio.h>
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "gtest/gtest.h" 10 #include "gtest/gtest.h"
(...skipping 10 matching lines...) Expand all
21 protected: 21 protected:
22 // Return true iff the OmahaRequestDeviceParams::Init succeeded. If 22 // Return true iff the OmahaRequestDeviceParams::Init succeeded. If
23 // out is non-NULL, it's set w/ the generated data. 23 // out is non-NULL, it's set w/ the generated data.
24 bool DoTest(OmahaRequestParams* out, const string& app_version, 24 bool DoTest(OmahaRequestParams* out, const string& app_version,
25 const string& omaha_url); 25 const string& omaha_url);
26 26
27 virtual void SetUp() { 27 virtual void SetUp() {
28 ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + "/etc")); 28 ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + "/etc"));
29 ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + 29 ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir +
30 utils::kStatefulPartition + "/etc")); 30 utils::kStatefulPartition + "/etc"));
31 params_.set_root(string("./") + kTestDir);
32 params_.SetBuildTypeOfficial(false);
31 } 33 }
32 34
33 virtual void TearDown() { 35 virtual void TearDown() {
34 EXPECT_EQ(0, System(string("rm -rf ") + kTestDir)); 36 EXPECT_EQ(0, System(string("rm -rf ") + kTestDir));
35 } 37 }
36 38
39 OmahaRequestDeviceParams params_;
40
37 static const string kTestDir; 41 static const string kTestDir;
38 }; 42 };
39 43
40 const string OmahaRequestDeviceParamsTest::kTestDir = 44 const string OmahaRequestDeviceParamsTest::kTestDir =
41 "omaha_request_device_params-test"; 45 "omaha_request_device_params-test";
42 46
43 bool OmahaRequestDeviceParamsTest::DoTest(OmahaRequestParams* out, 47 bool OmahaRequestDeviceParamsTest::DoTest(OmahaRequestParams* out,
44 const string& app_version, 48 const string& app_version,
45 const string& omaha_url) { 49 const string& omaha_url) {
46 OmahaRequestDeviceParams params; 50 bool success = params_.Init(app_version, omaha_url);
47 params.set_root(string("./") + kTestDir);
48 bool success = params.Init(app_version, omaha_url);
49 if (out) 51 if (out)
50 *out = params; 52 *out = params_;
51 return success; 53 return success;
52 } 54 }
53 55
54 namespace { 56 namespace {
55 string GetMachineType() { 57 string GetMachineType() {
56 FILE* fp = popen("uname -m", "r"); 58 FILE* fp = popen("uname -m", "r");
57 if (!fp) 59 if (!fp)
58 return ""; 60 return "";
59 string ret; 61 string ret;
60 for (;;) { 62 for (;;) {
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 ASSERT_TRUE(file_util::CreateDirectory(hwid_path.DirName())); 222 ASSERT_TRUE(file_util::CreateDirectory(hwid_path.DirName()));
221 ASSERT_EQ(test_class.size(), 223 ASSERT_EQ(test_class.size(),
222 file_util::WriteFile(hwid_path, 224 file_util::WriteFile(hwid_path,
223 test_class.data(), 225 test_class.data(),
224 test_class.size())); 226 test_class.size()));
225 OmahaRequestParams out; 227 OmahaRequestParams out;
226 EXPECT_TRUE(DoTest(&out, "", "")); 228 EXPECT_TRUE(DoTest(&out, "", ""));
227 EXPECT_EQ("sample hardware class", out.hardware_class); 229 EXPECT_EQ("sample hardware class", out.hardware_class);
228 } 230 }
229 231
232 TEST_F(OmahaRequestDeviceParamsTest, OverrideTest) {
233 ASSERT_TRUE(WriteFileString(
234 kTestDir + "/etc/lsb-release",
235 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
236 "CHROMEOS_RELEASE_FOO=bar\n"
237 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
238 "CHROMEOS_RELEASE_TRACK=footrack\n"
239 "CHROMEOS_AUSERVER=http://www.google.com"));
240 ASSERT_TRUE(WriteFileString(
241 kTestDir + utils::kStatefulPartition + "/etc/lsb-release",
242 "CHROMEOS_RELEASE_BOARD=x86-generic\n"
243 "CHROMEOS_RELEASE_TRACK=bartrack\n"
244 "CHROMEOS_AUSERVER=http://www.google.com"));
245 OmahaRequestParams out;
246 EXPECT_TRUE(DoTest(&out, "", ""));
247 EXPECT_EQ("Chrome OS", out.os_platform);
248 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp);
249 EXPECT_EQ("x86-generic", out.os_board);
250 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id);
251 EXPECT_EQ("0.2.2.3", out.app_version);
252 EXPECT_EQ("en-US", out.app_lang);
253 EXPECT_EQ("", out.hardware_class);
254 EXPECT_TRUE(out.delta_okay);
255 EXPECT_EQ("bartrack", out.app_track);
256 EXPECT_EQ("http://www.google.com", out.update_url);
257 }
258
259 TEST_F(OmahaRequestDeviceParamsTest, SetTrackSimpleTest) {
260 ASSERT_TRUE(WriteFileString(
261 kTestDir + "/etc/lsb-release",
262 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
263 "CHROMEOS_RELEASE_FOO=bar\n"
264 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
265 "CHROMEOS_RELEASE_TRACK=footrack\n"
266 "CHROMEOS_AUSERVER=http://www.google.com"));
267 {
268 OmahaRequestDeviceParams params;
269 params.set_root(string("./") + kTestDir);
270 params.SetBuildTypeOfficial(false);
271 EXPECT_TRUE(params.Init("", ""));
272 params.SetTrack("zootrack");
273 }
274 OmahaRequestParams out;
275 EXPECT_TRUE(DoTest(&out, "", ""));
276 EXPECT_EQ("arm-generic", out.os_board);
277 EXPECT_EQ("zootrack", out.app_track);
278 }
279
280 TEST_F(OmahaRequestDeviceParamsTest, SetTrackPreserveTest) {
281 ASSERT_TRUE(WriteFileString(
282 kTestDir + "/etc/lsb-release",
283 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
284 "CHROMEOS_RELEASE_FOO=bar\n"
285 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
286 "CHROMEOS_RELEASE_TRACK=footrack\n"
287 "CHROMEOS_AUSERVER=http://www.google.com"));
288 ASSERT_TRUE(WriteFileString(
289 kTestDir + utils::kStatefulPartition + "/etc/lsb-release",
290 "CHROMEOS_RELEASE_BOARD=x86-generic\n"
291 "CHROMEOS_RELEASE_TRACK=bartrack"));
292 {
293 OmahaRequestDeviceParams params;
294 params.set_root(string("./") + kTestDir);
295 params.SetBuildTypeOfficial(false);
296 EXPECT_TRUE(params.Init("", ""));
297 params.SetTrack("zootrack");
298 }
299 OmahaRequestParams out;
300 EXPECT_TRUE(DoTest(&out, "", ""));
301 EXPECT_EQ("x86-generic", out.os_board);
302 EXPECT_EQ("zootrack", out.app_track);
303 }
304
305 TEST_F(OmahaRequestDeviceParamsTest, SetTrackInvalidTest) {
306 ASSERT_TRUE(WriteFileString(
307 kTestDir + "/etc/lsb-release",
308 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
309 "CHROMEOS_RELEASE_FOO=bar\n"
310 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
311 "CHROMEOS_RELEASE_TRACK=footrack\n"
312 "CHROMEOS_AUSERVER=http://www.google.com"));
313 {
314 OmahaRequestDeviceParams params;
315 params.set_root(string("./") + kTestDir);
316 params.SetBuildTypeOfficial(true);
317 EXPECT_TRUE(params.Init("", ""));
318 params.SetTrack("zootrack");
319 }
320 OmahaRequestParams out;
321 EXPECT_TRUE(DoTest(&out, "", ""));
322 EXPECT_EQ("arm-generic", out.os_board);
323 EXPECT_EQ("footrack", out.app_track);
324 }
325
326 TEST_F(OmahaRequestDeviceParamsTest, IsValidTrackTest) {
327 params_.SetBuildTypeOfficial(true);
328 EXPECT_TRUE(params_.IsValidTrack("beta-channel"));
329 EXPECT_TRUE(params_.IsValidTrack("dev-channel"));
330 EXPECT_FALSE(params_.IsValidTrack("some-channel"));
331 EXPECT_FALSE(params_.IsValidTrack(""));
332 params_.SetBuildTypeOfficial(false);
333 EXPECT_TRUE(params_.IsValidTrack("beta-channel"));
334 EXPECT_TRUE(params_.IsValidTrack("dev-channel"));
335 EXPECT_TRUE(params_.IsValidTrack("some-channel"));
336 EXPECT_TRUE(params_.IsValidTrack(""));
337 }
338
339 TEST_F(OmahaRequestDeviceParamsTest, InvalidTrackTest) {
340 ASSERT_TRUE(WriteFileString(
341 kTestDir + "/etc/lsb-release",
342 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
343 "CHROMEOS_RELEASE_FOO=bar\n"
344 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
345 "CHROMEOS_RELEASE_TRACK=footrack\n"
346 "CHROMEOS_AUSERVER=http://www.google.com"));
347 params_.SetBuildTypeOfficial(true);
348 OmahaRequestParams out;
349 EXPECT_TRUE(DoTest(&out, "", ""));
350 EXPECT_EQ("Chrome OS", out.os_platform);
351 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp);
352 EXPECT_EQ("arm-generic", out.os_board);
353 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id);
354 EXPECT_EQ("0.2.2.3", out.app_version);
355 EXPECT_EQ("en-US", out.app_lang);
356 EXPECT_EQ("", out.hardware_class);
357 EXPECT_TRUE(out.delta_okay);
358 EXPECT_EQ("", out.app_track);
359 EXPECT_EQ("http://www.google.com", out.update_url);
360 }
361
362 TEST_F(OmahaRequestDeviceParamsTest, ValidTrackTest) {
363 ASSERT_TRUE(WriteFileString(
364 kTestDir + "/etc/lsb-release",
365 "CHROMEOS_RELEASE_BOARD=arm-generic\n"
366 "CHROMEOS_RELEASE_FOO=bar\n"
367 "CHROMEOS_RELEASE_VERSION=0.2.2.3\n"
368 "CHROMEOS_RELEASE_TRACK=dev-channel\n"
369 "CHROMEOS_AUSERVER=http://www.google.com"));
370 params_.SetBuildTypeOfficial(true);
371 OmahaRequestParams out;
372 EXPECT_TRUE(DoTest(&out, "", ""));
373 EXPECT_EQ("Chrome OS", out.os_platform);
374 EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp);
375 EXPECT_EQ("arm-generic", out.os_board);
376 EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id);
377 EXPECT_EQ("0.2.2.3", out.app_version);
378 EXPECT_EQ("en-US", out.app_lang);
379 EXPECT_EQ("", out.hardware_class);
380 EXPECT_TRUE(out.delta_okay);
381 EXPECT_EQ("dev-channel", out.app_track);
382 EXPECT_EQ("http://www.google.com", out.update_url);
383 }
384
230 } // namespace chromeos_update_engine 385 } // namespace chromeos_update_engine
OLDNEW
« no previous file with comments | « omaha_request_params.cc ('k') | update_engine_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698