From ef32ff178051744de74dc374e3e50c7430587c6a Mon Sep 17 00:00:00 2001
From: Simon McVittie <simon.mcvittie@collabora.co.uk>
Date: Wed, 22 Jun 2016 18:47:30 +0100
Subject: [PATCH] tumbler: copy files for thumbnailing to a more realistic
 location

If we have apertis-tests checked out in ~/apertis-tests or something,
it's nice to be able to run the test uninstalled.

Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Differential Revision: https://phabricator.apertis.org/D3475
---
 tumbler/automated/run-test.sh | 39 +++++++++++++++++++++++++----------
 1 file changed, 28 insertions(+), 11 deletions(-)

diff --git a/tumbler/automated/run-test.sh b/tumbler/automated/run-test.sh
index fb6684c..552743b 100755
--- a/tumbler/automated/run-test.sh
+++ b/tumbler/automated/run-test.sh
@@ -64,10 +64,12 @@ _check_uris_have_thumbnail() {
 
 _generate_thumbnails() {
     set -x
-    local i ret size files logfile addr obj_path method uris filetypes
+    local i ret files logfile addr obj_path method uris filetypes
+    local copy
     ret=0
-    size=$1
-    shift
+    local size="$1"
+    local special_dir="$2"
+    shift 2
     files=("$@")
     logfile="${WORKDIR}/monitor-tumblerd.log"
     addr="org.freedesktop.thumbnails.Thumbnailer1"
@@ -77,10 +79,22 @@ _generate_thumbnails() {
     filetypes=()
 
     for i in "${files[@]}"; do
+        # Tumbler's AppArmor profile doesn't necessarily let it read the
+        # apertis-tests directory if we're running uninstalled. Copy the
+        # file to a more realistic location, which exercises the AppArmor
+        # profile better anyway.
+        if [ $(( $RANDOM % 2 )) = 0 ] && [ -e "/home/shared/$special_dir" ]; then
+            copy="/home/shared/$special_dir/apertis-tests__$(basename "$i")"
+        else
+            copy="$HOME/$special_dir/apertis-tests__$(basename "$i")"
+        fi
+
+        cp -v "$i" "$copy"
+
         # Need path relative to /
         # FIXME: This doesn't do whitespace/special character escaping, etc
-        uris+=("file://$i")
-        filetypes+=($(file --mime-type "$i" | cut -d ":" -f 2 | tr -d ' '))
+        uris+=("file://$copy")
+        filetypes+=($(file --mime-type "$copy" | cut -d ":" -f 2 | tr -d ' '))
     done
 
     # Clear out old thumbnails.
@@ -100,32 +114,35 @@ _generate_thumbnails() {
     _sleep 2
     _check_uris_have_thumbnail $size $uris || ret=1
 
+    rm -f "/home/shared/$special_dir"/apertis-tests__*
+    rm -f "${HOME}/$special_dir"/apertis-tests__*
+
     _kill_monitor_return $ret
     set +x
 }
 
 test_image_normal_thumbnail_generation() {
-    _generate_thumbnails normal "${MEDIA_RESOURCE_DIR}/images"/*
+    _generate_thumbnails normal Pictures "${MEDIA_RESOURCE_DIR}/images"/*
 }
 
 test_image_large_thumbnail_generation() {
-    _generate_thumbnails large "${MEDIA_RESOURCE_DIR}/images"/*
+    _generate_thumbnails large Pictures "${MEDIA_RESOURCE_DIR}/images"/*
 }
 
 test_video_normal_thumbnail_generation() {
-    _generate_thumbnails normal "${MEDIA_RESOURCE_DIR}/videos"/*
+    _generate_thumbnails normal Videos "${MEDIA_RESOURCE_DIR}/videos"/*
 }
 
 test_video_large_thumbnail_generation() {
-    _generate_thumbnails large "${MEDIA_RESOURCE_DIR}/videos"/*
+    _generate_thumbnails large Videos "${MEDIA_RESOURCE_DIR}/videos"/*
 }
 
 test_document_normal_thumbnail_generation() {
-    _generate_thumbnails normal "${MEDIA_RESOURCE_DIR}/documents"/*.{pdf,odt}
+    _generate_thumbnails normal Documents "${MEDIA_RESOURCE_DIR}/documents"/*.{pdf,odt}
 }
 
 test_document_large_thumbnail_generation() {
-    _generate_thumbnails large "${MEDIA_RESOURCE_DIR}/documents"/*.{pdf,odt}
+    _generate_thumbnails large Documents "${MEDIA_RESOURCE_DIR}/documents"/*.{pdf,odt}
 }
 
 trap "test_failure" ERR
-- 
GitLab