summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKalev Lember <klember@redhat.com>2019-11-14 14:53:30 +0100
committerKalev Lember <klember@redhat.com>2019-11-14 15:42:20 +0100
commit2e13dcc11de8c4da5822f51fd32f08917f012d09 (patch)
tree2031ffb7207483f6af55c55b6f57a35725748bd7
parente304d6a8b0233c6b805cb68f53bd73259733dac9 (diff)
downloadappstream-glib-2e13dcc11de8c4da5822f51fd32f08917f012d09.tar.gz
trivial: Add a new self test for ${id}/${locale}.qm translations
-rw-r--r--data/tests/usr/share/kdeapp2/translations/kdeapp2/fr.qmbin0 -> 112 bytes
-rw-r--r--libappstream-glib/as-self-test.c38
2 files changed, 38 insertions, 0 deletions
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
--- /dev/null
+++ b/data/tests/usr/share/kdeapp2/translations/kdeapp2/fr.qm
Binary files 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 <richard@hughsie.com>
+ * Copyright (C) 2019 Kalev Lember <klember@redhat.com>
*
* SPDX-License-Identifier: LGPL-2.1+
*/
@@ -438,6 +439,42 @@ as_test_app_builder_qt_func (void)
}
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)
{
guint i;
@@ -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);