#!/bin/bash . "$XDG_TEST_DIR/include/testassertions.sh" . "$XDG_TEST_DIR/include/testcontrol.sh" test_default_mime_launch() { test_start "$FUNCNAME: verify we can install a mime type & associate it with an application" test_init require_notroot # Set up files use_file "$XDG_TEST_DIR/xdg-utils-usecases/data/mime_launch.xml" MIME_FILE edit_file "$MIME_FILE" "x-xdg-testpattern" MIME2ND "x-$XDG_TEST_ID" edit_file "$MIME_FILE" xdgtest EXTEN "xdgt-$XDG_TEST_SHORTID" use_file "$XDG_TEST_DIR/xdg-utils-usecases/data/mime_launch.sh" SHELL_FILE use_file "$XDG_TEST_DIR/xdg-utils-usecases/data/mime_launch.desktop" DESKTOP_FILE edit_file "$DESKTOP_FILE" "x-xdg-testpattern" TMP "$MIME2ND" edit_file "$DESKTOP_FILE" '/tmp' TMP "$XDG_TEST_TMPDIR" edit_file "$DESKTOP_FILE" 'include' TMP "$XDG_TEST_DIR/include" edit_file "$DESKTOP_FILE" 'mime_launch.sh' TMP "$XDG_TEST_TMPDIR/$SHELL_FILE" TEST_FILE="testfile.$EXTEN" echo "Some text to make the textfile not empty" >"$TEST_FILE" MIME_TYPE="text/$MIME2ND" test_procedure # Install Desktop file assert_exit 0 xdg-desktop-menu install "$DESKTOP_FILE" assert_nostdout assert_nostderr # Install Mime file assert_exit 0 xdg-mime install "$MIME_FILE" assert_nostdout assert_nostderr # Verify mimetype echo "$MIME_TYPE" >out.expected assert_exit 0 xdg-mime query filetype "$TEST_FILE" MIME_INPUT=`cat out.stdout` assert_stdout out.expected assert_nostderr # Verify application is as expected echo "$DESKTOP_FILE" >out.expected assert_exit 0 xdg-mime query default "$MIME_TYPE" assert_stdout out.expected assert_nostderr # Verify correct application opens assert_exit 0 xdg-open "$TEST_FILE" assert_nostdout assert_nostderr echo "file: $XDG_TEST_TMPDIR/$TEST_FILE" >out.expect # exec.out is created by xdg-open assert_file "$XDG_TEST_TMPDIR/exec.out" 'out.expect' #cleanup assert_exit 0 xdg-desktop-menu uninstall "$DESKTOP_FILE" assert_nostdout assert_nostderr assert_exit 0 xdg-mime uninstall "$MIME_FILE" assert_nostdout assert_nostderr test_result } run_test test_default_mime_launch