From d9d75b1ec56dbabc2b8c780a8e045d2efa4c1f2e Mon Sep 17 00:00:00 2001 From: Kemin <541416002@qq.com> Date: Fri, 23 Sep 2022 15:15:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6lite=5Fmaster,PR62?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cert_mgr_service/services/core/BUILD.gn | 8 +- xts/README.txt | 25 + .../certmanager_posix/BUILD.gn | 45 + .../certmanager_posix/Test.json | 28 + .../certmanager_posix/src/certmgrTest.cpp | 1824 +++++++++++++++++ 5 files changed, 1926 insertions(+), 4 deletions(-) create mode 100644 xts/README.txt create mode 100644 xts/certmanager_lite/certmanager_posix/BUILD.gn create mode 100644 xts/certmanager_lite/certmanager_posix/Test.json create mode 100644 xts/certmanager_lite/certmanager_posix/src/certmgrTest.cpp diff --git a/cert_mgr_service/services/core/BUILD.gn b/cert_mgr_service/services/core/BUILD.gn index c3abb9c..2677dec 100644 --- a/cert_mgr_service/services/core/BUILD.gn +++ b/cert_mgr_service/services/core/BUILD.gn @@ -201,15 +201,15 @@ if (ohos_kernel_type == "liteos_m") { if (enable_cert_test_mock_network) { deps += [ - ":cert_mock_network_para", - ":ticket", - ":token", + #":cert_mock_network_para", + #":ticket", + #":token", ] } if (enable_cert_test_mock_device) { deps += [ - ":cert_mock_device_para", + #":cert_mock_device_para", ] } } diff --git a/xts/README.txt b/xts/README.txt new file mode 100644 index 0000000..3e94d12 --- /dev/null +++ b/xts/README.txt @@ -0,0 +1,25 @@ +L0的xts:certmanager + +L1的xts:certmanager_lite +L1的xts使用: +1. 把certmanager_lite文件夹放到test/xts/acts路径下 + +2. 修改test/xts/acts/build_lite/BUILD.gn +2.1 在else if (ohos_kernel_type == "liteos_a") {}中增加 +"//test/xts/acts/certmanager_lite/certmanager_posix:ActsCertMgrTest", +2.2.在else if (ohos_kernel_type == "linux") {}中增加 +"//test/xts/acts/certmanager_lite/certmanager_posix:ActsCertMgrTest", + +3. 修改test/xts/acts/test_packages.gni +3.1. 在 _all_test_packages[]中增加 +"${ACTS_ROOT}/certmanager:certmanager" + +4. 修改test/xts/tools/build/utils.py +4.1. 在 _SUB_SYSTEM_LIST[]中增加 +"certmanager" + +5. 修改test/xts/tools/lite/build/utils.py +5.1. 在 _SUB_SYSTEM_LIST[]中增加 +"certmanager" +5.2. 在 _NO_FILTE_SUB_SYSTEM_LIST[]中增加 +"certmanager" diff --git a/xts/certmanager_lite/certmanager_posix/BUILD.gn b/xts/certmanager_lite/certmanager_posix/BUILD.gn new file mode 100644 index 0000000..4476b0a --- /dev/null +++ b/xts/certmanager_lite/certmanager_posix/BUILD.gn @@ -0,0 +1,45 @@ +# Copyright (c) 2020-2021 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//test/xts/tools/lite/build/suite_lite.gni") + +hcpptest_suite("ActsCertMgrTest") { + suite_name = "acts" + sources = [ + "src/certmgrTest.cpp", + ] + + include_dirs = [ + "//base/cert_mgr_service/common/include", + "//base/cert_mgr_service/interfaces/include", + "//base/cert_mgr_service/framework/include/small", + "//base/cert_mgr_service/services/core/include", + "//base/cert_mgr_service/services/core/include/adapter", + "//base/cert_mgr_service/services/core/include/utils", + "//base/cert_mgr_service/test/unittest/src", + ] + + deps = [ + "//base/cert_mgr_service/framework:certclient", + "//base/cert_mgr_service/services/core:cert_mgr_core", + "//foundation/systemabilitymgr/samgr_lite/samgr:samgr", + ] + + cflags = ["-Wno-error"] + + ldflags = [ + "-lstdc++", + "-lm", + "-lpthread", + ] +} \ No newline at end of file diff --git a/xts/certmanager_lite/certmanager_posix/Test.json b/xts/certmanager_lite/certmanager_posix/Test.json new file mode 100644 index 0000000..c8c7800 --- /dev/null +++ b/xts/certmanager_lite/certmanager_posix/Test.json @@ -0,0 +1,28 @@ +{ + "description": "Config for certmgrtest test cases", + "environment": [ + { + "type": "device", + "label": "ipcamera" + } + ], + "kits": [ + { + "type": "MountKit", + "server": "NfsServer", + "mount": [ + { + "source": "testcases/certmanager", + "target": "/test_root/certmanager" + },{ + "source": "resource/certmanager", + "target": "/test_root/certmanager" + } + ] + } + ], + "driver": { + "type": "CppTestLite", + "execute": "/test_root/certmanager/ActsCertMgrTest.bin" + } +} \ No newline at end of file diff --git a/xts/certmanager_lite/certmanager_posix/src/certmgrTest.cpp b/xts/certmanager_lite/certmanager_posix/src/certmgrTest.cpp new file mode 100644 index 0000000..8988261 --- /dev/null +++ b/xts/certmanager_lite/certmanager_posix/src/certmgrTest.cpp @@ -0,0 +1,1824 @@ +/* + * Copyright (c) 2020-2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include + +#include "gtest/gtest.h" +#include "cert_error.h" +#include "cert_type.h" +#include "cert_adapter.h" +#include "cert_utils_file.h" +#include "cert_mock.h" +#include "cert_manager_interface.h" + +using namespace std; +using namespace testing::ext; + +class CertMgrTestSuite: public testing::Test { +protected: + // SetUpTestCase:测试套预置动作,在第一个TestCase之前执行 + static void SetUpTestCase(void) + { + printf("==================== [ CertMgr TEST Start] ==========================\n\n"); + } + // TearDownTestCase:测试套清理动作,在最后一个TestCase之后执行 + static void TearDownTestCase(void) + { + printf("==================== [ CertMgr TEST End] ==========================\n\n"); + } + // 用例的预置动作 + virtual void SetUp(){} + // 用例的清理动作 + virtual void TearDown(){} +}; + +/** + * common create file + */ +static void CreateMockFile(void) +{ + // 创建文件 + CreateFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME); + CreateFile(CERT_MOCK_DATA_PATH, CERT_MOCK_DEVICE_PARA_FILE_NAME); + CreateFile(CERT_MOCK_DATA_PATH, CERT_MOCK_NETWORK_PARA_FILE_NAME); +} + +/** + * common delete file + */ +static void DeleteMockFile(void) +{ + // input testcase teardown step,teardown invoked after each testcases + if (IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME)) { + DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME); + } + + if (IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_DEVICE_PARA_FILE_NAME)) { + DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_DEVICE_PARA_FILE_NAME); + } + + if (IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_NETWORK_PARA_FILE_NAME)) { + DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_NETWORK_PARA_FILE_NAME); + } + + if (IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME)) { + DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME); + } + if (IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME)) { + DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME); + } + if (IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_TICKET_FILE_NAME)) { + DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TICKET_FILE_NAME); + } +} + +/** + * common wtrite overDue authStatus + */ +static int32_t WtriteOverDueAuthStatus(void) +{ + const char *auth_status = ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2MDc5MzAxMzQ\ +zODMsImtpdFBvbGljeSI6W10sInNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MTh\ +CRjBDNzgzNEE5M0M3QTVCRjRENTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4\ +yLjAuMCgpL29ob3NUZXN0L2RlZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ."; + int32_t ret = WriteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, auth_status, strlen(auth_status)); + return ret; +} + +// HWTEST_F(CertMgrTestSuite, getCertStatusTest, Function | MediumTest | Level1) { +// int32_t ret = StartCertTask(); +// EXPECT_EQ(ret, CERT_OK) << "StartCertTask Fail"; +// sleep(3); + +// CertResultInfo certResultInfo = { 0 }; +// certResultInfo.ticket = NULL; + +// ret = GetCertStatus(&certResultInfo); +// EXPECT_EQ(ret, CERT_OK) << "GetCertStatus Fail"; +// EXPECT_EQ(certResultInfo.authResult, 0) << "Wrong authResult"; +// EXPECT_EQ(certResultInfo.softwareResult, 0) << "Wrong softwareResult"; +// EXPECT_STREQ(certResultInfo.ticket, nullptr) << "ticket is null"; +// GTEST_LOG_(INFO) << "ticket:" << certResultInfo.ticket << endl; +// free(certResultInfo.ticket); +// certResultInfo.ticket = NULL; +// } + + +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase001, Function | MediumTest | Level1) +{ +// 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + + int32_t ret = InitMockData(&certMockData); + ASSERT_EQ(ret, CERT_OK) << "InitMockData Fail"; + + int32_t result = StartCertTask(); + ASSERT_EQ(result, CERT_OK) << "StartCertTask Fail"; + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_002 + * @tc.name : testStartCertTaskCase002 + * @tc.desc : Verify that the token is refreshed properly, generating a ticket, authStatus, flag + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase002, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + + int32_t ret = InitMockData(&certMockData); + ASSERT_EQ(ret, CERT_OK) << "InitMockData Failed"; + + int32_t result = StartCertTask(); + ASSERT_EQ(result, CERT_OK) << "StartCertTask Fail"; + + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_EQ(ret, CERT_OK) << "ReadFile Failed"; + ASSERT_STREQ(token, CERT_MOCK_TOKEN) << "token wrong"; + + bool flag = IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME); + flag = IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_TICKET_FILE_NAME); + flag = IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME); + ASSERT_TRUE(flag) << "InitMockData Failed"; + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_003 + * @tc.name : testStartCertTaskCase003 + * @tc.desc : Verify that the authentication is successful, replace the auth_status with the inconsistent versionID, and then perform the authentication successfully + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase003, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_EQ(ret, CERT_OK) << "InitMockData Failed"; + + int32_t result = StartCertTask(); + ASSERT_EQ(result, CERT_OK) << "StartCertTask Failed"; + // 认证完之后,更换version_id 不一致的auth_status + const char *auth_status = ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQ\ +zODMsImtpdFBvbGljeSI6W10sInNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MT\ +hCRjBDNzgzNEE5M0M3QTVCRjRENTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktM\ +i4yLjAuMCgpL29ob3NUZXN0L2RlZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQxIn0."; + WriteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, auth_status, strlen(auth_status)); + + // 再次执行认证 + result = StartCertTask(); + ASSERT_EQ(result, CERT_OK) << "StartCertTask Failed"; + const int len = strlen(auth_status) + 1; + char afterAuth[len]; + (void)memset_s(afterAuth, len, 0, len); + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, afterAuth, sizeof(afterAuth)); + ASSERT_EQ(ret, CERT_OK); + ASSERT_TRUE(auth_status != afterAuth); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_004 + * @tc.name : testStartCertTaskCase004 + * @tc.desc : After successful certification, replace the auth_status that has expired, and the certification is successful again + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase004, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + int32_t result = StartCertTask(); + ASSERT_TRUE(result == CERT_OK); + // 认证完之后,更换已超期的auth_status + const char *auth_status = ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2MDc5MzAxMzQ\ +zODMsImtpdFBvbGljeSI6W10sInNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MT\ +hCRjBDNzgzNEE5M0M3QTVCRjRENTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi\ +4yLjAuMCgpL29ob3NUZXN0L2RlZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ."; + ret = WriteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, auth_status, strlen(auth_status)); + ASSERT_TRUE(ret == CERT_OK); + result = StartCertTask(); + ASSERT_EQ(result, CERT_OK); + const int len = strlen(auth_status) + 1; + char afterAuth[len]; + (void)memset_s(afterAuth, len, 0, len); + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, afterAuth, sizeof(afterAuth)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_TRUE(auth_status != afterAuth); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_005 + * @tc.name : testStartCertTaskCase005 + * @tc.desc : The first authentication fails, and the second authentication succeeds + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase005, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 9999, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + const char* auth_status = ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2MDc5MzAxMzQ\ + zODMsImtpdFBvbGljeSI6W10sInNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MTh\ + CRjBDNzgzNEE5M0M3QTVCRjRENTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4\ + yLjAuMCgpL29ob3NUZXN0L2RlZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ."; + ret = WriteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, auth_status, strlen(auth_status)); + ASSERT_TRUE(ret == CERT_OK); + CertNetworkMockData networkMockData = { + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}; + ret = WriteNetWorkMock(&networkMockData); + ASSERT_TRUE(ret == CERT_OK); + result = StartCertTask(); + ASSERT_EQ(result, CERT_OK); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_006 + * @tc.name : testStartCertTaskCase006 + * @tc.desc : Set the errcode returned by the device authentication to get the challenge value to 9999, check whether the authentication fails and do not retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase006, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 9999, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否不重试 期望是false + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_007 + * @tc.name : testStartCertTaskCase007 + * @tc.desc : Set the errcode returned by the device authentication to get the challenge value to 4999, and check whether the authentication fails to retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase007, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 4999, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否重试 期望是TRUE + ASSERT_TRUE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_008 + * @tc.name : testStartCertTaskCase008 + * @tc.desc : Set the errcode returned by the authentication device to 4999 to check whether the authentication failed to retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase008, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 4999}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否重试 期望是TRUE + ASSERT_TRUE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_009 + * @tc.name : testStartCertTaskCase009 + * @tc.desc : Set the errcode returned by the device authentication to 14000, check the authentication failure and do not retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase009, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 14000}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否不重试 期望是false + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_010 + * @tc.name : testStartCertTaskCase010 + * @tc.desc : Set the errcode returned for device authentication to 14001, check authentication failed and try again + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase010, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 14001}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否重试 期望是TRUE + ASSERT_TRUE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_011 + * @tc.name : testStartCertTaskCase011 + * @tc.desc : Set the errcode returned by the device authentication to 14002, check the authentication failure and do not retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase011, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 14002}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否不重试 期望是FALSE + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_012 + * @tc.name : testStartCertTaskCase012 + * @tc.desc : Set the errcode returned for device authentication to 14004, check that the authentication failed and did not retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase012, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 14004}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否不重试 期望是FALSE + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_013 + * @tc.name : testStartCertTaskCase013 + * @tc.desc : Set the errcode returned by the device authentication to 30002, check the authentication failure and do not retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase013, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 30002}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否不重试 期望是FALSE + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_014 + * @tc.name : testStartCertTaskCase014 + * @tc.desc : Set the errcode returned by the device authentication to 30003, check the authentication failure and do not retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase014, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 30003}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否不重试 期望是FALSE + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_015 + * @tc.name : testStartCertTaskCase015 + * @tc.desc : Set the errcode returned by the device authentication to 30004, check the authentication failure and do not retry + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase015, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 30004}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 检查是否不重试 期望是FALSE + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_016 + * @tc.name : testStartCertTaskCase016 + * @tc.desc : Set the errcode returned by authentication activation to 4999, check the authentication failure without retrying, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase016, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 4999}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 检查是否重试 期望是TRUE + ASSERT_TRUE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_017 + * @tc.name : testStartCertTaskCase017 + * @tc.desc : Set the errcode returned by the authentication activation to 4999, check that the token updates the ticket and auth_status not updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase017, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 4999}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + ASSERT_FALSE(IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME)); + ASSERT_FALSE(IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_TICKET_FILE_NAME)); + // 检查是否重试 期望是TRUE + ASSERT_TRUE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_018 + * @tc.name : testStartCertTaskCase018 + * @tc.desc : Set the errcode returned by the authentication activation to 14001, check the authentication failure retry, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase018, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 14001}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 检查是否重试 期望是TRUE + ASSERT_TRUE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_019 + * @tc.name : testStartCertTaskCase019 + * @tc.desc : Set the errcode returned by the authentication activation to 14002, check the authentication failure without retrying, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase019, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 14002}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 检查是否重试 期望是FALSE + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_020 + * @tc.name : testStartCertTaskCase020 + * @tc.desc : Set the errcode returned by the authentication activation to 30015, check the authentication failure and do not retry, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase020, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 30015}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证且结果为失败的 + int32_t result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 检查是否重试 期望是FALSE + ASSERT_FALSE(IS_WISE_RETRY(-result)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_021 + * @tc.name : testStartCertTaskCase021 + * @tc.desc : Set the errcode returned by the device reset to 4999, token updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase021, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 4999}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + ret = CreateFile(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 检查是否生成reset_flag标签 期望是TRUE + ASSERT_TRUE(CertIsResetFlagExist()); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_022 + * @tc.name : testStartCertTaskCase022 + * @tc.desc : Set the errcode returned by the device reset to 4999, remove reset_flag, check not to generate reset_flag, update token + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase022, Function | MediumTest | Level1) +{ + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + bool flag = DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME); + ASSERT_TRUE(flag); + char beforeToken[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, beforeToken, sizeof(beforeToken)); + ASSERT_TRUE(ret == CERT_OK); + CertNetworkMockData networkMockData = { + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 4999}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}; + ret = WriteNetWorkMock(&networkMockData); + ASSERT_TRUE(ret == CERT_OK); + ret = WtriteOverDueAuthStatus(); + ASSERT_TRUE(ret == CERT_OK); + result = StartCertTask(); + ASSERT_EQ(result, CERT_OK); + char afterToken[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, afterToken, sizeof(afterToken)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_TRUE(beforeToken != afterToken); + ASSERT_FALSE(CertIsResetFlagExist()); + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_023 + * @tc.name : testStartCertTaskCase023 + * @tc.desc : Set the errcode returned by the device reset to 4999, check that the reset_flag is not generated, and update token + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase023, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 4999}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + ASSERT_FALSE(CertIsResetFlagExist()); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_024 + * @tc.name : testStartCertTaskCase024 + * @tc.desc : Set the errcode returned by the device reset to 14000, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase024, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 14000}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_025 + * @tc.name : testStartCertTaskCase025 + * @tc.desc : Set the errcode returned by the device reset to 14001, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase025, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 14001}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_026 + * @tc.name : testStartCertTaskCase026 + * @tc.desc : Set the errcode returned by the device reset to 14002, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase026, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 14002}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_027 + * @tc.name : testStartCertTaskCase027 + * @tc.desc : Set the errcode returned by the device reset to 14004, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase027, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 14004}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_028 + * @tc.name : testStartCertTaskCase028 + * @tc.desc : Set the errcode returned by the device reset to 15003, and the token is updated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase028, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 15003}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_029 + * @tc.name : testStartCertTaskCase029 + * @tc.desc : Verify that the primary process does not exceed 30S at one time + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase029, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 获取认证前时间戳 + time_t beforeTimet; + time(&beforeTimet); + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + // 获取认证后时间戳 + time_t afterTimet; + time(&afterTimet); + ASSERT_TRUE(difftime(afterTimet, beforeTimet) <= 30); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_030 + * @tc.name : testStartCertTaskCase030 + * @tc.desc : Abnormal packet attack, set authDevice to return authStatus to abc, authentication failed + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase030, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", "abc", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_FALSE(CERT_OK == result); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_031 + * @tc.name : testStartCertTaskCase031 + * @tc.desc : The local autoResult preset is 14004 and triggers the authentication token to update normally + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase031, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 预置auth_status 本地AuthResult为14004 + const char *auth_status = ".eyJhdXRoUmVzdWx0IjoxNDAwNCwiYXV0aFR5cGUiOiJUT0tFTl9FTkFCTEUiLCJleHBpcmVUaW1lIjoxNjc3OTM\ +wMTM0MzgzLCJraXRQb2xpY3kiOltdLCJzb2Z0d2FyZVJlc3VsdCI6MCwidWRpZCI6IjFBQUE4ODk2OTBFRjMzRThEMTg2NkYzMEU4MEExM0ExOTEzNE\ +E3NTE4QkYwQzc4MzRBOTNDN0E1QkY0RDUxRjkiLCJ2ZXJzaW9uSWQiOiJkZWZhdWx0L2h1YS13ZWkvSHVhV2VpVGVzdC9kZWZhdWx0L09wZW5IYXJtb\ +255LTIuMi4wLjAoKS9vaG9zVGVzdC9kZWZhdWx0LzgvZGVmYXVsdC9kZWZhdWx0In0."; + if (!IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME)) { + ret = CreateFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME); + ASSERT_TRUE(ret == CERT_OK); + } + ret = WriteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, auth_status, strlen(auth_status)); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_EQ(CERT_OK, result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_032 + * @tc.name : testStartCertTaskCase032 + * @tc.desc : Check whether the second authentication is successful when the first token write fails + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase032, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 14001}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_FALSE(CERT_OK == result); + char token[TOKEN_ENCRYPT_LEN + 1] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(CERT_MOCK_TOKEN, token); + // 第二次预置数据,currentTime改为1651234567890 + CertNetworkMockData networkMockData = { + {1651234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1651234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1651234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1651234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}; + ret = WriteNetWorkMock(&networkMockData); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证 + result = StartCertTask(); + ASSERT_EQ(result, CERT_OK); + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_TOKEN_FILE_NAME, token, sizeof(token)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_FALSE(strcmp(token, CERT_MOCK_TOKEN)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_033 + * @tc.name : testStartCertTaskCase033 + * @tc.desc : Check whether the first ticket, authStatus write fails, and whether the second authentication is successful + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase033, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 14001}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_FALSE(CERT_OK == result); + ASSERT_FALSE(IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_TICKET_FILE_NAME)); + ASSERT_FALSE(IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME)); + + // 第二次预置数据 + CertNetworkMockData networkMockData = { + {1651234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1651234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1651234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1651234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}; + ret = WriteNetWorkMock(&networkMockData); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证 + result = StartCertTask(); + ASSERT_EQ(result, CERT_OK); + ASSERT_TRUE(IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_TICKET_FILE_NAME)); + ASSERT_TRUE(IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_034 + * @tc.name : testStartCertTaskCase034 + * @tc.desc : Check whether the second authentication is successfully generated when the first reset_flag fails to write + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase034, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 14001}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_TRUE(CERT_OK == result); + ASSERT_FALSE(IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME)); + + // 第二次预置数据 + CertNetworkMockData networkMockData = { + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2OTc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}; + ret = WriteNetWorkMock(&networkMockData); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证 + result = StartCertTask(); + ASSERT_EQ(result, CERT_OK); + ASSERT_TRUE(IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME)); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_035 + * @tc.name : testStartCertTaskCase035 + * @tc.desc : The authentication result is overdue, and the network is abnormal when it is re-authenticated + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase035, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_TRUE(CERT_OK == result); + char beforeAuthStatus[AUTH_SATUS_LEN] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, beforeAuthStatus, sizeof(beforeAuthStatus)); + ASSERT_TRUE(ret == CERT_OK); + // 第二次预置数据 + CertNetworkMockData networkMockData = { + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2OTc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 14001}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}; + ret = WriteNetWorkMock(&networkMockData); + ASSERT_TRUE(ret == CERT_OK); + // 开始认证 + result = StartCertTask(); + ASSERT_FALSE(result == CERT_OK); + char afterAuthStatus[AUTH_SATUS_LEN] = {0}; + ret = ReadFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME, afterAuthStatus, sizeof(afterAuthStatus)); + ASSERT_TRUE(ret == CERT_OK); + ASSERT_STREQ(beforeAuthStatus, afterAuthStatus); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_036 + * @tc.name : testStartCertTaskCase036 + * @tc.desc : Simulate the recovery of the appearance settings and verify that the main process is normal + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase036, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_TRUE(CERT_OK == result); + bool flag = IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME); + flag = IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_TICKET_FILE_NAME); + flag = IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME); + ASSERT_TRUE(flag); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_037 + * @tc.name : testStartCertTaskCase037 + * @tc.desc : The device is reset, the unbinding is successful, and the re-authentication is successful + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase037, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_TRUE(CERT_OK == result); + bool flag = DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME); + ASSERT_TRUE(flag); + + // 重新预置networkMockData + CertNetworkMockData networkMockData = { + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2OTc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}; + ret = WriteNetWorkMock(&networkMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + result = StartCertTask(); + ASSERT_TRUE(CERT_OK == result); + flag = IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_RESET_FLAG_FILE_NAME); + ASSERT_TRUE(flag); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_038 + * @tc.name : testStartCertTaskCase038 + * @tc.desc : Authentication success, query whether the authentication result interface is successful + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase038, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_TRUE(CERT_OK == result); + + + CertResultInfo certResultInfo = { 0 }; + certResultInfo.authResult = 3; + certResultInfo.softwareResult = 3; + certResultInfo.ticket = NULL; + int32_t res = GetCertStatus(&certResultInfo); + + ASSERT_EQ(CERT_OK, res); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_039 + * @tc.name : testStartCertTaskCase039 + * @tc.desc : Authentication success, clear the authentication results, and query the authentication results interface + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase039, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_TRUE(CERT_OK == result); + if (IsFileExist(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME)) { + result = DeleteFile(CERT_MOCK_DATA_PATH, CERT_MOCK_AUTH_STATUS_FILE_NAME); + ASSERT_TRUE(ret == CERT_OK); + } + + // 查询接口 + CertResultInfo certResultInfo = { 0 }; + certResultInfo.authResult = 3; + certResultInfo.softwareResult = 3; + certResultInfo.ticket = NULL; + int32_t res = GetCertStatus(&certResultInfo); + + ASSERT_EQ(CERT_ERR, res); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_040 + * @tc.name : testStartCertTaskCase040 + * @tc.desc : Authentication failed, query the authentication result interface + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase040, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 4999}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_FALSE(CERT_OK == result); + + CertResultInfo certResultInfo = { 0 }; + certResultInfo.authResult = 3; + certResultInfo.softwareResult = 3; + certResultInfo.ticket = NULL; + int32_t res = GetCertStatus(&certResultInfo); + + ASSERT_EQ(CERT_ERR, res); + // 重置环境 + DeleteMockFile(); +} + +/** + * @tc.number : CertMgrTestSuite_StartCertTask_041 + * @tc.name : testStartCertTaskCase041 + * @tc.desc : The first authentication is successful, the second authentication fails, and the authentication result interface is queried + */ +HWTEST_F(CertMgrTestSuite, testStartCertTaskCase041, Function | MediumTest | Level1) +{ + // 准备环境 + CreateMockFile(); + CertMockData certMockData = { + {"default/hua-wei/HuaWeiTest/default/OpenHarmony-2.2.0.0()/ohosTest/default/8/default/default", "test", + "OpenHarmony 3.1.5.3", "hua-wei", "ohosTest", "HuaWeiTest", "2022-04-09", "7001005458323933328a00fce1983800"}, + {{1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2Nzc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 0}, + {1641234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}}; + int32_t ret = InitMockData(&certMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 开始认证 + int32_t result = StartCertTask(); + ASSERT_TRUE(CERT_OK == result); + // 重新预置networkMockData + CertNetworkMockData networkMockData = { + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, + "ujlrjJ6loo16/32VSKj9hZ+vDpiPgt+L", "95335c19-b688-40ea-b9c8-08edf3f3c8f0", + ".eyJhdXRoUmVzdWx0IjowLCJhdXRoVHlwZSI6IlRPS0VOX0VOQUJMRSIsImV4cGlyZVRpbWUiOjE2OTc5MzAxMzQzODMsImtpdFBvbGljeSI6W10sI\ +nNvZnR3YXJlUmVzdWx0IjowLCJ1ZGlkIjoiMUFBQTg4OTY5MEVGMzNFOEQxODY2RjMwRTgwQTEzQTE5MTM0QTc1MThCRjBDNzgzNEE5M0M3QTVCRjRE\ +NTFGOSIsInZlcnNpb25JZCI6ImRlZmF1bHQvaHVhLXdlaS9IdWFXZWlUZXN0L2RlZmF1bHQvT3Blbkhhcm1vbnktMi4yLjAuMCgpL29ob3NUZXN0L2R\ +lZmF1bHQvOC9kZWZhdWx0L2RlZmF1bHQifQ.", + "RKp35yO9fOHBcytcO1pywKYO3rmm5z2i", 4999}, + {1681234567890, "b39b752290266b95acedde9b2f89fa5ebea6e060d509b0b20d07c922bcea7b64", 0, 0}}; + ret = WriteNetWorkMock(&networkMockData); + ASSERT_TRUE(ret == CERT_OK); + + // 再次认证 + result = StartCertTask(); + ASSERT_FALSE(CERT_OK == result); + + CertResultInfo certResultInfo = { 0 }; + certResultInfo.authResult = 3; + certResultInfo.softwareResult = 3; + certResultInfo.ticket = NULL; + int32_t res = GetCertStatus(&certResultInfo); + + ASSERT_EQ(CERT_OK, res); + // 重置环境 + DeleteMockFile(); +} \ No newline at end of file -- Gitee