Mercurial > hg
view tests/test-mq-qnew @ 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 | 0c944b7af564 |
children | a5903e612f07 |
line wrap: on
line source
#!/bin/sh catpatch() { cat $1 | sed -e "s/^\(# Parent \).*/\1/" } echo "[extensions]" >> $HGRCPATH echo "mq=" >> $HGRCPATH runtest() { hg init mq cd mq echo a > a hg ci -Ama echo '% qnew should refuse bad patch names' hg qnew series hg qnew status hg qnew guards hg qnew .hgignore hg qnew .mqfoo hg qnew 'foo#bar' hg qnew 'foo:bar' hg qinit -c echo '% qnew with name containing slash' hg qnew foo/bar.patch hg qseries hg qpop hg qdelete foo/bar.patch echo '% qnew with uncommitted changes' echo a > somefile hg add somefile hg qnew uncommitted.patch hg st hg qseries echo '% qnew implies add' hg -R .hg/patches st echo '% qnew missing' hg qnew missing.patch missing echo '% qnew -m' hg qnew -m 'foo bar' mtest.patch catpatch .hg/patches/mtest.patch echo '% qnew twice' hg qnew first.patch hg qnew first.patch touch ../first.patch hg qimport ../first.patch echo '% qnew -f from a subdirectory' hg qpop -a mkdir d cd d echo b > b hg ci -Am t echo b >> b hg st hg qnew -g -f p catpatch ../.hg/patches/p echo '% qnew -u with no username configured' HGUSER= hg qnew -u blue red catpatch ../.hg/patches/red echo '% fail when trying to import a merge' hg init merge cd merge touch a hg ci -Am null echo a >> a hg ci -m a hg up -r 0 echo b >> a hg ci -m b hg merge -f 1 hg resolve --mark a hg qnew -f merge cd ../../.. rm -r mq } echo '%%% plain headers' echo "[mq]" >> $HGRCPATH echo "plain=true" >> $HGRCPATH mkdir sandbox (cd sandbox ; runtest) rm -r sandbox echo '%%% hg headers' echo "plain=false" >> $HGRCPATH mkdir sandbox (cd sandbox ; runtest) rm -r sandbox exit 0