summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJanusz Kozerski <j.kozerski@samsung.com>2015-09-11 16:45:09 +0200
committerJanusz Kozerski <j.kozerski@samsung.com>2015-09-14 09:24:22 +0200
commit7871c1f106e6c11503b4a2a6f7bbbd876d2ec1fc (patch)
tree318de358edf74ac189f89d95994362a8ee61f1f8 /tests
parent8fc0b8fc2a814035dc9cf8c7e211dc3a8f74d11b (diff)
downloadcert-checker-7871c1f106e6c11503b4a2a6f7bbbd876d2ec1fc.tar.gz
cert-checker-7871c1f106e6c11503b4a2a6f7bbbd876d2ec1fc.tar.bz2
cert-checker-7871c1f106e6c11503b4a2a6f7bbbd876d2ec1fc.zip
Add missing code for logic tests
Change-Id: Iaa411b52647f2348024b1e8d100d678f89a48c5f
Diffstat (limited to 'tests')
-rw-r--r--tests/CMakeLists.txt26
-rw-r--r--tests/logic_.cpp19
-rw-r--r--tests/logic_.h1
-rw-r--r--tests/stubs_.cpp130
4 files changed, 174 insertions, 2 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 62800da..ef836cd 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -54,6 +54,23 @@ SET(CERT_CHECKER_TESTS_SOURCES
${CERT_CHECKER_SRC_PATH}/db/sql_query.cpp
)
+SET(CERT_CHECKER_TESTS_LOGIC_SOURCES
+ # tests
+ ${CERT_CHECKER_TESTS_SRC_PATH}/main.cpp
+ ${CERT_CHECKER_TESTS_SRC_PATH}/colour_log_formatter.cpp
+ ${CERT_CHECKER_TESTS_SRC_PATH}/test_logic.cpp
+ ${CERT_CHECKER_TESTS_SRC_PATH}/logic_.cpp
+ ${CERT_CHECKER_TESTS_SRC_PATH}/stubs_.cpp
+ # cert-checker
+ ${CERT_CHECKER_SRC_PATH}/logic.cpp
+ ${CERT_CHECKER_SRC_PATH}/app.cpp
+ ${CERT_CHECKER_SRC_PATH}/queue.cpp
+ # logs
+ ${CERT_CHECKER_SRC_PATH}/log/log.cpp
+ # dpl
+ ${CERT_CHECKER_SRC_PATH}/dpl/core/src/colors.cpp
+)
+
SET(CERT_CHECKER_POPUP_TEST_SOURCES
# tests
${CERT_CHECKER_TESTS_SRC_PATH}/popup_test.cpp
@@ -73,6 +90,7 @@ INCLUDE_DIRECTORIES(SYSTEM
)
ADD_EXECUTABLE(${TARGET_CERT_CHECKER_TESTS} ${CERT_CHECKER_TESTS_SOURCES})
+ADD_EXECUTABLE(${TARGET_CERT_CHECKER_TESTS_LOGIC} ${CERT_CHECKER_TESTS_LOGIC_SOURCES})
ADD_EXECUTABLE(${TARGET_CERT_CHECKER_POPUP_TEST} ${CERT_CHECKER_POPUP_TEST_SOURCES})
TARGET_LINK_LIBRARIES(${TARGET_CERT_CHECKER_TESTS}
@@ -82,6 +100,13 @@ TARGET_LINK_LIBRARIES(${TARGET_CERT_CHECKER_TESTS}
-ldl
)
+TARGET_LINK_LIBRARIES(${TARGET_CERT_CHECKER_TESTS_LOGIC}
+ ${CERT_CHECKER_TESTS_DEP_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
+ boost_unit_test_framework
+ -ldl
+ )
+
TARGET_LINK_LIBRARIES(${TARGET_CERT_CHECKER_POPUP_TEST}
${CERT_CHECKER_TESTS_DEP_LIBRARIES}
-ldl
@@ -104,4 +129,5 @@ INSTALL(FILES
DESTINATION ${TEST_APP_SIGNATURES_DIR}/app4/)
INSTALL(TARGETS ${TARGET_CERT_CHECKER_TESTS} DESTINATION ${BINDIR})
+INSTALL(TARGETS ${TARGET_CERT_CHECKER_TESTS_LOGIC} DESTINATION ${BINDIR})
INSTALL(TARGETS ${TARGET_CERT_CHECKER_POPUP_TEST} DESTINATION ${BINDIR})
diff --git a/tests/logic_.cpp b/tests/logic_.cpp
index 17dc0bb..0259bd6 100644
--- a/tests/logic_.cpp
+++ b/tests/logic_.cpp
@@ -44,8 +44,23 @@ Logic_::~Logic_(void)
{
clean();
}
-
-// For tests only
+void Logic_::clean(void)
+{
+ LogDebug("Cert-checker cleaning.");
+
+ // wait and join processing thread
+ if (m_thread.joinable()) {
+ LogDebug("Waiting for join processing thread");
+ {
+ std::lock_guard < std::mutex > lock(m_mutex_cv);
+ set_should_exit();
+ m_to_process.notify_one();
+ }
+ m_thread.join();
+ LogDebug("Processing thread joined");
+ } else
+ LogDebug("No thread to join");
+}
void Logic_::connman_callback_manual_(bool state)
{
diff --git a/tests/logic_.h b/tests/logic_.h
index 29f0e37..45ed559 100644
--- a/tests/logic_.h
+++ b/tests/logic_.h
@@ -36,6 +36,7 @@ class Logic_ : public Logic {
public:
Logic_(void);
virtual ~Logic_(void);
+ virtual void clean(void);
// For tests only
void connman_callback_manual_(bool state);
diff --git a/tests/stubs_.cpp b/tests/stubs_.cpp
new file mode 100644
index 0000000..b475690
--- /dev/null
+++ b/tests/stubs_.cpp
@@ -0,0 +1,130 @@
+/*
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * @file stubs_.cpp
+ * @author Janusz Kozerski (j.kozerski@samsung.com)
+ * @version 1.0
+ * @brief Implementation of stubbed functions for testing
+ */
+
+#include <cchecker/certs.h>
+#include <cchecker/queue.h>
+#include <cchecker/sql_query.h>
+#include <cchecker/UIBackend.h>
+
+namespace CCHECKER {
+
+// Certs
+
+Certs::Certs()
+{}
+
+Certs::~Certs()
+{}
+
+void Certs::get_certificates (app_t &app, ocsp_urls_t &ocsp_urls)
+{
+ (void)app;
+ (void)ocsp_urls;
+}
+
+// Only the public functions need to be stubbed for testing all possibilities
+Certs::ocsp_response_t Certs::check_ocsp (const app_t &app)
+{
+ if (app.signatures.empty())
+ return ocsp_response_t::OCSP_APP_OK;
+
+ if (app.signatures.front().empty())
+ return ocsp_response_t::OCSP_APP_OK;
+
+ std::string ret = app.signatures.front().front();
+
+ if ("OCSP_APP_REVOKED" == ret)
+ return ocsp_response_t::OCSP_APP_REVOKED;
+ if ("OCSP_CHECK_AGAIN" == ret)
+ return ocsp_response_t::OCSP_CHECK_AGAIN;
+ if ("OCSP_CERT_ERROR" == ret)
+ return ocsp_response_t::OCSP_CERT_ERROR;
+
+ return ocsp_response_t::OCSP_APP_OK;
+}
+
+// DB
+DB::SqlQuery::SqlQuery(const std::string &path)
+{
+ m_connection = NULL;
+ m_inUserTransaction = false;
+
+ (void)path;
+}
+
+DB::SqlQuery::~SqlQuery()
+{}
+
+bool DB::SqlQuery::get_url(const std::string &issuer, std::string &url)
+{
+ (void)issuer;
+ (void)url;
+ return false;
+}
+
+void DB::SqlQuery::set_url(const std::string &issuer, const std::string &url, const int64_t &date)
+{
+ (void)issuer;
+ (void)url;
+ (void)date;
+}
+
+bool DB::SqlQuery::add_app_to_check_list(const app_t &app)
+{
+ (void)app;
+ return true; // Success
+}
+
+void DB::SqlQuery::remove_app_from_check_list(const app_t &app)
+{
+ (void)app;
+}
+
+void DB::SqlQuery::mark_as_verified(const app_t &app, const app_t::verified_t &verified)
+{
+ (void)app;
+ (void)verified;
+}
+
+void DB::SqlQuery::get_app_list(std::list<app_t> &apps_buffer)
+{
+ (void)apps_buffer;
+}
+
+// UI
+UI::UIBackend::UIBackend(int timeout) :
+ m_notification(nullptr),
+ m_responseTimeout(timeout)
+{}
+
+UI::UIBackend::~UIBackend()
+{}
+
+bool UI::UIBackend::call_popup(const app_t &app)
+{
+ if (app.uid > 5000)
+ return true;
+
+ return false;
+}
+
+} //CCHECKER