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