1 /* *****************************************************************
3 * Copyright 2015 Samsung Electronics All Rights Reserved.
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 * *****************************************************************/
22 #include <oic_malloc.h>
24 #include <OCPlatform_impl.h>
25 #include <oxmjustworks.h>
26 #include <oxmrandompin.h>
27 #include <OCProvisioningManager.h>
28 #include <gtest/gtest.h>
32 namespace OCProvisioningTest
36 void resultCallback(PMResultList_t *result, int hasError)
42 TEST(ProvisionInitTest, TestWithEmptyPath)
44 std::string dbPath("");
45 EXPECT_EQ(OC_STACK_OK, OCSecure::provisionInit(dbPath));
48 TEST(ProvisionInitTest, TestValidPath)
50 std::string dbPath("./dbPath");
51 EXPECT_EQ(OC_STACK_OK, OCSecure::provisionInit(dbPath));
54 TEST(DiscoveryTest, SecureResource)
57 EXPECT_EQ(OC_STACK_OK, OCSecure::discoverSecureResource(TIMEOUT, "", CT_DEFAULT, list));
60 TEST(DiscoveryTest, SecureResourceZeroTimeout)
63 EXPECT_EQ(OC_STACK_INVALID_PARAM, OCSecure::discoverSecureResource(0, "", CT_DEFAULT, list));
66 TEST(DiscoveryTest, UnownedDevices)
69 EXPECT_EQ(OC_STACK_OK, OCSecure::discoverUnownedDevices(TIMEOUT, list));
72 TEST(DiscoveryTest, UnownedDevicesZeroTimeout)
75 EXPECT_EQ(OC_STACK_INVALID_PARAM, OCSecure::discoverUnownedDevices(0, list));
78 TEST(DiscoveryTest, OwnedDevices)
81 EXPECT_EQ(OC_STACK_OK, OCSecure::discoverOwnedDevices(TIMEOUT, list));
84 TEST(DiscoveryTest, OwnedDevicesZeroTimeout)
87 EXPECT_EQ(OC_STACK_INVALID_PARAM, OCSecure::discoverOwnedDevices(0, list));
90 TEST(OwnershipTest, SetOwnershipTransferCBDataNull)
92 EXPECT_EQ(OC_STACK_INVALID_PARAM, OCSecure::setOwnerTransferCallbackData(
93 OIC_JUST_WORKS, NULL, NULL));
96 TEST(OwnershipTest, SetOwnershipTransferCBData)
98 OTMCallbackData_t justWorksCBData;
99 justWorksCBData.loadSecretCB = LoadSecretJustWorksCallback;
100 justWorksCBData.createSecureSessionCB = CreateSecureSessionJustWorksCallback;
101 justWorksCBData.createSelectOxmPayloadCB = CreateJustWorksSelectOxmPayload;
102 justWorksCBData.createOwnerTransferPayloadCB = CreateJustWorksOwnerTransferPayload;
103 EXPECT_EQ(OC_STACK_OK, OCSecure::setOwnerTransferCallbackData(OIC_JUST_WORKS,
104 &justWorksCBData, NULL));
107 TEST(OwnershipTest, SetOwnershipTransferCBDataInvalidType)
109 OTMCallbackData_t justWorksCBData;
110 justWorksCBData.loadSecretCB = LoadSecretJustWorksCallback;
111 justWorksCBData.createSecureSessionCB = CreateSecureSessionJustWorksCallback;
112 justWorksCBData.createSelectOxmPayloadCB = CreateJustWorksSelectOxmPayload;
113 justWorksCBData.createOwnerTransferPayloadCB = CreateJustWorksOwnerTransferPayload;
114 EXPECT_EQ(OC_STACK_INVALID_PARAM, OCSecure::setOwnerTransferCallbackData(OIC_OXM_COUNT,
115 &justWorksCBData, NULL));
118 TEST(OwnershipTest, SetOwnershipTransferCBDataNullInputPin)
120 OTMCallbackData_t pinBasedCBData;
121 pinBasedCBData.loadSecretCB = InputPinCodeCallback;
122 pinBasedCBData.createSecureSessionCB = CreateSecureSessionRandomPinCallback;
123 pinBasedCBData.createSelectOxmPayloadCB = CreatePinBasedSelectOxmPayload;
124 pinBasedCBData.createOwnerTransferPayloadCB = CreatePinBasedOwnerTransferPayload;
125 OTMSetOwnershipTransferCallbackData(OIC_RANDOM_DEVICE_PIN, &pinBasedCBData);
127 EXPECT_EQ(OC_STACK_INVALID_PARAM, OCSecure::setOwnerTransferCallbackData(
128 OIC_RANDOM_DEVICE_PIN, &pinBasedCBData, NULL));
131 TEST(OwnershipTest, OwnershipTransferNullCallback)
133 OCSecureResource device;
134 EXPECT_EQ(OC_STACK_INVALID_CALLBACK, device.doOwnershipTransfer(nullptr));
137 TEST(DeviceInfoTest, DevInfoFromNetwork)
139 DeviceList_t owned, unowned;
140 EXPECT_EQ(OC_STACK_OK, OCSecure::getDevInfoFromNetwork(TIMEOUT,
144 TEST(SetDisplayPinCBTest, SetDisplayPinCBTestNullCB)
146 EXPECT_EQ(OC_STACK_INVALID_PARAM, OCSecure::setDisplayPinCB(nullptr));
149 TEST(ProvisionAclTest, ProvisionAclTestNullAcl)
151 OCSecureResource device;
152 EXPECT_EQ(OC_STACK_INVALID_PARAM, device.provisionACL(nullptr, resultCallback));
155 TEST(ProvisionAclTest, ProvisionAclTestNullCallback)
157 OCSecureResource device;
158 OicSecAcl_t *acl = (OicSecAcl_t *)OICCalloc(1,sizeof(OicSecAcl_t));
159 EXPECT_EQ(OC_STACK_INVALID_CALLBACK, device.provisionACL(acl, nullptr));
163 TEST(ProvisionAclTest, ProvisionAclTestNullCallbackNUllAcl)
165 OCSecureResource device;
166 EXPECT_EQ(OC_STACK_INVALID_PARAM, device.provisionACL(nullptr, nullptr));
169 TEST(ProvisionCredTest, ProvisionCredTestNullCallback)
171 OCSecureResource device, dev2;
173 EXPECT_EQ(OC_STACK_INVALID_CALLBACK, device.provisionCredentials(cred, dev2, nullptr));
176 TEST(ProvisionPairwiseTest, ProvisionPairwiseTestNullCallback)
178 OCSecureResource device, dev2;
180 OicSecAcl_t *acl1 = (OicSecAcl_t *)OICCalloc(1,sizeof(OicSecAcl_t));
181 OicSecAcl_t *acl2 = (OicSecAcl_t *)OICCalloc(1,sizeof(OicSecAcl_t));
182 EXPECT_EQ(OC_STACK_INVALID_CALLBACK, device.provisionPairwiseDevices(cred, acl1,
183 dev2, acl2, nullptr));
188 TEST(ProvisionDirectPairingTest, ProvisionDirectPairingTestNullPconf)
190 OCSecureResource device;
191 EXPECT_EQ(OC_STACK_INVALID_PARAM, device.provisionDirectPairing(nullptr, resultCallback));
194 TEST(ProvisionDirectPairingTest, ProvisionDirectPairingTestNullCallback)
196 OCSecureResource device;
197 OicSecPconf_t *pconf = (OicSecPconf_t *)OICCalloc(1,sizeof(OicSecPconf_t));
198 EXPECT_EQ(OC_STACK_INVALID_CALLBACK, device.provisionDirectPairing(pconf, nullptr));
202 TEST(ProvisionDirectPairingTest, ProvisionDirectPairingTestNullCallbackNUllPconf)
204 OCSecureResource device;
205 EXPECT_EQ(OC_STACK_INVALID_PARAM, device.provisionDirectPairing(nullptr, nullptr));