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 "telephony_errors.h"
21#include "emergency_utils.h"
22
23namespace OHOS {
24namespace Telephony {
25using namespace testing::ext;
26class EmergencyUtilsTest : public testing::Test {
27public:
28    static void SetUpTestCase();
29    static void TearDownTestCase();
30    void SetUp();
31    void TearDown();
32};
33void EmergencyUtilsTest::SetUpTestCase() {}
34
35void EmergencyUtilsTest::TearDownTestCase() {}
36
37void EmergencyUtilsTest::SetUp() {}
38
39void EmergencyUtilsTest::TearDown() {}
40
41/**
42 * @tc.number   Telephony_EmergencyUtilsTest_0001
43 * @tc.name     Test EmergencyUtilsTest
44 * @tc.desc     Function test
45 */
46HWTEST_F(EmergencyUtilsTest, EmergencyUtilsTest_0001, Function | MediumTest | Level1)
47{
48    EmergencyUtils emergencyUtils;
49    int32_t slotId = 0;
50    std::string phoneNum;
51    bool enabled = false;
52    EXPECT_EQ(emergencyUtils.IsEmergencyCall(slotId, phoneNum, enabled), TELEPHONY_ERR_ARGUMENT_INVALID);
53
54    phoneNum = "+911";
55    EXPECT_EQ(emergencyUtils.IsEmergencyCall(slotId, phoneNum, enabled), TELEPHONY_ERR_ARGUMENT_INVALID);
56
57    phoneNum = "911@123456778901";
58    EXPECT_EQ(emergencyUtils.IsEmergencyCall(slotId, phoneNum, enabled), TELEPHONY_ERR_ARGUMENT_INVALID);
59
60    phoneNum = "911%40123456778901";
61    EXPECT_EQ(emergencyUtils.IsEmergencyCall(slotId, phoneNum, enabled), TELEPHONY_ERR_ARGUMENT_INVALID);
62}
63
64/**
65 * @tc.number   Telephony_EmergencyUtilsTest_0002
66 * @tc.name     Test EmergencyUtilsTest
67 * @tc.desc     Function test
68 */
69HWTEST_F(EmergencyUtilsTest, EmergencyUtilsTest_0002, Function | MediumTest | Level1)
70{
71    EmergencyUtils emergencyUtils;
72    int32_t slotId = 0;
73    bool enabled = false;
74
75    std::string formatString = "57694898180";
76    EXPECT_EQ(emergencyUtils.IsEmergencyCallProcessing(slotId, formatString, enabled), TELEPHONY_SUCCESS);
77
78    formatString = "110";
79    EXPECT_EQ(emergencyUtils.IsEmergencyCallProcessing(slotId, formatString, enabled), TELEPHONY_SUCCESS);
80
81    formatString = "120";
82    EXPECT_EQ(emergencyUtils.IsEmergencyCallProcessing(slotId, formatString, enabled), TELEPHONY_SUCCESS);
83
84    formatString = "119";
85    EXPECT_EQ(emergencyUtils.IsEmergencyCallProcessing(slotId, formatString, enabled), TELEPHONY_SUCCESS);
86
87    formatString = "122";
88    EXPECT_EQ(emergencyUtils.IsEmergencyCallProcessing(slotId, formatString, enabled), TELEPHONY_SUCCESS);
89
90    formatString = "112";
91    EXPECT_EQ(emergencyUtils.IsEmergencyCallProcessing(slotId, formatString, enabled), TELEPHONY_SUCCESS);
92
93    formatString = "000";
94    EXPECT_EQ(emergencyUtils.IsEmergencyCallProcessing(slotId, formatString, enabled), TELEPHONY_SUCCESS);
95
96    formatString = "911";
97    EXPECT_EQ(emergencyUtils.IsEmergencyCallProcessing(slotId, formatString, enabled), TELEPHONY_SUCCESS);
98
99    formatString = "08";
100    EXPECT_EQ(emergencyUtils.IsEmergencyCallProcessing(slotId, formatString, enabled), TELEPHONY_SUCCESS);
101
102    formatString = "118";
103    EXPECT_EQ(emergencyUtils.IsEmergencyCallProcessing(slotId, formatString, enabled), TELEPHONY_SUCCESS);
104
105    formatString = "999";
106    EXPECT_EQ(emergencyUtils.IsEmergencyCallProcessing(slotId, formatString, enabled), TELEPHONY_SUCCESS);
107}
108} // namespace Telephony
109} // namespace OHOS