Add some unit tests
authorSangyoon Jang <jeremy.jang@samsung.com>
Mon, 11 May 2020 10:39:53 +0000 (19:39 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Mon, 25 May 2020 04:28:15 +0000 (13:28 +0900)
Change-Id: Ic20ab807a3c1525f42c2e6af93d4aec7c3f9201e
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
packaging/tizen-theme-manager.spec
src/unit_tests/CMakeLists.txt
src/unit_tests/test_theme_info.cc
src/unit_tests/test_theme_info_proxy.cc [new file with mode: 0644]

index 6a3d82b..dd61738 100644 (file)
@@ -47,6 +47,7 @@ find . -name '*.gcno' -exec cp '{}' gcov-obj ';'
 %endif
 
 %check
+export LD_LIBRARY_PATH=../theme:../theme_provider
 ctest -V
 %if 0%{?gcov:1}
 lcov -c --ignore-errors graph --no-external -q -d . -o tizen-theme-manager.info
index 43d5d08..112f418 100644 (file)
@@ -1,10 +1,6 @@
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../theme/laoder)
-
 AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} UNIT_TESTS_SRCS)
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../theme/loader THEME_LOADER_SOURCES)
 ADD_EXECUTABLE(${TARGET_TIZEN_THEME_UNIT_TEST}
   ${UNIT_TESTS_SRCS}
-  ${THEME_LOADER_SOURCES}
 )
 TARGET_INCLUDE_DIRECTORIES(${TARGET_TIZEN_THEME_UNIT_TEST} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../")
 
@@ -13,7 +9,7 @@ APPLY_PKG_CONFIG(${TARGET_TIZEN_THEME_UNIT_TEST} PUBLIC
   BUNDLE_DEPS
 )
 
-#TARGET_LINK_LIBRARIES(${TARGET_TIZEN_THEME_UNIT_TEST} PRIVATE ${TARGET_TIZEN_THEME})
+TARGET_LINK_LIBRARIES(${TARGET_TIZEN_THEME_UNIT_TEST} PUBLIC ${TARGET_TIZEN_THEME} ${TARGET_TIZEN_THEME_PROVIDER})
 SET_TARGET_PROPERTIES(${TARGET_TIZEN_THEME_UNIT_TEST} PROPERTIES COMPILE_FLAGS "-fPIE")
 SET_TARGET_PROPERTIES(${TARGET_TIZEN_THEME_UNIT_TEST} PROPERTIES LINK_FLAGS "-pie")
 
index d0ae56a..bff08e1 100644 (file)
@@ -84,3 +84,17 @@ TEST_F(ThemeInfoTest, ThemeInfo_GetDescription) {
 
   EXPECT_EQ(info.GetDescription(), "test");
 }
+
+TEST_F(ThemeInfoTest, ThemeInfo_Serialize) {
+  ThemeInfo info("testid", "1.0", "1.1", "Test", "360X360",
+      "shared/res/preview.png", "test");
+
+  tizen_base::Bundle b = info.Serialize();
+  EXPECT_EQ(b.GetString("id"), "testid");
+  EXPECT_EQ(b.GetString("version"), "1.0");
+  EXPECT_EQ(b.GetString("tool_version"), "1.1");
+  EXPECT_EQ(b.GetString("title"), "Test");
+  EXPECT_EQ(b.GetString("resolution"), "360X360");
+  EXPECT_EQ(b.GetString("preview"), "shared/res/preview.png");
+  EXPECT_EQ(b.GetString("description"), "test");
+}
diff --git a/src/unit_tests/test_theme_info_proxy.cc b/src/unit_tests/test_theme_info_proxy.cc
new file mode 100644 (file)
index 0000000..c472ad5
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ *
+ * 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.
+ */
+
+#include <gtest/gtest.h>
+
+#include <memory>
+
+#include "theme_provider/theme_info_proxy.h"
+
+using ttm::loader::ThemeInfo;
+using ttm::provider::ThemeInfoProxy;
+
+class ThemeInfoProxyTest : public testing::Test {
+ public:
+  virtual ~ThemeInfoProxyTest() {}
+
+  virtual void SetUp() {
+    proxy_.reset(new ThemeInfoProxy("test.db"));
+  }
+
+  virtual void TearDown() {
+  }
+
+  std::unique_ptr<ThemeInfoProxy> proxy_;
+};
+
+TEST_F(ThemeInfoProxyTest, SaveTheme_LoadTheme) {
+  ThemeInfo info("testid", "1.0", "1.1", "Test", "360X360",
+      "shared/res/preview.png", "test");
+  EXPECT_TRUE(proxy_->SaveTheme(info));
+  std::shared_ptr<ThemeInfo> returned_info = proxy_->LoadTheme("testid");
+  EXPECT_EQ(returned_info->GetId(), "testid");
+  EXPECT_EQ(returned_info->GetVersion(), "1.0");
+  EXPECT_EQ(returned_info->GetToolVersion(), "1.1");
+  EXPECT_EQ(returned_info->GetTitle(), "Test");
+  EXPECT_EQ(returned_info->GetResolution(), "360X360");
+  EXPECT_EQ(returned_info->GetPreview(), "shared/res/preview.png");
+  EXPECT_EQ(returned_info->GetDescription(), "test");
+}