tests/test-hgweb-raw.t
author Brodie Rao <brodie@bitheap.org>
Thu, 31 Mar 2011 17:37:33 -0700
changeset 13848 b2798c1defff
parent 12441 cb1e33a41d13
child 13962 8b252e826c68
permissions -rw-r--r--
url: be stricter about detecting schemes While the URL parser is very forgiving about what characters are allowed in each component, it's useful to be strict about the scheme so we don't accidentally interpret local paths with colons as URLs. This restricts schemes to containing alphanumeric characters, dashes, pluses, and dots (as specified in RFC 2396).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12441
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
     1
Test raw style of hgweb
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
     2
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
     3
  $ hg init test
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
     4
  $ cd test
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
     5
  $ mkdir sub
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
     6
  $ cat >'sub/some "text".txt' <<ENDSOME
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
     7
  > This is just some random text
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
     8
  > that will go inside the file and take a few lines.
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
     9
  > It is very boring to read, but computers don't
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    10
  > care about things like that.
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    11
  > ENDSOME
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    12
  $ hg add 'sub/some "text".txt'
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    13
  $ hg commit -d "1 0" -m "Just some text"
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    14
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    15
  $ hg serve -p $HGPORT -A access.log -E error.log -d --pid-file=hg.pid
2532
84655f721f39 Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    16
12441
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    17
  $ cat hg.pid >> $DAEMON_PIDS
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    18
  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/?f=a23bf1310f6e;file=sub/some%20%22text%22.txt;style=raw' content-type content-length content-disposition) >getoutput.txt &
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    19
  $ sleep 5
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    20
  $ kill `cat hg.pid`
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    21
  $ sleep 1 # wait for server to scream and die
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    22
  $ cat getoutput.txt
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    23
  200 Script output follows
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    24
  content-type: text/plain; charset="ascii"
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    25
  content-length: 157
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    26
  content-disposition: inline; filename="some \"text\".txt"
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    27
  
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    28
  This is just some random text
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    29
  that will go inside the file and take a few lines.
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    30
  It is very boring to read, but computers don't
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    31
  care about things like that.
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    32
  $ cat access.log error.log
cb1e33a41d13 tests: unify test-hgweb-raw
Matt Mackall <mpm@selenic.com>
parents: 11617
diff changeset
    33
  127.0.0.1 - - [*] "GET /?f=a23bf1310f6e;file=sub/some%20%22text%22.txt;style=raw HTTP/1.1" 200 - (glob)
2532
84655f721f39 Add a test for getting raw files via the web UI.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
    34