#!/bin/bash

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

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

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

# chattr - Testcases

mkdir testattr
IN="cd testattr"
OUT="cd .."
_t="abcdefghijklmnopqrstuvwxyz"

testing "[-/+]i FILE[write]" "$IN && echo "$_t" > testFile &&
         chattr +i testFile && lsattr testFile && echo "$_t" > testFile; 
         chattr -i testFile; rm -rf testFile; $OUT " "----i-------- testFile\n" "" ""
testing "[-/+]i FILE[re-write]" "$IN && echo "$_t" > testFile && 
         chattr +i testFile && echo \"$_t\" > testFile || chattr -i testFile && 
         echo \"$_t\" > testFile && lsattr testFile; rm -rf testFile; $OUT" \
         "------------- testFile\n" "" ""
testing "[-/+]i FILE[append]" "$IN && echo "$_t" > testFile && 
         chattr +i testFile && echo \"$_t\" >> testFile || lsattr testFile && 
         chattr -i testFile; rm -rf testFile; $OUT" "----i-------- testFile\n" "" ""
testing "[-/+]i FILE[move]" "$IN && echo "$_t" > testFile && 
         chattr +i testFile && mv testFile testFile1 || lsattr testFile && 
         chattr -i testFile; rm -rf testFile; $OUT" "----i-------- testFile\n" "" ""
testing "[-/+]i FILE[delete]" "$IN && echo "$_t" > testFile && 
         chattr +i testFile && rm -f testFile || lsattr testFile && 
         chattr -i testFile; rm -rf testFile; $OUT" "----i-------- testFile\n" "" ""
testing "[-/+]i FILE[read]" "$IN && echo "$_t" > testFile && 
         chattr +i testFile && cat testFile && lsattr testFile && 
         chattr -i testFile; rm -rf testFile; $OUT" "$_t\n----i-------- testFile\n" "" ""
testing "[-/+]a FILE[write]" "$IN && echo "$_t" > testFile && 
         chattr +a testFile && echo $_t > testFile || lsattr testFile && 
         chattr -a testFile; rm -rf testFile; $OUT" "-----a------- testFile\n" "" ""
testing "[-/+]a FILE[re-write]" "$IN && echo "$_t" > testFile && 
         chattr +a testFile && echo $_t > testFile || lsattr testFile && 
         chattr -a testFile && echo $_t > testFile && cat testFile && 
         lsattr testFile; rm -rf testFile; 
         $OUT" "-----a------- testFile\n$_t\n------------- testFile\n" "" ""
testing "[-/+]a FILE[append]" "$IN && echo "$_t" > testFile && 
         chattr +a testFile && echo $_t >> testFile && cat testFile && 
         lsattr testFile && chattr -a testFile; rm -rf testFile; $OUT" \
         "$_t\n$_t\n-----a------- testFile\n" "" ""
testing "[-/+]a FILE[move]" "$IN && echo "$_t" > testFile && 
         chattr +a testFile && mv testFile testFile1 || lsattr testFile && 
         chattr -a testFile; rm -rf testFile; $OUT" "-----a------- testFile\n" "" ""
testing "[-/+]a FILE[delete]" "$IN && echo "$_t" > testFile && 
         chattr +a testFile && rm -f testFile || lsattr testFile && 
         chattr -a testFile; rm -rf testFile; $OUT" "-----a------- testFile\n" "" ""
testing "[-/+]a FILE[read]" "$IN && echo "$_t" > testFile && 
         chattr +a testFile && cat testFile && lsattr testFile && chattr -a testFile; 
         rm -rf testFile; $OUT" "$_t\n-----a------- testFile\n" "" ""

for attr in "A" "a" "c" "D" "d" "i" "j" "s" "S" "t" "T" "u"
do
  testing "[-/+]$attr FILE" "$IN && echo "$_t" > testFile && 
           chattr +$attr testFile && cat testFile && chattr -$attr testFile && 
           lsattr testFile; rm -rf testFile; $OUT" "$_t\n------------- testFile\n" "" ""
done

for attr in "A" "a" "c" "D" "d" "i" "j" "s" "S" "t" "T" "u"
do
  testing "-$attr FILE" "$IN && echo "$_t" > testFile && chattr -$attr testFile &&
           cat testFile && lsattr testFile; rm -rf testFile; $OUT" "$_t\n------------- testFile\n" "" ""
