Merge tag 'v1.1.0' into debian
[tweeper.git] / tests / test_information_leakage.sh
1 #!/bin/sh
2
3 set -e
4
5 TWEEPER="/usr/share/php/tweeper/tweeper"
6 #TWEEPER="./tweeper"
7
8 check_result() {
9   URL="$1"
10   FILE="$2"
11   RESULT="$3"
12
13   echo "URL $URL"
14   if [ "$RESULT" ];
15   then
16     echo "--> $FILE"
17     echo "    exists"
18   else
19     echo "... $FILE"
20     echo "    does not exist"
21   fi
22   echo
23 }
24
25 file_exists() {
26   FILE="$1"
27   URL="file://twitter.com/$FILE"
28   OUTPUT=$($TWEEPER $URL)
29   check_result "$URL" "$FILE" "$OUTPUT"
30 }
31
32 file_exists_on_server() {
33   SERVER="$1"
34   FILE="$2"
35   URL="file://twitter.com/$FILE"
36   OUTPUT=$(curl $SERVER/tweeper.php?src_url=$URL 2> /dev/null)
37   check_result "$URL" "$FILE on $SERVER" "$OUTPUT"
38 }
39
40 file_exists /etc/passwd || true
41 file_exists /etc/file_with_an_unlikely_name || true
42
43 echo "Staring a test server"
44 echo
45
46 php -S localhost:8000 -t $(dirname $TWEEPER) > /dev/null 2>&1 &
47 SERVER_PID=$!
48 sleep 1
49
50 file_exists_on_server http://localhost:8000 /etc/passwd || true
51 file_exists_on_server http://localhost:8000 /etc/file_with_an_unlikely_name || true
52
53 echo "Shutting down the test server"
54 kill $SERVER_PID