From 220e36f0f54dcb0342ba32b6325e9add2f47347c Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Wed, 29 Jul 2020 15:07:07 +0200 Subject: Add embedded gettext support from resource. --- test/translationtest.cc | 80 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 test/translationtest.cc (limited to 'test/translationtest.cc') diff --git a/test/translationtest.cc b/test/translationtest.cc new file mode 100644 index 0000000..f64e1f3 --- /dev/null +++ b/test/translationtest.cc @@ -0,0 +1,80 @@ +/* -*- Mode: c++ -*- */ +/*************************************************************************** + * translationtest.cc + * + * Sun Sep 8 14:51:08 CEST 2019 + * Copyright 2019 Bent Bisballe Nyeng + * deva@aasimon.org + ****************************************************************************/ + +/* + * This file is part of DrumGizmo. + * + * DrumGizmo is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DrumGizmo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with DrumGizmo; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ +#include "dgunit.h" + +#include + +#include +#include +#include + +class TranslationTest + : public DGUnit +{ +public: + TranslationTest() + { + DGUNIT_TEST(TranslationTest::testFromFile); + DGUNIT_TEST(TranslationTest::testFromLocale); + } + + void testFromFile() + { + Translation t; + char buf[100000]; + FILE* fp = fopen(MO_SRC, "r"); + DGUNIT_ASSERT(fp != nullptr); + auto sz = fread(buf, 1, sizeof(buf), fp); + fclose(fp); + DGUNIT_ASSERT(t.load(buf, sz)); + + // Look up translation from .mo file + DGUNIT_ASSERT_EQUAL(std::string("Trommesæt"), + std::string(_("Drumkit"))); + + // No translation, return key + DGUNIT_ASSERT_EQUAL(std::string("No translation"), + std::string(_("No translation"))); + } + + void testFromLocale() + { + setenv("LANG", "da_DK.UTF-8", 1); + UITranslation t; + + // Look up translation from .mo file + DGUNIT_ASSERT_EQUAL(std::string("Trommesæt"), + std::string(_("Drumkit"))); + + // No translation, return key + DGUNIT_ASSERT_EQUAL(std::string("No translation"), + std::string(_("No translation"))); + } +}; + +// Registers the fixture into the 'registry' +static TranslationTest test; -- cgit v1.2.3