blob: 42d9e9f8a03d87161181c3e4a70cc1d3de817454 [file] [log] [blame]
// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <base/files/file_path.h>
#include <base/files/file_util.h>
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include "dlcservice/boot/boot_slot.h"
#include "dlcservice/dlc.h"
#include "dlcservice/prefs.h"
#include "dlcservice/system_state.h"
#include "dlcservice/test_utils.h"
#include "dlcservice/utils.h"
using base::FilePath;
using std::string;
namespace dlcservice {
class PrefsTest : public BaseTest {};
TEST_F(PrefsTest, DlcBaseCreateAndDelete) {
auto active_boot_slot = SystemState::Get()->active_boot_slot();
Prefs prefs(DlcBase("id"), active_boot_slot);
string key = "key";
EXPECT_TRUE(prefs.Create(key));
EXPECT_TRUE(prefs.Exists(key));
Prefs prefs_non_dlcbase(JoinPaths(SystemState::Get()->dlc_prefs_dir(), "id",
BootSlot::ToString(active_boot_slot)));
EXPECT_TRUE(prefs_non_dlcbase.Exists(key));
}
TEST_F(PrefsTest, CreateAndDelete) {
Prefs prefs(FilePath(SystemState::Get()->prefs_dir()));
string key = "key";
EXPECT_TRUE(prefs.Create(key));
EXPECT_TRUE(prefs.Exists(key));
EXPECT_TRUE(prefs.Delete(key));
EXPECT_FALSE(prefs.Exists(key));
}
TEST_F(PrefsTest, SetAndGetThenDelete) {
Prefs prefs(FilePath(SystemState::Get()->prefs_dir()));
string key = "key", value = "value";
EXPECT_TRUE(prefs.SetKey(key, value));
string actual_value;
EXPECT_TRUE(prefs.GetKey(key, &actual_value));
EXPECT_EQ(value, actual_value);
EXPECT_TRUE(prefs.Delete(key));
EXPECT_FALSE(prefs.Exists(key));
}
TEST_F(PrefsTest, RepeatedSet) {
Prefs prefs(FilePath(SystemState::Get()->prefs_dir()));
string key = "key", value = "value";
EXPECT_TRUE(prefs.SetKey(key, value));
EXPECT_TRUE(prefs.SetKey(key, value));
}
} // namespace dlcservice