done

testing "[-/+]AacDdijsStTu FILE" "$IN && echo "$_t" > testFile && 
         chattr +AacDdijsStTu testFile && cat testFile && chattr -AacDdijsStTu testFile && 
         lsattr testFile; rm -rf testFile; $OUT" "$_t\n------------- testFile\n" "" ""
testing "[-/+]AacDdijsStTu(random) FILE" \
        "$IN && echo "$_t" > testFile && 
        chattr +AacDdijsStTu testFile && cat testFile && chattr -A testFile &&
        chattr -a testFile && chattr -c testFile && chattr -D testFile &&
        chattr -d testFile && chattr -i testFile && chattr -j testFile &&
        chattr -s testFile && chattr -S testFile && chattr -t testFile &&
        chattr -T testFile && chattr -u testFile && lsattr testFile &&
        chattr -AacDdijsStTu testFile; rm -rf testFile; $OUT" \
        "$_t\n------------- testFile\n" "" ""
testing "[-/+]AacDdijsStTu FILE*" "$IN && 
        echo "$_t" > testFile && echo "$_t" > testFile1 &&
        echo "$_t" > testFile2 && echo "$_t" > testFile3 &&
        echo "$_t" > testFile4 && echo "$_t" > testFile5 &&
        echo "$_t" > testFile6 && echo "$_t" > testFile7 &&
        echo "$_t" > testFile8 && echo "$_t" > testFile9 &&
        echo "$_t" > testFile10 && echo "$_t" > testFile11 &&
       chattr +AacDdijsStTu testFile* &&
       cat testFile9 && chattr -AacDdijsStTu testFile* && lsattr testFile*; rm -rf testFile*; $OUT" \
       "$_t\n------------- testFile\n------------- testFile1\n------------- testFile10\n------------- testFile11\n------------- testFile2\n------------- testFile3\n------------- testFile4\n------------- testFile5\n------------- testFile6\n------------- testFile7\n------------- testFile8\n------------- testFile9\n" "" ""
testing "[-/+]AacDdijsStTu(random) FILE*" \
        "$IN && echo "$_t" > testFile &&
        chattr +AacDdijsStTu testFile* && cat testFile && chattr -A testFile* &&
	chattr -a testFile* && chattr -c testFile* && chattr -D testFile* &&
	chattr -d testFile* && chattr -i testFile* && chattr -j testFile* &&
	chattr -s testFile* && chattr -S testFile* && chattr -t testFile* &&
	chattr -T testFile* && chattr -u testFile* && lsattr testFile;
        rm -rf testFile; $OUT" \
	"$_t\n------------- testFile\n" "" ""
testing "[-/+]i FILE[write]" \
	"$IN && echo "$_t" > testFile &&
	chattr +i testFile &&
	echo \"$_t\" > testFile || lsattr testFile && chattr -i testFile;
	rm -rf testFile; $OUT" "----i-------- testFile\n" "" ""
testing "[-/+]A FILE[write]" \
	"$IN && echo "$_t" > testFile && chattr +A testFile &&
	echo \"$_t\" > testFile && lsattr testFile && chattr -A testFile;
	rm -rf testFile; $OUT" "-------A----- testFile\n" "" ""
testing "[-/+]s FILE[write]" \
	"$IN && echo "$_t" > testFile && chattr +s testFile &&
	echo \"$_t\" > testFile && lsattr testFile && chattr -s testFile
	rm -rf testFile; $OUT" "s------------ testFile\n" "" ""
testing "-v version FILE[write]" \
	"$IN && echo "$_t" > testFile &&
	chattr -v 1234 testFile && echo \"$_t\" > testFile && 
	lsattr -v testFile; rm -rf testFile" \
	" 1234 ------------- testFile\n" "" ""

_a="-------A-----"
testing "-R [-/+]a FILE" "$IN && touch aa && chattr -R +A aa && lsattr aa &&
	chattr -R -A aa; rm -rf aa; $OUT" "$_a aa\n" "" ""
testing "-R [-/+]a FILE.." "$IN && touch aa bb &&
	chattr -R +A aa bb && lsattr aa bb &&
	chattr -R -A aa bb; rm -rf aa bb; $OUT" "$_a aa\n$_a bb\n" "" ""

# Clean up
rm -rf testattr
