Mercurial > hg
changeset 40382:bd1ec1e36bf0
tests: add coverage for some untested areas of hgweb
The fact that these mimetype guesses weren't blowing up anywhere on py3 prior to
9310037f0636 was the giveaway. The annotate function is a bit unusual in that
it renders the page with a 500 in the middle, so I left the HTML output. For
the other functions, checking the access log is enough.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Fri, 19 Oct 2018 23:47:38 -0400 |
parents | 4613f9274fc0 |
children | a9e303dcd1e1 |
files | tests/test-hgweb-raw.t |
diffstat | 1 files changed, 167 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test-hgweb-raw.t Fri Oct 19 23:30:56 2018 +0300 +++ b/tests/test-hgweb-raw.t Fri Oct 19 23:47:38 2018 -0400 @@ -55,4 +55,171 @@ $ cat access.log error.log $LOCALIP - - [$LOGDATE$] "GET /raw-file/bf0ff59095c9/sub/some%20text%25.txt HTTP/1.1" 200 - (glob) + >>> with open('sub/binary.bin', 'wb') as fp: + ... fp.write(b'Binary\0file') and None + + $ hg ci -Aqm "add binary file" sub/ + $ hg serve -p $HGPORT -A access.log -E error.log -d --pid-file=hg.pid \ + > --config web.guessmime=True + $ cat hg.pid >> $DAEMON_PIDS + $ (get-with-headers.py localhost:$HGPORT 'annotate/tip/sub/binary.bin' content-type content-length content-disposition) >getoutput.txt + $ cat getoutput.txt + 200 Script output follows + content-type: text/html; charset=ascii + + <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> + <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> + <head> + <link rel="icon" href="/static/hgicon.png" type="image/png" /> + <meta name="robots" content="index, nofollow" /> + <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> + <script type="text/javascript" src="/static/mercurial.js"></script> + + <title>$TESTTMP/test: sub/binary.bin annotate</title> (glob) + </head> + <body> + + <div class="container"> + <div class="menu"> + <div class="logo"> + <a href="https://mercurial-scm.org/"> + <img src="/static/hglogo.png" alt="mercurial" /></a> + </div> + <ul> + <li><a href="/shortlog/tip">log</a></li> + <li><a href="/graph/tip">graph</a></li> + <li><a href="/tags">tags</a></li> + <li><a href="/bookmarks">bookmarks</a></li> + <li><a href="/branches">branches</a></li> + </ul> + + <ul> + <li><a href="/rev/tip">changeset</a></li> + <li><a href="/file/tip/sub/">browse</a></li> + </ul> + <ul> + <li><a href="/file/tip/sub/binary.bin">file</a></li> + <li><a href="/file/tip/sub/binary.bin">latest</a></li> + <li><a href="/diff/tip/sub/binary.bin">diff</a></li> + <li><a href="/comparison/tip/sub/binary.bin">comparison</a></li> + <li class="active">annotate</li> + <li><a href="/log/tip/sub/binary.bin">file log</a></li> + <li><a href="/raw-file/tip/sub/binary.bin">raw</a></li> + </ul> + <ul> + <li><a href="/help">help</a></li> + </ul> + </div> + + <div class="main"> + <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2> + <h3> + annotate sub/binary.bin @ 1:<a href="/rev/7dc31308464a">7dc31308464a</a> + <span class="phase">draft</span> <span class="branchhead">default</span> <span class="tag">tip</span> + </h3> + + + <form class="search" action="/log"> + + <p><input name="rev" id="search1" type="text" size="30" value="" /></p> + <div id="hint">Find changesets by keywords (author, files, the commit message), revision + number or hash, or <a href="/help/revsets">revset expression</a>.</div> + </form> + + <div class="description">add binary file</div> + + <table id="changesetEntry"> + <tr> + <th class="author">author</th> + <td class="author">test</td> + </tr> + <tr> + <th class="date">date</th> + <td class="date age">Thu, 01 Jan 1970 00:00:00 +0000</td> + </tr> + <tr> + <th class="author">parents</th> + <td class="author"></td> + </tr> + <tr> + <th class="author">children</th> + <td class="author"></td> + </tr> + </table> + + + <form id="diffopts-form" + data-ignorews="0" + data-ignorewsamount="0" + data-ignorewseol="0" + data-ignoreblanklines="0"> + <span>Ignore whitespace changes - </span> + <span>Everywhere:</span> + <input id="ignorews-checkbox" type="checkbox" /> + <span>Within whitespace:</span> + <input id="ignorewsamount-checkbox" type="checkbox" /> + <span>At end of lines:</span> + <input id="ignorewseol-checkbox" type="checkbox" /> + </form> + + <script type="text/javascript"> + renderDiffOptsForm(); + </script> + + <div class="overflow"> + <table class="bigtable"> + <thead> + <tr> + <th class="annotate">rev</th> + <th class="line"> line source</th> + </tr> + </thead> + <tbody class="stripes2 sourcelines" + data-logurl="/log/tip/sub/binary.bin" + data-selectabletag="TR" + data-ishead="1"> + + <tr id="l1" class="thisrev"> + <td class="annotate parity0"> + <a href="/annotate/7dc31308464a/sub/binary.bin#l1"> + 1 + </a> + <div class="annotate-info"> + <div> + <a href="/annotate/7dc31308464a/sub/binary.bin#l1"> + 7dc31308464a</a> + add binary file + </div> + <div><em>test</em></div> + <div>parents: </div> + <a href="/diff/7dc31308464a/sub/binary.bin">diff</a> + <a href="/rev/7dc31308464a">changeset</a> + </div> + </td> + <td class="source followlines-btn-parent"><a href="#l1"> 1</a> (binary:application/octet-stream)</td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + + <script type="text/javascript" src="/static/followlines.js"></script> + + + + </body> + </html> + + $ (get-with-headers.py localhost:$HGPORT 'comparison/tip/sub/binary.bin' content-type content-length content-disposition) >getoutput.txt + $ (get-with-headers.py localhost:$HGPORT 'file/tip/sub/binary.bin' content-type content-length content-disposition) >getoutput.txt + $ (get-with-headers.py localhost:$HGPORT 'static/hgicon.png' content-type content-length content-disposition) >getoutput.txt + $ killdaemons.py hg.pid + $ cat access.log error.log + $LOCALIP - - [$LOGDATE$] "GET /raw-file/bf0ff59095c9/sub/some%20text%25.txt HTTP/1.1" 200 - (glob) + $LOCALIP - - [$LOGDATE$] "GET /annotate/tip/sub/binary.bin HTTP/1.1" 200 - (glob) + $LOCALIP - - [$LOGDATE$] "GET /comparison/tip/sub/binary.bin HTTP/1.1" 200 - (glob) + $LOCALIP - - [$LOGDATE$] "GET /file/tip/sub/binary.bin HTTP/1.1" 200 - (glob) + $LOCALIP - - [$LOGDATE$] "GET /static/hgicon.png HTTP/1.1" 200 - (glob) + $ cd ..