#!/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: groupadd (not root)"
  return 2>/dev/null
  exit
fi

# 70 characters long string; hereafter, we will use it as per our need.
_s70="abcdefghijklmnopqrstuvwxyz123456789abcdefghijklmnopqrstuvwxyz123456789"

echo "# usage: addgroup [-g GID] [USER] GROUP
# Add a group or add a user to a group."

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

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

testing "group_name (text)" "groupadd toyTestGroup &&
   grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
   echo 'yes'" "yes\n" "" ""
testing "group_name (alphanumeric)" "groupadd toy1Test2Group3 &&
   grep '^toy1Test2Group3:' /etc/group $arg && groupdel toy1Test2Group3 $arg &&
   echo 'yes'" "yes\n" "" ""
testing "group_name (numeric)" "groupadd 987654321 &&
   grep '^987654321:' /etc/group $arg && groupdel 987654321 $arg &&
   echo 'yes'" "yes\n" "" ""
testing "group_name (with ./-)" "groupadd toy.1Test-2Group.3 &&
   grep '^toy.1Test-2Group.3:' /etc/group $arg &&
   groupdel toy.1Test-2Group.3 $arg && echo 'yes'" "yes\n" "" ""

_s210=`echo $_s70$_s70$_s70`
testing "group_name (long string)" "groupadd $_s210 &&
   grep '^$_s210:' /etc/group $arg && groupdel $_s210 $arg && echo 'yes'" \
  "yes\n" "" ""
testing "group_name with group_id" "groupadd -g 49999 toyTestGroup &&
   grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
   echo 'yes'" "yes\n" "" ""
testing "group_name with group_id (system_group)" \
  "groupadd -g 49999 -S toyTestGroup && grep '^toyTestGroup:' /etc/group $arg &&
   groupdel toyTestGroup $arg && echo 'yes'" "yes\n" "" ""
testing "group_name (system_group)" "groupadd -S toyTestGroup &&
   grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
   echo 'yes'" "yes\n" "" ""
testing "group_name (add/del user)" "groupadd toyTestGroup &&
   grep '^toyTestGroup:' /etc/group $arg && groupadd $USER toyTestGroup &&
   grep '^toyTestGroup:.*:.*:.*$USER.*' /etc/group $arg &&
   groupdel $USER toyTestGroup $arg || groupdel toyTestGroup &&
   grep '^toyTestGroup:' /etc/group $arg || echo 'yes'" "yes\n" "" ""

 echo "Testing to add single group multiple times after removing it..."
 for each in {01..20}
 do
   testing "group_name ($each)" "groupadd toyTestGroup &&
      grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
      echo 'yes'" "yes\n" "" ""
 done
