blob: b67f7e446ca617eb13b4a9d8b30c39fd4d753933 [file] [log] [blame]
#!/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