1fc223305Sopenharmony_ci/*
2fc223305Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd.
3fc223305Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4fc223305Sopenharmony_ci * you may not use this file except in compliance with the License.
5fc223305Sopenharmony_ci * You may obtain a copy of the License at
6fc223305Sopenharmony_ci *
7fc223305Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8fc223305Sopenharmony_ci *
9fc223305Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10fc223305Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11fc223305Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12fc223305Sopenharmony_ci * See the License for the specific language governing permissions and
13fc223305Sopenharmony_ci * limitations under the License.
14fc223305Sopenharmony_ci */
15fc223305Sopenharmony_ci
16fc223305Sopenharmony_ci#include "preferences_helper.h"
17fc223305Sopenharmony_ci
18fc223305Sopenharmony_ci#include <gtest/gtest.h>
19fc223305Sopenharmony_ci
20fc223305Sopenharmony_ci#include <cctype>
21fc223305Sopenharmony_ci#include <iostream>
22fc223305Sopenharmony_ci#include <string>
23fc223305Sopenharmony_ci
24fc223305Sopenharmony_ci#include "log_print.h"
25fc223305Sopenharmony_ci#include "preferences.h"
26fc223305Sopenharmony_ci#include "preferences_errno.h"
27fc223305Sopenharmony_ci#include "preferences_observer.h"
28fc223305Sopenharmony_ci
29fc223305Sopenharmony_ciusing namespace testing::ext;
30fc223305Sopenharmony_ciusing namespace OHOS::NativePreferences;
31fc223305Sopenharmony_ci
32fc223305Sopenharmony_cinamespace {
33fc223305Sopenharmony_ciclass PreferencesHelperTest : public testing::Test {
34fc223305Sopenharmony_cipublic:
35fc223305Sopenharmony_ci    static void SetUpTestCase(void);
36fc223305Sopenharmony_ci    static void TearDownTestCase(void);
37fc223305Sopenharmony_ci    void SetUp();
38fc223305Sopenharmony_ci    void TearDown();
39fc223305Sopenharmony_ci};
40fc223305Sopenharmony_ci
41fc223305Sopenharmony_civoid PreferencesHelperTest::SetUpTestCase(void)
42fc223305Sopenharmony_ci{
43fc223305Sopenharmony_ci}
44fc223305Sopenharmony_ci
45fc223305Sopenharmony_civoid PreferencesHelperTest::TearDownTestCase(void)
46fc223305Sopenharmony_ci{
47fc223305Sopenharmony_ci}
48fc223305Sopenharmony_ci
49fc223305Sopenharmony_civoid PreferencesHelperTest::SetUp(void)
50fc223305Sopenharmony_ci{
51fc223305Sopenharmony_ci}
52fc223305Sopenharmony_ci
53fc223305Sopenharmony_civoid PreferencesHelperTest::TearDown(void)
54fc223305Sopenharmony_ci{
55fc223305Sopenharmony_ci}
56fc223305Sopenharmony_ci
57fc223305Sopenharmony_ci/**
58fc223305Sopenharmony_ci * @tc.name: NativePreferencesHelperTest_001
59fc223305Sopenharmony_ci * @tc.desc: normal testcase of DeletePreferences
60fc223305Sopenharmony_ci * @tc.type: FUNC
61fc223305Sopenharmony_ci * @tc.require: SR000CU2BL
62fc223305Sopenharmony_ci * @tc.author: xiuhongju
63fc223305Sopenharmony_ci */
64fc223305Sopenharmony_ciHWTEST_F(PreferencesHelperTest, NativePreferencesHelperTest_001, TestSize.Level1)
65fc223305Sopenharmony_ci{
66fc223305Sopenharmony_ci    int errCode = E_OK;
67fc223305Sopenharmony_ci    std::shared_ptr<Preferences> pref = PreferencesHelper::GetPreferences("/data/test/test_helper", errCode);
68fc223305Sopenharmony_ci    EXPECT_EQ(errCode, E_OK);
69fc223305Sopenharmony_ci
70fc223305Sopenharmony_ci    pref->PutInt("key1", 2);
71fc223305Sopenharmony_ci    pref->PutString("key2", "test");
72fc223305Sopenharmony_ci    int ret = pref->FlushSync();
73fc223305Sopenharmony_ci    EXPECT_EQ(ret, E_OK);
74fc223305Sopenharmony_ci
75fc223305Sopenharmony_ci    pref = nullptr;
76fc223305Sopenharmony_ci
77fc223305Sopenharmony_ci    ret = PreferencesHelper::RemovePreferencesFromCache("/data/test/test_helper");
78fc223305Sopenharmony_ci    EXPECT_EQ(ret, E_OK);
79fc223305Sopenharmony_ci
80fc223305Sopenharmony_ci    ret = PreferencesHelper::DeletePreferences("/data/test/test_helper");
81fc223305Sopenharmony_ci    EXPECT_EQ(ret, E_OK);
82fc223305Sopenharmony_ci}
83fc223305Sopenharmony_ci
84fc223305Sopenharmony_ci/**
85fc223305Sopenharmony_ci * @tc.name: NativePreferencesHelperTest_002
86fc223305Sopenharmony_ci * @tc.desc: error testcase of Preferences
87fc223305Sopenharmony_ci * @tc.type: FUNC
88fc223305Sopenharmony_ci */
89fc223305Sopenharmony_ciHWTEST_F(PreferencesHelperTest, NativePreferencesHelperTest_002, TestSize.Level1)
90fc223305Sopenharmony_ci{
91fc223305Sopenharmony_ci    int errCode = E_OK;
92fc223305Sopenharmony_ci    std::shared_ptr<Preferences> pref = PreferencesHelper::GetPreferences("", errCode);
93fc223305Sopenharmony_ci    EXPECT_EQ(errCode, E_EMPTY_FILE_PATH);
94fc223305Sopenharmony_ci
95fc223305Sopenharmony_ci    pref = PreferencesHelper::GetPreferences("data/test/test_helper", errCode);
96fc223305Sopenharmony_ci    EXPECT_EQ(errCode, E_RELATIVE_PATH);
97fc223305Sopenharmony_ci
98fc223305Sopenharmony_ci    pref = PreferencesHelper::GetPreferences(":data/test/test_helper", errCode);
99fc223305Sopenharmony_ci    EXPECT_EQ(errCode, E_RELATIVE_PATH);
100fc223305Sopenharmony_ci
101fc223305Sopenharmony_ci    std::string path = "/data/test/test_helper" + std::string(4096, 't');
102fc223305Sopenharmony_ci    pref = PreferencesHelper::GetPreferences(path, errCode);
103fc223305Sopenharmony_ci    EXPECT_EQ(errCode, E_PATH_EXCEED_MAX_LENGTH);
104fc223305Sopenharmony_ci
105fc223305Sopenharmony_ci    pref = PreferencesHelper::GetPreferences(":data/test/test_helper/", errCode);
106fc223305Sopenharmony_ci    EXPECT_EQ(errCode, E_RELATIVE_PATH);
107fc223305Sopenharmony_ci}
108fc223305Sopenharmony_ci
109fc223305Sopenharmony_ci/**
110fc223305Sopenharmony_ci * @tc.name: NativePreferencesHelperTest_003
111fc223305Sopenharmony_ci * @tc.desc: error testcase of Preferences
112fc223305Sopenharmony_ci * @tc.type: FUNC
113fc223305Sopenharmony_ci */
114fc223305Sopenharmony_ciHWTEST_F(PreferencesHelperTest, NativePreferencesHelperTest_003, TestSize.Level1)
115fc223305Sopenharmony_ci{
116fc223305Sopenharmony_ci    int errCode = E_OK;
117fc223305Sopenharmony_ci    std::shared_ptr<Preferences> pref = PreferencesHelper::GetPreferences("", errCode);
118fc223305Sopenharmony_ci    EXPECT_EQ(errCode, E_EMPTY_FILE_PATH);
119fc223305Sopenharmony_ci
120fc223305Sopenharmony_ci    pref = PreferencesHelper::GetPreferences("data/test/test_helper", errCode);
121fc223305Sopenharmony_ci    EXPECT_EQ(errCode, E_RELATIVE_PATH);
122fc223305Sopenharmony_ci}
123fc223305Sopenharmony_ci
124fc223305Sopenharmony_ci/**
125fc223305Sopenharmony_ci * @tc.name: NativePreferencesHelperTest_004
126fc223305Sopenharmony_ci * @tc.desc: error testcase of DeletePreferences
127fc223305Sopenharmony_ci * @tc.type: FUNC
128fc223305Sopenharmony_ci */
129fc223305Sopenharmony_ciHWTEST_F(PreferencesHelperTest, NativePreferencesHelperTest_004, TestSize.Level1)
130fc223305Sopenharmony_ci{
131fc223305Sopenharmony_ci    int pref = PreferencesHelper::DeletePreferences("");
132fc223305Sopenharmony_ci    EXPECT_EQ(pref, E_EMPTY_FILE_PATH);
133fc223305Sopenharmony_ci
134fc223305Sopenharmony_ci    pref = PreferencesHelper::RemovePreferencesFromCache("");
135fc223305Sopenharmony_ci    EXPECT_EQ(pref, E_EMPTY_FILE_PATH);
136fc223305Sopenharmony_ci}
137fc223305Sopenharmony_ci
138fc223305Sopenharmony_ci/**
139fc223305Sopenharmony_ci * @tc.name: NativePreferencesHelperTest_005
140fc223305Sopenharmony_ci * @tc.desc: error testcase of GetRealPath
141fc223305Sopenharmony_ci * @tc.type: FUNC
142fc223305Sopenharmony_ci */
143fc223305Sopenharmony_ciHWTEST_F(PreferencesHelperTest, NativePreferencesHelperTest_005, TestSize.Level1)
144fc223305Sopenharmony_ci{
145fc223305Sopenharmony_ci    Options option = Options("test300", "com.hmos.uttest", "");
146fc223305Sopenharmony_ci    int errCode = E_OK;
147fc223305Sopenharmony_ci    std::shared_ptr<Preferences> preferences = PreferencesHelper::GetPreferences(option, errCode);
148fc223305Sopenharmony_ci    EXPECT_EQ(preferences, nullptr);
149fc223305Sopenharmony_ci    preferences = nullptr;
150fc223305Sopenharmony_ci}
151fc223305Sopenharmony_ci
152fc223305Sopenharmony_ci/**
153fc223305Sopenharmony_ci * @tc.name: NativePreferencesHelperTest_006
154fc223305Sopenharmony_ci * @tc.desc: error testcase of GetRealPath
155fc223305Sopenharmony_ci * @tc.type: FUNC
156fc223305Sopenharmony_ci */
157fc223305Sopenharmony_ciHWTEST_F(PreferencesHelperTest, NativePreferencesHelperTest_006, TestSize.Level1)
158fc223305Sopenharmony_ci{
159fc223305Sopenharmony_ci    Options option = Options("/data/test/preferences/test01", "", "");
160fc223305Sopenharmony_ci    int errCode = E_OK;
161fc223305Sopenharmony_ci    std::shared_ptr<Preferences> preferences = PreferencesHelper::GetPreferences(option, errCode);
162fc223305Sopenharmony_ci    EXPECT_EQ(preferences, nullptr);
163fc223305Sopenharmony_ci    preferences = nullptr;
164fc223305Sopenharmony_ci}
165fc223305Sopenharmony_ci}
166