blob: 5c654b47891482e718937b62717559814465f1d7 [file] [log] [blame]
Chris Masonef8d037f2014-02-19 01:53:00 +00001// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "update_engine/hwid_override.h"
6
7#include <string>
8
Alex Vakulenko75039d72014-03-25 12:36:28 -07009#include <base/files/file_path.h>
Chris Masonef8d037f2014-02-19 01:53:00 +000010#include <base/file_util.h>
11#include <base/files/scoped_temp_dir.h>
12#include <gtest/gtest.h>
13
14namespace chromeos_update_engine {
15
16class HwidOverrideTest : public ::testing::Test {
17 public:
18 HwidOverrideTest() {}
19 virtual ~HwidOverrideTest() {}
20
21 virtual void SetUp() {
22 ASSERT_TRUE(tempdir_.CreateUniqueTempDir());
Alex Vakulenko75039d72014-03-25 12:36:28 -070023 ASSERT_TRUE(base::CreateDirectory(tempdir_.path().Append("etc")));
Chris Masonef8d037f2014-02-19 01:53:00 +000024 }
25
26 protected:
27 base::ScopedTempDir tempdir_;
28
29 private:
30 DISALLOW_COPY_AND_ASSIGN(HwidOverrideTest);
31};
32
33TEST_F(HwidOverrideTest, ReadGood) {
34 std::string expected_hwid("expected");
35 std::string keyval(HwidOverride::kHwidOverrideKey);
36 keyval += ("=" + expected_hwid);
Ben Chan736fcb52014-05-21 18:28:22 -070037 ASSERT_EQ(base::WriteFile(tempdir_.path().Append("etc/lsb-release"),
38 keyval.c_str(), keyval.length()),
Chris Masonef8d037f2014-02-19 01:53:00 +000039 keyval.length());
40 EXPECT_EQ(expected_hwid, HwidOverride::Read(tempdir_.path()));
41}
42
43TEST_F(HwidOverrideTest, ReadNothing) {
44 std::string keyval("SOMETHING_ELSE=UNINTERESTING");
Ben Chan736fcb52014-05-21 18:28:22 -070045 ASSERT_EQ(base::WriteFile(tempdir_.path().Append("etc/lsb-release"),
46 keyval.c_str(), keyval.length()),
Chris Masonef8d037f2014-02-19 01:53:00 +000047 keyval.length());
48 EXPECT_EQ(std::string(), HwidOverride::Read(tempdir_.path()));
49}
50
51TEST_F(HwidOverrideTest, ReadFailure) {
52 EXPECT_EQ(std::string(), HwidOverride::Read(tempdir_.path()));
53}
54
55} // namespace chromeos_update_engine