blob: 44a114a496bf190ca8fcde990666018af24a78b7 [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>
Ben Chan06c76a42014-09-05 08:21:06 -070010#include <base/files/file_util.h>
Chris Masonef8d037f2014-02-19 01:53:00 +000011#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() {}
Alex Deymo610277e2014-11-11 21:18:11 -080019 ~HwidOverrideTest() override = default;
Chris Masonef8d037f2014-02-19 01:53:00 +000020
Alex Deymo610277e2014-11-11 21:18:11 -080021 void SetUp() override {
Chris Masonef8d037f2014-02-19 01:53:00 +000022 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