From 2e13dcc11de8c4da5822f51fd32f08917f012d09 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Thu, 14 Nov 2019 14:53:30 +0100 Subject: trivial: Add a new self test for ${id}/${locale}.qm translations --- .../usr/share/kdeapp2/translations/kdeapp2/fr.qm | Bin 0 -> 112 bytes libappstream-glib/as-self-test.c | 38 +++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 data/tests/usr/share/kdeapp2/translations/kdeapp2/fr.qm diff --git a/data/tests/usr/share/kdeapp2/translations/kdeapp2/fr.qm b/data/tests/usr/share/kdeapp2/translations/kdeapp2/fr.qm new file mode 100644 index 0000000..3c6397e Binary files /dev/null and b/data/tests/usr/share/kdeapp2/translations/kdeapp2/fr.qm differ diff --git a/libappstream-glib/as-self-test.c b/libappstream-glib/as-self-test.c index 7100f69..eb4cd10 100644 --- a/libappstream-glib/as-self-test.c +++ b/libappstream-glib/as-self-test.c @@ -1,6 +1,7 @@ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- * * Copyright (C) 2014-2018 Richard Hughes + * Copyright (C) 2019 Kalev Lember * * SPDX-License-Identifier: LGPL-2.1+ */ @@ -437,6 +438,42 @@ as_test_app_builder_qt_func (void) g_assert_cmpint (g_list_length (list), ==, 1); } +static void +as_test_app_builder_qt_subdir_func (void) +{ + GError *error = NULL; + gboolean ret; + guint i; + g_autofree gchar *fn = NULL; + g_autoptr(AsApp) app = NULL; + g_autoptr(GList) list = NULL; + const gchar *gettext_domains[] = { "kdeapp2", "notgoingtoexist", NULL }; + + app = as_app_new (); + fn = as_test_get_filename ("usr"); + g_assert (fn != NULL); + for (i = 0; gettext_domains[i] != NULL; i++) { + g_autoptr(AsTranslation) translation = NULL; + translation = as_translation_new (); + as_translation_set_kind (translation, AS_TRANSLATION_KIND_QT); + as_translation_set_id (translation, gettext_domains[i]); + as_app_add_translation (app, translation); + } + ret = as_app_builder_search_translations (app, fn, 25, + AS_APP_BUILDER_FLAG_NONE, + NULL, &error); + g_assert_no_error (error); + g_assert (ret); + + /* check langs */ + g_assert_cmpint (as_app_get_language (app, "fr"), ==, 100); + g_assert_cmpint (as_app_get_language (app, "en_GB"), ==, -1); + + /* check size */ + list = as_app_get_languages (app); + g_assert_cmpint (g_list_length (list), ==, 1); +} + static void as_test_tag_func (void) { @@ -5693,6 +5730,7 @@ main (int argc, char **argv) g_test_add_func ("/AppStream/app{builder:gettext}", as_test_app_builder_gettext_func); g_test_add_func ("/AppStream/app{builder:gettext-nodomain}", as_test_app_builder_gettext_nodomain_func); g_test_add_func ("/AppStream/app{builder:qt}", as_test_app_builder_qt_func); + g_test_add_func ("/AppStream/app{builder:qt-subdir}", as_test_app_builder_qt_subdir_func); g_test_add_func ("/AppStream/app{translated}", as_test_app_translated_func); g_test_add_func ("/AppStream/app{validate-style}", as_test_app_validate_style_func); g_test_add_func ("/AppStream/app{validate-appdata-good}", as_test_app_validate_appdata_good_func); -- cgit v1.2.1