1 /* 2 * Copyright (C) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include <gtest/gtest.h> 17 #include <memory> 18 19 #include "accessibility_system_ability_client.h" 20 #include "accessible_ability_manager_service_state_stub.h" 21 22 using namespace testing; 23 using namespace testing::ext; 24 using namespace std; 25 26 namespace OHOS { 27 namespace Accessibility { 28 class ASACStateStubUnitTest : public ::testing::Test { 29 public: 30 sptr<AccessibleAbilityManagerServiceStateStub> mockStub_ = nullptr; 31 ASACStateStubUnitTest()32 ASACStateStubUnitTest() {} ~ASACStateStubUnitTest()33 ~ASACStateStubUnitTest() {} 34 SetUpTestCase()35 static void SetUpTestCase() 36 { 37 GTEST_LOG_(INFO) << "ASACStateStubUnitTest Start"; 38 } TearDownTestCase()39 static void TearDownTestCase() 40 { 41 GTEST_LOG_(INFO) << "ASACStateStubUnitTest End"; 42 } SetUp()43 void SetUp() 44 { 45 GTEST_LOG_(INFO) << "ASACStateStubUnitTest SetUp()"; 46 mockStub_ = new AccessibleAbilityManagerServiceStateStub(); 47 }; TearDown()48 void TearDown() 49 { 50 GTEST_LOG_(INFO) << "ASACStateStubUnitTest TearDown()"; 51 mockStub_ = nullptr; 52 } 53 WriteInterfaceToken(MessageParcel & data)54 void WriteInterfaceToken(MessageParcel &data) 55 { 56 GTEST_LOG_(INFO) << "ASACStateStubUnitTest WriteInterfaceToken"; 57 data.WriteInterfaceToken(AccessibleAbilityManagerServiceStateStub::GetDescriptor()); 58 } 59 }; 60 61 /** 62 * @tc.number: OnRemoteRequest_001 63 * @tc.name: OnRemoteRequest 64 * @tc.desc: Test function OnRemoteRequest 65 */ 66 HWTEST_F(ASACStateStubUnitTest, OnRemoteRequest_001, TestSize.Level1) 67 { 68 GTEST_LOG_(INFO) << "OnRemoteRequest_001 start"; 69 // Not set descriptor 70 MessageParcel data; 71 MessageParcel reply; 72 MessageOption option; 73 74 int res = mockStub_->OnRemoteRequest( 75 static_cast<uint32_t>(IAccessibleAbilityManagerServiceState::Message::ON_STATE_CHANGED), data, reply, option); 76 EXPECT_EQ(res, OHOS::Accessibility::ERR_INVALID_STATE); 77 GTEST_LOG_(INFO) << "OnRemoteRequest_001 end"; 78 } 79 80 /** 81 * @tc.number: OnRemoteRequest_002 82 * @tc.name: OnRemoteRequest 83 * @tc.desc: Test function OnRemoteRequest 84 */ 85 HWTEST_F(ASACStateStubUnitTest, OnRemoteRequest_002, TestSize.Level1) 86 { 87 GTEST_LOG_(INFO) << "OnRemoteRequest_002 start"; 88 // set descriptor 89 MessageParcel data; 90 MessageParcel reply; 91 MessageOption option; 92 93 WriteInterfaceToken(data); 94 mockStub_->OnRemoteRequest(static_cast<uint32_t>(IAccessibleAbilityManagerServiceState::Message::ON_STATE_CHANGED), 95 data, reply, option); 96 GTEST_LOG_(INFO) << "OnRemoteRequest_002 end"; 97 } 98 99 /** 100 * @tc.number: OnStateChanged_001 101 * @tc.name: OnStateChanged 102 * @tc.desc: Test function OnStateChanged 103 */ 104 HWTEST_F(ASACStateStubUnitTest, OnStateChanged_001, TestSize.Level1) 105 { 106 GTEST_LOG_(INFO) << "OnStateChanged_001 start"; 107 uint32_t stateType = AccessibilitySystemAbilityClient::STATE_ACCESSIBILITY_ENABLED; 108 mockStub_->OnStateChanged(stateType); 109 110 stateType = AccessibilitySystemAbilityClient::STATE_ACCESSIBILITY_ENABLED; 111 mockStub_->OnStateChanged(stateType); 112 113 stateType &= ~AccessibilitySystemAbilityClient::STATE_ACCESSIBILITY_ENABLED; 114 mockStub_->OnStateChanged(stateType); 115 116 stateType = AccessibilitySystemAbilityClient::STATE_EXPLORATION_ENABLED; 117 mockStub_->OnStateChanged(stateType); 118 119 stateType &= ~AccessibilitySystemAbilityClient::STATE_EXPLORATION_ENABLED; 120 mockStub_->OnStateChanged(stateType); 121 GTEST_LOG_(INFO) << "OnStateChanged_001 end"; 122 } 123 } // namespace Accessibility 124 } // namespace OHOS