aboutsummaryrefslogtreecommitdiffstats
path: root/tests/wallp.bats
blob: 3445ddb9343b44c0da7d1a325c52e4dc8153e971 (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
#!/usr/bin/env bats

setup() {
  SCRIPT_DIR="$(cd "$BATS_TEST_DIRNAME/.." && pwd)"
  TMP_HOME="$(mktemp -d)"
  export HOME="$TMP_HOME"
  STUB_DIR="$TMP_HOME/stubs"
  mkdir -p "$STUB_DIR"
  export PATH="$STUB_DIR:$PATH"
  local bin
  for bin in swaybg wal qarma notify-send pkill kill; do
    cat > "$STUB_DIR/$bin" <<EOF
#!/bin/bash
echo "$bin \$*" >> "$TMP_HOME/calls.log"
exit 0
EOF
    chmod +x "$STUB_DIR/$bin"
  done
  source "$SCRIPT_DIR/wallp"
}

teardown() {
  rm -rf "$TMP_HOME"
}

@test "harness sanity" {
  [ "x" = "x" ]
}

@test "expand_tilde expands leading tilde" {
  run expand_tilde '~/pics/a.png'
  [ "$status" -eq 0 ]
  [ "$output" = "$HOME/pics/a.png" ]
}

@test "expand_tilde leaves absolute path untouched" {
  run expand_tilde '/abs/b.png'
  [ "$output" = "/abs/b.png" ]
}

@test "parse_conf reads keys and expands tilde in paths" {
  conf="$HOME/c.conf"
  printf '%s\n' \
    '# comment' '' \
    'THEME=mytheme' \
    'OUTPUT_H=DP-1' \
    'OUTPUT_V=DP-3' \
    'DEFAULT_H=~/p/h.png' \
    'DEFAULT_V=/abs/v.png' > "$conf"
  parse_conf "$conf"
  [ "$CONF_THEME" = "mytheme" ]
  [ "$CONF_OUTPUT_H" = "DP-1" ]
  [ "$CONF_OUTPUT_V" = "DP-3" ]
  [ "$CONF_DEFAULT_H" = "$HOME/p/h.png" ]
  [ "$CONF_DEFAULT_V" = "/abs/v.png" ]
}