• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 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 #include <gtest/gtest.h>
16 #include <thread>
17 
18 #include "nfcc_host.h"
19 #include "nfc_service.h"
20 #include "tag_host.h"
21 
22 namespace OHOS {
23 namespace NFC {
24 namespace TEST {
25 using namespace testing::ext;
26 using namespace OHOS::NFC::NCI;
27 
28 enum EmNfcForumType {
29     NFC_FORUM_TYPE_UNKNOWN = 0,
30     NFC_FORUM_TYPE_1 = 1,
31     NFC_FORUM_TYPE_2 = 2,
32     NFC_FORUM_TYPE_3 = 3,
33     NFC_FORUM_TYPE_4 = 4,
34     MIFARE_CLASSIC = 101,
35     ICODE_SLI = 102
36 };
37 
38 class NfccHostTest : public testing::Test {
39 public:
SetUpTestCase()40     static void SetUpTestCase() {}
TearDownTestCase()41     static void TearDownTestCase() {}
42     void SetUp();
43     void TearDown();
44 
45     std::shared_ptr<NCI::NfccHost> nfccHostTest_ {};
46     std::shared_ptr<NfcService> nfcService_;
47 };
48 
SetUp()49 void NfccHostTest::SetUp()
50 {
51     std::shared_ptr<NfcService> nfcService_ = std::make_shared<NfcService>();
52     nfccHostTest_ = std::make_shared<NFC::NCI::NfccHost>(nfcService_);
53 }
54 
TearDown()55 void NfccHostTest::TearDown()
56 {
57     nfccHostTest_ = nullptr;
58     nfcService_ = nullptr;
59 }
60 
61 /**
62  * @tc.name: SendRawFrameTest001
63  * @tc.desc: Test SendRawFrame
64  * @tc.type: FUNC
65  */
66 HWTEST_F(NfccHostTest, SendRawFrameTest001, TestSize.Level1)
67 {
68     std::string getCplc = "80CA9F7F00";
69     nfccHostTest_->SendRawFrame(getCplc);
70     EXPECT_TRUE(nfccHostTest_->GetNciVersion() >= 0);
71 }
72 
73 /**
74  * @tc.name: SetSecureNfcTest001
75  * @tc.desc: Test SetSecureNfc
76  * @tc.type: FUNC
77  */
78 HWTEST_F(NfccHostTest, SetSecureNfcTest001, TestSize.Level1)
79 {
80     EXPECT_TRUE(nfccHostTest_->GetIsoDepMaxTransceiveLength() >= 0);
81     EXPECT_TRUE(nfccHostTest_->SetSecureNfc(false));
82     EXPECT_EQ(nfccHostTest_->GetLfT3tMax(), 0);
83     EXPECT_EQ(nfccHostTest_->GetLastError(), 0);
84     nfccHostTest_->Abort();
85     nfccHostTest_->Dump(0);
86     nfccHostTest_->FactoryReset();
87     nfccHostTest_->Shutdown();
88 }
89 
90 /**
91  * @tc.name: RegisterT3tIdentifierTest001
92  * @tc.desc: Test RegisterT3tIdentifier
93  * @tc.type: FUNC
94  */
95 HWTEST_F(NfccHostTest, RegisterT3tIdentifierTest001, TestSize.Level1)
96 {
97     std::string identfier = "t3t";
98     nfccHostTest_->RegisterT3tIdentifier(identfier);
99     nfccHostTest_->DeregisterT3tIdentifier(identfier);
100     nfccHostTest_->ClearT3tIdentifiersCache();
101     identfier = "";
102     nfccHostTest_->RegisterT3tIdentifier(identfier);
103 }
104 
105 /**
106  * @tc.name: AddAidRoutingTest001
107  * @tc.desc: Test AddAidRouting
108  * @tc.type: FUNC
109  */
110 HWTEST_F(NfccHostTest, AddAidRoutingTest001, TestSize.Level1)
111 {
112     std::string aid = "A0000001150000";
113     int route = 0;
114     int aidInfo = 0;
115     EXPECT_TRUE(nfccHostTest_->AddAidRouting(aid, route, aidInfo));
116     EXPECT_TRUE(nfccHostTest_->RemoveAidRouting(aid));
117     EXPECT_TRUE(nfccHostTest_->ClearAidTable());
118 }
119 
120 /**
121  * @tc.name: CommitRoutingTest001
122  * @tc.desc: Test CommitRouting
123  * @tc.type: FUNC
124  */
125 HWTEST_F(NfccHostTest, CommitRoutingTest001, TestSize.Level1)
126 {
127     EXPECT_EQ(nfccHostTest_->GetAidRoutingTableSize(), 0);
128     EXPECT_EQ(nfccHostTest_->GetDefaultRoute(), 0);
129     EXPECT_EQ(nfccHostTest_->GetDefaultOffHostRoute(), 0);
130     EXPECT_EQ(nfccHostTest_->GetAidMatchingMode(), 0);
131     EXPECT_EQ(nfccHostTest_->GetRemainRoutingTableSize(), 0);
132     EXPECT_EQ(nfccHostTest_->GetDefaultIsoDepRouteDestination(), 0);
133     EXPECT_TRUE(nfccHostTest_->GetOffHostUiccRoute().empty());
134     EXPECT_TRUE(nfccHostTest_->GetOffHostEseRoute().empty());
135     EXPECT_TRUE(nfccHostTest_->CheckFirmware());
136     unsigned char screenStateMask = {0};
137     EXPECT_TRUE(nfccHostTest_->SetScreenStatus(screenStateMask));
138     nfccHostTest_->SetNciAdaptation(nullptr);
139     nfccHostTest_->EeUpdate();
140     std::string aid = "";
141     std::string data = "";
142     std::string seName = "";
143     nfccHostTest_->OffHostTransactionEvent(aid, data, seName);
144     nfccHostTest_->HostCardEmulationActivated(0);
145     std::string res = "";
146     nfccHostTest_->HostCardEmulationDataReceived(0, res);
147     nfccHostTest_->HostCardEmulationDeactivated(0);
148 }
149 
150 /**
151  * @tc.name: CanMakeReadOnlyTest001
152  * @tc.desc: Test CanMakeReadOnly
153  * @tc.type: FUNC
154  */
155 HWTEST_F(NfccHostTest, CanMakeReadOnlyTest001, TestSize.Level1)
156 {
157     int ndefType = EmNfcForumType::NFC_FORUM_TYPE_1;
158     EXPECT_TRUE(nfccHostTest_->CanMakeReadOnly(ndefType));
159     ndefType = EmNfcForumType::NFC_FORUM_TYPE_3;
160     EXPECT_FALSE(nfccHostTest_->CanMakeReadOnly(ndefType));
161 }
162 
163 /**
164  * @tc.name: TagDiscoveredTest001
165  * @tc.desc: Test TagDiscovered
166  * @tc.type: FUNC
167  */
168 HWTEST_F(NfccHostTest, TagDiscoveredTest001, TestSize.Level1)
169 {
170     std::shared_ptr<NCI::ITagHost> tagHost = nullptr;
171     nfccHostTest_->TagDiscovered(tagHost);
172 }
173 
174 /**
175  * @tc.name: RemoteFieldActivatedTest001
176  * @tc.desc: Test RemoteFieldActivated
177  * @tc.type: FUNC
178  */
179 HWTEST_F(NfccHostTest, RemoteFieldActivatedTest001, TestSize.Level1)
180 {
181     std::shared_ptr<OHOS::NFC::NfcService> listener = nullptr;
182     nfccHostTest_->SetNfccHostListener(listener);
183     nfccHostTest_->RemoteFieldActivated();
184     nfccHostTest_->RemoteFieldDeactivated();
185 
186     nfccHostTest_->SetNfccHostListener(nfcService_);
187     nfccHostTest_->RemoteFieldActivated();
188     nfccHostTest_->RemoteFieldDeactivated();
189 }
190 }
191 }
192 }
193