Mercurial > hg
annotate tests/test-hgweb-commands @ 11765:aff419e260f9 stable
templatefilters: make json filter handle multibyte characters correctly
It aims to fix javascript error of hgweb's graph view in Japanese 'cp932'
encoding.
'cp932' contains multibyte characters ending with '\x5c' (backslash),
e.g. '\x94\x5c' for Japanese Kanji 'Noh'.
Due to json filter escapes '\' to '\\', multibyte string ending with
'\x5c' is translated to "xxx\", resulting javascript parse error on
a web browser.
This patch changes json() to pass unicode to jsonescape().
Unicode decoding error handler changed to 'replace' by Patrick Mézard.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 07 Aug 2010 16:27:16 +0900 |
parents | 1a8df80dfdde |
children | a65ea28269ef |
rev | line source |
---|---|
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
1 #!/bin/sh |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
2 # An attempt at more fully testing the hgweb web interface. |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
3 # The following things are tested elsewhere and are therefore omitted: |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
4 # - archive, tested in test-archive |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
5 # - unbundle, tested in test-push-http |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
6 # - changegroupsubset, tested in test-pull |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
7 |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
8 echo % Set up the repo |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
9 hg init test |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
10 cd test |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
11 mkdir da |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
12 echo foo > da/foo |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
13 echo foo > foo |
8167
6c82beaaa11a
tests: removed redundant "-d '0 0'" from test scripts
Martin Geisler <mg@lazybytes.net>
parents:
7544
diff
changeset
|
14 hg ci -Ambase |
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
15 hg tag 1.0 |
8358
be2277c1dfcc
tests: add test for branches webcommand
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8167
diff
changeset
|
16 echo another > foo |
be2277c1dfcc
tests: add test for branches webcommand
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8167
diff
changeset
|
17 hg branch stable |
be2277c1dfcc
tests: add test for branches webcommand
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8167
diff
changeset
|
18 hg ci -Ambranch |
10414
1a8df80dfdde
streaming: actually change default
Matt Mackall <mpm@selenic.com>
parents:
10248
diff
changeset
|
19 hg serve --config server.uncompressed=False -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log |
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
20 cat hg.pid >> $DAEMON_PIDS |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
21 |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
22 echo % Logs and changes |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
23 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/?style=atom' | sed "s/http:\/\/[^/]*\//http:\/\/127.0.0.1\//" |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
24 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/1/?style=atom' | sed "s/http:\/\/[^/]*\//http:\/\/127.0.0.1\//" |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
25 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/1/foo/?style=atom' | sed "s/http:\/\/[^/]*\//http:\/\/127.0.0.1\//" |
7544
c5e37dc38a52
test-hgweb-*: replace "XX years ago" by a fixed string in get-with-headers.py
Gilles Moris <gilles.moris@free.fr>
parents:
6786
diff
changeset
|
26 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/shortlog/' |
c5e37dc38a52
test-hgweb-*: replace "XX years ago" by a fixed string in get-with-headers.py
Gilles Moris <gilles.moris@free.fr>
parents:
6786
diff
changeset
|
27 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/rev/0/' |
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
28 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/rev/1/?style=raw' |
10248
4441e8d7f04f
hgweb: add a test for search logs
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
9946
diff
changeset
|
29 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log?rev=base' |
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
30 |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
31 echo % File-related |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
32 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/foo/?style=raw' |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
33 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/annotate/1/foo/?style=raw' |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
34 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/?style=raw' |
7544
c5e37dc38a52
test-hgweb-*: replace "XX years ago" by a fixed string in get-with-headers.py
Gilles Moris <gilles.moris@free.fr>
parents:
6786
diff
changeset
|
35 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/foo' |
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
36 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/filediff/1/foo/?style=raw' |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
37 |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
38 echo % Overviews |
9946
2059be77d4f8
templates: add raw templates for tags/branches pages
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8448
diff
changeset
|
39 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-tags' |
2059be77d4f8
templates: add raw templates for tags/branches pages
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8448
diff
changeset
|
40 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-branches' |
7544
c5e37dc38a52
test-hgweb-*: replace "XX years ago" by a fixed string in get-with-headers.py
Gilles Moris <gilles.moris@free.fr>
parents:
6786
diff
changeset
|
41 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/summary/?style=gitweb' |
c5e37dc38a52
test-hgweb-*: replace "XX years ago" by a fixed string in get-with-headers.py
Gilles Moris <gilles.moris@free.fr>
parents:
6786
diff
changeset
|
42 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/graph/?style=gitweb' |
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
43 |
5593
6ae8ed59c7b4
Fix breaking test from 05451f6b5f07
Bryan O'Sullivan <bos@serpentine.com>
parents:
5590
diff
changeset
|
44 echo % capabilities |
6777
44c5157474e7
hgweb: protocol requests are processed immediately
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6335
diff
changeset
|
45 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=capabilities' |
5593
6ae8ed59c7b4
Fix breaking test from 05451f6b5f07
Bryan O'Sullivan <bos@serpentine.com>
parents:
5590
diff
changeset
|
46 echo % heads |
6777
44c5157474e7
hgweb: protocol requests are processed immediately
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6335
diff
changeset
|
47 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=heads' |
5593
6ae8ed59c7b4
Fix breaking test from 05451f6b5f07
Bryan O'Sullivan <bos@serpentine.com>
parents:
5590
diff
changeset
|
48 echo % lookup |
6777
44c5157474e7
hgweb: protocol requests are processed immediately
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6335
diff
changeset
|
49 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=lookup&node=1' |
5593
6ae8ed59c7b4
Fix breaking test from 05451f6b5f07
Bryan O'Sullivan <bos@serpentine.com>
parents:
5590
diff
changeset
|
50 echo % branches |
6777
44c5157474e7
hgweb: protocol requests are processed immediately
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6335
diff
changeset
|
51 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=branches' |
5593
6ae8ed59c7b4
Fix breaking test from 05451f6b5f07
Bryan O'Sullivan <bos@serpentine.com>
parents:
5590
diff
changeset
|
52 echo % changegroup |
8446
e1f4343db740
tests: use repr.py to avoid binary characters in test output
Marti Raudsepp <marti@juffo.org>
parents:
8358
diff
changeset
|
53 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=changegroup' \ |
8448
0eb8c4df61bd
tests: renamed helper to avoid clash with stdlib repr module
Martin Geisler <mg@lazybytes.net>
parents:
8446
diff
changeset
|
54 | $TESTDIR/printrepr.py |
5593
6ae8ed59c7b4
Fix breaking test from 05451f6b5f07
Bryan O'Sullivan <bos@serpentine.com>
parents:
5590
diff
changeset
|
55 echo % stream_out |
6777
44c5157474e7
hgweb: protocol requests are processed immediately
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6335
diff
changeset
|
56 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=stream_out' |
6335
e29557d687c9
hgweb: only accept POST requests for unbundle
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6168
diff
changeset
|
57 echo % failing unbundle, requires POST request |
6777
44c5157474e7
hgweb: protocol requests are processed immediately
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
6335
diff
changeset
|
58 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=unbundle' |
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
59 |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
60 echo % Static files |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
61 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/static/style.css' |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
62 |
11765
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
63 echo % Stop and restart with HGENCODING=cp932 |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
64 "$TESTDIR/killdaemons.py" |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
65 HGENCODING=cp932 hg serve --config server.uncompressed=False -n test \ |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
66 -p $HGPORT -d --pid-file=hg.pid -E errors.log |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
67 cat hg.pid >> $DAEMON_PIDS |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
68 |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
69 # commit message with Japanese Kanji 'Noh', which ends with '\x5c' |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
70 echo foo >> foo |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
71 HGENCODING=cp932 hg ci -m `python -c 'print("\x94\x5c")'` |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
72 |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
73 echo % Graph json escape of multibyte character |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
74 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/graph/' \ |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
75 | grep '^var data =' |
aff419e260f9
templatefilters: make json filter handle multibyte characters correctly
Yuya Nishihara <yuya@tcha.org>
parents:
10414
diff
changeset
|
76 |
5590
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
77 echo % ERRORS ENCOUNTERED |
05451f6b5f07
add more tests for hgweb commands
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff
changeset
|
78 cat errors.log |