Skip to content

Commit b88b692

Browse files
committed
tests: Add a test for compose policy argument
1 parent 9521b7d commit b88b692

File tree

6 files changed

+119
-1
lines changed

6 files changed

+119
-1
lines changed

tests/Makefile.am.inc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ dist_installed_test_data = \
6161
tests/org.flatpak_builder.gui.desktop \
6262
tests/org.flatpak_builder.gui.json \
6363
tests/org.flatpak_builder.gui.metainfo.xml \
64+
tests/org.flatpak.appstream_media.json \
65+
tests/org.test.Hello-256.png \
6466
$(NULL)
6567

6668
installed_test_keyringdir = $(installed_testdir)/test-keyring

tests/libtest.sh

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,47 @@ skip_without_python2 () {
309309
fi
310310
}
311311

312+
appstream_has_version () {
313+
req_major=$1
314+
req_minor=$2
315+
req_micro=$3
316+
317+
maj=0; min=0; mic=0
318+
319+
out=$(appstreamcli --version 2>/dev/null) || return 1
320+
321+
while IFS= read -r line; do
322+
case "$line" in
323+
"AppStream library version:"* )
324+
ver=$(echo "$line" | awk '{print $4}')
325+
;;
326+
"AppStream version:"* )
327+
ver=$(echo "$line" | awk '{print $3}')
328+
;;
329+
* ) continue ;;
330+
esac
331+
332+
maj=$(echo "$ver" | cut -d. -f1)
333+
min=$(echo "$ver" | cut -d. -f2)
334+
mic=$(echo "$ver" | cut -d. -f3)
335+
break
336+
done <<EOF
337+
$out
338+
EOF
339+
340+
if [ "$maj" -gt "$req_major" ]; then
341+
return 0
342+
elif [ "$maj" -eq "$req_major" ]; then
343+
if [ "$min" -gt "$req_minor" ]; then
344+
return 0
345+
elif [ "$min" -eq "$req_minor" ]; then
346+
[ "$mic" -ge "$req_micro" ] && return 0
347+
fi
348+
fi
349+
350+
return 1
351+
}
352+
312353
cleanup () {
313354
gpg-connect-agent --homedir "${FL_GPG_HOMEDIR}" killagent /bye >&2 || true
314355
if test -n "${TEST_SKIP_CLEANUP:-}"; then

tests/meson.build

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ if get_option('installed_tests')
108108
'org.flatpak_builder.gui.desktop',
109109
'org.flatpak_builder.gui.json',
110110
'org.flatpak_builder.gui.metainfo.xml',
111+
'org.flatpak.appstream_media.json',
112+
'org.test.Hello-256.png',
111113

112114
install_dir: installed_testdir,
113115
install_mode: 'rw-r--r--',
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"id": "org.flatpak.appstream_media",
3+
"runtime": "org.test.Platform",
4+
"sdk": "org.test.Sdk",
5+
"rename-desktop-file": "org.flatpak_builder.gui.desktop",
6+
"rename-appdata-file": "org.flatpak_builder.gui.metainfo.xml",
7+
"rename-icon": "org.test.Hello-256",
8+
"command": "hello",
9+
"modules": [
10+
{
11+
"name": "appstream_media",
12+
"buildsystem": "simple",
13+
"build-commands": [
14+
"mkdir -p ${FLATPAK_DEST}/bin ${FLATPAK_DEST}/share/metainfo ${FLATPAK_DEST}/share/applications",
15+
"mkdir -p ${FLATPAK_DEST}/share/icons/hicolor/256x256/apps",
16+
"cp -vf hello.sh ${FLATPAK_DEST}/bin/hello",
17+
"cp -vf org.flatpak_builder.gui.metainfo.xml ${FLATPAK_DEST}/share/metainfo",
18+
"cp -vf org.flatpak_builder.gui.desktop ${FLATPAK_DEST}/share/applications",
19+
"cp -vf org.test.Hello-256.png ${FLATPAK_DEST}/share/icons/hicolor/256x256/apps"
20+
],
21+
"sources": [
22+
{
23+
"type": "script",
24+
"dest-filename": "hello.sh",
25+
"commands": [
26+
"echo \"Hello world, from a sandbox\""
27+
]
28+
},
29+
{
30+
"type": "file",
31+
"path": "org.flatpak_builder.gui.desktop"
32+
},
33+
{
34+
"type": "file",
35+
"path": "org.flatpak_builder.gui.metainfo.xml"
36+
},
37+
{
38+
"type": "file",
39+
"path": "org.test.Hello-256.png"
40+
}
41+
]
42+
}
43+
]
44+
}

tests/org.test.Hello-256.png

77.4 KB
Loading

tests/test-builder.sh

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ set -euo pipefail
2323

2424
skip_without_fuse
2525

26-
echo "1..8"
26+
echo "1..10"
2727

2828
setup_repo
2929
install_repo
@@ -53,6 +53,8 @@ cp $(dirname $0)/org.flatpak_builder.gui.desktop .
5353
cp $(dirname $0)/org.flatpak_builder.gui.json .
5454
cp $(dirname $0)/org.flatpak_builder.gui.metainfo.xml .
5555
cp $(dirname $0)/org.test.Hello.png .
56+
cp $(dirname $0)/org.test.Hello-256.png .
57+
cp $(dirname $0)/org.flatpak.appstream_media.json .
5658
mkdir include1
5759
cp $(dirname $0)/module1.json include1/
5860
cp $(dirname $0)/module1.yaml include1/
@@ -144,3 +146,30 @@ ostree checkout --repo=$REPO/repo_sc -U screenshots/$(flatpak --default-arch) ou
144146
find outdir_sc -path "*/icons/64x64/org.test.Hello.png" -type f | grep -q .
145147

146148
echo "ok screenshot ref commit"
149+
150+
# test compose partial url policy
151+
${FLATPAK_BUILDER} --force-clean builddir_sc \
152+
--mirror-screenshots-url=https://example.org/media \
153+
--state-dir .fp-compose-url-policy-partial \
154+
--compose-url-policy=partial \
155+
org.flatpak.appstream_media.json >&2
156+
# we test for the icon tag instead of screenshot
157+
# the former works offline the latter does not
158+
gzip -cdq builddir_sc/files/share/app-info/xmls/org.flatpak.appstream_media.xml.gz|grep -Eq '>org/flatpak/appstream_media/[^/]+/icons/128x128/org.flatpak.appstream_media.png</icon>'
159+
160+
echo "ok compose partial url policy"
161+
162+
# test compose full url policy
163+
if appstream_has_version 0 16 3; then
164+
${FLATPAK_BUILDER} --force-clean builddir_sc \
165+
--mirror-screenshots-url=https://example.org/media \
166+
--state-dir .fp-compose-url-policy-full \
167+
--compose-url-policy=full \
168+
org.flatpak.appstream_media.json >&2
169+
170+
gzip -cdq builddir_sc/files/share/app-info/xmls/org.flatpak.appstream_media.xml.gz|grep -Eq '>https://example.org/media/org/flatpak/appstream_media/[^/]+/icons/128x128/org.flatpak.appstream_media.png</icon>'
171+
172+
echo "ok compose full url policy"
173+
else
174+
echo "ok # Skip AppStream < 0.16.3"
175+
fi

0 commit comments

Comments
 (0)