pw_usermod_test.sh revision 275657
1275657Sbrd# $FreeBSD: head/usr.sbin/pw/tests/pw_usermod.sh 275657 2014-12-09 22:11:56Z brd $
2275657Sbrd
3275657Sbrd# Import helper functions
4275657Sbrd. $(atf_get_srcdir)/helper_functions.shin
5275657Sbrd
6275657Sbrd# Test modifying a user
7275657Sbrdatf_test_case user_mod
8275657Sbrduser_mod_body() {
9275657Sbrd	populate_etc_skel
10275657Sbrd
11275657Sbrd	atf_check -s exit:67 -e match:"no such user" ${PW} usermod test
12275657Sbrd	atf_check -s exit:0 ${PW} useradd test
13275657Sbrd	atf_check -s exit:0 ${PW} usermod test
14275657Sbrd	atf_check -s exit:0 -o match:"^test:.*" \
15275657Sbrd		grep "^test:.*" $HOME/master.passwd
16275657Sbrd}
17275657Sbrd
18275657Sbrd# Test modifying a user with comments
19275657Sbrdatf_test_case user_mod_comments
20275657Sbrduser_mod_comments_body() {
21275657Sbrd	populate_etc_skel
22275657Sbrd
23275657Sbrd	atf_check -s exit:0 ${PW} useradd test -c "Test User,home,123,456"
24275657Sbrd	atf_check -s exit:0 ${PW} usermod test -c "Test User,work,123,456"
25275657Sbrd	atf_check -s exit:0 -o match:"^test:.*:Test User,work,123,456:" \
26275657Sbrd		grep "^test:.*:Test User,work,123,456:" $HOME/master.passwd
27275657Sbrd}
28275657Sbrd
29275657Sbrd# Test modifying a user with invalid comments
30275657Sbrdatf_test_case user_mod_comments_invalid
31275657Sbrduser_mod_comments_invalid_body() {
32275657Sbrd	populate_etc_skel
33275657Sbrd
34275657Sbrd	atf_check -s exit:0 ${PW} useradd test
35275657Sbrd	atf_check -s exit:65 -e match:"invalid character" \
36275657Sbrd		${PW} usermod test -c "Test User,work,123:456,456"
37275657Sbrd	atf_check -s exit:1 -o empty \
38275657Sbrd		grep "^test:.*:Test User,work,123:456,456:" $HOME/master.passwd
39275657Sbrd}
40275657Sbrd
41275657Sbrd# Test modifying a user name with -l
42275657Sbrdatf_test_case user_mod_name
43275657Sbrduser_mod_name_body() {
44275657Sbrd	populate_etc_skel
45275657Sbrd
46275657Sbrd	atf_check -s exit:0 ${PW} useradd foo
47275657Sbrd	atf_check -s exit:0 ${PW} usermod foo -l "bar"
48275657Sbrd	atf_check -s exit:0 -o match:"^bar:.*" \
49275657Sbrd		grep "^bar:.*" $HOME/master.passwd
50275657Sbrd}
51275657Sbrdatf_init_test_cases() {
52275657Sbrd	atf_add_test_case user_mod
53275657Sbrd	atf_add_test_case user_mod_comments
54275657Sbrd	atf_add_test_case user_mod_comments_invalid 
55275657Sbrd	atf_add_test_case user_mod_name
56275657Sbrd}
57