-
Notifications
You must be signed in to change notification settings - Fork 80
/
Copy pathkeyringswift
executable file
·158 lines (146 loc) · 4.51 KB
/
keyringswift
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#!/bin/bash
# Tests for Keyring Swift API.
#
# Copyright 2015 Serval Project Inc.
# Copyright 2017-2018 Flinders University
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
source "${0%/*}/../testframework.sh"
source "${0%/*}/../testdefs.sh"
source "${0%/*}/../testdefs_swift.sh"
setup() {
setup_servald
setup_swift_config +A
set_instance +A
setup_keyring_config
if [ -z "$IDENTITY_COUNT" ]; then
create_single_identity
else
create_identities $IDENTITY_COUNT
fi
export SERVALD_RHIZOME_DB_RETRY_LIMIT_MS=60000
start_servald_server
wait_until_swift_server_ready +A
}
teardown() {
stop_all_servald_servers
kill_all_servald_processes
assert_no_servald_processes
report_all_servald_servers
}
setup_keyring_config() {
executeOk_servald config \
set log.console.level debug \
set log.console.show_pid on \
set log.console.show_time on \
set debug.keyring on \
set debug.verbose on
}
doc_keyringList="Swift API list keyring identities"
setup_keyringList() {
IDENTITY_COUNT=10
DIDA1=123123123
NAMEA1='Joe Bloggs'
DIDA5=567567567
setup
}
test_keyringList() {
executeSwiftOk keyring list
tfw_cat --stdout --stderr
assert_keyring_list $IDENTITY_COUNT
}
doc_keyringGet="Swift API get single keyring identity"
test_keyringGet() {
executeSwiftOk keyring get "$SIDA1"
tfw_cat --stdout --stderr
assert_stdout_keyvalue sid "$SIDA1"
assert_stdout_keyvalue identity "$IDA1"
assert_stdout_keyvalue did "$DIDA1"
assert_stdout_keyvalue name "$NAMEA1"
}
doc_keyringListPin="Swift API list keyring identities, with PIN"
setup_keyringListPin() {
IDENTITY_COUNT=3
PINA1='wif waf'
setup
}
test_keyringListPin() {
# First, list without supplying the PIN
executeSwiftOk keyring list
tfw_cat --stdout --stderr
assert_keyring_list $((IDENTITY_COUNT - 1))
# Then, list supplying the PIN
executeSwiftOk keyring list --pin "$PINA1"
tfw_cat --stdout --stderr
assert_keyring_list $IDENTITY_COUNT
}
doc_keyringAddDidName="Swift API add new keyring identity"
setup_keyringAddDidName() {
IDENTITY_COUNT=1
DIDA2=123123123
NAMEA2='Joe Bloggs'
setup
}
test_keyringAddDidName() {
executeSwiftOk keyring add did "$DIDA2" name "$NAMEA2"
tfw_cat --stdout --stderr
assert_stdout_keyvalue did "$DIDA2"
assert_stdout_keyvalue name "$NAMEA2"
extract_stdout_keyvalue SID sid "$rexp_sid"
extract_stdout_keyvalue ID identity "$rexp_id"
executeOk_servald keyring list
assert_keyring_list 2
assertStdoutGrep --stderr --matches=1 "^$SID:$ID:$DIDA2:$NAMEA2\$"
}
doc_keyringRemove="Swift API remove keyring identity"
setup_keyringRemove() {
IDENTITY_COUNT=2
setup
}
test_keyringRemove() {
executeSwiftOk keyring remove "$SIDA1"
assert_stdout_keyvalue sid "$SIDA1"
executeOk_servald keyring list
assert_keyring_list 1
assertStdoutGrep --matches=0 "^$SIDA1:"
assertStdoutGrep --matches=1 "^$SIDA2:"
executeSwiftOk keyring remove "$SIDA2"
assert_stdout_keyvalue sid "$SIDA2"
executeOk_servald keyring list
assert_keyring_list 0
}
doc_keyringSetDidName="Swift API set DID and Name of keyring identity"
setup_keyringSetDidName() {
IDENTITY_COUNT=1
setup
}
test_keyringSetDidName() {
executeSwiftOk keyring set "$SIDA1" did '123456'
assert_stdout_keyvalue sid "$SIDA1"
assert_stdout_keyvalue identity "$IDA1"
assert_stdout_keyvalue did "123456"
executeOk_servald keyring list
assert_keyring_list 1
assertStdoutGrep --stderr --matches=1 "^$SIDA1:$IDA1:123456:\$"
executeSwiftOk keyring set "$SIDA1" name 'Display Name'
assert_stdout_keyvalue sid "$SIDA1"
assert_stdout_keyvalue identity "$IDA1"
assert_stdout_keyvalue did "123456"
assert_stdout_keyvalue name "Display Name"
executeOk_servald keyring list
assert_keyring_list 1
assertStdoutGrep --stderr --matches=1 "^$SIDA1:$IDA1:123456:Display Name\$"
}
runTests "$@"