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"
53 #include "gtesthelper.h"
57 namespace itst = iotivity::test;
59 #define DEFAULT_CONTEXT_VALUE 0x99
61 //-----------------------------------------------------------------------------
63 //-----------------------------------------------------------------------------
64 static const char TAG[] = "TestHarness";
66 char ssid[] = "EasySetup123";
67 char passwd[] = "EasySetup123";
69 void OnboardingCallback(ESResult esResult);
71 //-----------------------------------------------------------------------------
73 //-----------------------------------------------------------------------------
74 extern "C" void EventCallbackInApplication(ESResult esResult,
75 EnrolleeState enrolleeState)
77 OIC_LOG(INFO, TAG, "Entering EventCallbackInApplication");
81 cout<<"Easy stup is failed at Enrollee state = "<<enrolleeState<<endl;
85 if(enrolleeState == ES_ON_BOARDED_STATE)
87 cout<<"Device is successfully OnBoared on Adhoc network"<<endl;
89 else if (enrolleeState == ES_PROVISIONED_STATE)
91 cout<<"Device is provisioned with target network's credentials"<<endl;
93 else if (enrolleeState == ES_ON_BOARDED_TARGET_NETWORK_STATE)
95 cout<<"Device is onboarded/connected with target network"<<endl;
99 cout<<"Wrong state !! Easy setup is failed at Enrollee state = "<<enrolleeState<<endl;
104 //-----------------------------------------------------------------------------
106 //-----------------------------------------------------------------------------
108 void InitESEnrollee()
110 OIC_LOG(INFO, TAG, "Entering InitESEnrollee");
112 EXPECT_EQ(ES_OK, InitEasySetup(CT_ADAPTER_IP,
116 EventCallbackInApplication));
117 OIC_LOG(INFO, TAG, "Leaving InitESEnrollee");
120 //-----------------------------------------------------------------------------
122 //-----------------------------------------------------------------------------
124 TEST(ESEnrolleeInit, ESEnrolleeInitNullSSID)
126 EXPECT_EQ(ES_ERROR, InitEasySetup(CT_ADAPTER_IP, 0, passwd, 0, EventCallbackInApplication));
129 TEST(ESEnrolleeInit, ESEnrolleeInitNullPassword)
131 EXPECT_EQ(ES_ERROR, InitEasySetup(CT_ADAPTER_IP, ssid, 0, 0, EventCallbackInApplication));
134 TEST(ESEnrolleeInit, ESEnrolleeInitNullCb)
136 EXPECT_EQ(ES_ERROR, InitEasySetup(CT_ADAPTER_IP, ssid, passwd, 0, 0));
139 TEST(ESEnrolleeInit, ESEnrolleeInitEasySetupSuccess)
141 EXPECT_EQ(ES_OK, InitEasySetup(CT_ADAPTER_IP,
145 EventCallbackInApplication));
148 TEST(ESEnrolleeInit, ESEnrolleeBleOnboarding)
150 EXPECT_EQ(0, ESBleOnboarding());
153 TEST(ESEnrolleeInit, ESEnrolleeSoftapOnboarding)
155 EXPECT_EQ(true, ESSoftapOnboarding());
158 TEST(ESOCInit, ESOCInitNullIPAddr)
160 EXPECT_EQ(OC_STACK_OK, OCInit(0, 5683, OC_SERVER));
161 EXPECT_EQ(OC_STACK_OK, OCStop());
164 TEST(ESOCInit, ESOCInitNullPort)
166 EXPECT_EQ(OC_STACK_OK, OCInit("127.0.0.1", 0, OC_SERVER));
167 EXPECT_EQ(OC_STACK_OK, OCStop());
170 TEST(ESOCInit, ESOCInitNullAddrAndPort)
172 EXPECT_EQ(OC_STACK_OK, OCInit(0, 0, OC_SERVER));
173 EXPECT_EQ(OC_STACK_OK, OCStop());
176 TEST(ESOCInit, ESOCInitInvalidMode)
178 EXPECT_EQ(OC_STACK_ERROR, OCInit(0, 0, (OCMode)10));
179 EXPECT_EQ(OC_STACK_ERROR, OCStop());
182 TEST(ESProvisioning, ESInitProvisioning)
184 EXPECT_EQ(ES_RESOURCECREATED, InitProvisioning());
187 TEST(ESProvisioning, ESInitProvisioningWithOCStackClientMode)
189 EXPECT_EQ(OC_STACK_OK, OCInit(NULL, 0, OC_CLIENT));
190 EXPECT_EQ(ES_ERROR, InitProvisioning());
191 EXPECT_EQ(OC_STACK_OK, OCStop());
194 TEST(ESProvisioningResource, ESCreateProvisioningResourceSecurityDisabled)
196 EXPECT_EQ(OC_STACK_OK, OCInit(0, 0, OC_SERVER));
197 EXPECT_EQ(OC_STACK_OK, CreateProvisioningResource(0));
198 EXPECT_EQ(OC_STACK_OK, OCStop());
201 TEST(ESProvisioningResource, ESCreateProvisioningResourceSecurityEnabled)
203 EXPECT_EQ(OC_STACK_OK, OCInit(0, 0, OC_SERVER));
204 EXPECT_EQ(OC_STACK_OK, CreateProvisioningResource(1));
205 EXPECT_EQ(OC_STACK_OK, OCStop());
208 TEST(ESProvisioningResource, ESDeleteProvisioningResource)
210 EXPECT_EQ(OC_STACK_OK, OCInit(0, 0, OC_SERVER));
211 EXPECT_EQ(OC_STACK_OK, CreateProvisioningResource(0));
212 EXPECT_EQ(OC_STACK_OK, DeleteProvisioningResource());
213 EXPECT_EQ(OC_STACK_OK, OCStop());
216 TEST(ESProvisioningResource, ESDeleteProvisioningResourceWithoutCreating)
218 EXPECT_EQ(OC_STACK_OK, OCInit(0, 0, OC_SERVER));
219 EXPECT_EQ(OC_STACK_NO_RESOURCE, DeleteProvisioningResource());
220 EXPECT_EQ(OC_STACK_OK, OCStop());
223 TEST(ESOnboarding, ESOnboardingSoftAp)
225 EXPECT_EQ(1, ESOnboard(ssid, passwd, OnboardingCallback));
228 TEST(ESOnboarding, ESOnboardingSoftApEnrollee)
230 #ifdef ENROLLEE_SOFTAP
231 EXPECT_EQ(1, ESSoftapAtEnrollee());
232 EXPECT_EQ(0, ESSoftapAtMediator());
236 TEST(ESOnboarding, ESOnboardingSoftApMediator)
238 #ifndef ENROLLEE_SOFTAP
239 EXPECT_EQ(0, ESSoftapAtEnrollee());
240 EXPECT_EQ(1, ESSoftapAtMediator());
244 TEST(ESOnboarding, ESOnboardingSoftApHost)
246 #ifdef ENROLLEE_SOFTAP
247 EXPECT_EQ(ENROLLEE, ESSoftapHost());
249 EXPECT_EQ(MEDIATOR, ESSoftapHost());
253 TEST(ESStop, ESTerminateEasysetupWithoutESInit)
255 EXPECT_EQ(ES_ERROR, TerminateEasySetup());
258 TEST(ESStop, ESTerminateEasysetupWithoutOCStack)
260 EXPECT_EQ(ES_OK, InitEasySetup(CT_ADAPTER_IP,
264 EventCallbackInApplication));
265 EXPECT_EQ(ES_ERROR, TerminateEasySetup());
268 TEST(ESStop, ESTerminateEasysetupWithOutCreateProvisioningResource)
270 EXPECT_EQ(ES_OK, InitEasySetup(CT_ADAPTER_IP,
274 EventCallbackInApplication));
275 EXPECT_EQ(OC_STACK_OK, OCInit(0, 0, OC_SERVER));
276 EXPECT_EQ(ES_ERROR, TerminateEasySetup());
277 EXPECT_EQ(OC_STACK_OK, OCStop());
280 TEST(ESStop, ESTerminateEasysetupWithoutProviosioningResource)
282 EXPECT_EQ(ES_OK, InitEasySetup(CT_ADAPTER_IP,
286 EventCallbackInApplication));
287 EXPECT_EQ(OC_STACK_OK, OCInit(NULL, 0, OC_SERVER));
288 EXPECT_EQ(ES_ERROR, TerminateEasySetup());
289 EXPECT_EQ(OC_STACK_OK, OCStop());
292 TEST(ESStop, ESTerminateEasysetupSuccess)
294 EXPECT_EQ(ES_OK, InitEasySetup(CT_ADAPTER_IP,
298 EventCallbackInApplication));
299 EXPECT_EQ(OC_STACK_OK, OCInit(NULL, 0, OC_SERVER));
300 EXPECT_EQ(ES_RESOURCECREATED, InitProvisioning());
301 EXPECT_EQ(ES_OK, TerminateEasySetup());
302 EXPECT_EQ(OC_STACK_OK, OCStop());