summaryrefslogtreecommitdiffstats
path: root/test cases/frameworks/6 gettext/data3
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-29 04:41:38 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-29 04:41:38 +0000
commit7b6e527f440cd7e6f8be2b07cee320ee6ca18786 (patch)
tree4a2738d69fa2814659fdadddf5826282e73d81f4 /test cases/frameworks/6 gettext/data3
parentInitial commit. (diff)
downloadmeson-7b6e527f440cd7e6f8be2b07cee320ee6ca18786.tar.xz
meson-7b6e527f440cd7e6f8be2b07cee320ee6ca18786.zip
Adding upstream version 1.0.1.upstream/1.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test cases/frameworks/6 gettext/data3')
-rw-r--r--test cases/frameworks/6 gettext/data3/com.mesonbuild.test.intlprog.metainfo.xml33
-rw-r--r--test cases/frameworks/6 gettext/data3/meson.build33
-rw-r--r--test cases/frameworks/6 gettext/data3/metainfo.its33
-rwxr-xr-xtest cases/frameworks/6 gettext/data3/verify.py13
4 files changed, 112 insertions, 0 deletions
diff --git a/test cases/frameworks/6 gettext/data3/com.mesonbuild.test.intlprog.metainfo.xml b/test cases/frameworks/6 gettext/data3/com.mesonbuild.test.intlprog.metainfo.xml
new file mode 100644
index 0000000..7fb4d1f
--- /dev/null
+++ b/test cases/frameworks/6 gettext/data3/com.mesonbuild.test.intlprog.metainfo.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="console-application">
+ <id>com.mesonbuild.test.intlprog</id>
+
+ <name>Test</name>
+ <summary>Application</summary>
+
+ <metadata_license>FSFAP</metadata_license>
+ <project_license>FSFAP</project_license>
+
+ <description>
+ <p>
+ Test Application
+ </p>
+ <p>
+ International greeting.
+ </p>
+ <p>
+ This is <code>text</code> with <em>embedded XML tags</em>. Nice!
+ </p>
+ </description>
+
+ <icon type="stock">meson-unittest-intlprog</icon>
+
+ <categories>
+ <category>Development</category>
+ <category>Building</category>
+ </categories>
+
+ <provides>
+ <binary>intlprog</binary>
+ </provides>
+</component>
diff --git a/test cases/frameworks/6 gettext/data3/meson.build b/test cases/frameworks/6 gettext/data3/meson.build
new file mode 100644
index 0000000..2be2e89
--- /dev/null
+++ b/test cases/frameworks/6 gettext/data3/meson.build
@@ -0,0 +1,33 @@
+
+if itstool.found()
+
+ mi_translated = i18n.itstool_join(
+ input: 'com.mesonbuild.test.intlprog.metainfo.xml',
+ output: 'com.mesonbuild.test.intlprog.metainfo.xml',
+ mo_targets: mo_targets,
+ its_files: ['metainfo.its'],
+ install: true,
+ install_dir: get_option('datadir') / 'metainfo',
+ )
+
+ # older versions of itstool have a bug where ITS rules specified on the command-line
+ # are not read when joining files. Since we don't install appstream in the Meson CI
+ # environment, the to-be-tested entry will be untranslated and the test would fail, so
+ # we just skip verification if the installed itstool is too old.
+ r = run_command(itstool, '-v', check: true)
+ itstool_v = r.stdout().strip().split()
+ if itstool_v[1].version_compare('>=2.0.6')
+ verify_exe = find_program('verify.py')
+ test('test xml translation',
+ verify_exe,
+ args: [mi_translated,
+ '<p xml:lang="de">Dies ist <code>Text</code> mit <em>eingebetteten XML Tags</em>. Toll!</p>']
+ )
+ else
+ message('Skipping translation verification: Itstool too old.')
+ endif
+
+else
+ install_data('com.mesonbuild.test.intlprog.metainfo.xml',
+ install_dir: get_option('datadir') / 'metainfo')
+endif
diff --git a/test cases/frameworks/6 gettext/data3/metainfo.its b/test cases/frameworks/6 gettext/data3/metainfo.its
new file mode 100644
index 0000000..0852a0f
--- /dev/null
+++ b/test cases/frameworks/6 gettext/data3/metainfo.its
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) 2015-2021 Matthias Klumpp <matthias@tenstral.net>
+ Copyright (C) 2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
+ SPDX-License-Identifier: FSFAP
+-->
+<its:rules xmlns:its="http://www.w3.org/2005/11/its"
+ version="2.0">
+
+ <its:withinTextRule withinText="yes" selector="/component//description//em |
+ /component//description//code"/>
+
+ <its:translateRule selector="/component" translate="no"/>
+ <its:translateRule selector="/component/name |
+ /component/summary |
+ /component/description |
+ /component/developer_name |
+ /component/name_variant_suffix |
+ /component/screenshots/screenshot/caption |
+ /component/releases/release/description |
+ /component/agreement/agreement_section/name |
+ /component/agreement/agreement_section/description"
+ translate="yes"/>
+
+ <its:translateRule selector="/component/name[@translatable = 'no']"
+ translate="no"/>
+ <its:translateRule selector="/component/developer_name[@translatable = 'no']"
+ translate="no"/>
+ <its:translateRule selector="/component/name_variant_suffix[@translatable = 'no']"
+ translate="no"/>
+ <its:translateRule selector="/component/releases/release/description[@translatable = 'no']"
+ translate="no"/>
+</its:rules>
diff --git a/test cases/frameworks/6 gettext/data3/verify.py b/test cases/frameworks/6 gettext/data3/verify.py
new file mode 100755
index 0000000..aff2f2e
--- /dev/null
+++ b/test cases/frameworks/6 gettext/data3/verify.py
@@ -0,0 +1,13 @@
+#!/usr/bin/env python3
+
+import os
+import sys
+
+assert len(sys.argv) == 3
+
+fname = sys.argv[1]
+check_str = sys.argv[2]
+
+assert os.path.isfile(fname)
+with open(fname, 'r', encoding='utf-8') as f:
+ assert check_str in f.read()