File: core.bats

package info (click to toggle)
sshcommand 0~20160110.1~2795f65-1.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 112 kB
  • sloc: sh: 188; makefile: 53
file content (104 lines) | stat: -rw-r--r-- 2,745 bytes parent folder | download | duplicates (2)
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#!/usr/bin/env bats

load test_helper

setup() {
  create_user
  create_test_key $TEST_KEY_NAME
}

teardown() {
  delete_user
  delete_test_keys
}

check_authorized_keys_entry() {
  local KEYFILE_NAME="$1"
  local ENTRY_ID="$2"

  run bash -c "sed -n 's/.*\(NAME=\\\\\"${ENTRY_ID}\\\\\"\).*/\1/p' /home/${TEST_USER}/.ssh/authorized_keys"
  echo "entry: " $(grep $ENTRY_ID /home/${TEST_USER}/.ssh/authorized_keys)
  echo "output: "$output
  echo "status: "$status
  assert_output "NAME=\\\"$ENTRY_ID\\\""
}

@test "(core) sshcommand create" {
  delete_user

  run bash -c "sshcommand create $TEST_USER ls > /dev/null"
  echo "output: "$output
  echo "status: "$status
  assert_success

  run bash -c "test -f ~${TEST_USER}/.ssh/authorized_keys"
  echo "output: "$output
  echo "status: "$status
  assert_success

  run bash -c "grep -F ls ~${TEST_USER}/.sshcommand"
  echo "output: "$output
  echo "status: "$status
  assert_success
}

@test "(core) sshcommand acl-add" {
  run bash -c "cat ${TEST_KEY_DIR}/${TEST_KEY_NAME}.pub | sshcommand acl-add $TEST_USER user1"
  echo "output: "$output
  echo "status: "$status
  assert_success

  create_test_key new_key
  run bash -c "cat ${TEST_KEY_DIR}/new_key.pub | sshcommand acl-add $TEST_USER user2"
  echo "output: "$output
  echo "status: "$status
  assert_success

  check_authorized_keys_entry $TEST_KEY_NAME user1
  check_authorized_keys_entry new_key user2
}

@test "(core) sshcommand acl-add (bad key failure)" {
  run bash -c "echo test_key | sshcommand acl-add $TEST_USER user1"
  echo "output: "$output
  echo "status: "$status
  assert_failure
}

@test "(core) sshcommand acl-add (with identifier space)" {
  run bash -c "cat ${TEST_KEY_DIR}/${TEST_KEY_NAME}.pub | sshcommand acl-add $TEST_USER 'broken user'"
  echo "output: "$output
  echo "status: "$status
  assert_success

  check_authorized_keys_entry $TEST_KEY_NAME 'broken user'
}

@test "(core) sshcommand acl-remove" {
  run bash -c "cat ${TEST_KEY_DIR}/${TEST_KEY_NAME}.pub | sshcommand acl-add $TEST_USER user1"
  echo "output: "$output
  echo "status: "$status
  assert_success

  run bash -c "grep -F \"$(< ${TEST_KEY_DIR}/${TEST_KEY_NAME}.pub)\" ~${TEST_USER}/.ssh/authorized_keys | grep user1"
  echo "output: "$output
  echo "status: "$status
  assert_success

  run bash -c "sshcommand acl-remove $TEST_USER user1"
  echo "output: "$output
  echo "status: "$status
  assert_success

  run bash -c "grep -F \"$(< ${TEST_KEY_DIR}/${TEST_KEY_NAME}.pub)\" ~${TEST_USER}/.ssh/authorized_keys | grep user1"
  echo "output: "$output
  echo "status: "$status
  assert_failure
}

@test "(core) sshcommand help" {
  run bash -c "sshcommand help | wc -l"
  echo "output: "$output
  echo "status: "$status
  [[ "$output" -ge 4 ]]
}