forked from visionmedia/node-jscoverage
-
Notifications
You must be signed in to change notification settings - Fork 0
/
charset.sh
executable file
·110 lines (93 loc) · 2.96 KB
/
charset.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#!/bin/sh
# charset.sh - test jscoverage-server with different charset values
# Copyright (C) 2008 siliconforks.com
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
set -e
shutdown() {
wget -q -O- --post-data= "http://127.0.0.1:${proxy_server_port}/jscoverage-shutdown" > /dev/null
wait $proxy_server_pid
}
cleanup() {
shutdown
kill -9 $origin_server_pid
}
trap 'cleanup' 0 1 2 3 15
export PATH=.:..:$PATH
if [ -z "$VALGRIND" ]
then
delay=0.2
else
delay=2
fi
if jscoverage-server --version | grep -q 'iconv\|MultiByteToWideChar'
then
character_encoding_support=yes
else
character_encoding_support=no
fi
$VALGRIND jscoverage-server --proxy --no-highlight > OUT 2> ERR &
proxy_server_pid=$!
proxy_server_port=8080
./http-server-charset &
origin_server_pid=$!
sleep $delay
case "$character_encoding_support" in
yes)
cat ../report.js > EXPECTED
cat javascript-utf-8.expected/javascript-utf-8.js | sed 's/javascript-utf-8.js/http:\/\/127.0.0.1:8000\/utf-8.js/g' >> EXPECTED
curl -s -x 127.0.0.1:8080 http://127.0.0.1:8000/utf-8.js > ACTUAL
diff EXPECTED ACTUAL
;;
*)
echo 500 > EXPECTED
! curl -f -w '%{http_code}\n' -x 127.0.0.1:8080 http://127.0.0.1:8000/utf-8.js 2> /dev/null > ACTUAL
diff EXPECTED ACTUAL
;;
esac
shutdown
$VALGRIND jscoverage-server --proxy > OUT 2> ERR &
proxy_server_pid=$!
proxy_server_port=8080
sleep $delay
case "$character_encoding_support" in
yes)
cat ../report.js > EXPECTED
cat javascript.expected/javascript-iso-8859-1.js | sed 's/javascript-iso-8859-1.js/http:\/\/127.0.0.1:8000\/iso-8859-1.js/g' >> EXPECTED
curl -s -x 127.0.0.1:8080 http://127.0.0.1:8000/iso-8859-1.js > ACTUAL
diff EXPECTED ACTUAL
;;
*)
echo 500 > EXPECTED
! curl -f -w '%{http_code}\n' -x 127.0.0.1:8080 http://127.0.0.1:8000/iso-8859-1.js 2> /dev/null > ACTUAL
diff EXPECTED ACTUAL
;;
esac
# bogus charset
echo 500 > EXPECTED
! curl -f -w '%{http_code}\n' -x 127.0.0.1:8080 http://127.0.0.1:8000/bogus.js 2> /dev/null > ACTUAL
diff EXPECTED ACTUAL
# malformed encoding
case "$character_encoding_support" in
yes)
status=502
;;
*)
status=500
;;
esac
echo $status > EXPECTED
! curl -f -w '%{http_code}\n' -x 127.0.0.1:8080 http://127.0.0.1:8000/malformed.js 2> /dev/null > ACTUAL
diff EXPECTED ACTUAL