• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-2024 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 <cstddef>
17 #include <cstdio>
18 #include <future>
19 #include <gmock/gmock.h>
20 #include <gtest/gtest.h>
21 #include <string>
22 
23 #include "b_error/b_error.h"
24 #include "element_name.h"
25 #include "ext_extension_mock.h"
26 #include "message_parcel_mock.h"
27 #include "module_ipc/svc_backup_connection.h"
28 
29 namespace OHOS::FileManagement::Backup {
30 using namespace std;
31 using namespace testing;
32 
33 class SvcBackupConnectionTest : public testing::Test {
34 public:
35     static void SetUpTestCase(void);
36     static void TearDownTestCase();
SetUp()37     void SetUp() override {};
TearDown()38     void TearDown() override {};
39 public:
40     static inline sptr<SvcBackupConnection> backupCon_ = nullptr;
41     static inline shared_ptr<IfaceCastMock> castMock = nullptr;
42 };
43 
CallDied(const std::string && name,bool isCleanCalled)44 static void CallDied(const std::string &&name, bool isCleanCalled)
45 {
46     GTEST_LOG_(INFO) << "ServiceReverseProxyTest-CallDied SUCCESS";
47 }
48 
CallDone(const std::string && name)49 static void CallDone(const std::string &&name)
50 {
51     GTEST_LOG_(INFO) << "ServiceReverseProxyTest-CallDone SUCCESS";
52 }
53 
SetUpTestCase()54 void SvcBackupConnectionTest::SetUpTestCase()
55 {
56     backupCon_ = sptr(new SvcBackupConnection(CallDied, CallDone, "com.example.app"));
57     castMock = std::make_shared<IfaceCastMock>();
58     IfaceCastMock::cast = castMock;
59 }
TearDownTestCase()60 void SvcBackupConnectionTest::TearDownTestCase()
61 {
62     backupCon_ = nullptr;
63     IfaceCastMock::cast = nullptr;
64     castMock = nullptr;
65 }
66 
67 /**
68  * @tc.number: SUB_BackupConnection_OnAbilityConnectDone_0100
69  * @tc.name: SUB_BackupConnection_OnAbilityConnectDone_0100
70  * @tc.desc: 测试 OnAbilityConnectDone 链接回调接口调用成功
71  * @tc.size: MEDIUM
72  * @tc.type: FUNC
73  * @tc.level Level 1
74  * @tc.require: I6F3GV
75  */
76 HWTEST_F(SvcBackupConnectionTest, SUB_BackupConnection_OnAbilityConnectDone_0100, testing::ext::TestSize.Level1)
77 {
78     GTEST_LOG_(INFO) << "SvcBackupConnectionTest-begin SUB_BackupConnection_OnAbilityConnectDone_0100";
79     try {
80         int resultCode = 0;
81         AppExecFwk::ElementName element;
82         EXPECT_TRUE(backupCon_ != nullptr);
83         EXPECT_TRUE(castMock != nullptr);
84         backupCon_->OnAbilityConnectDone(element, nullptr, resultCode);
85         EXPECT_TRUE(true);
86 
87         sptr<IRemoteObject> remoteObject = sptr(new BackupExtExtensionMock);
88         EXPECT_CALL(*castMock, iface_cast(_)).WillOnce(Return(nullptr));
89         backupCon_->OnAbilityConnectDone(element, remoteObject, resultCode);
90         EXPECT_TRUE(true);
91     } catch (...) {
92         EXPECT_TRUE(false);
93         GTEST_LOG_(INFO) << "SvcBackupConnectionTest-an exception occurred by OnAbilityConnectDone.";
94     }
95     GTEST_LOG_(INFO) << "SvcBackupConnectionTest-end SUB_BackupConnection_OnAbilityConnectDone_0100";
96 }
97 
98 /**
99  * @tc.number: SUB_BackupConnection_OnAbilityDisconnectDone_0100
100  * @tc.name: SUB_BackupConnection_OnAbilityDisconnectDone_0100
101  * @tc.desc: 测试 OnAbilityDisconnectDone 链接回调接口调用成功
102  * @tc.size: MEDIUM
103  * @tc.type: FUNC
104  * @tc.level Level 1
105  * @tc.require: I6F3GV
106  */
107 HWTEST_F(SvcBackupConnectionTest, SUB_BackupConnection_OnAbilityDisconnectDone_0100, testing::ext::TestSize.Level1)
108 {
109     GTEST_LOG_(INFO) << "SvcBackupConnectionTest-begin SUB_BackupConnection_OnAbilityDisconnectDone_0100";
110     try {
111         AppExecFwk::ElementName element;
112         string bundleName = "";
113         element.SetBundleName(bundleName);
114         int resultCode = 1;
115 
116         EXPECT_TRUE(backupCon_ != nullptr);
117         backupCon_->isConnectCalled_ = false;
118         backupCon_->OnAbilityDisconnectDone(element, resultCode);
119         bool ret = backupCon_->IsExtAbilityConnected();
120         EXPECT_FALSE(ret);
121 
122         backupCon_->isConnectCalled_ = true;
123         backupCon_->OnAbilityDisconnectDone(element, resultCode);
124         ret = backupCon_->IsExtAbilityConnected();
125         EXPECT_FALSE(ret);
126     } catch (...) {
127         EXPECT_TRUE(false);
128         GTEST_LOG_(INFO) << "SvcBackupConnectionTest-an exception occurred by OnAbilityDisconnectDone.";
129     }
130     GTEST_LOG_(INFO) << "SvcBackupConnectionTest-end SUB_BackupConnection_OnAbilityDisconnectDone_0100";
131 }
132 
133 /**
134  * @tc.number: SUB_BackupConnection_GetBackupExtProxy_0100
135  * @tc.name: SUB_BackupConnection_GetBackupExtProxy_0100
136  * @tc.desc: 测试 GetBackupExtProxy 获取连接状态接口调用成功
137  * @tc.size: MEDIUM
138  * @tc.type: FUNC
139  * @tc.level Level 1
140  * @tc.require: I6F3GV
141  */
142 HWTEST_F(SvcBackupConnectionTest, SUB_BackupConnection_GetBackupExtProxy_0100, testing::ext::TestSize.Level1)
143 {
144     GTEST_LOG_(INFO) << "SvcBackupConnectionTest-begin SUB_BackupConnection_GetBackupExtProxy_0100";
145     EXPECT_TRUE(backupCon_ != nullptr);
146     auto proxy = backupCon_->GetBackupExtProxy();
147     EXPECT_EQ(proxy, nullptr);
148     GTEST_LOG_(INFO) << "SvcBackupConnectionTest-end SUB_BackupConnection_GetBackupExtProxy_0100";
149 }
150 } // namespace OHOS::FileManagement::Backup