1d9f0492fSopenharmony_ci/* 2d9f0492fSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 3d9f0492fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4d9f0492fSopenharmony_ci * you may not use this file except in compliance with the License. 5d9f0492fSopenharmony_ci * You may obtain a copy of the License at 6d9f0492fSopenharmony_ci * 7d9f0492fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8d9f0492fSopenharmony_ci * 9d9f0492fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10d9f0492fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11d9f0492fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12d9f0492fSopenharmony_ci * See the License for the specific language governing permissions and 13d9f0492fSopenharmony_ci * limitations under the License. 14d9f0492fSopenharmony_ci */ 15d9f0492fSopenharmony_ci 16d9f0492fSopenharmony_ci#include <thread> 17d9f0492fSopenharmony_ci#include <gtest/gtest.h> 18d9f0492fSopenharmony_ci#include <cstdint> 19d9f0492fSopenharmony_ci 20d9f0492fSopenharmony_ci#include "if_system_ability_manager.h" 21d9f0492fSopenharmony_ci#include "iservice_registry.h" 22d9f0492fSopenharmony_ci#include "idevice_info.h" 23d9f0492fSopenharmony_ci#include "parameter.h" 24d9f0492fSopenharmony_ci#include "system_ability_definition.h" 25d9f0492fSopenharmony_ci#include "sysparam_errno.h" 26d9f0492fSopenharmony_ci 27d9f0492fSopenharmony_ciusing namespace std; 28d9f0492fSopenharmony_ciusing namespace testing::ext; 29d9f0492fSopenharmony_ciusing namespace OHOS; 30d9f0492fSopenharmony_ci 31d9f0492fSopenharmony_cinamespace initModuleTest { 32d9f0492fSopenharmony_ciclass DeviceInfoModuleTest : public testing::Test { 33d9f0492fSopenharmony_cipublic: 34d9f0492fSopenharmony_ci static void SetUpTestCase(void) {}; 35d9f0492fSopenharmony_ci static void TearDownTestCase(void) {}; 36d9f0492fSopenharmony_ci void SetUp(void) {}; 37d9f0492fSopenharmony_ci void TearDown(void) {}; 38d9f0492fSopenharmony_ci}; 39d9f0492fSopenharmony_ci 40d9f0492fSopenharmony_ciHWTEST_F(DeviceInfoModuleTest, DeviceInfoGetUdid_001, TestSize.Level0) 41d9f0492fSopenharmony_ci{ 42d9f0492fSopenharmony_ci GTEST_LOG_(INFO) << "DeviceInfoGetUdid_001 start"; 43d9f0492fSopenharmony_ci char udid[65] = {}; // 65 udid len 44d9f0492fSopenharmony_ci int ret = AclGetDevUdid(udid, sizeof(udid)); 45d9f0492fSopenharmony_ci EXPECT_EQ(ret, SYSPARAM_PERMISSION_DENIED); 46d9f0492fSopenharmony_ci 47d9f0492fSopenharmony_ci sptr<ISystemAbilityManager> samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 48d9f0492fSopenharmony_ci BEGET_ERROR_CHECK(samgr != nullptr, return, "Get samgr failed"); 49d9f0492fSopenharmony_ci sptr<IRemoteObject> object = samgr->GetSystemAbility(SYSPARAM_DEVICE_SERVICE_ID); 50d9f0492fSopenharmony_ci BEGET_ERROR_CHECK(object != nullptr, return, "Get deviceinfo manager object from samgr failed"); 51d9f0492fSopenharmony_ci 52d9f0492fSopenharmony_ci std::this_thread::sleep_for(std::chrono::seconds(20)); // wait sa died 20s 53d9f0492fSopenharmony_ci 54d9f0492fSopenharmony_ci object = samgr->GetSystemAbility(SYSPARAM_DEVICE_SERVICE_ID); 55d9f0492fSopenharmony_ci BEGET_ERROR_CHECK(object == nullptr, return, "Get deviceinfo manager object from samgr failed"); 56d9f0492fSopenharmony_ci 57d9f0492fSopenharmony_ci ret = AclGetDevUdid(udid, sizeof(udid)); 58d9f0492fSopenharmony_ci EXPECT_EQ(ret, SYSPARAM_PERMISSION_DENIED); 59d9f0492fSopenharmony_ci 60d9f0492fSopenharmony_ci object = samgr->GetSystemAbility(SYSPARAM_DEVICE_SERVICE_ID); 61d9f0492fSopenharmony_ci BEGET_ERROR_CHECK(object != nullptr, return, "Get deviceinfo manager object from samgr failed"); 62d9f0492fSopenharmony_ci 63d9f0492fSopenharmony_ci GTEST_LOG_(INFO) << "DeviceInfoGetUdid_001 end"; 64d9f0492fSopenharmony_ci} 65d9f0492fSopenharmony_ci 66d9f0492fSopenharmony_ciHWTEST_F(DeviceInfoModuleTest, DeviceInfoGetSerial_001, TestSize.Level0) 67d9f0492fSopenharmony_ci{ 68d9f0492fSopenharmony_ci GTEST_LOG_(INFO) << "DeviceInfoGetSerial_001 start"; 69d9f0492fSopenharmony_ci const char *serial = AclGetSerial(); 70d9f0492fSopenharmony_ci EXPECT_EQ(serial != nullptr, 1); 71d9f0492fSopenharmony_ci 72d9f0492fSopenharmony_ci sptr<ISystemAbilityManager> samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); 73d9f0492fSopenharmony_ci BEGET_ERROR_CHECK(samgr != nullptr, return, "Get samgr failed"); 74d9f0492fSopenharmony_ci sptr<IRemoteObject> object = samgr->GetSystemAbility(SYSPARAM_DEVICE_SERVICE_ID); 75d9f0492fSopenharmony_ci BEGET_ERROR_CHECK(object != nullptr, return, "Get deviceinfo manager object from samgr failed"); 76d9f0492fSopenharmony_ci 77d9f0492fSopenharmony_ci std::this_thread::sleep_for(std::chrono::seconds(20)); // wait sa died 20s 78d9f0492fSopenharmony_ci 79d9f0492fSopenharmony_ci object = samgr->GetSystemAbility(SYSPARAM_DEVICE_SERVICE_ID); 80d9f0492fSopenharmony_ci BEGET_ERROR_CHECK(object == nullptr, return, "Get deviceinfo manager object from samgr failed"); 81d9f0492fSopenharmony_ci 82d9f0492fSopenharmony_ci serial = AclGetSerial(); 83d9f0492fSopenharmony_ci EXPECT_EQ(serial != nullptr, 1); 84d9f0492fSopenharmony_ci 85d9f0492fSopenharmony_ci object = samgr->GetSystemAbility(SYSPARAM_DEVICE_SERVICE_ID); 86d9f0492fSopenharmony_ci BEGET_ERROR_CHECK(object != nullptr, return, "Get deviceinfo manager object from samgr failed"); 87d9f0492fSopenharmony_ci 88d9f0492fSopenharmony_ci GTEST_LOG_(INFO) << "DeviceInfoGetSerial_001 end"; 89d9f0492fSopenharmony_ci} 90d9f0492fSopenharmony_ci}