* Copyright (c) 2022-2025 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 "UTTest_dm_auth_manager_first.h"
#include "auth_message_processor.h"
#include "common_event_support.h"
#include "device_manager_service_listener.h"
#include "dm_auth_manager.h"
#include "dm_anonymous.h"
#include "dm_constants.h"
#include "dm_log.h"
#include "dm_radar_helper.h"
#include "json_object.h"
#include "softbus_error_code.h"
#include <memory>
static bool g_reportAuthOpenSessionReturnBoolValue = false;
static bool g_reportAuthConfirmBoxReturnBoolValue = false;
constexpr const char* DM_VERSION_4_1_5_1 = "4.1.5";
constexpr const char* DM_VERSION_5_0_1 = "5.0.1";
constexpr const char* DM_VERSION_5_0_2 = "5.0.2";
constexpr const char* AUTHENTICATE_TIMEOUT_TASK = "deviceManagerTimer:authenticate";
using namespace testing;
using namespace testing::ext;
namespace OHOS {
namespace DistributedHardware {
namespace {
const std::string PINCODE = "100001";
constexpr int32_t MIN_PIN_CODE_VALUE = 10;
constexpr int32_t MAX_PIN_CODE_VALUE = 9999999;
constexpr int32_t INVALID_AUTHBOX_TYPE = 100;
}
bool DmRadarHelper::ReportAuthOpenSession(struct RadarInfo &info)
{
return g_reportAuthOpenSessionReturnBoolValue;
}
bool DmRadarHelper::ReportAuthConfirmBox(struct RadarInfo &info)
{
return g_reportAuthConfirmBoxReturnBoolValue;
}
class SoftbusStateCallbackTest : public ISoftbusStateCallback {
public:
SoftbusStateCallbackTest() {}
virtual ~SoftbusStateCallbackTest() {}
void OnDeviceOnline(std::string deviceId, int32_t authForm) {}
void OnDeviceOffline(std::string deviceId, const bool isOnline) {}
void DeleteOffLineTimer(const std::string &peerUdid) {}
};
void DmAuthManagerTest::SetUp()
{
authManager_->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager_);
authManager_->authMessageProcessor_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authMessageProcessor_->authRequestContext_ = std::make_shared<DmAuthRequestContext>();
authManager_->authRequestContext_ = std::make_shared<DmAuthRequestContext>();
authManager_->authRequestState_ = std::make_shared<AuthRequestFinishState>();
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authResponseState_ = std::make_shared<AuthResponseConfirmState>();
authManager_->hiChainAuthConnector_ = std::make_shared<HiChainAuthConnector>();
authManager_->softbusConnector_ = std::make_shared<SoftbusConnector>();
authManager_->softbusConnector_->GetSoftbusSession()->RegisterSessionCallback(
std::shared_ptr<ISoftbusSessionCallback>(authManager_));
authManager_->timer_ = std::make_shared<DmTimer>();
}
void DmAuthManagerTest::TearDown()
{
Mock::VerifyAndClearExpectations(softbusSessionMock_.get());
Mock::VerifyAndClearExpectations(appManagerMock_.get());
Mock::VerifyAndClearExpectations(cryptoMock_.get());
Mock::VerifyAndClearExpectations(deviceProfileConnectorMock_.get());
Mock::VerifyAndClearExpectations(hiChainAuthConnectorMock_.get());
Mock::VerifyAndClearExpectations(multipleUserConnectorMock_.get());
}
void DmAuthManagerTest::SetUpTestCase()
{
softbusSessionMock_ = std::make_shared<SoftbusSessionMock>();
DmSoftbusSession::dmSoftbusSession = softbusSessionMock_;
appManagerMock_ = std::make_shared<AppManagerMock>();
DmAppManager::dmAppManager = appManagerMock_;
cryptoMock_ = std::make_shared<CryptoMock>();
DmCrypto::dmCrypto = cryptoMock_;
deviceProfileConnectorMock_ = std::make_shared<DeviceProfileConnectorMock>();
DmDeviceProfileConnector::dmDeviceProfileConnector = deviceProfileConnectorMock_;
hiChainAuthConnectorMock_ = std::make_shared<HiChainAuthConnectorMock>();
DmHiChainAuthConnector::dmHiChainAuthConnector = hiChainAuthConnectorMock_;
multipleUserConnectorMock_ = std::make_shared<MultipleUserConnectorMock>();
DmMultipleUserConnector::dmMultipleUserConnector = multipleUserConnectorMock_;
cryptoMgrMock_ = std::make_shared<CryptoMgrMock>();
DmCryptoMgr::dmCryptoMgr = cryptoMgrMock_;
}
void DmAuthManagerTest::TearDownTestCase()
{
DmSoftbusSession::dmSoftbusSession = nullptr;
softbusSessionMock_ = nullptr;
DmAppManager::dmAppManager = nullptr;
appManagerMock_ = nullptr;
DmCrypto::dmCrypto = nullptr;
cryptoMock_ = nullptr;
DmDeviceProfileConnector::dmDeviceProfileConnector = nullptr;
deviceProfileConnectorMock_ = nullptr;
DmHiChainAuthConnector::dmHiChainAuthConnector = nullptr;
hiChainAuthConnectorMock_ = nullptr;
DmMultipleUserConnector::dmMultipleUserConnector = nullptr;
multipleUserConnectorMock_ = nullptr;
DmCryptoMgr::dmCryptoMgr = nullptr;
cryptoMgrMock_ = nullptr;
}
namespace {
const std::string MIN_PIN_CODE = "100000";
const std::string MAX_PIN_CODE = "999999";
HWTEST_F(DmAuthManagerTest, EstablishAuthChannel_001, testing::ext::TestSize.Level1)
{
std::string deviceId1;
authManager_->AbilityNegotiate();
g_reportAuthOpenSessionReturnBoolValue = false;
int32_t ret = authManager_->EstablishAuthChannel(deviceId1);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, EstablishAuthChannel_002, testing::ext::TestSize.Level1)
{
std::string deviceId;
authManager_->authResponseContext_ = nullptr;
authManager_->authRequestContext_ = nullptr;
authManager_->authRequestState_ = nullptr;
g_reportAuthOpenSessionReturnBoolValue = true;
int32_t ret = authManager_->EstablishAuthChannel(deviceId);
g_reportAuthOpenSessionReturnBoolValue = false;
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, StartAuthProcess_001, testing::ext::TestSize.Level1)
{
std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseConfirmState>();
authManager_->SetAuthResponseState(authResponseState);
int32_t action = 0;
g_reportAuthConfirmBoxReturnBoolValue = false;
authManager_->remoteVersion_ = "4.1.5.2";
authManager_->authResponseContext_->bindLevel = USER;
int32_t ret = authManager_->StartAuthProcess(action);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, StartAuthProcess_002, testing::ext::TestSize.Level1)
{
std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseConfirmState>();
authManager_->SetAuthResponseState(authResponseState);
int32_t action = 0;
g_reportAuthConfirmBoxReturnBoolValue = true;
authManager_->remoteVersion_ = "4.1.5.2";
authManager_->authResponseContext_->bindLevel = APP + 1;
int32_t ret = authManager_->StartAuthProcess(action);
g_reportAuthConfirmBoxReturnBoolValue = false;
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, StartAuthProcess_003, testing::ext::TestSize.Level1)
{
std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseConfirmState>();
authManager_->SetAuthResponseState(authResponseState);
int32_t action = 0;
authManager_->remoteVersion_ = "4.1.5.2";
authManager_->authResponseContext_->bindLevel = INVALIED_TYPE;
int32_t ret = authManager_->StartAuthProcess(action);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, StartAuthProcess_004, testing::ext::TestSize.Level1)
{
std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseConfirmState>();
authManager_->SetAuthResponseState(authResponseState);
int32_t action = 0;
authManager_->remoteVersion_ = "4.1.5.0";
int32_t ret = authManager_->StartAuthProcess(action);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, StartAuthProcess_005, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = nullptr;
int32_t action = 1;
int32_t ret = authManager_->StartAuthProcess(action);
ASSERT_EQ(ret, ERR_DM_AUTH_NOT_START);
}
HWTEST_F(DmAuthManagerTest, CreateGroup_002, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = nullptr;
int32_t ret = authManager_->CreateGroup();
ASSERT_EQ(ret, ERR_DM_FAILED);
}
HWTEST_F(DmAuthManagerTest, AddMember_002, testing::ext::TestSize.Level1)
{
std::string pinCode = "33333";
authManager_->authResponseContext_ = nullptr;
int32_t ret = authManager_->AddMember(pinCode);
ASSERT_EQ(ret, ERR_DM_FAILED);
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
std::shared_ptr<IDeviceManagerServiceListener> listener = std::make_shared<DeviceManagerServiceListener>();
authManager_->authUiStateMgr_ = std::make_shared<AuthUiStateManager>(listener);
authManager_->isAddingMember_ = true;
ret = authManager_->AddMember(pinCode);
ASSERT_EQ(ret, ERR_DM_FAILED);
}
HWTEST_F(DmAuthManagerTest, JoinNetwork_001, testing::ext::TestSize.Level1)
{
std::shared_ptr<AuthRequestState> authRequestState = std::make_shared<AuthRequestFinishState>();
const int32_t sessionId = 65;
const std::string message = "messageTest";
int64_t requestId = 444;
const std::string groupId = "{}";
int32_t status = 1;
authManager_->OnGroupCreated(requestId, groupId);
authManager_->OnMemberJoin(requestId, status, 0);
authManager_->OnDataReceived(sessionId, message);
authManager_->SetAuthRequestState(authRequestState);
int32_t ret = authManager_->JoinNetwork();
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, JoinNetwork_002, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = nullptr;
authManager_->AuthenticateFinish();
int32_t ret = authManager_->JoinNetwork();
ASSERT_EQ(ret, ERR_DM_FAILED);
}
HWTEST_F(DmAuthManagerTest, SetAuthResponseState_001, testing::ext::TestSize.Level1)
{
std::shared_ptr<AuthResponseState> authResponseState = std::make_shared<AuthResponseFinishState>();
authManager_->authResponseState_ = std::make_shared<AuthResponseFinishState>();
int32_t ret = authManager_->SetAuthResponseState(authResponseState);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, SetAuthResponseState_002, testing::ext::TestSize.Level1)
{
std::shared_ptr<AuthResponseState> authResponseState = nullptr;
int32_t ret = authManager_->SetAuthResponseState(authResponseState);
ASSERT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
}
HWTEST_F(DmAuthManagerTest, GetPinCode_001, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_->code = "123456";
std::string code = "0";
authManager_->GetPinCode(code);
ASSERT_EQ(code, "123456");
}
HWTEST_F(DmAuthManagerTest, GetPinCode_002, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = nullptr;
authManager_->ShowConfigDialog();
authManager_->ShowAuthInfoDialog();
authManager_->ShowStartAuthDialog();
std::string code = "0";
int32_t ret = authManager_->GetPinCode(code);
ASSERT_NE(ret, ERR_DM_TIME_OUT);
}
HWTEST_F(DmAuthManagerTest, SetPageId_001, testing::ext::TestSize.Level1)
{
int32_t pageId = 123;
int32_t ret = authManager_->SetPageId(pageId);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, SetPageId_002, testing::ext::TestSize.Level1)
{
int32_t pageId = 123;
authManager_->authResponseContext_ = nullptr;
authManager_->authMessageProcessor_ = nullptr;
const int32_t sessionId = 65;
std::string message = "messageTest";
int64_t requestId = 555;
int32_t status = 2;
JsonObject jsonObject;
jsonObject[TAG_MSG_TYPE] = MSG_TYPE_AUTH_BY_PIN;
authManager_->OnMemberJoin(requestId, status, 0);
authManager_->OnDataReceived(sessionId, message);
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authRequestState_ = std::make_shared<AuthRequestFinishState>();
authManager_->authResponseContext_->sessionId = sessionId;
message = jsonObject.Dump();
authManager_->authResponseState_ = nullptr;
authManager_->OnDataReceived(sessionId, message);
authManager_->authRequestState_ = nullptr;
authManager_->authResponseState_ = std::make_shared<AuthResponseFinishState>();
authManager_->OnDataReceived(sessionId, message);
int32_t ret = authManager_->SetPageId(pageId);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, SetPageId_003, testing::ext::TestSize.Level1)
{
int32_t pageId = 123;
authManager_->authResponseContext_ = nullptr;
int32_t ret = authManager_->SetPageId(pageId);
ASSERT_NE(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, SetReasonAndFinish_001, testing::ext::TestSize.Level1)
{
const int32_t sessionId = 78;
int32_t reason = 123;
int32_t state = 456;
authManager_->OnSessionClosed(sessionId);
authManager_->authResponseContext_ = nullptr;
int64_t requestId = 333;
const std::string groupId = "{}";
authManager_->OnGroupCreated(requestId, groupId);
int32_t ret = authManager_->SetReasonAndFinish(reason, state);
ASSERT_EQ(ret, ERR_DM_AUTH_NOT_START);
}
HWTEST_F(DmAuthManagerTest, SetReasonAndFinish_002, testing::ext::TestSize.Level1)
{
int32_t reason = 1234;
int32_t state = 5678;
int64_t requestId = 22;
const std::string groupId = "{}";
authManager_->OnGroupCreated(requestId, groupId);
int32_t ret = authManager_->SetReasonAndFinish(reason, state);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, SetReasonAndFinish_003, testing::ext::TestSize.Level1)
{
authManager_->authRequestState_ = nullptr;
authManager_->authResponseState_ = std::make_shared<AuthResponseFinishState>();
int32_t reason = 12;
int32_t state = 36;
int32_t ret = authManager_->SetReasonAndFinish(reason, state);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, IsIdenticalAccount_001, testing::ext::TestSize.Level1)
{
bool ret = authManager_->IsIdenticalAccount();
ASSERT_EQ(ret, false);
}
HWTEST_F(DmAuthManagerTest, GetAccountGroupIdHash_001, testing::ext::TestSize.Level1)
{
auto ret = authManager_->GetAccountGroupIdHash();
ASSERT_EQ(ret.empty(), true);
}
HWTEST_F(DmAuthManagerTest, GeneratePincode_002, testing::ext::TestSize.Level1)
{
int32_t openedSessionId = 66;
int32_t sessionSide = 0;
int32_t result = 3;
const int32_t closedSessionId = 11;
authManager_->authResponseState_ = std::make_shared<AuthResponseConfirmState>();
authManager_->authRequestState_ = std::make_shared<AuthRequestFinishState>();
authManager_->timer_ = std::make_shared<DmTimer>();
authManager_->OnSessionOpened(openedSessionId, sessionSide, result);
authManager_->OnSessionClosed(closedSessionId);
std::string ret = authManager_->GeneratePincode();
ASSERT_LE(ret, MAX_PIN_CODE);
ASSERT_GE(ret, MIN_PIN_CODE);
}
HWTEST_F(DmAuthManagerTest, GeneratePincode_003, testing::ext::TestSize.Level1)
{
int32_t openedSessionId = 66;
int32_t sessionSide = 1;
int32_t result = 3;
const int32_t closedSessionId = 11;
authManager_->authResponseState_ = nullptr;
authManager_->authRequestState_ = nullptr;
authManager_->timer_ = nullptr;
authManager_->OnSessionOpened(openedSessionId, sessionSide, result);
authManager_->OnSessionClosed(closedSessionId);
std::string ret = authManager_->GeneratePincode();
ASSERT_LE(ret, MAX_PIN_CODE);
ASSERT_GE(ret, MIN_PIN_CODE);
}
HWTEST_F(DmAuthManagerTest, GeneratePincode_004, testing::ext::TestSize.Level1)
{
int32_t openedSessionId = 66;
int32_t sessionSide = 1;
int32_t result = 3;
const int32_t closedSessionId = 11;
authManager_->authResponseState_ = nullptr;
authManager_->authRequestState_ = std::make_shared<AuthRequestInitState>();
authManager_->timer_ = std::make_shared<DmTimer>();
authManager_->OnSessionOpened(openedSessionId, sessionSide, result);
authManager_->OnSessionClosed(closedSessionId);
std::string ret = authManager_->GeneratePincode();
ASSERT_LE(ret, MAX_PIN_CODE);
ASSERT_GE(ret, MIN_PIN_CODE);
}
HWTEST_F(DmAuthManagerTest, AuthenticateDevice_003, testing::ext::TestSize.Level1)
{
std::string pkgName = "com.ohos.test";
int32_t authType = 1;
std::string deviceId = "deviceIdTest";
std::string extra = "extraTest";
std::shared_ptr<DeviceInfo> infoPtr = std::make_shared<DeviceInfo>();
authManager_->authRequestState_ = nullptr;
authManager_->authResponseState_ = nullptr;
authManager_->timer_ = nullptr;
authManager_->softbusConnector_->discoveryDeviceInfoMap_.emplace(deviceId, infoPtr);
int32_t ret = authManager_->AuthenticateDevice(pkgName, authType, deviceId, extra);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, UnAuthenticateDevice_001, testing::ext::TestSize.Level1)
{
std::string pkgName;
std::string udid = "UnAuthenticateDevice_001";
int32_t bindLevel = USER;
int32_t ret = authManager_->UnAuthenticateDevice(pkgName, udid, bindLevel);
EXPECT_NE(ret, DM_OK);
pkgName = "com.ohos.test";
authManager_->isAuthenticateDevice_ = false;
ret = authManager_->UnAuthenticateDevice(pkgName, udid, bindLevel);
EXPECT_NE(ret, DM_OK);
authManager_->authRequestState_ = nullptr;
authManager_->authResponseContext_ = nullptr;
ret = authManager_->UnAuthenticateDevice(pkgName, udid, bindLevel);
EXPECT_NE(ret, DM_OK);
bindLevel = 0;
ret = authManager_->UnAuthenticateDevice(pkgName, udid, bindLevel);
EXPECT_NE(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, GenerateGroupName_001, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = nullptr;
std::string ret = authManager_->GenerateGroupName();
ASSERT_TRUE(ret.empty());
}
HWTEST_F(DmAuthManagerTest, UnBindDevice_002, testing::ext::TestSize.Level1)
{
std::string pkgName;
std::string udid = "UnBindDevice_002";
int32_t bindLevel = USER;
std::string extra = "extraTest";
int32_t ret = authManager_->UnBindDevice(pkgName, udid, bindLevel, extra);
EXPECT_NE(ret, DM_OK);
pkgName = "com.ohos.test";
authManager_->isAuthenticateDevice_ = false;
ret = authManager_->UnBindDevice(pkgName, udid, bindLevel, extra);
EXPECT_NE(ret, DM_OK);
authManager_->authRequestState_ = nullptr;
authManager_->authResponseContext_ = nullptr;
ret = authManager_->UnBindDevice(pkgName, udid, bindLevel, extra);
EXPECT_NE(ret, DM_OK);
bindLevel = 0;
ret = authManager_->UnBindDevice(pkgName, udid, bindLevel, extra);
EXPECT_NE(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, GenerateGroupName_002, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_->targetPkgName = "targetPkgNameTest";
authManager_->authResponseContext_->localDeviceId = "localDeviceIdTest";
authManager_->action_ = 6;
std::string ret = authManager_->GenerateGroupName();
ASSERT_TRUE(!ret.empty());
}
HWTEST_F(DmAuthManagerTest, GenerateGroupName_003, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_->targetPkgName = "targetPkgNameTest";
authManager_->authResponseContext_->localDeviceId = "localDeviceIdTest";
authManager_->action_ = 7;
std::string ret = authManager_->GenerateGroupName();
ASSERT_TRUE(!ret.empty());
}
HWTEST_F(DmAuthManagerTest, GetIsCryptoSupport_001, testing::ext::TestSize.Level1)
{
authManager_->authResponseState_ = nullptr;
bool ret = authManager_->GetIsCryptoSupport();
ASSERT_EQ(ret, false);
}
HWTEST_F(DmAuthManagerTest, GetIsCryptoSupport_002, testing::ext::TestSize.Level1)
{
authManager_->authResponseState_ = std::make_shared<AuthResponseNegotiateState>();
authManager_->authRequestState_ = nullptr;
bool ret = authManager_->GetIsCryptoSupport();
ASSERT_EQ(ret, false);
}
HWTEST_F(DmAuthManagerTest, GetIsCryptoSupport_003, testing::ext::TestSize.Level1)
{
authManager_->authResponseState_ = std::make_shared<AuthResponseNegotiateState>();
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
bool ret = authManager_->GetIsCryptoSupport();
ASSERT_EQ(ret, false);
}
HWTEST_F(DmAuthManagerTest, GetIsCryptoSupport_004, testing::ext::TestSize.Level1)
{
authManager_->isCryptoSupport_ = true;
authManager_->authRequestState_ = nullptr;
std::shared_ptr<AuthResponseInitStateMock> authResponseInitState = std::make_shared<AuthResponseInitStateMock>();
EXPECT_CALL(*authResponseInitState, GetStateType())
.WillRepeatedly(testing::Return(AuthState::AUTH_RESPONSE_FINISH));
authManager_->authResponseState_ = authResponseInitState;
bool ret = authManager_->GetIsCryptoSupport();
ASSERT_TRUE(ret);
EXPECT_CALL(*authResponseInitState, GetStateType())
.WillRepeatedly(testing::Return(AuthState::AUTH_REQUEST_NEGOTIATE_DONE));
ret = authManager_->GetIsCryptoSupport();
ASSERT_FALSE(ret);
std::shared_ptr<AuthRequestFinishStateMock> requestFinishState = std::make_shared<AuthRequestFinishStateMock>();
EXPECT_CALL(*requestFinishState, GetStateType()).WillRepeatedly(testing::Return(AuthState::AUTH_REQUEST_NEGOTIATE));
authManager_->authRequestState_ = requestFinishState;
ret = authManager_->GetIsCryptoSupport();
ASSERT_FALSE(ret);
EXPECT_CALL(*requestFinishState, GetStateType())
.WillRepeatedly(testing::Return(AuthState::AUTH_REQUEST_NEGOTIATE_DONE));
ret = authManager_->GetIsCryptoSupport();
ASSERT_FALSE(ret);
EXPECT_CALL(*requestFinishState, GetStateType()).WillRepeatedly(testing::Return(AuthState::AUTH_REQUEST_INIT));
ret = authManager_->GetIsCryptoSupport();
ASSERT_TRUE(ret);
}
HWTEST_F(DmAuthManagerTest, OnUserOperation_001, testing::ext::TestSize.Level1)
{
int32_t action = 0;
std::string params = "paramsTest";
authManager_->authResponseContext_ = nullptr;
int32_t ret = authManager_->OnUserOperation(action, params);
ASSERT_EQ(ret, ERR_DM_AUTH_NOT_START);
}
HWTEST_F(DmAuthManagerTest, OnUserOperation_002, testing::ext::TestSize.Level1)
{
int32_t action = 1;
std::string params = "paramsTest1";
int32_t ret = authManager_->OnUserOperation(action, params);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, OnUserOperation_003, testing::ext::TestSize.Level1)
{
int32_t action = 2;
std::string params = "paramsTest2";
int32_t ret = authManager_->OnUserOperation(action, params);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, OnUserOperation_004, testing::ext::TestSize.Level1)
{
int32_t action = 3;
std::string params = "paramsTest3";
int32_t ret = authManager_->OnUserOperation(action, params);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, OnUserOperation_005, testing::ext::TestSize.Level1)
{
int32_t action = 4;
std::string params = "paramsTest4";
int32_t ret = authManager_->OnUserOperation(action, params);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, OnUserOperation_007, testing::ext::TestSize.Level1)
{
int32_t action = 1111;
std::string params = "paramsTest1111";
int32_t ret = authManager_->OnUserOperation(action, params);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, RequestCredential001, testing::ext::TestSize.Level1)
{
authManager_->hiChainAuthConnector_ = std::make_shared<HiChainAuthConnector>();
authManager_->RequestCredential();
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, GenerateCredential001, testing::ext::TestSize.Level1)
{
std::string publicKey = "publicKey";
authManager_->GenerateCredential(publicKey);
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, RequestCredentialDone001, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = nullptr;
authManager_->RequestCredentialDone();
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, RequestCredentialDone002, testing::ext::TestSize.Level1)
{
authManager_->hiChainAuthConnector_ = std::make_shared<HiChainAuthConnector>();
authManager_->RequestCredential();
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
authManager_->RequestCredentialDone();
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, ImportCredential001, testing::ext::TestSize.Level1)
{
std::string deviceId = "deviceId";
std::string publicKey = "publicKey";
int32_t ret = authManager_->ImportCredential(deviceId, publicKey);
ASSERT_NE(ret, ERR_DM_FAILED);
}
HWTEST_F(DmAuthManagerTest, ResponseCredential001, testing::ext::TestSize.Level1)
{
authManager_->ResponseCredential();
ASSERT_EQ(authManager_->isAuthDevice_, false);
authManager_->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager_);
authManager_->authMessageProcessor_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->ResponseCredential();
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, AuthDeviceTransmit001, testing::ext::TestSize.Level1)
{
int64_t requestId = 0;
authManager_->authResponseContext_->requestId = 11;
uint8_t *data = nullptr;
uint32_t dataLen = 0;
bool ret = authManager_->AuthDeviceTransmit(requestId, data, dataLen);
ASSERT_EQ(ret, false);
}
HWTEST_F(DmAuthManagerTest, AuthDeviceTransmit002, testing::ext::TestSize.Level1)
{
int64_t requestId = 0;
authManager_->authResponseContext_->requestId = 0;
authManager_->authResponseState_ = nullptr;
uint8_t *data = nullptr;
uint32_t dataLen = 0;
EXPECT_CALL(*softbusSessionMock_, SendData(_, _)).WillOnce(Return(ERR_DM_FAILED));
bool ret = authManager_->AuthDeviceTransmit(requestId, data, dataLen);
ASSERT_EQ(ret, false);
}
HWTEST_F(DmAuthManagerTest, AuthDeviceTransmit003, testing::ext::TestSize.Level1)
{
int64_t requestId = 0;
authManager_->authResponseContext_->requestId = 0;
authManager_->authRequestState_ = nullptr;
uint8_t *data = nullptr;
uint32_t dataLen = 0;
EXPECT_CALL(*softbusSessionMock_, SendData(_, _)).WillOnce(Return(ERR_DM_FAILED));
bool ret = authManager_->AuthDeviceTransmit(requestId, data, dataLen);
ASSERT_EQ(ret, false);
}
HWTEST_F(DmAuthManagerTest, AuthDeviceTransmit004, testing::ext::TestSize.Level1)
{
int64_t requestId = 0;
uint8_t *data = nullptr;
uint32_t dataLen = 0;
EXPECT_CALL(*softbusSessionMock_, SendData(_, _)).WillOnce(Return(ERR_DM_FAILED));
bool ret = authManager_->AuthDeviceTransmit(requestId, data, dataLen);
ASSERT_EQ(ret, false);
}
HWTEST_F(DmAuthManagerTest, SrcAuthDeviceFinish002, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authResponseContext_->isOnline = false;
authManager_->authResponseContext_->confirmOperation = USER_OPERATION_TYPE_ALLOW_AUTH;
authManager_->authResponseContext_->haveCredential = true;
authManager_->authResponseContext_->bindLevel = APP;
authManager_->authResponseContext_->isIdenticalAccount = false;
authManager_->authResponseContext_->hostPkgName = "hostPkgName";
authManager_->softbusConnector_->deviceStateManagerCallback_ = std::make_shared<SoftbusStateCallbackTest>();
authManager_->SrcAuthDeviceFinish();
EXPECT_EQ(authManager_->authRequestContext_->reason, DM_OK);
authManager_->authRequestContext_->reason = ERR_DM_FAILED;
authManager_->authResponseContext_->haveCredential = false;
authManager_->SrcAuthDeviceFinish();
EXPECT_EQ(authManager_->authRequestContext_->reason, ERR_DM_FAILED);
authManager_->authResponseContext_->isOnline = false;
authManager_->remoteVersion_ = "5.1.1";
authManager_->SrcAuthDeviceFinish();
EXPECT_EQ(authManager_->authRequestContext_->reason, ERR_DM_FAILED);
}
HWTEST_F(DmAuthManagerTest, AuthDeviceFinish001, testing::ext::TestSize.Level1)
{
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
int64_t requestId = 0;
authManager_->authResponseContext_->requestId = 1;
authManager_->AuthDeviceFinish(requestId);
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, AuthDeviceFinish002, testing::ext::TestSize.Level1)
{
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
authManager_->authResponseState_ = nullptr;
int64_t requestId = 0;
authManager_->authResponseContext_->requestId = 0;
authManager_->AuthDeviceFinish(requestId);
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, AuthDeviceFinish003, testing::ext::TestSize.Level1)
{
authManager_->authRequestState_ = nullptr;
authManager_->authResponseState_ = std::make_shared<AuthResponseNegotiateState>();
int64_t requestId = 0;
authManager_->authResponseContext_->requestId = 0;
authManager_->AuthDeviceFinish(requestId);
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, AuthDeviceError001, testing::ext::TestSize.Level1)
{
authManager_->authRequestState_ = nullptr;
int64_t requestId = 0;
int32_t errorCode = -1;
authManager_->AuthDeviceError(requestId, errorCode);
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, AuthDeviceError002, testing::ext::TestSize.Level1)
{
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
authManager_->authResponseState_ = std::make_shared<AuthResponseNegotiateState>();
authManager_->authResponseContext_->authType = 5;
int64_t requestId = 0;
int32_t errorCode = -1;
authManager_->AuthDeviceError(requestId, errorCode);
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, AuthDeviceError003, testing::ext::TestSize.Level1)
{
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
authManager_->authResponseState_ = nullptr;
authManager_->authResponseContext_->authType = AUTH_TYPE_IMPORT_AUTH_CODE;
authManager_->authResponseContext_->requestId = 2;
int64_t requestId = 0;
int32_t errorCode = -1;
authManager_->AuthDeviceError(requestId, errorCode);
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, AuthDeviceError004, testing::ext::TestSize.Level1)
{
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
authManager_->authResponseState_ = nullptr;
authManager_->authResponseContext_->authType = AUTH_TYPE_UNKNOW;
authManager_->authResponseContext_->requestId = 3;
authManager_->authTimes_ = 3;
int64_t requestId = 0;
int32_t errorCode = ERR_DM_FAILED;
authManager_->AuthDeviceError(requestId, errorCode);
ASSERT_EQ(authManager_->authResponseContext_->state, DmAuthStatus::STATUS_DM_AUTH_DEFAULT);
}
HWTEST_F(DmAuthManagerTest, AuthDeviceError005, testing::ext::TestSize.Level1)
{
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
authManager_->authResponseState_ = nullptr;
authManager_->authResponseContext_->authType = AUTH_TYPE_UNKNOW;
authManager_->authResponseContext_->requestId = 3;
authManager_->authTimes_ = 0;
int64_t requestId = authManager_->authResponseContext_->requestId + 1;
int32_t errorCode = DM_OK;
uint32_t sessionKeyLen = 0;
authManager_->AuthDeviceError(requestId, errorCode);
authManager_->AuthDeviceSessionKey(requestId, nullptr, sessionKeyLen);
ASSERT_EQ(authManager_->isAuthDevice_, false);
authManager_->GetSessionKeyIdSync(requestId);
}
HWTEST_F(DmAuthManagerTest, AuthDeviceError006, testing::ext::TestSize.Level1)
{
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
authManager_->authResponseState_ = nullptr;
authManager_->authResponseContext_->authType = AUTH_TYPE_UNKNOW;
authManager_->authResponseContext_->requestId = 3;
authManager_->authTimes_ = 0;
int64_t requestId = authManager_->authResponseContext_->requestId;
int32_t errorCode = DM_OK;
authManager_->AuthDeviceError(requestId, errorCode);
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, AuthDeviceSessionKey001, testing::ext::TestSize.Level1)
{
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
int64_t requestId = 0;
uint8_t *sessionKey = nullptr;
uint32_t sessionKeyLen = 0;
authManager_->AuthDeviceSessionKey(requestId, sessionKey, sessionKeyLen);
ASSERT_EQ(authManager_->isAuthDevice_, false);
authManager_->GetSessionKeyIdSync(requestId);
}
HWTEST_F(DmAuthManagerTest, CompatiblePutAcl001, testing::ext::TestSize.Level1)
{
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
authManager_->CompatiblePutAcl();
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, CompatiblePutAcl002, testing::ext::TestSize.Level1)
{
authManager_->action_ = USER_OPERATION_TYPE_ALLOW_AUTH_ALWAYS;
authManager_->CompatiblePutAcl();
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, CompatiblePutAcl003, testing::ext::TestSize.Level1)
{
authManager_->action_ = USER_OPERATION_TYPE_ALLOW_AUTH;
authManager_->CompatiblePutAcl();
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, ProcRespNegotiateExt001, testing::ext::TestSize.Level1)
{
int32_t sessionId = 0;
authManager_->ProcRespNegotiateExt(sessionId);
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, GenerateBindResultContent001, testing::ext::TestSize.Level1)
{
auto ret = authManager_->GenerateBindResultContent();
ASSERT_EQ(ret.empty(), false);
}
HWTEST_F(DmAuthManagerTest, GenerateBindResultContent002, testing::ext::TestSize.Level1)
{
authManager_->remoteDeviceId_ = "test";
auto ret = authManager_->GenerateBindResultContent();
ASSERT_FALSE(ret.empty());
}
HWTEST_F(DmAuthManagerTest, OnAuthDeviceDataReceived001, testing::ext::TestSize.Level1)
{
int32_t sessionId = 0;
std::string message;
authManager_->OnAuthDeviceDataReceived(sessionId, message);
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, OnAuthDeviceDataReceived002, testing::ext::TestSize.Level1)
{
int32_t sessionId = 0;
JsonObject jsonObject;
jsonObject[TAG_DATA] = 123;
std::string message = jsonObject.Dump();
authManager_->OnAuthDeviceDataReceived(sessionId, message);
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, OnAuthDeviceDataReceived003, testing::ext::TestSize.Level1)
{
int32_t sessionId = 0;
JsonObject jsonObject;
jsonObject[TAG_DATA] = "123";
jsonObject[TAG_DATA_LEN] = "123";
std::string message = jsonObject.Dump();
authManager_->OnAuthDeviceDataReceived(sessionId, message);
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, OnAuthDeviceDataReceived004, testing::ext::TestSize.Level1)
{
int32_t sessionId = 0;
JsonObject jsonObject;
jsonObject[TAG_DATA] = "123";
jsonObject[TAG_DATA_LEN] = 123;
jsonObject[TAG_MSG_TYPE] = "123";
std::string message = jsonObject.Dump();
authManager_->OnAuthDeviceDataReceived(sessionId, message);
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, DeleteGroup001, testing::ext::TestSize.Level1)
{
std::string pkgName;
std::string deviceId;
int32_t ret = authManager_->DeleteGroup(pkgName, deviceId);
ASSERT_EQ(ret, ERR_DM_FAILED);
}
HWTEST_F(DmAuthManagerTest, DeleteGroup002, testing::ext::TestSize.Level1)
{
std::string pkgName = "pkgName";
std::string deviceId;
int32_t ret = authManager_->DeleteGroup(pkgName, deviceId);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, PutAccessControlList001, testing::ext::TestSize.Level1)
{
authManager_->PutAccessControlList();
ASSERT_EQ(authManager_->isAuthDevice_, false);
authManager_->authResponseContext_->isIdenticalAccount = true;
authManager_->PutAccessControlList();
ASSERT_EQ(authManager_->isAuthDevice_, false);
authManager_->authResponseContext_->isIdenticalAccount = true;
authManager_->PutAccessControlList();
ASSERT_EQ(authManager_->isAuthDevice_, false);
authManager_->authResponseContext_->isIdenticalAccount = false;
authManager_->authResponseContext_->localAccountId = "ohosAnonymousUid";
authManager_->authResponseContext_->confirmOperation = USER_OPERATION_TYPE_ALLOW_AUTH_ALWAYS;
authManager_->PutAccessControlList();
ASSERT_EQ(authManager_->authResponseContext_->isIdenticalAccount, false);
}
HWTEST_F(DmAuthManagerTest, ProcessSourceMsg_001, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_->msgType = 200;
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateDoneState>();
authManager_->ProcessSourceMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, true);
}
HWTEST_F(DmAuthManagerTest, ProcessSourceMsg_002, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_->msgType = 200;
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
authManager_->ProcessSourceMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, true);
}
HWTEST_F(DmAuthManagerTest, ProcessSourceMsg_003, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_->msgType = 501;
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateDoneState>();
authManager_->ProcessSourceMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, true);
}
HWTEST_F(DmAuthManagerTest, ProcessSourceMsg_004, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_->msgType = 501;
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
authManager_->ProcessSourceMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, true);
}
HWTEST_F(DmAuthManagerTest, ProcessSourceMsg_005, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_->msgType = 90;
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
authManager_->ProcessSourceMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, true);
}
HWTEST_F(DmAuthManagerTest, ProcessSourceMsg_006, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_->msgType = 90;
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateDoneState>();
authManager_->ProcessSourceMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, true);
}
HWTEST_F(DmAuthManagerTest, ProcessSourceMsg_007, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_->msgType = 104;
authManager_->authRequestState_ = std::make_shared<AuthRequestNetworkState>();
authManager_->ProcessSourceMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, false);
}
HWTEST_F(DmAuthManagerTest, ProcessSourceMsg_008, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_->msgType = 104;
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateDoneState>();
authManager_->ProcessSourceMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, false);
}
HWTEST_F(DmAuthManagerTest, ProcessSourceMsg_009, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_->msgType = 503;
authManager_->authRequestState_ = std::make_shared<AuthRequestCredential>();
authManager_->ProcessSourceMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, true);
}
HWTEST_F(DmAuthManagerTest, ProcessSourceMsg_010, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_->msgType = 503;
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateDoneState>();
authManager_->ProcessSourceMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, true);
}
HWTEST_F(DmAuthManagerTest, ProcessSourceMsg_0012, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_->msgType = 505;
authManager_->authRequestState_ = std::make_shared<AuthRequestReCheckMsg>();
authManager_->ProcessSourceMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, true);
}
HWTEST_F(DmAuthManagerTest, ProcessSinkMsg_001, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authResponseContext_->msgType = 80;
authManager_->authResponseState_ = std::make_shared<AuthResponseInitState>();
authManager_->ProcessSinkMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, true);
}
HWTEST_F(DmAuthManagerTest, ProcessSinkMsg_002, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authResponseContext_->msgType = 80;
authManager_->authResponseState_ = std::make_shared<AuthResponseNegotiateState>();
authManager_->ProcessSinkMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, true);
}
HWTEST_F(DmAuthManagerTest, ProcessSinkMsg_003, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authResponseContext_->msgType = 100;
authManager_->authResponseState_ = std::make_shared<AuthResponseNegotiateState>();
authManager_->ProcessSinkMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, true);
}
HWTEST_F(DmAuthManagerTest, ProcessSinkMsg_004, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authResponseContext_->msgType = 100;
authManager_->authResponseState_ = std::make_shared<AuthResponseInitState>();
authManager_->ProcessSinkMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, true);
}
HWTEST_F(DmAuthManagerTest, ProcessSinkMsg_005, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authResponseContext_->msgType = 104;
authManager_->authResponseState_ = std::make_shared<AuthResponseShowState>();
authManager_->ProcessSinkMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, false);
}
HWTEST_F(DmAuthManagerTest, ProcessSinkMsg_006, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authResponseContext_->msgType = 502;
authManager_->authResponseState_ = std::make_shared<AuthResponseShowState>();
authManager_->ProcessSinkMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, true);
}
HWTEST_F(DmAuthManagerTest, ProcessSinkMsg_007, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authResponseContext_->msgType = 504;
authManager_->authResponseState_ = std::make_shared<AuthResponseAuthFinish>();
authManager_->ProcessSinkMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, true);
authManager_->authResponseState_ = std::make_shared<AuthResponseShowState>();
authManager_->ProcessSinkMsg();
ASSERT_EQ(authManager_->isFinishOfLocal_, true);
}
HWTEST_F(DmAuthManagerTest, ConvertSrcVersion_001, testing::ext::TestSize.Level1)
{
std::string version = "";
std::string edition = "test";
EXPECT_EQ(authManager_->ConvertSrcVersion(version, edition), "test");
edition = "";
EXPECT_NE(authManager_->ConvertSrcVersion(version, edition), "test");
version = "test";
EXPECT_EQ(authManager_->ConvertSrcVersion(version, edition), "test");
}
HWTEST_F(DmAuthManagerTest, GetTaskTimeout_001, testing::ext::TestSize.Level1)
{
int32_t taskTimeOut = 0;
authManager_->SetAuthType(AUTH_TYPE_CRE);
EXPECT_EQ(authManager_->GetTaskTimeout("test", taskTimeOut), taskTimeOut);
taskTimeOut = 1000;
authManager_->SetAuthType(AUTH_TYPE_IMPORT_AUTH_CODE);
EXPECT_EQ(authManager_->GetTaskTimeout("test", taskTimeOut), taskTimeOut);
authManager_->SetAuthType(AUTH_TYPE_IMPORT_AUTH_CODE);
EXPECT_EQ(authManager_->GetTaskTimeout(AUTHENTICATE_TIMEOUT_TASK, taskTimeOut), 20);
}
HWTEST_F(DmAuthManagerTest, StopAuthenticateDevice_001, testing::ext::TestSize.Level1)
{
std::string pkgName;
int32_t ret = authManager_->StopAuthenticateDevice(pkgName);
ASSERT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
pkgName = "pkgName_001";
int64_t requestId = 12;
int32_t status = 0;
int32_t sessionId = 1;
if (authManager_->timer_ == nullptr) {
authManager_->timer_ = std::make_shared<DmTimer>();
}
authManager_->authRequestState_ = std::make_shared<AuthRequestInitState>();
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authRequestContext_ = std::make_shared<DmAuthRequestContext>();
authManager_->authRequestContext_->hostPkgName = pkgName;
authManager_->authResponseContext_->hostPkgName = pkgName;
authManager_->isAuthenticateDevice_ = true;
authManager_->authResponseContext_->authType == AUTH_TYPE_IMPORT_AUTH_CODE;
authManager_->MemberJoinAuthRequest(requestId, status);
authManager_->authResponseContext_->authType == AUTH_TYPE_NFC;
authManager_->authResponseContext_->requestId = requestId;
status = 1;
authManager_->authTimes_ = 3;
authManager_->MemberJoinAuthRequest(requestId, status);
status = 0;
authManager_->authTimes_ = 2;
authManager_->MemberJoinAuthRequest(requestId, status);
status = 0;
authManager_->HandleMemberJoinImportAuthCode(requestId, status);
authManager_->NegotiateRespMsg(DM_VERSION_5_0_1);
authManager_->NegotiateRespMsg(DM_VERSION_4_1_5_1);
authManager_->NegotiateRespMsg(DM_VERSION_5_0_2);
std::string peerUdid = "peerUdid";
EXPECT_CALL(*softbusSessionMock_, GetPeerDeviceId(_, _)).WillOnce(DoAll(SetArgReferee<1>(peerUdid), Return(DM_OK)));
EXPECT_CALL(*cryptoMock_, GetUdidHash(_, _)).Times(::testing::AtLeast(1)).WillOnce(Return(DM_OK));
authManager_->ProcessSessionOpen(sessionId, 0);
peerUdid = "peerUdid1";
EXPECT_CALL(*softbusSessionMock_, GetPeerDeviceId(_, _)).WillOnce(DoAll(SetArgReferee<1>(peerUdid), Return(DM_OK)));
EXPECT_CALL(*cryptoMock_, GetUdidHash(_, _)).Times(::testing::AtLeast(1)).WillOnce(Return(ERR_DM_FAILED));
authManager_->ProcessSessionOpen(sessionId, 0);
ret = authManager_->StopAuthenticateDevice(pkgName);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, RespNegotiate_101, testing::ext::TestSize.Level1)
{
int64_t requestId = 1;
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authResponseContext_->dmVersion = "5.0.2";
authManager_->authResponseContext_->bindLevel = 1;
authManager_->RespNegotiate(requestId);
authManager_->authResponseContext_->dmVersion = "5.0.1";
authManager_->authResponseContext_->bindLevel = 0;
authManager_->RespNegotiate(requestId);
ASSERT_NE(authManager_->authResponseContext_, nullptr);
authManager_->authResponseContext_->edition = "";
authManager_->authResponseContext_->bindLevel = 1;
authManager_->timer_ = std::make_shared<DmTimer>();
authManager_->RespNegotiate(requestId);
ASSERT_NE(authManager_->authResponseContext_, nullptr);
authManager_->authResponseContext_->bindLevel = 5;
authManager_->RespNegotiate(requestId);
ASSERT_NE(authManager_->authResponseContext_, nullptr);
}
HWTEST_F(DmAuthManagerTest, SendAuthRequest_101, testing::ext::TestSize.Level1)
{
int64_t sessionId = 1;
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authResponseContext_->reply = ERR_DM_VERSION_INCOMPATIBLE;
authManager_->SendAuthRequest(sessionId);
authManager_->authResponseContext_->reply = ERR_DM_AUTH_CODE_INCORRECT;
authManager_->authResponseContext_->bindLevel = 5;
ASSERT_NE(authManager_->authResponseContext_, nullptr);
}
HWTEST_F(DmAuthManagerTest, AuthDeviceError_007, testing::ext::TestSize.Level1)
{
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
authManager_->authResponseState_ = nullptr;
authManager_->authResponseContext_->requestId = 3;
authManager_->authTimes_ = 0;
authManager_->authResponseContext_->authType = AUTH_TYPE_IMPORT_AUTH_CODE;
int64_t requestId = authManager_->authResponseContext_->requestId;
int32_t errorCode = DM_OK;
authManager_->AuthDeviceError(requestId, errorCode);
ASSERT_NE(authManager_->authRequestState_, nullptr);
authManager_->authRequestState_ = nullptr;
authManager_->authResponseState_ = std::make_shared<AuthResponseConfirmState>();
authManager_->authTimes_ = 5;
authManager_->AuthDeviceError(requestId, errorCode);
ASSERT_NE(authManager_->authResponseState_, nullptr);
}
HWTEST_F(DmAuthManagerTest, DeleteGroup_003, testing::ext::TestSize.Level1)
{
std::string pkgName = "pkgName";
int32_t userId = 0;
std::string deviceId;
int32_t ret = authManager_->DeleteGroup(pkgName, userId, deviceId);
ASSERT_EQ(ret, ERR_DM_FAILED);
}
HWTEST_F(DmAuthManagerTest, CompatiblePutAcl_004, testing::ext::TestSize.Level1)
{
authManager_->action_ = USER_OPERATION_TYPE_ALLOW_AUTH;
authManager_->authRequestState_ = nullptr;
authManager_->authResponseState_ = std::make_shared<AuthResponseConfirmState>();
EXPECT_CALL(*cryptoMock_, GetUdidHash(_, _)).WillOnce(Return(DM_OK));
authManager_->CompatiblePutAcl();
ASSERT_EQ(authManager_->authRequestState_, nullptr);
}
HWTEST_F(DmAuthManagerTest, ProcRespNegotiateExt002, testing::ext::TestSize.Level1)
{
int32_t sessionId = 0;
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authResponseContext_->authed = true;
authManager_->authResponseContext_->authType = AUTH_TYPE_IMPORT_AUTH_CODE;
authManager_->importAuthCode_ = "importAuthCode_";
authManager_->authResponseContext_->bundleName = "";
std::vector<int32_t> bindType;
bindType.push_back(1);
bindType.push_back(0);
EXPECT_CALL(*multipleUserConnectorMock_, GetOhosAccountId()).WillOnce(Return("remoteAccountId"));
EXPECT_CALL(*deviceProfileConnectorMock_, GetBindTypeByPkgName(_, _, _)).WillOnce(Return(bindType));
authManager_->authResponseContext_->remoteAccountId = "remoteAccountId";
authManager_->authResponseContext_->localAccountId = "remoteAccountId";
authManager_->ProcRespNegotiateExt(sessionId);
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, OnAuthDeviceDataReceived006, testing::ext::TestSize.Level1)
{
int32_t sessionId = 0;
JsonObject jsonObject;
jsonObject[TAG_DATA] = "123";
jsonObject[TAG_DATA_LEN] = 123;
jsonObject[TAG_MSG_TYPE] = 123;
std::string message = jsonObject.Dump();
authManager_->authResponseContext_ = nullptr;
authManager_->OnAuthDeviceDataReceived(sessionId, message);
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, GetBinderInfo_001, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authResponseContext_->bundleName = "bundleName";
EXPECT_CALL(*appManagerMock_, GetNativeTokenIdByName(_, _)).WillOnce(Return(DM_OK));
int32_t ret = authManager_->GetBinderInfo();
ASSERT_EQ(ret, DM_OK);
EXPECT_CALL(*appManagerMock_, GetNativeTokenIdByName(_, _)).WillOnce(Return(ERR_DM_FAILED));
EXPECT_CALL(*appManagerMock_, GetHapTokenIdByName(_, _, _, _)).WillOnce(Return(ERR_DM_FAILED));
ret = authManager_->GetBinderInfo();
ASSERT_EQ(ret, ERR_DM_FAILED);
EXPECT_CALL(*appManagerMock_, GetNativeTokenIdByName(_, _)).WillOnce(Return(ERR_DM_FAILED));
EXPECT_CALL(*appManagerMock_, GetHapTokenIdByName(_, _, _, _)).WillOnce(Return(DM_OK));
authManager_->authResponseContext_->bindLevel = APP;
ret = authManager_->GetBinderInfo();
ASSERT_EQ(ret, DM_OK);
authManager_->authResponseContext_->bindLevel = USER;
authManager_->SetProcessInfo();
authManager_->authResponseContext_->bindLevel = SERVICE;
authManager_->SetProcessInfo();
authManager_->authResponseContext_->bindLevel = APP;
authManager_->authRequestState_ = nullptr;
authManager_->authResponseState_ = nullptr;
authManager_->SetProcessInfo();
authManager_->authResponseState_ = std::make_shared<AuthResponseConfirmState>();
authManager_->SetProcessInfo();
authManager_->authResponseState_ = nullptr;
authManager_->authRequestState_ = std::make_shared<AuthRequestFinishState>();
authManager_->SetProcessInfo();
authManager_->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager_);
authManager_->RequestReCheckMsg();
}
HWTEST_F(DmAuthManagerTest, ResponseReCheckMsg_001, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager_);
authManager_->authResponseState_ = std::make_shared<AuthResponseConfirmState>();
authManager_->authRequestContext_ = std::make_shared<DmAuthRequestContext>();
authManager_->authMessageProcessor_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authResponseContext_->edition = "edition";
authManager_->remoteVersion_ = "";
authManager_->ResponseReCheckMsg();
authManager_->authResponseContext_->edition = "";
authManager_->remoteDeviceId_ = "remoteDeviceId_";
authManager_->authResponseContext_->localDeviceId = authManager_->remoteDeviceId_;
authManager_->authResponseContext_->remoteUserId = 1;
authManager_->authResponseContext_->hostPkgName = "hostPkgName";
authManager_->authResponseContext_->bindLevel = 1;
authManager_->authResponseContext_->localUserId = authManager_->authResponseContext_->remoteUserId;
authManager_->authResponseContext_->bundleName = authManager_->authResponseContext_->hostPkgName;
authManager_->authResponseContext_->localBindLevel = authManager_->authResponseContext_->bindLevel;
EXPECT_CALL(*appManagerMock_, GetNativeTokenIdByName(_, _)).Times(::testing::AtLeast(1))
.WillOnce(Return(ERR_DM_FAILED));
EXPECT_CALL(*appManagerMock_, GetHapTokenIdByName(_, _, _, _)).WillOnce(Return(ERR_DM_FAILED));
EXPECT_CALL(*cryptoMock_, GetUdidHash(_, _)).WillOnce(Return(DM_OK));
authManager_->ResponseReCheckMsg();
ASSERT_EQ(authManager_->authResponseContext_->localBindLevel, 1);
}
HWTEST_F(DmAuthManagerTest, RequestReCheckMsgDone_001, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager_);
authManager_->authRequestContext_ = std::make_shared<DmAuthRequestContext>();
authManager_->authRequestState_ = std::make_shared<AuthRequestFinishState>();
authManager_->authResponseContext_->edition = "edition";
authManager_->remoteVersion_ = "";
authManager_->RequestReCheckMsgDone();
authManager_->authResponseContext_->edition = "";
authManager_->remoteDeviceId_ = "remoteDeviceId_";
authManager_->authResponseContext_->localDeviceId = authManager_->remoteDeviceId_;
authManager_->authRequestContext_->remoteUserId = 1;
authManager_->authResponseContext_->peerBundleName = "peerBundleName";
authManager_->authResponseContext_->bindLevel = 1;
authManager_->authResponseContext_->localUserId = authManager_->authRequestContext_->remoteUserId;
authManager_->authResponseContext_->bundleName = authManager_->authResponseContext_->peerBundleName;
authManager_->authResponseContext_->localBindLevel = authManager_->authResponseContext_->bindLevel;
EXPECT_CALL(*cryptoMock_, GetUdidHash(_, _)).WillOnce(Return(DM_OK));
authManager_->RequestReCheckMsgDone();
ASSERT_EQ(authManager_->authResponseContext_->localBindLevel, 1);
authManager_->ConverToFinish();
}
HWTEST_F(DmAuthManagerTest, AuthDeviceFinish004, testing::ext::TestSize.Level1)
{
authManager_->authRequestState_ = nullptr;
authManager_->authResponseState_ = std::make_shared<AuthResponseNegotiateState>();
int64_t requestId = 0;
authManager_->authResponseContext_->requestId = 0;
authManager_->remoteVersion_ = "5.0.2";
EXPECT_CALL(*cryptoMock_, GetUdidHash(_, _)).WillOnce(Return(DM_OK));
authManager_->AuthDeviceFinish(requestId);
ASSERT_EQ(authManager_->isAuthDevice_, false);
if (authManager_->authMessageProcessor_ == nullptr) {
authManager_->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager_);
}
authManager_->remoteVersion_ = "5.1.2";
authManager_->AuthDeviceFinish(requestId);
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, RequestCredentialDone_003, testing::ext::TestSize.Level1)
{
authManager_->hiChainAuthConnector_ = std::make_shared<HiChainAuthConnector>();
authManager_->RequestCredential();
authManager_->authRequestState_ = std::make_shared<AuthRequestNegotiateState>();
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authResponseContext_->publicKey = "";
authManager_->RequestCredentialDone();
ASSERT_EQ(authManager_->isAuthDevice_, false);
authManager_->authResponseContext_->publicKey = "publicKey";
authManager_->RequestCredentialDone();
ASSERT_EQ(authManager_->isAuthDevice_, false);
}
HWTEST_F(DmAuthManagerTest, AuthDevice_003, testing::ext::TestSize.Level1)
{
std::string pinCode = "123456";
authManager_->isAuthDevice_ = false;
authManager_->authResponseContext_->authType = 5;
EXPECT_CALL(*hiChainAuthConnectorMock_, AuthDevice(_, _, _)).WillOnce(Return(DM_OK));
int32_t ret = authManager_->AuthDevice(pinCode);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, UnBindDevice_001, testing::ext::TestSize.Level1)
{
std::string pkgName;
std::string udid = "udid";
int32_t bindLevel = 1;
std::string extra;
int32_t ret = authManager_->UnBindDevice(pkgName, udid, bindLevel, extra);
ASSERT_EQ(ret, ERR_DM_FAILED);
pkgName = "pkgName";
DmOfflineParam offlineParam;
offlineParam.bindType = INVALIED_TYPE;
EXPECT_CALL(*deviceProfileConnectorMock_, DeleteAccessControlList(_, _, _, _, _)).WillOnce(Return(offlineParam));
ret = authManager_->UnBindDevice(pkgName, udid, bindLevel, extra);
ASSERT_EQ(ret, ERR_DM_FAILED);
}
HWTEST_F(DmAuthManagerTest, StopAuthenticateDevice_002, testing::ext::TestSize.Level1)
{
std::string pkgName = "pkgName";
authManager_->authRequestContext_ = std::make_shared<DmAuthRequestContext>();
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->authRequestContext_->hostPkgName = pkgName;
authManager_->authResponseContext_->hostPkgName = pkgName;
authManager_->isAuthenticateDevice_ = true;
authManager_->authRequestState_ = std::make_shared<AuthRequestFinishState>();
int32_t ret = authManager_->StopAuthenticateDevice(pkgName);
ASSERT_EQ(ret, DM_OK);
authManager_->authRequestContext_->hostPkgName = "";
ret = authManager_->StopAuthenticateDevice(pkgName);
ASSERT_EQ(ret, DM_OK);
JsonObject jsonObject;
jsonObject["PEER_BUNDLE_NAME"] = "";
authManager_->authRequestContext_->hostPkgName = "hostPkgName";
authManager_->ParseJsonObject(jsonObject);
authManager_->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager_);
authManager_->authMessageProcessor_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
int32_t sessionId = 1;
std::string message;
authManager_->authResponseContext_->sessionId = sessionId;
JsonObject jsonObject1;
jsonObject1[TAG_MSG_TYPE] = 800;
message = jsonObject1.Dump();
authManager_->authResponseState_ = nullptr;
authManager_->OnDataReceived(sessionId, message);
authManager_->authRequestState_ = nullptr;
authManager_->authResponseState_ = std::make_shared<AuthResponseNegotiateState>();
authManager_->OnDataReceived(sessionId, message);
}
HWTEST_F(DmAuthManagerTest, RegisterAuthenticationType_001, testing::ext::TestSize.Level1)
{
int32_t authenticationType = 1;
int32_t ret = authManager_->RegisterAuthenticationType(authenticationType);
ASSERT_EQ(ret, DM_OK);
authenticationType = 0;
ret = authManager_->RegisterAuthenticationType(authenticationType);
ASSERT_EQ(ret, DM_OK);
authManager_->authResponseState_ = std::make_shared<AuthResponseReCheckMsg>();
authManager_->ProcessReqPublicKey();
authManager_->authResponseState_ = std::make_shared<AuthResponseAuthFinish>();
authManager_->ProcessReqPublicKey();
}
HWTEST_F(DmAuthManagerTest, CheckProcessNameInWhiteList_001, testing::ext::TestSize.Level1)
{
std::string processName = "";
bool ret = authManager_->CheckProcessNameInWhiteList(processName);
ASSERT_FALSE(ret);
processName = "processName";
ret = authManager_->CheckProcessNameInWhiteList(processName);
ASSERT_FALSE(ret);
processName = "com.example.myapplication";
ret = authManager_->CheckProcessNameInWhiteList(processName);
ASSERT_TRUE(ret);
}
HWTEST_F(DmAuthManagerTest, GetCloseSessionDelaySeconds_001, testing::ext::TestSize.Level1)
{
std::string delaySecondsStr = "";
int32_t ret = authManager_->GetCloseSessionDelaySeconds(delaySecondsStr);
ASSERT_EQ(ret, DM_OK);
}
HWTEST_F(DmAuthManagerTest, CheckNeedShowAuthInfoDialog_001, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
int32_t errorCode = ERR_DM_HICHAIN_PROOFMISMATCH;
authManager_->pincodeDialogEverShown_ = false;
authManager_->authResponseContext_->authType = AUTH_TYPE_NFC;
authManager_->serviceInfoProfile_.SetPinCode(PINCODE);
authManager_->serviceInfoProfile_.SetPinExchangeType(
static_cast<int32_t>(DMLocalServiceInfoPinExchangeType::FROMDP));
bool ret = authManager_->CheckNeedShowAuthInfoDialog(errorCode);
ASSERT_TRUE(ret);
authManager_->authResponseContext_->authType = AUTH_TYPE_IMPORT_AUTH_CODE;
ret = authManager_->CheckNeedShowAuthInfoDialog(errorCode);
ASSERT_FALSE(ret);
EXPECT_CALL(*deviceProfileConnectorMock_, GetLocalServiceInfoByBundleNameAndPinExchangeType(_, _, _))
.WillOnce(Return(ERR_DM_FAILED));
authManager_->GetLocalServiceInfoInDp();
DistributedDeviceProfile::LocalServiceInfo localServiceInfo;
localServiceInfo.SetAuthType(static_cast<int32_t>(DMLocalServiceInfoAuthType::TRUST_ONETIME));
localServiceInfo.SetAuthBoxType(static_cast<int32_t>(DMLocalServiceInfoAuthBoxType::STATE3));
localServiceInfo.SetPinExchangeType(static_cast<int32_t>(DMLocalServiceInfoPinExchangeType::FROMDP));
localServiceInfo.SetPinCode(PINCODE);
EXPECT_CALL(*deviceProfileConnectorMock_, GetLocalServiceInfoByBundleNameAndPinExchangeType(_, _, _))
.WillOnce(DoAll(SetArgReferee<2>(localServiceInfo), Return(DM_OK)));
authManager_->GetLocalServiceInfoInDp();
int64_t requestId = 1;
uint8_t arrayPtr[] = {1, 2, 3, 4};
uint8_t *sessionKey = arrayPtr;
uint32_t sessionKeyLen = static_cast<uint32_t>(sizeof(arrayPtr) / sizeof(arrayPtr[0]));
authManager_->authResponseContext_->requestId = 1;
authManager_->authMessageProcessor_ = std::make_shared<AuthMessageProcessor>(authManager_);
EXPECT_CALL(*cryptoMgrMock_, SaveSessionKey(_, _)).WillOnce(Return(DM_OK));
EXPECT_CALL(*deviceProfileConnectorMock_, PutSessionKey(_, _, _))
.WillOnce(DoAll(SetArgReferee<2>(1), Return(DM_OK)));
authManager_->AuthDeviceSessionKey(requestId, sessionKey, sessionKeyLen);
authManager_->GetSessionKeyIdSync(requestId);
}
HWTEST_F(DmAuthManagerTest, IsPinCodeValid_001, testing::ext::TestSize.Level1)
{
authManager_->authResponseContext_ = nullptr;
authManager_->ShowConfigDialog();
authManager_->authResponseContext_ = std::make_shared<DmAuthResponseContext>();
authManager_->serviceInfoProfile_.SetAuthBoxType(
static_cast<int32_t>(DMLocalServiceInfoAuthBoxType::SKIP_CONFIRM));
authManager_->authResponseContext_->authType = AUTH_TYPE_NFC;
authManager_->serviceInfoProfile_.SetPinCode(PINCODE);
authManager_->serviceInfoProfile_.SetPinExchangeType(
static_cast<int32_t>(DMLocalServiceInfoPinExchangeType::FROMDP));
authManager_->ShowConfigDialog();
authManager_->authResponseContext_->isShowDialog = false;
authManager_->serviceInfoProfile_.SetPinExchangeType(
static_cast<int32_t>(DMLocalServiceInfoPinExchangeType::PINBOX));
authManager_->ShowConfigDialog();
authManager_->authResponseContext_->isShowDialog = true;
authManager_->ShowConfigDialog();
ASSERT_FALSE(authManager_->IsPinCodeValid(MIN_PIN_CODE_VALUE));
ASSERT_FALSE(authManager_->IsPinCodeValid(MAX_PIN_CODE_VALUE));
ASSERT_TRUE(authManager_->IsPinCodeValid(PINCODE));
}
HWTEST_F(DmAuthManagerTest, IsPinCodeValid_002, testing::ext::TestSize.Level1)
{
std::string strPin = "";
ASSERT_FALSE(authManager_->IsPinCodeValid(strPin));
strPin = "pinCode";
ASSERT_FALSE(authManager_->IsPinCodeValid(strPin));
}
HWTEST_F(DmAuthManagerTest, IsServiceInfoAuthTypeValid_001, testing::ext::TestSize.Level1)
{
int32_t authType = 2;
ASSERT_FALSE(authManager_->IsServiceInfoAuthTypeValid(authType));
}
HWTEST_F(DmAuthManagerTest, IsServiceInfoAuthBoxTypeValid_001, testing::ext::TestSize.Level1)
{
int32_t authBoxType = 3;
ASSERT_FALSE(authManager_->IsServiceInfoAuthBoxTypeValid(authBoxType));
}
HWTEST_F(DmAuthManagerTest, IsServiceInfoPinExchangeTypeValid_001, testing::ext::TestSize.Level1)
{
int32_t pinExchangeType = 4;
ASSERT_FALSE(authManager_->IsServiceInfoPinExchangeTypeValid(pinExchangeType));
}
HWTEST_F(DmAuthManagerTest, IsLocalServiceInfoValid_001, testing::ext::TestSize.Level1)
{
DistributedDeviceProfile::LocalServiceInfo profile;
profile.SetAuthType(2);
ASSERT_FALSE(authManager_->IsLocalServiceInfoValid(profile));
profile.SetAuthType(static_cast<int32_t>(DMLocalServiceInfoAuthType::TRUST_ONETIME));
profile.SetAuthBoxType(3);
ASSERT_FALSE(authManager_->IsLocalServiceInfoValid(profile));
profile.SetAuthBoxType(static_cast<int32_t>(DMLocalServiceInfoAuthBoxType::STATE3));
profile.SetPinExchangeType(4);
ASSERT_FALSE(authManager_->IsLocalServiceInfoValid(profile));
profile.SetPinExchangeType(static_cast<int32_t>(DMLocalServiceInfoPinExchangeType::FROMDP));
profile.SetPinCode("");
ASSERT_TRUE(authManager_->IsLocalServiceInfoValid(profile));
profile.SetPinCode(PINCODE);
ASSERT_TRUE(authManager_->IsLocalServiceInfoValid(profile));
}
HWTEST_F(DmAuthManagerTest, EstablishAuthChannel_003, testing::ext::TestSize.Level1)
{
std::string deviceId = "d********3";
authManager_->authRequestContext_ = std::make_shared<DmAuthRequestContext>();
authManager_->authRequestContext_->connSessionType = CONN_SESSION_TYPE_HML;
int32_t ret = authManager_->EstablishAuthChannel(deviceId);
ASSERT_EQ(ret, DM_OK);
JsonObject jsonObject;
jsonObject[PARAM_KEY_CONN_SESSIONTYPE] = "param_key_conn_sessionType";
jsonObject[PARAM_KEY_HML_ENABLE_160M] = true;
jsonObject[PARAM_KEY_HML_ACTIONID] = 0;
authManager_->ParseHmlInfoInJsonObject(jsonObject);
}
HWTEST_F(DmAuthManagerTest, ParseHmlInfoInJsonObject_001, testing::ext::TestSize.Level1)
{
JsonObject jsonObject;
jsonObject[PARAM_KEY_CONN_SESSIONTYPE] = CONN_SESSION_TYPE_HML;
jsonObject[PARAM_KEY_HML_ACTIONID] = 0;
authManager_->ParseHmlInfoInJsonObject(jsonObject);
ASSERT_EQ(authManager_->authRequestContext_->hmlActionId, 0);
jsonObject[PARAM_KEY_HML_ACTIONID] = 1;
authManager_->ParseHmlInfoInJsonObject(jsonObject);
ASSERT_EQ(authManager_->authRequestContext_->hmlActionId, 0);
jsonObject[PARAM_KEY_HML_ACTIONID] = "1";
authManager_->ParseHmlInfoInJsonObject(jsonObject);
ASSERT_EQ(authManager_->authRequestContext_->hmlActionId, 1);
authManager_->authRequestContext_->hmlActionId = 0;
jsonObject[PARAM_KEY_CONN_SESSIONTYPE] = CONN_SESSION_TYPE_BLE;
jsonObject[PARAM_KEY_HML_ACTIONID] = "1";
authManager_->ParseHmlInfoInJsonObject(jsonObject);
ASSERT_EQ(authManager_->authRequestContext_->hmlActionId, 0);
}
HWTEST_F(DmAuthManagerTest, CanUsePincodeFromDp_001, testing::ext::TestSize.Level1)
{
DistributedDeviceProfile::LocalServiceInfo info;
info.SetAuthBoxType((int32_t)DMLocalServiceInfoAuthBoxType::SKIP_CONFIRM);
info.SetAuthType((int32_t)DMLocalServiceInfoAuthType::TRUST_ONETIME);
info.SetPinExchangeType((int32_t)DMLocalServiceInfoPinExchangeType::FROMDP);
info.SetPinCode("******");
authManager_->serviceInfoProfile_ = info;
ASSERT_FALSE(authManager_->CanUsePincodeFromDp());
info.SetPinCode("123456");
authManager_->serviceInfoProfile_ = info;
ASSERT_TRUE(authManager_->CanUsePincodeFromDp());
info.SetAuthBoxType(INVALID_AUTHBOX_TYPE);
info.SetPinCode("123456");
authManager_->serviceInfoProfile_ = info;
ASSERT_TRUE(authManager_->CanUsePincodeFromDp());
info.SetPinExchangeType((int32_t)DMLocalServiceInfoPinExchangeType::ULTRASOUND);
info.SetPinCode("123456");
authManager_->serviceInfoProfile_ = info;
ASSERT_FALSE(authManager_->CanUsePincodeFromDp());
}
HWTEST_F(DmAuthManagerTest, CheckAuthParamVaildExtra_002, testing::ext::TestSize.Level1)
{
JsonObject jsonObject;
jsonObject[PARAM_KEY_CONN_SESSIONTYPE] = CONN_SESSION_TYPE_HML;
jsonObject[PARAM_KEY_HML_ENABLE_160M] = true;
jsonObject[PARAM_KEY_HML_ACTIONID] = "kwjewkkl";
std::string deviceId = "de*************12";
std::shared_ptr<DeviceInfo> deviceInfo = std::make_shared<DeviceInfo>();
authManager_->softbusConnector_->AddMemberToDiscoverMap(deviceId, deviceInfo);
std::string strExtra = jsonObject.Dump();
int32_t ret = authManager_->CheckAuthParamVaildExtra(strExtra, deviceId);
ASSERT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
jsonObject[PARAM_KEY_HML_ACTIONID] = 0;
strExtra = jsonObject.Dump();
ret = authManager_->CheckAuthParamVaildExtra(strExtra, deviceId);
ASSERT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
jsonObject[PARAM_KEY_HML_ACTIONID] = 1;
strExtra = jsonObject.Dump();
ret = authManager_->CheckAuthParamVaildExtra(strExtra, deviceId);
ASSERT_EQ(ret, ERR_DM_INPUT_PARA_INVALID);
}
HWTEST_F(DmAuthManagerTest, CheckHmlParamValid_001, testing::ext::TestSize.Level1)
{
JsonObject jsonObject;
jsonObject[PARAM_KEY_HML_ACTIONID] = 1;
bool ret = authManager_->CheckHmlParamValid(jsonObject);
EXPECT_FALSE(ret);
jsonObject[PARAM_KEY_HML_ACTIONID] = "kjsdkad";
ret = authManager_->CheckHmlParamValid(jsonObject);
EXPECT_FALSE(ret);
jsonObject[PARAM_KEY_HML_ACTIONID] = "0";
ret = authManager_->CheckHmlParamValid(jsonObject);
EXPECT_FALSE(ret);
jsonObject[PARAM_KEY_HML_ACTIONID] = "1";
ret = authManager_->CheckHmlParamValid(jsonObject);
EXPECT_TRUE(ret);
}
}
}
}