From 93c28737dcb719510752086eb5f7d0badad1aad1 Mon Sep 17 00:00:00 2001 From: Ravi Nanjundappa Date: Tue, 11 Aug 2015 11:29:01 +0530 Subject: [PATCH] Add unittests for ConstructResourceTest for invalid uri value Added a test case for ConstructResourceTest to simulate the scenario of Resource creation with uri having just "/" as its value. Change-Id: Ifdc128fc505a862ff4dedcbeff60896c25e1d029 Signed-off-by: Ravi Nanjundappa Reviewed-on: https://gerrit.iotivity.org/gerrit/2157 Tested-by: jenkins-iotivity Reviewed-by: Erich Keane --- resource/src/OCResource.cpp | 6 ++++++ resource/unittests/OCResourceTest.cpp | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/resource/src/OCResource.cpp b/resource/src/OCResource.cpp index a06d1fa..1350a40 100644 --- a/resource/src/OCResource.cpp +++ b/resource/src/OCResource.cpp @@ -81,6 +81,12 @@ OCResource::OCResource(std::weak_ptr clientWrapper, interfaces.empty(), m_clientWrapper.expired(), false, false); } + if (uri.length() == 1 && uri[0] == '/') + { + throw ResourceInitException(m_uri.empty(), resourceTypes.empty(), + interfaces.empty(), m_clientWrapper.expired(), false, false); + } + // construct the devAddr from the pieces we have m_devAddr.adapter = static_cast(connectivityType >> CT_ADAPTER_SHIFT); m_devAddr.flags = static_cast(connectivityType & CT_MASK_FLAGS); diff --git a/resource/unittests/OCResourceTest.cpp b/resource/unittests/OCResourceTest.cpp index dda67ac..ca09937 100644 --- a/resource/unittests/OCResourceTest.cpp +++ b/resource/unittests/OCResourceTest.cpp @@ -86,6 +86,11 @@ namespace OCResourceTest EXPECT_ANY_THROW(ConstructResourceObject("coap://:5000", "/resource")); } + TEST(ConstructResourceTest, ConstructResourceObjectInvalidUri) + { + EXPECT_ANY_THROW(ConstructResourceObject("coap://192.168.1.2:5000", "/")); + } + TEST(ResourceGetTest, DISABLED_ResourceGetForValidUri) { OCResource::Ptr resource = ConstructResourceObject("coap://192.168.1.2:5000", "/resource"); -- 2.7.4