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 #define private public
17 #define protected public
18 
19 #include "gtest/gtest.h"
20 #include "data_request.h"
21 #include "mms_apn_info.h"
22 #include "mms_receive.h"
23 #include "mms_receive_manager.h"
24 #include "mms_sender.h"
25 #include "mms_send_manager.h"
26 #include "mms_network_client.h"
27 
28 namespace OHOS {
29 namespace Telephony {
30 using namespace testing::ext;
31 class MmsReceiveGtest : public testing::Test {
32 public:
33     static void SetUpTestCase();
34     static void TearDownTestCase();
35     void SetUp();
36     void TearDown();
37 };
SetUpTestCase()38 void MmsReceiveGtest::SetUpTestCase() {}
39 
TearDownTestCase()40 void MmsReceiveGtest::TearDownTestCase() {}
41 
SetUp()42 void MmsReceiveGtest::SetUp() {}
43 
TearDown()44 void MmsReceiveGtest::TearDown() {}
45 /**
46  * @tc.number   Telephony_MmsReceiveManagerTest_0001
47  * @tc.name     Test MmsReceiveManager
48  * @tc.desc     Function test
49  */
HWTEST_F(MmsReceiveGtest, MmsReceiveManagerTest_0001, Function | MediumTest | Level1)50 HWTEST_F(MmsReceiveGtest, MmsReceiveManagerTest_0001, Function | MediumTest | Level1)
51 {
52     int32_t slotId = 0;
53     auto mmsReceiverManager = std::make_shared<MmsReceiveManager>(slotId);
54     ASSERT_NE(mmsReceiverManager, nullptr);
55     std::u16string mmsc = u"";
56     std::u16string data = u"";
57     std::u16string ua = u"";
58     std::u16string uaprof = u"";
59     int32_t stata = mmsReceiverManager->DownloadMms(mmsc, data, ua, uaprof);
60     EXPECT_EQ(stata, TELEPHONY_ERR_LOCAL_PTR_NULL);
61 
62     mmsReceiverManager->Init();
63     stata = mmsReceiverManager->DownloadMms(mmsc, data, ua, uaprof);
64     EXPECT_EQ(stata, TELEPHONY_ERR_MMS_FAIL_DATA_NETWORK_ERROR);
65 }
66 
67 /**
68  * @tc.number   Telephony_MmsSendManagerTest_0001
69  * @tc.name     Test MmsSendManager
70  * @tc.desc     Function test
71  */
HWTEST_F(MmsReceiveGtest, MmsSendManagerTest_0001, Function | MediumTest | Level1)72 HWTEST_F(MmsReceiveGtest, MmsSendManagerTest_0001, Function | MediumTest | Level1)
73 {
74     int32_t slotId = 0;
75     auto mmsSendManager = std::make_shared<MmsSendManager>(slotId);
76     ASSERT_NE(nullptr, mmsSendManager);
77     mmsSendManager->Init();
78     std::u16string mmsc = u"";
79     std::u16string data = u"";
80     std::u16string ua = u"";
81     std::u16string uaprof = u"";
82     int32_t stata = mmsSendManager->SendMms(mmsc, data, ua, uaprof);
83     EXPECT_EQ(stata, TELEPHONY_ERR_MMS_FAIL_DATA_NETWORK_ERROR);
84 }
85 
86 /**
87  * @tc.number   Telephony_DataRequestTest_0001
88  * @tc.name     Test DataRequest
89  * @tc.desc     Function test
90  */
HWTEST_F(MmsReceiveGtest, DataRequestTest_0001, Function | MediumTest | Level1)91 HWTEST_F(MmsReceiveGtest, DataRequestTest_0001, Function | MediumTest | Level1)
92 {
93     int32_t slotId = 0;
94     auto dataRequest = std::make_shared<DataRequest>(slotId);
95     ASSERT_NE(nullptr, dataRequest);
96     std::string method;
97     auto netMgr = std::make_shared<MmsNetworkManager>();
98     ASSERT_NE(nullptr, netMgr);
99     std::string contentUrl;
100     std::string pduDir;
101     int32_t stata = dataRequest->HttpRequest(slotId, method, netMgr, contentUrl, pduDir, "ua", "uaprof");
102     EXPECT_NE(stata, TELEPHONY_ERR_MMS_FAIL_DATA_NETWORK_ERROR);
103 }
104 
105 /**
106  * @tc.number   Telephony_MmsApnInfoTest_0001
107  * @tc.name     Test MmsApnInfo
108  * @tc.desc     Function test
109  */
HWTEST_F(MmsReceiveGtest, MmsApnInfoTest_0001, Function | MediumTest | Level1)110 HWTEST_F(MmsReceiveGtest, MmsApnInfoTest_0001, Function | MediumTest | Level1)
111 {
112     int32_t slotId = 0;
113     auto mmsApnInfo = std::make_shared<MmsApnInfo>(slotId);
114     ASSERT_NE(nullptr, mmsApnInfo);
115     std::string apn = "mms,mms,mms,mms";
116     EXPECT_TRUE(mmsApnInfo->SplitAndMatchApnTypes(apn));
117     apn = "";
118     EXPECT_FALSE(mmsApnInfo->SplitAndMatchApnTypes(apn));
119 }
120 
121 /**
122  * @tc.number   Telephony_MmsNetworkClientTest_0002
123  * @tc.name     Test MmsNetworkClient
124  * @tc.desc     Function test
125  */
HWTEST_F(MmsReceiveGtest, MmsNetworkClientTest_0001, Function | MediumTest | Level1)126 HWTEST_F(MmsReceiveGtest, MmsNetworkClientTest_0001, Function | MediumTest | Level1)
127 {
128     int32_t slotId = 0;
129     auto mmsNetworkClient = std::make_shared<MmsNetworkClient>(slotId);
130     ASSERT_NE(nullptr, mmsNetworkClient);
131     std::string str;
132     mmsNetworkClient->GetCoverUrl(str);
133     EXPECT_EQ(str, "");
134     str = "str";
135     mmsNetworkClient->GetCoverUrl(str);
136     EXPECT_EQ(str, "str");
137 }
138 
139 /**
140  * @tc.number   Telephony_MmsReceiveTest_0001
141  * @tc.name     Test MmsReceive
142  * @tc.desc     Function test
143  */
HWTEST_F(MmsReceiveGtest, MmsMmsReceiveTest_0001, Function | MediumTest | Level1)144 HWTEST_F(MmsReceiveGtest, MmsMmsReceiveTest_0001, Function | MediumTest | Level1)
145 {
146     int32_t slotId = 0;
147     auto mmsReceive = std::make_shared<MmsReceive>(slotId);
148     ASSERT_NE(nullptr, mmsReceive);
149     std::string method;
150     std::string url;
151     std::string data;
152     std::string uaprof;
153     int32_t ret = mmsReceive->ExecuteDownloadMms(method, url, data, uaprof);
154     EXPECT_EQ(ret, TELEPHONY_ERR_MMS_FAIL_DATA_NETWORK_ERROR);
155 }
156 
157 /**
158  * @tc.number   Telephony_MmsSenderTest_0001
159  * @tc.name     Test MmsSender
160  * @tc.desc     Function test
161  */
HWTEST_F(MmsReceiveGtest, MmsSenderTest_0001, Function | MediumTest | Level1)162 HWTEST_F(MmsReceiveGtest, MmsSenderTest_0001, Function | MediumTest | Level1)
163 {
164     int32_t slotId = 0;
165     auto mmsSender = std::make_shared<MmsSender>(slotId);
166     ASSERT_NE(nullptr, mmsSender);
167     std::string method;
168     std::string url;
169     std::string data;
170     std::string uaprof;
171     int32_t ret = mmsSender->ExecuteSendMms(method, url, data, uaprof);
172     EXPECT_EQ(ret, TELEPHONY_ERR_MMS_FAIL_DATA_NETWORK_ERROR);
173 }
174 } // namespace Telephony
175 } // namespace OHOS
176