xref: /aosp_15_r20/system/update_engine/common/hwid_override_unittest.cc (revision 5a9231315b4521097b8dc3750bc806fcafe0c72f)
1*5a923131SAndroid Build Coastguard Worker //
2*5a923131SAndroid Build Coastguard Worker // Copyright (C) 2012 The Android Open Source Project
3*5a923131SAndroid Build Coastguard Worker //
4*5a923131SAndroid Build Coastguard Worker // Licensed under the Apache License, Version 2.0 (the "License");
5*5a923131SAndroid Build Coastguard Worker // you may not use this file except in compliance with the License.
6*5a923131SAndroid Build Coastguard Worker // You may obtain a copy of the License at
7*5a923131SAndroid Build Coastguard Worker //
8*5a923131SAndroid Build Coastguard Worker //      http://www.apache.org/licenses/LICENSE-2.0
9*5a923131SAndroid Build Coastguard Worker //
10*5a923131SAndroid Build Coastguard Worker // Unless required by applicable law or agreed to in writing, software
11*5a923131SAndroid Build Coastguard Worker // distributed under the License is distributed on an "AS IS" BASIS,
12*5a923131SAndroid Build Coastguard Worker // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*5a923131SAndroid Build Coastguard Worker // See the License for the specific language governing permissions and
14*5a923131SAndroid Build Coastguard Worker // limitations under the License.
15*5a923131SAndroid Build Coastguard Worker //
16*5a923131SAndroid Build Coastguard Worker 
17*5a923131SAndroid Build Coastguard Worker #include "update_engine/common/hwid_override.h"
18*5a923131SAndroid Build Coastguard Worker 
19*5a923131SAndroid Build Coastguard Worker #include <string>
20*5a923131SAndroid Build Coastguard Worker 
21*5a923131SAndroid Build Coastguard Worker #include <base/files/file_path.h>
22*5a923131SAndroid Build Coastguard Worker #include <base/files/file_util.h>
23*5a923131SAndroid Build Coastguard Worker #include <base/files/scoped_temp_dir.h>
24*5a923131SAndroid Build Coastguard Worker #include <gtest/gtest.h>
25*5a923131SAndroid Build Coastguard Worker 
26*5a923131SAndroid Build Coastguard Worker namespace chromeos_update_engine {
27*5a923131SAndroid Build Coastguard Worker 
28*5a923131SAndroid Build Coastguard Worker class HwidOverrideTest : public ::testing::Test {
29*5a923131SAndroid Build Coastguard Worker  public:
HwidOverrideTest()30*5a923131SAndroid Build Coastguard Worker   HwidOverrideTest() {}
31*5a923131SAndroid Build Coastguard Worker   ~HwidOverrideTest() override = default;
32*5a923131SAndroid Build Coastguard Worker 
SetUp()33*5a923131SAndroid Build Coastguard Worker   void SetUp() override {
34*5a923131SAndroid Build Coastguard Worker     ASSERT_TRUE(tempdir_.CreateUniqueTempDir());
35*5a923131SAndroid Build Coastguard Worker     ASSERT_TRUE(base::CreateDirectory(tempdir_.GetPath().Append("etc")));
36*5a923131SAndroid Build Coastguard Worker   }
37*5a923131SAndroid Build Coastguard Worker 
38*5a923131SAndroid Build Coastguard Worker  protected:
39*5a923131SAndroid Build Coastguard Worker   base::ScopedTempDir tempdir_;
40*5a923131SAndroid Build Coastguard Worker 
41*5a923131SAndroid Build Coastguard Worker  private:
42*5a923131SAndroid Build Coastguard Worker   DISALLOW_COPY_AND_ASSIGN(HwidOverrideTest);
43*5a923131SAndroid Build Coastguard Worker };
44*5a923131SAndroid Build Coastguard Worker 
TEST_F(HwidOverrideTest,ReadGood)45*5a923131SAndroid Build Coastguard Worker TEST_F(HwidOverrideTest, ReadGood) {
46*5a923131SAndroid Build Coastguard Worker   std::string expected_hwid("expected");
47*5a923131SAndroid Build Coastguard Worker   std::string keyval(HwidOverride::kHwidOverrideKey);
48*5a923131SAndroid Build Coastguard Worker   keyval += ("=" + expected_hwid);
49*5a923131SAndroid Build Coastguard Worker   ASSERT_EQ(base::WriteFile(tempdir_.GetPath().Append("etc/lsb-release"),
50*5a923131SAndroid Build Coastguard Worker                             keyval.c_str(),
51*5a923131SAndroid Build Coastguard Worker                             keyval.length()),
52*5a923131SAndroid Build Coastguard Worker             static_cast<int>(keyval.length()));
53*5a923131SAndroid Build Coastguard Worker   EXPECT_EQ(expected_hwid, HwidOverride::Read(tempdir_.GetPath()));
54*5a923131SAndroid Build Coastguard Worker }
55*5a923131SAndroid Build Coastguard Worker 
TEST_F(HwidOverrideTest,ReadNothing)56*5a923131SAndroid Build Coastguard Worker TEST_F(HwidOverrideTest, ReadNothing) {
57*5a923131SAndroid Build Coastguard Worker   std::string keyval("SOMETHING_ELSE=UNINTERESTING");
58*5a923131SAndroid Build Coastguard Worker   ASSERT_EQ(base::WriteFile(tempdir_.GetPath().Append("etc/lsb-release"),
59*5a923131SAndroid Build Coastguard Worker                             keyval.c_str(),
60*5a923131SAndroid Build Coastguard Worker                             keyval.length()),
61*5a923131SAndroid Build Coastguard Worker             static_cast<int>(keyval.length()));
62*5a923131SAndroid Build Coastguard Worker   EXPECT_EQ(std::string(), HwidOverride::Read(tempdir_.GetPath()));
63*5a923131SAndroid Build Coastguard Worker }
64*5a923131SAndroid Build Coastguard Worker 
TEST_F(HwidOverrideTest,ReadFailure)65*5a923131SAndroid Build Coastguard Worker TEST_F(HwidOverrideTest, ReadFailure) {
66*5a923131SAndroid Build Coastguard Worker   EXPECT_EQ(std::string(), HwidOverride::Read(tempdir_.GetPath()));
67*5a923131SAndroid Build Coastguard Worker }
68*5a923131SAndroid Build Coastguard Worker 
69*5a923131SAndroid Build Coastguard Worker }  // namespace chromeos_update_engine
70