#!/bin/bash

# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>

[ -f testing.sh ] && . testing.sh

if [ "$(id -u)" -ne 0 ]
then
  echo "$SHOWSKIP: useradd (not root)"
  continue 2>/dev/null
  exit
fi

# Redirecting all output to /dev/null for grep, adduser and deluser
arg="&>/dev/null"

#testing "name" "command" "result" "infile" "stdin"

# Default password for adding user is: 'password'
pass=`echo -ne 'password\npassword\n'`

user="toyTestUser"
testing "adduser user_name (text)" "useradd $user $arg || 
   grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
   echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg

user="toy1Test2User3"
testing "adduser user_name (alphanumeric)" "useradd $user $arg ||
   grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
   echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg

user="987654321"
testing "adduser user_name (numeric)" "useradd $user $arg ||
   grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
   echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg

user="toy.1Test-2User_3"
testing "adduser user_name (with ./-/_)" "useradd $user $arg ||
   grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] && 
   echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg

# 70 characters long string; hereafter, we will use it as per our need.
user="abcdefghijklmnopqrstuvwxyz123456789abcdefghijklmnopqrstuvwxyz123456789"
testing "adduser user_name (long string)" "useradd $user $arg ||
   grep '^$user:' /etc/passwd $arg && [ -d /home/$user ] &&
   echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg

user="toyTestUser"
testing "adduser user_name with dir" "useradd -h $PWD/dir $user $arg ||
   grep '^$user:.*dir' /etc/passwd $arg && [ -d $PWD/dir ] &&
   echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg
rm -rf $PWD/dir

gecos="aaa,bbb,ccc,ddd,eee"
testing "adduser user_name with gecos" "useradd -g '$gecos' $user $arg ||
   grep '^$user:.*$gecos' /etc/passwd $arg && [ -d /home/$user ] &&
   echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg

shl="/bin/sh"
testing "adduser user_name with shell" "useradd -s $shl $user $arg ||
   grep '^$user:.*$shl$' /etc/passwd $arg && [ -d /home/$user ] &&
   echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg

g_name="root"
g_id=`grep $g_name':.*:.*' /etc/group | cut -d : -f 3`
testing "adduser user_name with group" "useradd -G $g_name $user $arg ||
   grep '^$user:.*:.*:$g_id:.*' /etc/passwd $arg && [ -d /home/$user ] &&
   echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg

testing "adduser user_name (system user)" "useradd -S $user $arg ||
   grep '^$user:.*:.*:.*' /etc/passwd $arg && [ ! -e /home/$user ] && 
   echo 'yes'" "yes\n" "" "$pass"   
userdel -r $user $arg

testing "adduser user_name with -D" "useradd -D $user $arg ||
   grep '^$user:.*:.*:.*' /etc/passwd $arg && [ -d /home/$user ] &&
   echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg

testing "adduser user_name with -H" "useradd -H $user $arg ||
   grep '^$user:.*:.*:.*' /etc/passwd $arg && [ ! -e /home/$user ] &&
   echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg

testing "adduser user_name with dir and -H" "useradd -H -h $PWD/dir $user $arg ||
   grep '^$user:.*dir' /etc/passwd $arg && [ ! -e $PWD/dir ] &&
   echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg

testing "adduser user_name with user_id" "useradd -u 49999 $user $arg ||
   grep '^$user:x:49999:.*' /etc/passwd $arg && [ -d /home/$user ] && 
   echo 'yes'" "yes\n" "" "$pass"
userdel -r $user $arg

