From 00f2338d288ef5fb8d95c30f1b9f02d1956bd401 Mon Sep 17 00:00:00 2001
From: Lais Frigerio <lfs@inf.ufpr.br>
Date: Fri, 30 Sep 2016 11:25:59 -0300
Subject: [PATCH] Issue #11: test user login on different days

---
 test/create_users.sh | 51 +++++++++++++++++++-------------------------
 test/login.exp       | 10 +++++++++
 2 files changed, 32 insertions(+), 29 deletions(-)
 create mode 100755 test/login.exp

diff --git a/test/create_users.sh b/test/create_users.sh
index 6abc25d7..d9db4b3a 100755
--- a/test/create_users.sh
+++ b/test/create_users.sh
@@ -1,35 +1,28 @@
 #!/bin/bash
+declare -a ft_users=( user1 user2 user3 user4 )
+declare -a ft_dates=( -2d -1d -1d -0d )
 
-for username in user1 user2 user3 user4
+for i in $(seq 0 $(( ${#ft_users[@]} -1 )))
 do
-password=""
-pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
-useradd -m -p $pass $username
-if [ $? -eq 0 ]
-then
-    echo "$username has been added to system!"
-else
-    echo "Failed to add $username!"
-fi
 
-{
-/usr/bin/expect << EOF
-spawn login $username
-sleep 2
-expect "Password: "
-send "\r"
-expect "\$ "
-send "exit\r"
-exit
-EOF
-}
+    ft_user=${ft_users[$i]}
+    ft_date=${ft_dates[$i]}
 
-userdel $username
-if [ $? -eq 0 ]
-then
-    echo "$username has been deleted!"
-else
-    echo "Failed to delete $username!"
-fi
+    password=""
+    pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
 
-done
+    useradd -m -p $pass $ft_user
+    if [ $? -ne 0 ]
+    then
+            echo "Failed to add $ft_user!"
+    fi
+
+    faketime -f "${ft_date}"  ./login.exp $ft_user &>/dev/null
+
+    deluser --remove-home $ft_user >/dev/null
+    if [ $? -ne 0 ]
+    then
+            echo "Failed to delete $ft_user!"
+    fi
+
+done
\ No newline at end of file
diff --git a/test/login.exp b/test/login.exp
new file mode 100755
index 00000000..6813a6f2
--- /dev/null
+++ b/test/login.exp
@@ -0,0 +1,10 @@
+#!/usr/bin/expect
+
+set user [lindex $argv 0]
+
+spawn login -f $user
+sleep 2
+expect "\$ "
+send -- "logout\r"
+
+exit
\ No newline at end of file
-- 
GitLab