From 0ae9861008623fb4be75255e11e8a3ac44364e66 Mon Sep 17 00:00:00 2001
From: AlexSP0 <76878359+AlexSP0@users.noreply.github.com>
Date: Tue, 11 Apr 2023 14:15:20 +0400
Subject: [PATCH] chore: add test for TranslatorStorage
---
.gear/gpui.spec | 1 +
Dockerfile | 1 +
tests/auto/CMakeLists.txt | 1 +
tests/auto/core/CMakeLists.txt | 4 +++
.../core/translatorstorage/CMakeLists.txt | 28 ++++++++++++++++
.../core/translatorstorage/i18n/test_en.ts | 12 +++++++
.../core/translatorstorage/i18n/test_ru.ts | 12 +++++++
.../translatorstorage-test.cpp | 33 +++++++++++++++++++
.../translatorstorageshadow.cpp | 13 ++++++++
.../translatorstorageshadow.h | 27 +++++++++++++++
10 files changed, 132 insertions(+)
create mode 100644 tests/auto/core/CMakeLists.txt
create mode 100644 tests/auto/core/translatorstorage/CMakeLists.txt
create mode 100644 tests/auto/core/translatorstorage/i18n/test_en.ts
create mode 100644 tests/auto/core/translatorstorage/i18n/test_ru.ts
create mode 100644 tests/auto/core/translatorstorage/translatorstorage-test.cpp
create mode 100644 tests/auto/core/translatorstorage/translatorstorageshadow.cpp
create mode 100644 tests/auto/core/translatorstorage/translatorstorageshadow.h
diff --git a/.gear/gpui.spec b/.gear/gpui.spec
index d4dec65..2eea246 100644
--- a/.gear/gpui.spec
+++ b/.gear/gpui.spec
@@ -26,6 +26,7 @@ BuildRequires: libuuid-devel
BuildRequires: glib2-devel
BuildRequires: libpcre-devel
BuildRequires: libkrb5-devel
+BuildRequires: libgtest-devel
BuildRequires: qt5-base-common
BuildRequires: doxygen
diff --git a/Dockerfile b/Dockerfile
index 12e38c2..b3f6f82 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -41,6 +41,7 @@ RUN apt-get update \
libpcre-devel \
libkrb5-devel \
libxerces-c-devel \
+ libgtest-devel \
xsd \
boost-devel-headers \
desktop-file-utils \
diff --git a/tests/auto/CMakeLists.txt b/tests/auto/CMakeLists.txt
index 9ccae3f..fb9eb96 100644
--- a/tests/auto/CMakeLists.txt
+++ b/tests/auto/CMakeLists.txt
@@ -1,3 +1,4 @@
+add_subdirectory(core)
add_subdirectory(gui)
add_subdirectory(io)
add_subdirectory(model)
diff --git a/tests/auto/core/CMakeLists.txt b/tests/auto/core/CMakeLists.txt
new file mode 100644
index 0000000..13eb772
--- /dev/null
+++ b/tests/auto/core/CMakeLists.txt
@@ -0,0 +1,4 @@
+find_package(GPUI COMPONENTS gui core REQUIRED)
+include_directories(${GPUI_INCLUDE_DIRS})
+
+add_subdirectory(translatorstorage)
diff --git a/tests/auto/core/translatorstorage/CMakeLists.txt b/tests/auto/core/translatorstorage/CMakeLists.txt
new file mode 100644
index 0000000..3675431
--- /dev/null
+++ b/tests/auto/core/translatorstorage/CMakeLists.txt
@@ -0,0 +1,28 @@
+find_package(GTest)
+find_package(Qt5 COMPONENTS Core Gui Test LinguistTools REQUIRED)
+
+set(TS_FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/i18n/test_ru.ts
+ ${CMAKE_CURRENT_SOURCE_DIR}/i18n/test_en.ts
+)
+
+add_translation(QM_FILES "${TS_FILES}")
+
+add_translation_resource(RESOURCES_SRC translatorstorage-tests "${QM_FILES}")
+
+qt5_add_resources(LIB_RESOURCES ${RESOURCES_SRC})
+
+add_executable(translatorstorage-test
+ translatorstorage-test.cpp
+
+ translatorstorageshadow.h
+ translatorstorageshadow.cpp
+
+ ${LIB_RESOURCES}
+)
+
+target_link_libraries(translatorstorage-test gpui-core Qt5::Core Qt5::Gui Qt5::Test
+ gtest gtest_main)
+
+
+add_gpui_test(core.translatorstorage-test translatorstorage-test)
diff --git a/tests/auto/core/translatorstorage/i18n/test_en.ts b/tests/auto/core/translatorstorage/i18n/test_en.ts
new file mode 100644
index 0000000..ca33725
--- /dev/null
+++ b/tests/auto/core/translatorstorage/i18n/test_en.ts
@@ -0,0 +1,12 @@
+
+
+
+
+ QObject
+
+
+ test
+ ัะตัั
+
+
+
diff --git a/tests/auto/core/translatorstorage/i18n/test_ru.ts b/tests/auto/core/translatorstorage/i18n/test_ru.ts
new file mode 100644
index 0000000..f205d19
--- /dev/null
+++ b/tests/auto/core/translatorstorage/i18n/test_ru.ts
@@ -0,0 +1,12 @@
+
+
+
+
+ QObject
+
+
+ test
+ test
+
+
+
diff --git a/tests/auto/core/translatorstorage/translatorstorage-test.cpp b/tests/auto/core/translatorstorage/translatorstorage-test.cpp
new file mode 100644
index 0000000..68acbca
--- /dev/null
+++ b/tests/auto/core/translatorstorage/translatorstorage-test.cpp
@@ -0,0 +1,33 @@
+#include
+#include
+
+#include
+#include
+#include
+#include
+
+#include "../../../../src/core/translatorstorage.h"
+#include "translatorstorageshadow.h"
+
+TEST(TranslatorStorage, loadTranslators)
+{
+ QObject::tr("test");
+
+ TranslatorStorage translatorStorage;
+ translatorStorage.loadTranslators("en");
+
+ void *ptr = &translatorStorage;
+ tests::TranslatorStorageShadow *shadowPtr = static_cast(ptr);
+ auto loadedTranslations = shadowPtr->d.get()->translators.size();
+
+ EXPECT_EQ(loadedTranslations, 1);
+}
+
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+
+ ::testing::InitGoogleTest(&argc, argv);
+
+ return RUN_ALL_TESTS();
+}
diff --git a/tests/auto/core/translatorstorage/translatorstorageshadow.cpp b/tests/auto/core/translatorstorage/translatorstorageshadow.cpp
new file mode 100644
index 0000000..1c189ae
--- /dev/null
+++ b/tests/auto/core/translatorstorage/translatorstorageshadow.cpp
@@ -0,0 +1,13 @@
+#include "translatorstorageshadow.h"
+
+#include
+
+namespace tests
+{
+TranslatorStorageShadow::TranslatorStorageShadow()
+ : d(new TranslatorStorageShadowPrivate)
+{}
+
+TranslatorStorageShadow::~TranslatorStorageShadow() {}
+
+} // namespace tests
diff --git a/tests/auto/core/translatorstorage/translatorstorageshadow.h b/tests/auto/core/translatorstorage/translatorstorageshadow.h
new file mode 100644
index 0000000..35f8eb4
--- /dev/null
+++ b/tests/auto/core/translatorstorage/translatorstorageshadow.h
@@ -0,0 +1,27 @@
+#ifndef GPUI_TRANSLATOR_STORAGE_SHADOW_H
+#define GPUI_TRANSLATOR_STORAGE_SHADOW_H
+
+#include "../../../../src/core/translatorstorage.h"
+
+namespace tests
+{
+class TranslatorStorageShadowPrivate;
+
+class TranslatorStorageShadow
+{
+public:
+ TranslatorStorageShadow();
+ ~TranslatorStorageShadow();
+
+public:
+ std::unique_ptr d;
+};
+
+class TranslatorStorageShadowPrivate
+{
+public:
+ std::vector> translators = {};
+ QString m_errorString = {};
+};
+} // namespace tests
+#endif