tests: unify test-hgweb-empty
authorMatt Mackall <mpm@selenic.com>
Sun, 26 Sep 2010 13:41:32 -0500
changeset 12436 b52ce78de84d
parent 12435 61be1503cfb2
child 12437 b5538f89e5aa
tests: unify test-hgweb-empty
tests/test-hgweb-empty
tests/test-hgweb-empty.out
tests/test-hgweb-empty.t
--- a/tests/test-hgweb-empty	Sun Sep 26 13:41:32 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-#!/bin/sh
-# Some tests for hgweb in an empty repository
-
-hg init test
-cd test
-hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
-cat hg.pid >> $DAEMON_PIDS
-
-("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/shortlog')
-("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/log')
-("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/graph')
-("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file')
--- a/tests/test-hgweb-empty.out	Sun Sep 26 13:41:32 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,366 +0,0 @@
-200 Script output follows
-
-<!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" />
-
-<title>test: log</title>
-<link rel="alternate" type="application/atom+xml"
-   href="/atom-log" title="Atom feed for test" />
-<link rel="alternate" type="application/rss+xml"
-   href="/rss-log" title="RSS feed for test" />
-</head>
-<body>
-
-<div class="container">
-<div class="menu">
-<div class="logo">
-<a href="http://mercurial.selenic.com/">
-<img src="/static/hglogo.png" alt="mercurial" /></a>
-</div>
-<ul>
-<li class="active">log</li>
-<li><a href="/graph/000000000000">graph</a></li>
-<li><a href="/tags">tags</a></li>
-<li><a href="/branches">branches</a></li>
-</ul>
-<ul>
-<li><a href="/rev/000000000000">changeset</a></li>
-<li><a href="/file/000000000000">browse</a></li>
-</ul>
-<ul>
-
-</ul>
-</div>
-
-<div class="main">
-<h2><a href="/">test</a></h2>
-<h3>log</h3>
-
-<form class="search" action="/log">
-
-<p><input name="rev" id="search1" type="text" size="30" /></p>
-<div id="hint">find changesets by author, revision,
-files, or words in the commit message</div>
-</form>
-
-<div class="navigate">
-<a href="/shortlog/-1?revcount=30">less</a>
-<a href="/shortlog/-1?revcount=120">more</a>
-| rev -1: <a href="/shortlog/000000000000">(0)</a> <a href="/shortlog/tip">tip</a> 
-</div>
-
-<table class="bigtable">
- <tr>
-  <th class="age">age</th>
-  <th class="author">author</th>
-  <th class="description">description</th>
- </tr>
-
-</table>
-
-<div class="navigate">
-<a href="/shortlog/-1?revcount=30">less</a>
-<a href="/shortlog/-1?revcount=120">more</a>
-| rev -1: <a href="/shortlog/000000000000">(0)</a> <a href="/shortlog/tip">tip</a> 
-</div>
-
-</div>
-</div>
-
-
-
-</body>
-</html>
-
-200 Script output follows
-
-<!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" />
-
-<title>test: log</title>
-<link rel="alternate" type="application/atom+xml"
-   href="/atom-log" title="Atom feed for test" />
-<link rel="alternate" type="application/rss+xml"
-   href="/rss-log" title="RSS feed for test" />
-</head>
-<body>
-
-<div class="container">
-<div class="menu">
-<div class="logo">
-<a href="http://mercurial.selenic.com/">
-<img src="/static/hglogo.png" alt="mercurial" /></a>
-</div>
-<ul>
-<li class="active">log</li>
-<li><a href="/graph/000000000000">graph</a></li>
-<li><a href="/tags">tags</a></li>
-<li><a href="/branches">branches</a></li>
-</ul>
-<ul>
-<li><a href="/rev/000000000000">changeset</a></li>
-<li><a href="/file/000000000000">browse</a></li>
-</ul>
-<ul>
-
-</ul>
-</div>
-
-<div class="main">
-<h2><a href="/">test</a></h2>
-<h3>log</h3>
-
-<form class="search" action="/log">
-
-<p><input name="rev" id="search1" type="text" size="30" /></p>
-<div id="hint">find changesets by author, revision,
-files, or words in the commit message</div>
-</form>
-
-<div class="navigate">
-<a href="/shortlog/-1?revcount=5">less</a>
-<a href="/shortlog/-1?revcount=20">more</a>
-| rev -1: <a href="/shortlog/000000000000">(0)</a> <a href="/shortlog/tip">tip</a> 
-</div>
-
-<table class="bigtable">
- <tr>
-  <th class="age">age</th>
-  <th class="author">author</th>
-  <th class="description">description</th>
- </tr>
-
-</table>
-
-<div class="navigate">
-<a href="/shortlog/-1?revcount=5">less</a>
-<a href="/shortlog/-1?revcount=20">more</a>
-| rev -1: <a href="/shortlog/000000000000">(0)</a> <a href="/shortlog/tip">tip</a> 
-</div>
-
-</div>
-</div>
-
-
-
-</body>
-</html>
-
-200 Script output follows
-
-<!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" />
-
-<title>test: revision graph</title>
-<link rel="alternate" type="application/atom+xml"
-   href="/atom-log" title="Atom feed for test: log" />
-<link rel="alternate" type="application/rss+xml"
-   href="/rss-log" title="RSS feed for test: log" />
-<!--[if IE]><script type="text/javascript" src="/static/excanvas.js"></script><![endif]-->
-</head>
-<body>
-
-<div class="container">
-<div class="menu">
-<div class="logo">
-<a href="http://mercurial.selenic.com/">
-<img src="/static/hglogo.png" alt="mercurial" /></a>
-</div>
-<ul>
-<li><a href="/shortlog/000000000000">log</a></li>
-<li class="active">graph</li>
-<li><a href="/tags">tags</a></li>
-<li><a href="/branches">branches</a></li>
-</ul>
-<ul>
-<li><a href="/rev/000000000000">changeset</a></li>
-<li><a href="/file/000000000000">browse</a></li>
-</ul>
-</div>
-
-<div class="main">
-<h2><a href="/">test</a></h2>
-<h3>graph</h3>
-
-<form class="search" action="/log">
-
-<p><input name="rev" id="search1" type="text" size="30" /></p>
-<div id="hint">find changesets by author, revision,
-files, or words in the commit message</div>
-</form>
-
-<div class="navigate">
-<a href="/graph/-1?revcount=30">less</a>
-<a href="/graph/-1?revcount=120">more</a>
-| rev -1: <a href="/graph/000000000000">(0)</a> <a href="/graph/tip">tip</a> 
-</div>
-
-<noscript><p>The revision graph only works with JavaScript-enabled browsers.</p></noscript>
-
-<div id="wrapper">
-<ul id="nodebgs"></ul>
-<canvas id="graph" width="224" height="12"></canvas>
-<ul id="graphnodes"></ul>
-</div>
-
-<script type="text/javascript" src="/static/graph.js"></script>
-<script type="text/javascript">
-<!-- hide script content
-
-var data = [];
-var graph = new Graph();
-graph.scale(39);
-
-graph.edge = function(x0, y0, x1, y1, color) {
-	
-	this.setColor(color, 0.0, 0.65);
-	this.ctx.beginPath();
-	this.ctx.moveTo(x0, y0);
-	this.ctx.lineTo(x1, y1);
-	this.ctx.stroke();
-	
-}
-
-var revlink = '<li style="_STYLE"><span class="desc">';
-revlink += '<a href="/rev/_NODEID" title="_NODEID">_DESC</a>';
-revlink += '</span>_TAGS<span class="info">_DATE, by _USER</span></li>';
-
-graph.vertex = function(x, y, color, parity, cur) {
-	
-	this.ctx.beginPath();
-	color = this.setColor(color, 0.25, 0.75);
-	this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
-	this.ctx.fill();
-	
-	var bg = '<li class="bg parity' + parity + '"></li>';
-	var left = (this.columns + 1) * this.bg_height;
-	var nstyle = 'padding-left: ' + left + 'px;';
-	var item = revlink.replace(/_STYLE/, nstyle);
-	item = item.replace(/_PARITY/, 'parity' + parity);
-	item = item.replace(/_NODEID/, cur[0]);
-	item = item.replace(/_NODEID/, cur[0]);
-	item = item.replace(/_DESC/, cur[3]);
-	item = item.replace(/_USER/, cur[4]);
-	item = item.replace(/_DATE/, cur[5]);
-
-	var tagspan = '';
-	if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) {
-		tagspan = '<span class="logtags">';
-		if (cur[6][1]) {
-			tagspan += '<span class="branchhead" title="' + cur[6][0] + '">';
-			tagspan += cur[6][0] + '</span> ';
-		} else if (!cur[6][1] && cur[6][0] != 'default') {
-			tagspan += '<span class="branchname" title="' + cur[6][0] + '">';
-			tagspan += cur[6][0] + '</span> ';
-		}
-		if (cur[7].length) {
-			for (var t in cur[7]) {
-				var tag = cur[7][t];
-				tagspan += '<span class="tag">' + tag + '</span> ';
-			}
-		}
-		tagspan += '</span>';
-	}
-	
-	item = item.replace(/_TAGS/, tagspan);
-	return [bg, item];
-	
-}
-
-graph.render(data);
-
-// stop hiding script -->
-</script>
-
-<div class="navigate">
-<a href="/graph/-1?revcount=30">less</a>
-<a href="/graph/-1?revcount=120">more</a>
-| rev -1: <a href="/graph/000000000000">(0)</a> <a href="/graph/tip">tip</a> 
-</div>
-
-</div>
-</div>
-
-
-
-</body>
-</html>
-
-200 Script output follows
-
-<!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" />
-
-<title>test: 000000000000 /</title>
-</head>
-<body>
-
-<div class="container">
-<div class="menu">
-<div class="logo">
-<a href="http://mercurial.selenic.com/">
-<img src="/static/hglogo.png" alt="mercurial" /></a>
-</div>
-<ul>
-<li><a href="/shortlog/000000000000">log</a></li>
-<li><a href="/graph/000000000000">graph</a></li>
-<li><a href="/tags">tags</a></li>
-<li><a href="/branches">branches</a></li>
-</ul>
-<ul>
-<li><a href="/rev/000000000000">changeset</a></li>
-<li class="active">browse</li>
-</ul>
-<ul>
-
-</ul>
-</div>
-
-<div class="main">
-<h2><a href="/">test</a></h2>
-<h3>directory / @ -1:000000000000 <span class="tag">tip</span> </h3>
-
-<form class="search" action="/log">
-
-<p><input name="rev" id="search1" type="text" size="30" /></p>
-<div id="hint">find changesets by author, revision,
-files, or words in the commit message</div>
-</form>
-
-<table class="bigtable">
-<tr>
-  <th class="name">name</th>
-  <th class="size">size</th>
-  <th class="permissions">permissions</th>
-</tr>
-<tr class="fileline parity0">
-  <td class="name"><a href="/file/000000000000/">[up]</a></td>
-  <td class="size"></td>
-  <td class="permissions">drwxr-xr-x</td>
-</tr>
-
-
-</table>
-</div>
-</div>
-
-
-</body>
-</html>
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-hgweb-empty.t	Sun Sep 26 13:41:32 2010 -0500
@@ -0,0 +1,376 @@
+Some tests for hgweb in an empty repository
+
+  $ hg init test
+  $ cd test
+  $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
+  $ cat hg.pid >> $DAEMON_PIDS
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/shortlog')
+  200 Script output follows
+  
+  <!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" />
+  
+  <title>test: log</title>
+  <link rel="alternate" type="application/atom+xml"
+     href="/atom-log" title="Atom feed for test" />
+  <link rel="alternate" type="application/rss+xml"
+     href="/rss-log" title="RSS feed for test" />
+  </head>
+  <body>
+  
+  <div class="container">
+  <div class="menu">
+  <div class="logo">
+  <a href="http://mercurial.selenic.com/">
+  <img src="/static/hglogo.png" alt="mercurial" /></a>
+  </div>
+  <ul>
+  <li class="active">log</li>
+  <li><a href="/graph/000000000000">graph</a></li>
+  <li><a href="/tags">tags</a></li>
+  <li><a href="/branches">branches</a></li>
+  </ul>
+  <ul>
+  <li><a href="/rev/000000000000">changeset</a></li>
+  <li><a href="/file/000000000000">browse</a></li>
+  </ul>
+  <ul>
+  
+  </ul>
+  </div>
+  
+  <div class="main">
+  <h2><a href="/">test</a></h2>
+  <h3>log</h3>
+  
+  <form class="search" action="/log">
+  
+  <p><input name="rev" id="search1" type="text" size="30" /></p>
+  <div id="hint">find changesets by author, revision,
+  files, or words in the commit message</div>
+  </form>
+  
+  <div class="navigate">
+  <a href="/shortlog/-1?revcount=30">less</a>
+  <a href="/shortlog/-1?revcount=120">more</a>
+  | rev -1: <a href="/shortlog/000000000000">(0)</a> <a href="/shortlog/tip">tip</a> 
+  </div>
+  
+  <table class="bigtable">
+   <tr>
+    <th class="age">age</th>
+    <th class="author">author</th>
+    <th class="description">description</th>
+   </tr>
+  
+  </table>
+  
+  <div class="navigate">
+  <a href="/shortlog/-1?revcount=30">less</a>
+  <a href="/shortlog/-1?revcount=120">more</a>
+  | rev -1: <a href="/shortlog/000000000000">(0)</a> <a href="/shortlog/tip">tip</a> 
+  </div>
+  
+  </div>
+  </div>
+  
+  
+  
+  </body>
+  </html>
+  
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/log')
+  200 Script output follows
+  
+  <!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" />
+  
+  <title>test: log</title>
+  <link rel="alternate" type="application/atom+xml"
+     href="/atom-log" title="Atom feed for test" />
+  <link rel="alternate" type="application/rss+xml"
+     href="/rss-log" title="RSS feed for test" />
+  </head>
+  <body>
+  
+  <div class="container">
+  <div class="menu">
+  <div class="logo">
+  <a href="http://mercurial.selenic.com/">
+  <img src="/static/hglogo.png" alt="mercurial" /></a>
+  </div>
+  <ul>
+  <li class="active">log</li>
+  <li><a href="/graph/000000000000">graph</a></li>
+  <li><a href="/tags">tags</a></li>
+  <li><a href="/branches">branches</a></li>
+  </ul>
+  <ul>
+  <li><a href="/rev/000000000000">changeset</a></li>
+  <li><a href="/file/000000000000">browse</a></li>
+  </ul>
+  <ul>
+  
+  </ul>
+  </div>
+  
+  <div class="main">
+  <h2><a href="/">test</a></h2>
+  <h3>log</h3>
+  
+  <form class="search" action="/log">
+  
+  <p><input name="rev" id="search1" type="text" size="30" /></p>
+  <div id="hint">find changesets by author, revision,
+  files, or words in the commit message</div>
+  </form>
+  
+  <div class="navigate">
+  <a href="/shortlog/-1?revcount=5">less</a>
+  <a href="/shortlog/-1?revcount=20">more</a>
+  | rev -1: <a href="/shortlog/000000000000">(0)</a> <a href="/shortlog/tip">tip</a> 
+  </div>
+  
+  <table class="bigtable">
+   <tr>
+    <th class="age">age</th>
+    <th class="author">author</th>
+    <th class="description">description</th>
+   </tr>
+  
+  </table>
+  
+  <div class="navigate">
+  <a href="/shortlog/-1?revcount=5">less</a>
+  <a href="/shortlog/-1?revcount=20">more</a>
+  | rev -1: <a href="/shortlog/000000000000">(0)</a> <a href="/shortlog/tip">tip</a> 
+  </div>
+  
+  </div>
+  </div>
+  
+  
+  
+  </body>
+  </html>
+  
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/graph')
+  200 Script output follows
+  
+  <!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" />
+  
+  <title>test: revision graph</title>
+  <link rel="alternate" type="application/atom+xml"
+     href="/atom-log" title="Atom feed for test: log" />
+  <link rel="alternate" type="application/rss+xml"
+     href="/rss-log" title="RSS feed for test: log" />
+  <!--[if IE]><script type="text/javascript" src="/static/excanvas.js"></script><![endif]-->
+  </head>
+  <body>
+  
+  <div class="container">
+  <div class="menu">
+  <div class="logo">
+  <a href="http://mercurial.selenic.com/">
+  <img src="/static/hglogo.png" alt="mercurial" /></a>
+  </div>
+  <ul>
+  <li><a href="/shortlog/000000000000">log</a></li>
+  <li class="active">graph</li>
+  <li><a href="/tags">tags</a></li>
+  <li><a href="/branches">branches</a></li>
+  </ul>
+  <ul>
+  <li><a href="/rev/000000000000">changeset</a></li>
+  <li><a href="/file/000000000000">browse</a></li>
+  </ul>
+  </div>
+  
+  <div class="main">
+  <h2><a href="/">test</a></h2>
+  <h3>graph</h3>
+  
+  <form class="search" action="/log">
+  
+  <p><input name="rev" id="search1" type="text" size="30" /></p>
+  <div id="hint">find changesets by author, revision,
+  files, or words in the commit message</div>
+  </form>
+  
+  <div class="navigate">
+  <a href="/graph/-1?revcount=30">less</a>
+  <a href="/graph/-1?revcount=120">more</a>
+  | rev -1: <a href="/graph/000000000000">(0)</a> <a href="/graph/tip">tip</a> 
+  </div>
+  
+  <noscript><p>The revision graph only works with JavaScript-enabled browsers.</p></noscript>
+  
+  <div id="wrapper">
+  <ul id="nodebgs"></ul>
+  <canvas id="graph" width="224" height="12"></canvas>
+  <ul id="graphnodes"></ul>
+  </div>
+  
+  <script type="text/javascript" src="/static/graph.js"></script>
+  <script type="text/javascript">
+  <!-- hide script content
+  
+  var data = [];
+  var graph = new Graph();
+  graph.scale(39);
+  
+  graph.edge = function(x0, y0, x1, y1, color) {
+  	
+  	this.setColor(color, 0.0, 0.65);
+  	this.ctx.beginPath();
+  	this.ctx.moveTo(x0, y0);
+  	this.ctx.lineTo(x1, y1);
+  	this.ctx.stroke();
+  	
+  }
+  
+  var revlink = '<li style="_STYLE"><span class="desc">';
+  revlink += '<a href="/rev/_NODEID" title="_NODEID">_DESC</a>';
+  revlink += '</span>_TAGS<span class="info">_DATE, by _USER</span></li>';
+  
+  graph.vertex = function(x, y, color, parity, cur) {
+  	
+  	this.ctx.beginPath();
+  	color = this.setColor(color, 0.25, 0.75);
+  	this.ctx.arc(x, y, radius, 0, Math.PI * 2, true);
+  	this.ctx.fill();
+  	
+  	var bg = '<li class="bg parity' + parity + '"></li>';
+  	var left = (this.columns + 1) * this.bg_height;
+  	var nstyle = 'padding-left: ' + left + 'px;';
+  	var item = revlink.replace(/_STYLE/, nstyle);
+  	item = item.replace(/_PARITY/, 'parity' + parity);
+  	item = item.replace(/_NODEID/, cur[0]);
+  	item = item.replace(/_NODEID/, cur[0]);
+  	item = item.replace(/_DESC/, cur[3]);
+  	item = item.replace(/_USER/, cur[4]);
+  	item = item.replace(/_DATE/, cur[5]);
+  
+  	var tagspan = '';
+  	if (cur[7].length || (cur[6][0] != 'default' || cur[6][1])) {
+  		tagspan = '<span class="logtags">';
+  		if (cur[6][1]) {
+  			tagspan += '<span class="branchhead" title="' + cur[6][0] + '">';
+  			tagspan += cur[6][0] + '</span> ';
+  		} else if (!cur[6][1] && cur[6][0] != 'default') {
+  			tagspan += '<span class="branchname" title="' + cur[6][0] + '">';
+  			tagspan += cur[6][0] + '</span> ';
+  		}
+  		if (cur[7].length) {
+  			for (var t in cur[7]) {
+  				var tag = cur[7][t];
+  				tagspan += '<span class="tag">' + tag + '</span> ';
+  			}
+  		}
+  		tagspan += '</span>';
+  	}
+  	
+  	item = item.replace(/_TAGS/, tagspan);
+  	return [bg, item];
+  	
+  }
+  
+  graph.render(data);
+  
+  // stop hiding script -->
+  </script>
+  
+  <div class="navigate">
+  <a href="/graph/-1?revcount=30">less</a>
+  <a href="/graph/-1?revcount=120">more</a>
+  | rev -1: <a href="/graph/000000000000">(0)</a> <a href="/graph/tip">tip</a> 
+  </div>
+  
+  </div>
+  </div>
+  
+  
+  
+  </body>
+  </html>
+  
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file')
+  200 Script output follows
+  
+  <!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" />
+  
+  <title>test: 000000000000 /</title>
+  </head>
+  <body>
+  
+  <div class="container">
+  <div class="menu">
+  <div class="logo">
+  <a href="http://mercurial.selenic.com/">
+  <img src="/static/hglogo.png" alt="mercurial" /></a>
+  </div>
+  <ul>
+  <li><a href="/shortlog/000000000000">log</a></li>
+  <li><a href="/graph/000000000000">graph</a></li>
+  <li><a href="/tags">tags</a></li>
+  <li><a href="/branches">branches</a></li>
+  </ul>
+  <ul>
+  <li><a href="/rev/000000000000">changeset</a></li>
+  <li class="active">browse</li>
+  </ul>
+  <ul>
+  
+  </ul>
+  </div>
+  
+  <div class="main">
+  <h2><a href="/">test</a></h2>
+  <h3>directory / @ -1:000000000000 <span class="tag">tip</span> </h3>
+  
+  <form class="search" action="/log">
+  
+  <p><input name="rev" id="search1" type="text" size="30" /></p>
+  <div id="hint">find changesets by author, revision,
+  files, or words in the commit message</div>
+  </form>
+  
+  <table class="bigtable">
+  <tr>
+    <th class="name">name</th>
+    <th class="size">size</th>
+    <th class="permissions">permissions</th>
+  </tr>
+  <tr class="fileline parity0">
+    <td class="name"><a href="/file/000000000000/">[up]</a></td>
+    <td class="size"></td>
+    <td class="permissions">drwxr-xr-x</td>
+  </tr>
+  
+  
+  </table>
+  </div>
+  </div>
+  
+  
+  </body>
+  </html>
+