X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fcsdk%2Fconnectivity%2Ftest%2Fca_api_unittest.cpp;h=100beac9563cef5875cb49cf1e007da16eabdc22;hb=c315c87e07c4080ecd0ef488e7a1047bc3c509b2;hp=433cf8cf9b637b2592b88530f1b802d9ce69cf5d;hpb=134d702757cb17c888a6700ebd93bfc00a92f02e;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/csdk/connectivity/test/ca_api_unittest.cpp b/resource/csdk/connectivity/test/ca_api_unittest.cpp index 433cf8c..100beac 100644 --- a/resource/csdk/connectivity/test/ca_api_unittest.cpp +++ b/resource/csdk/connectivity/test/ca_api_unittest.cpp @@ -18,16 +18,21 @@ * ******************************************************************/ +#include "platform_features.h" #include "gtest/gtest.h" #include "cainterface.h" +#include "cautilinterface.h" #include "cacommon.h" +#include "oic_string.h" +#include "oic_malloc.h" #define CA_TRANSPORT_ADAPTER_SCOPE 1000 class CATests : public testing::Test { protected: - virtual void SetUp() { - CAInitialize(); + virtual void SetUp() + { + CAInitialize(CA_ADAPTER_IP); } virtual void TearDown() @@ -39,7 +44,8 @@ class CATests : public testing::Test { void request_handler(CAEndpoint_t* object, CARequestInfo_t* requestInfo); void response_handler(CAEndpoint_t* object, CAResponseInfo_t* responseInfo); void error_handler(const CAEndpoint_t *object, const CAErrorInfo_t* errorInfo); -CAResult_t checkGetNetworkInfo(); +void adapter_handler(CATransportAdapter_t adapter, bool enabled); +void connection_handler(CATransportAdapter_t adapter, const char *remote_address, bool connected); CAResult_t checkSelectNetwork(); void request_handler(const CAEndpoint_t * /*object*/, @@ -65,6 +71,16 @@ void error_handler(const CAEndpoint_t *object, const CAErrorInfo_t* errorInfo) return; } +void adapter_handler(CATransportAdapter_t /*adapter*/, + bool /*enabled*/) +{ +} + +void connection_handler(const CAEndpoint_t * /*endpoint*/, + bool /*connected*/) +{ +} + static char* addr = NULL; static CAEndpoint_t* tempRep = NULL; static CARequestInfo_t requestInfo; @@ -145,17 +161,10 @@ int32_t CAGetDtlsPskCredentials( CADtlsPskCredType_t type, } #endif //__WITH_DTLS__ -int main(int argc, char **argv) -{ - testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} - // CAInitialize TC -// check return value -TEST(InitializeTest, TC_01_Positive_01) +TEST(InitializeTest, CAInitializeTest) { - EXPECT_EQ(CA_STATUS_OK, CAInitialize()); + EXPECT_EQ(CA_STATUS_OK, CAInitialize(CA_ADAPTER_IP)); CATerminate(); } @@ -167,25 +176,36 @@ TEST_F(CATests, TerminateTest) char* check = (char *) "terminate success"; EXPECT_STREQ(check, "terminate success"); - CAInitialize(); + CAInitialize(CA_ADAPTER_IP); } + +// CAStartListeningServer TC +TEST_F(CATests, StartListeningServerTestWithNonSelect) +{ + EXPECT_EQ(CA_STATUS_FAILED, CAStartListeningServer()); +} + // CAStartListeningServer TC -// check return value -TEST(StartListeningServerTest, DISABLED_TC_03_Positive_01) +TEST_F(CATests, StartListeningServerTest) { - CASelectNetwork(CA_ADAPTER_IP); + EXPECT_EQ(CA_STATUS_OK, CASelectNetwork(CA_ADAPTER_IP)); EXPECT_EQ(CA_STATUS_OK, CAStartListeningServer()); } -// CAStartDiscoveryServer TC -// check return value -TEST(StartDiscoveryServerTest, DISABLED_TC_04_Positive_01) +// CAStopListeningServer TC +TEST_F(CATests, CAStopListeningServerTestWithNonSelect) { - EXPECT_EQ(CA_STATUS_OK, CAStartDiscoveryServer()); + EXPECT_EQ(CA_STATUS_FAILED, CAStopListeningServer()); +} + +// CAStopListeningServer TC +TEST_F(CATests, CAStopListeningServerTest) +{ + EXPECT_EQ(CA_STATUS_OK, CASelectNetwork(CA_ADAPTER_IP)); + EXPECT_EQ(CA_STATUS_OK, CAStopListeningServer()); } // CARegisterHandlerTest TC -// check return value TEST_F(CATests, RegisterHandlerTest) { CARegisterHandler(request_handler, response_handler, error_handler); @@ -194,7 +214,6 @@ TEST_F(CATests, RegisterHandlerTest) } // CACreateRemoteEndpoint TC -// check return value TEST_F(CATests, CreateRemoteEndpointTestGood) { addr = (char *) ADDRESS; @@ -202,11 +221,8 @@ TEST_F(CATests, CreateRemoteEndpointTestGood) EXPECT_EQ(CA_STATUS_OK, CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, addr, PORT, &tempRep)); - if (tempRep != NULL) - { - CADestroyEndpoint(tempRep); - tempRep = NULL; - } + CADestroyEndpoint(tempRep); + tempRep = NULL; } // check remoteEndpoint and values of remoteEndpoint @@ -218,15 +234,11 @@ TEST_F(CATests, CreateRemoteEndpointTestValues) EXPECT_TRUE(tempRep != NULL); - if (tempRep != NULL) - { - CADestroyEndpoint(tempRep); - tempRep = NULL; - } + CADestroyEndpoint(tempRep); + tempRep = NULL; } // CAGerateToken TC -// check return value TEST_F(CATests, GenerateTokenTestGood) { EXPECT_EQ(CA_STATUS_OK, CAGenerateToken(&tempToken, tokenLength)); @@ -251,8 +263,32 @@ TEST_F(CATests, DestroyTokenTest) EXPECT_STREQ(check, "destroy success"); } +TEST_F(CATests, SendRequestTestWithInvalidAddress) +{ + CARegisterHandler(request_handler, response_handler, error_handler); + + EXPECT_EQ(CA_STATUS_OK, CASelectNetwork(CA_ADAPTER_IP)); + CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, "10.11.13.13.14", PORT, &tempRep); + + memset(&requestData, 0, sizeof(CAInfo_t)); + CAGenerateToken(&tempToken, tokenLength); + requestData.token = tempToken; + requestData.tokenLength = tokenLength; + requestData.type = CA_MSG_CONFIRM; + + memset(&requestInfo, 0, sizeof(CARequestInfo_t)); + requestInfo.method = CA_GET; + requestInfo.info = requestData; + + EXPECT_EQ(CA_STATUS_OK, CASendRequest(tempRep, &requestInfo)); + + CADestroyToken(tempToken); + CADestroyEndpoint(tempRep); + free(requestData.payload); + tempRep = NULL; +} + // CASendRequest TC -// check return value TEST(SendRequestTest, DISABLED_TC_16_Positive_01) { addr = (char *) ADDRESS; @@ -263,7 +299,7 @@ TEST(SendRequestTest, DISABLED_TC_16_Positive_01) requestData.token = tempToken; requestData.tokenLength = tokenLength; - int length = strlen(NORMAL_INFO_DATA) + strlen("a/light"); + size_t length = strlen(NORMAL_INFO_DATA) + strlen("a/light"); requestData.payload = (CAPayload_t) calloc(length, sizeof(char)); if(!requestData.payload) { @@ -281,12 +317,9 @@ TEST(SendRequestTest, DISABLED_TC_16_Positive_01) EXPECT_EQ(CA_STATUS_OK, CASendRequest(tempRep, &requestInfo)); CADestroyToken(tempToken); - - free(requestData.payload); - CADestroyEndpoint(tempRep); + free(requestData.payload); tempRep = NULL; - } // check return value when a NULL is passed instead of a valid CARequestInfo_t address @@ -297,15 +330,45 @@ TEST_F(CATests, SendRequestTestWithNullAddr) EXPECT_EQ(CA_STATUS_INVALID_PARAM, CASendRequest(tempRep, NULL)); - if (tempRep != NULL) + CADestroyEndpoint(tempRep); + tempRep = NULL; +} + +TEST_F(CATests, SendResponseTestWithInvalidCode) +{ + EXPECT_EQ(CA_STATUS_OK, CASelectNetwork(CA_ADAPTER_IP)); + + addr = (char *) ADDRESS; + CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, addr, PORT, &tempRep); + + memset(&responseData, 0, sizeof(CAInfo_t)); + responseData.type = CA_MSG_RESET; + responseData.messageId = 1; + responseData.payload = (CAPayload_t)OICMalloc(sizeof("response payload")); + responseData.dataType = CA_RESPONSE_DATA; + + EXPECT_TRUE(responseData.payload != NULL); + + if (responseData.payload) { + CAGenerateToken(&tempToken, tokenLength); + requestData.token = tempToken; + requestData.tokenLength = tokenLength; + + memset(&responseInfo, 0, sizeof(CAResponseInfo_t)); + responseInfo.result = CA_CONTENT; + responseInfo.info = responseData; + + EXPECT_EQ(CA_STATUS_OK, CASendResponse(tempRep, &responseInfo)); + + CADestroyToken(tempToken); CADestroyEndpoint(tempRep); + OICFree(responseData.payload); tempRep = NULL; } } // CASendResponse TC -// check return value TEST(SendResponseTest, DISABLED_TC_19_Positive_01) { addr = (char *) ADDRESS; @@ -315,6 +378,7 @@ TEST(SendResponseTest, DISABLED_TC_19_Positive_01) responseData.type = CA_MSG_NONCONFIRM; responseData.messageId = 1; responseData.payload = (CAPayload_t)malloc(sizeof("response payload")); + responseData.dataType = CA_RESPONSE_DATA; EXPECT_TRUE(responseData.payload != NULL); if(!responseData.payload) @@ -352,6 +416,7 @@ TEST(SendResponseTest, DISABLED_TC_20_Negative_01) responseData.type = CA_MSG_NONCONFIRM; responseData.messageId = 1; responseData.payload = (CAPayload_t)malloc(sizeof("response payload")); + responseData.dataType = CA_RESPONSE_DATA; EXPECT_TRUE(responseData.payload != NULL); if(!responseData.payload) @@ -374,12 +439,9 @@ TEST(SendResponseTest, DISABLED_TC_20_Negative_01) EXPECT_EQ(CA_STATUS_OK, CASendResponse(tempRep, &responseInfo)); CADestroyToken(tempToken); - if (tempRep != NULL) - { - CADestroyEndpoint(tempRep); - tempRep = NULL; - } + CADestroyEndpoint(tempRep); free (responseData.payload); + tempRep = NULL; } // check return value NULL is passed instead of a valid CAResponseInfo_t address @@ -390,59 +452,14 @@ TEST_F(CATests, SendResponseTest) EXPECT_EQ(CA_STATUS_INVALID_PARAM, CASendResponse(tempRep, NULL)); - if (tempRep != NULL) - { - CADestroyEndpoint(tempRep); - tempRep = NULL; - } -} - -// CASendNotification TC -// check return value -TEST(SendNotificationTest, DISABLED_TC_22_Positive_01) -{ - addr = (char *) ADDRESS; - CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, addr, PORT, &tempRep); - - memset(&responseData, 0, sizeof(CAInfo_t)); - responseData.type = CA_MSG_NONCONFIRM; - responseData.payload = (CAPayload_t)malloc(sizeof("Temp Notification Data")); - - EXPECT_TRUE(responseData.payload != NULL); - if(!responseData.payload) - { - CADestroyEndpoint(tempRep); - return; - } - - memcpy(responseData.payload, "Temp Notification Data", sizeof("Temp Notification Data")); - responseData.payloadSize = sizeof("Temp Notification Data"); - - CAGenerateToken(&tempToken, tokenLength); - requestData.token = tempToken; - requestData.tokenLength = tokenLength; - - memset(&responseInfo, 0, sizeof(CAResponseInfo_t)); - responseInfo.result = CA_CONTENT; - responseInfo.info = responseData; - - EXPECT_EQ(CA_STATUS_OK, CASendNotification(tempRep, &responseInfo)); - - CADestroyToken(tempToken); - if (tempRep != NULL) - { - CADestroyEndpoint(tempRep); - tempRep = NULL; - } - free(responseData.payload); + CADestroyEndpoint(tempRep); + tempRep = NULL; } // CASelectNewwork TC -// check return value TEST_F(CATests, SelectNetworkTestGood) { - CAResult_t res = checkSelectNetwork(); - EXPECT_EQ(CA_STATUS_OK, res); + EXPECT_EQ(CA_STATUS_OK, checkSelectNetwork()); } CAResult_t checkSelectNetwork() @@ -480,42 +497,101 @@ TEST_F(CATests, UnSelectNetworkTest) } // CAHandlerRequestResponse TC -// check return value TEST_F(CATests, HandlerRequestResponseTest) { EXPECT_EQ(CA_STATUS_OK, CAHandleRequestResponse()); } // CAGetNetworkInformation TC -// check return value -TEST_F (CATests, GetNetworkInformationTestGood) +TEST_F (CATests, GetNetworkInformationTest) { - EXPECT_EQ(CA_STATUS_OK, checkGetNetworkInfo()); + uint32_t tempSize = 0; + CAEndpoint_t *tempInfo = NULL; + + EXPECT_EQ(CA_STATUS_OK, CASelectNetwork(CA_ADAPTER_IP)); + EXPECT_EQ(CA_STATUS_OK, CAGetNetworkInformation(&tempInfo, &tempSize)); + +// @todo: if this api is supported on windows platform, it should be changed. +#if !defined(_WIN32) + for (uint32_t index = 0; index < tempSize; index++) + { + EXPECT_TRUE(tempInfo[index].adapter != 0); + EXPECT_TRUE(strlen(tempInfo[index].addr) != 0); + } +#endif + + free(tempInfo); } TEST_F(CATests, RegisterDTLSCredentialsHandlerTest) { #ifdef __WITH_DTLS__ - EXPECT_EQ(CA_STATUS_OK, CARegisterDTLSCredentialsHandler(CAGetDtlsPskCredentials)); + EXPECT_EQ(CA_STATUS_OK, CAregisterPskCredentialsHandler(CAGetDtlsPskCredentials)); #endif } -CAResult_t checkGetNetworkInfo() +// CARegisterNetworkMonitorHandler TC +TEST_F(CATests, RegisterNetworkMonitorHandler) { - CAEndpoint_t *tempInfo = NULL; - uint32_t tempSize = 0; + EXPECT_EQ(CA_STATUS_OK, CARegisterNetworkMonitorHandler(adapter_handler, + connection_handler)); +} - CAResult_t res = CAGetNetworkInformation(&tempInfo, &tempSize); +// CASetAutoConnectionDeviceInfo TC +TEST_F(CATests, SetAutoConnectionDeviceInfo) +{ + addr = (char *) ADDRESS; - free(tempInfo); +#if defined(__ANDROID__) && defined(LE_ADAPTER) + EXPECT_EQ(CA_STATUS_OK, CASetAutoConnectionDeviceInfo(addr)); +#else + EXPECT_EQ(CA_NOT_SUPPORTED, CASetAutoConnectionDeviceInfo(addr)); +#endif +} - if (CA_STATUS_OK == res || CA_ADAPTER_NOT_ENABLED == res || - CA_NOT_SUPPORTED == res) - { - return CA_STATUS_OK; - } - else - { - return CA_STATUS_FAILED; - } +// CAUnsetAutoConnectionDeviceInfo TC +TEST_F(CATests, UnsetAutoConnectionDeviceInfo) +{ + addr = (char *) ADDRESS; + +#if defined(__ANDROID__) && defined(LE_ADAPTER) + EXPECT_EQ(CA_STATUS_OK, CAUnsetAutoConnectionDeviceInfo(addr)); +#else + EXPECT_EQ(CA_NOT_SUPPORTED, CAUnsetAutoConnectionDeviceInfo(addr)); +#endif +} + +TEST(CASetPortNumberTest, CASetPortNumberToAssign) +{ + EXPECT_EQ(CA_STATUS_OK, CASetPortNumberToAssign(CA_ADAPTER_IP, CA_IPV4, 5683)); + EXPECT_EQ(CA_STATUS_OK, CASetPortNumberToAssign(CA_ADAPTER_IP, CA_IPV6, 5683)); + EXPECT_EQ(CA_STATUS_OK, + CASetPortNumberToAssign(CA_ADAPTER_IP, + static_cast(CA_IPV4|CA_SECURE), 5683)); + EXPECT_EQ(CA_STATUS_OK, + CASetPortNumberToAssign(CA_ADAPTER_IP, + static_cast(CA_IPV6|CA_SECURE), 5683)); + +#ifdef TCP_ADAPTER + EXPECT_EQ(CA_STATUS_OK, CASetPortNumberToAssign(CA_ADAPTER_TCP, CA_IPV4, 5683)); + EXPECT_EQ(CA_STATUS_OK, CASetPortNumberToAssign(CA_ADAPTER_TCP, CA_IPV6, 5683)); +#endif +} + +TEST(CAGetPortNumberTest, CAGetPortNumberToAssign) +{ + ASSERT_EQ(static_cast(0), + CAGetAssignedPortNumber(CA_ADAPTER_IP, CA_IPV4)); + ASSERT_EQ(static_cast(0), + CAGetAssignedPortNumber(CA_ADAPTER_IP, CA_IPV6)); + ASSERT_EQ(static_cast(0), + CAGetAssignedPortNumber(CA_ADAPTER_IP, + static_cast(CA_IPV4|CA_SECURE))); + ASSERT_EQ(static_cast(0), + CAGetAssignedPortNumber(CA_ADAPTER_IP, + static_cast(CA_IPV6|CA_SECURE))); +#ifdef TCP_ADAPTER + ASSERT_EQ(static_cast(0), CAGetAssignedPortNumber(CA_ADAPTER_TCP, CA_IPV4)); + ASSERT_EQ(static_cast(0), CAGetAssignedPortNumber(CA_ADAPTER_TCP, CA_IPV6)); +#endif }