1 //******************************************************************
3 // Copyright 2016 Samsung Electronics All Rights Reserved.
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
24 * This file contains the implementation for EasySetup Enrollee testcases
27 #include "gtest/gtest.h"
28 #include <sys/types.h>
35 //-----------------------------------------------------------------------------
37 //-----------------------------------------------------------------------------
46 #include "oic_malloc.h"
48 #include "easysetup.h"
49 #include "onboarding.h"
50 #include "resourcehandler.h"
52 #include "easysetupcallbacks.h"
54 #include "gtesthelper.h"
58 namespace itst = iotivity::test;
60 #define DEFAULT_CONTEXT_VALUE 0x99
62 //-----------------------------------------------------------------------------
64 //-----------------------------------------------------------------------------
65 static const char TAG[] = "TestHarness";
67 char ssid[] = "EasySetup123";
68 char passwd[] = "EasySetup123";
70 //-----------------------------------------------------------------------------
72 //-----------------------------------------------------------------------------
73 extern "C" void EventCallbackInApplication(ESResult esResult,
74 EnrolleeState enrolleeState)
76 OIC_LOG(INFO, TAG, "Entering EventCallbackInApplication");
80 cout<<"Easy stup is failed at Enrollee state = "<<enrolleeState<<endl;
84 if(enrolleeState == ES_ON_BOARDED_STATE)
86 cout<<"Device is successfully OnBoared on Adhoc network"<<endl;
88 else if (enrolleeState == ES_PROVISIONED_STATE)
90 cout<<"Device is provisioned with target network's credentials"<<endl;
92 else if (enrolleeState == ES_ON_BOARDED_TARGET_NETWORK_STATE)
94 cout<<"Device is onboarded/connected with target network"<<endl;
98 cout<<"Wrong state !! Easy setup is failed at Enrollee state = "<<enrolleeState<<endl;
103 //-----------------------------------------------------------------------------
105 //-----------------------------------------------------------------------------
107 void InitESEnrollee()
109 OIC_LOG(INFO, TAG, "Entering InitESEnrollee");
111 EXPECT_EQ(ES_OK, InitEasySetup(CT_ADAPTER_IP,
115 EventCallbackInApplication));
116 OIC_LOG(INFO, TAG, "Leaving InitESEnrollee");
119 //-----------------------------------------------------------------------------
121 //-----------------------------------------------------------------------------
123 TEST(ESEnrolleeInit, ESEnrolleeInitNullSSID)
125 EXPECT_EQ(ES_ERROR, InitEasySetup(CT_ADAPTER_IP, 0, passwd, 0, EventCallbackInApplication));
128 TEST(ESEnrolleeInit, ESEnrolleeInitNullPassword)
130 EXPECT_EQ(ES_ERROR, InitEasySetup(CT_ADAPTER_IP, ssid, 0, 0, EventCallbackInApplication));
133 TEST(ESEnrolleeInit, ESEnrolleeInitNullCb)
135 EXPECT_EQ(ES_ERROR, InitEasySetup(CT_ADAPTER_IP, ssid, passwd, 0, 0));
138 TEST(ESEnrolleeInit, ESEnrolleeInitEasySetupSuccess)
140 EXPECT_EQ(ES_OK, InitEasySetup(CT_ADAPTER_IP,
144 EventCallbackInApplication));
147 TEST(ESEnrolleeInit, ESEnrolleeBleOnboarding)
149 EXPECT_EQ(0, ESBleOnboarding());
152 TEST(ESEnrolleeInit, ESEnrolleeSoftapOnboarding)
154 EXPECT_EQ(true, ESSoftapOnboarding());
157 TEST(ESOCInit, ESOCInitNullIPAddr)
159 EXPECT_EQ(OC_STACK_OK, OCInit(0, 5683, OC_SERVER));
160 EXPECT_EQ(OC_STACK_OK, OCStop());
163 TEST(ESOCInit, ESOCInitNullPort)
165 EXPECT_EQ(OC_STACK_OK, OCInit("127.0.0.1", 0, OC_SERVER));
166 EXPECT_EQ(OC_STACK_OK, OCStop());
169 TEST(ESOCInit, ESOCInitNullAddrAndPort)
171 EXPECT_EQ(OC_STACK_OK, OCInit(0, 0, OC_SERVER));
172 EXPECT_EQ(OC_STACK_OK, OCStop());
175 TEST(ESOCInit, ESOCInitInvalidMode)
177 EXPECT_EQ(OC_STACK_ERROR, OCInit(0, 0, (OCMode)10));
178 EXPECT_EQ(OC_STACK_ERROR, OCStop());
181 TEST(ESProvisioning, ESInitProvisioning)
183 EXPECT_EQ(ES_RESOURCECREATED, InitProvisioning());
186 TEST(ESProvisioning, ESInitProvisioningWithOCStackClientMode)
188 EXPECT_EQ(OC_STACK_OK, OCInit(NULL, 0, OC_CLIENT));
189 EXPECT_EQ(ES_ERROR, InitProvisioning());
190 EXPECT_EQ(OC_STACK_OK, OCStop());
193 TEST(ESProvisioningResource, ESCreateProvisioningResourceSecurityDisabled)
195 EXPECT_EQ(OC_STACK_OK, OCInit(0, 0, OC_SERVER));
196 EXPECT_EQ(OC_STACK_OK, CreateProvisioningResource(0));
197 EXPECT_EQ(OC_STACK_OK, OCStop());
200 TEST(ESProvisioningResource, ESCreateProvisioningResourceSecurityEnabled)
202 EXPECT_EQ(OC_STACK_OK, OCInit(0, 0, OC_SERVER));
203 EXPECT_EQ(OC_STACK_OK, CreateProvisioningResource(1));
204 EXPECT_EQ(OC_STACK_OK, OCStop());
207 TEST(ESProvisioningResource, ESDeleteProvisioningResource)
209 EXPECT_EQ(OC_STACK_OK, OCInit(0, 0, OC_SERVER));
210 EXPECT_EQ(OC_STACK_OK, CreateProvisioningResource(0));
211 EXPECT_EQ(OC_STACK_OK, DeleteProvisioningResource());
212 EXPECT_EQ(OC_STACK_OK, OCStop());
215 TEST(ESProvisioningResource, ESDeleteProvisioningResourceWithoutCreating)
217 EXPECT_EQ(OC_STACK_OK, OCInit(0, 0, OC_SERVER));
218 EXPECT_EQ(OC_STACK_NO_RESOURCE, DeleteProvisioningResource());
219 EXPECT_EQ(OC_STACK_OK, OCStop());
222 TEST(ESOnboarding, ESOnboardingSoftAp)
224 EXPECT_EQ(1, ESOnboard(ssid, passwd, OnboardingCallback));
227 TEST(ESOnboarding, ESOnboardingSoftApEnrollee)
229 #ifdef ENROLLEE_SOFTAP
230 EXPECT_EQ(1, ESSoftapAtEnrollee());
231 EXPECT_EQ(0, ESSoftapAtMediator());
235 TEST(ESOnboarding, ESOnboardingSoftApMediator)
237 #ifndef ENROLLEE_SOFTAP
238 EXPECT_EQ(0, ESSoftapAtEnrollee());
239 EXPECT_EQ(1, ESSoftapAtMediator());
243 TEST(ESOnboarding, ESOnboardingSoftApHost)
245 #ifdef ENROLLEE_SOFTAP
246 EXPECT_EQ(ENROLLEE, ESSoftapHost());
248 EXPECT_EQ(MEDIATOR, ESSoftapHost());
252 TEST(ESStop, ESTerminateEasysetupWithoutESInit)
254 EXPECT_EQ(ES_ERROR, TerminateEasySetup());
257 TEST(ESStop, ESTerminateEasysetupWithoutOCStack)
259 EXPECT_EQ(ES_OK, InitEasySetup(CT_ADAPTER_IP,
263 EventCallbackInApplication));
264 EXPECT_EQ(ES_ERROR, TerminateEasySetup());
267 TEST(ESStop, ESTerminateEasysetupWithOutCreateProvisioningResource)
269 EXPECT_EQ(ES_OK, InitEasySetup(CT_ADAPTER_IP,
273 EventCallbackInApplication));
274 EXPECT_EQ(OC_STACK_OK, OCInit(0, 0, OC_SERVER));
275 EXPECT_EQ(ES_ERROR, TerminateEasySetup());
276 EXPECT_EQ(OC_STACK_OK, OCStop());
279 TEST(ESStop, ESTerminateEasysetupWithoutProviosioningResource)
281 EXPECT_EQ(ES_OK, InitEasySetup(CT_ADAPTER_IP,
285 EventCallbackInApplication));
286 EXPECT_EQ(OC_STACK_OK, OCInit(NULL, 0, OC_SERVER));
287 EXPECT_EQ(ES_ERROR, TerminateEasySetup());
288 EXPECT_EQ(OC_STACK_OK, OCStop());
291 TEST(ESStop, ESTerminateEasysetupSuccess)
293 EXPECT_EQ(ES_OK, InitEasySetup(CT_ADAPTER_IP,
297 EventCallbackInApplication));
298 EXPECT_EQ(OC_STACK_OK, OCInit(NULL, 0, OC_SERVER));
299 EXPECT_EQ(ES_RESOURCECREATED, InitProvisioning());
300 EXPECT_EQ(ES_OK, TerminateEasySetup());
301 EXPECT_EQ(OC_STACK_OK, OCStop());