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