summaryrefslogtreecommitdiff
path: root/tests/xdg-desktop-menu/t.10-simple_menu_item_user_install
blob: d3a75450ff78ffc52791f7bdb2e0d37261cef9b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/bash

## Include utility functions.
. "$XDG_TEST_DIR/include/testassertions.sh"
. "$XDG_TEST_DIR/include/testcontrol.sh"

## Test function
test_simple_menu_item_user_install() {
## Begin the test.
test_start "$FUNCNAME: verify a basic desktop file is installed in the user's applications menu"
test_purpose "A basic desktop file (no category defined) is installed into the menu. It should show up somewhere, but this behavior is not well defined by the spec. This test fails for many systems."
test_note "Because this behavior is not well defined this test will WARN instead of FAIL"

# Dependencies section
test_init

# Generate .desktop file
USERPATH="$HOME/.local"

set_no_display

use_file "$XDG_TEST_DIR/xdg-desktop-menu/data/menu_item_test.desktop" DESKTOP
edit_file "$DESKTOP" 'xdg-test-menu-item-install.tmp' CREATEFILE
edit_file "$DESKTOP" 'Test Menu Item Install' ITEM_TEXT "TEST $XDG_TEST_SHORTID"
edit_file "$DESKTOP" '/tmp' WORK_DIR "$XDG_TEST_TMPDIR"

assert_file "$DESKTOP"

# Verify the test icon is not installed already.
assert_file_not_in_path "$DESKTOP" "$USERPATH"

# Test steps section
test_procedure

assert_exit 0 xdg-desktop-menu install --mode user "$DESKTOP"
assert_nostdout
assert_nostderr

assert_file_in_path "$DESKTOP" "$USERPATH"

if [ -z "$XDG_TEST_NO_INTERACTIVE" -a `whoami` != 'root' ]; then

assert_interactive "Is an item called '$ITEM_TEXT' somewhere in the menu tree, possibly in a generic location?\n\t(NOTE: If you are using KDE, it may take a few seconds to appear.)" y
assert_interactive "Please select the menu item '$ITEM_TEXT'"

## Double clicking will result in the command 'touch xdg-test-menu-item-install.tmp' to be run
assert_file "$WORK_DIR/$CREATEFILE"
fi

## Cleanup
xdg-desktop-menu uninstall --mode user "$DESKTOP" >/dev/null 2>&1

test_failoverride WARN
test_result
} 

run_test test_simple_menu_item_user_install