tests/test-hgweb-no-path-info.t
author Matt Mackall <mpm@selenic.com>
Tue, 22 Nov 2011 17:26:32 -0600
branchstable
changeset 15551 1fa41d1f1351
parent 13956 ffb5c09ba822
child 16913 f2719b387380
permissions -rw-r--r--
posix: add extended support for OS X path folding OS X does the following transformation on paths for comparisons: a) 8-bit strings are decoded as UTF-8 to UTF-16 b) undecodable bytes are percent-escaped c) accented characters are converted to NFD decomposed form, approximately d) characters are converted to _lowercase_ using internal tables Both (c) and (d) are done using internal tables that vary from release to release and match Unicode specs to greater or lesser extent. We approximate these functions using Python's internal Unicode data. With this change, Mercurial will (in almost all cases) match OS X folding and not report unknown file aliases for files in UTF-8 or other encodings.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12438
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
     1
This tests if hgweb and hgwebdir still work if the REQUEST_URI variable is
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
     2
no longer passed with the request. Instead, SCRIPT_NAME and PATH_INFO
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
     3
should be used from d74fc8dec2b4 onward to route the request.
6459
8189e03adb44 hgweb: make hgwebdir work in the absence of PATH_INFO
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     4
13956
ffb5c09ba822 tests: remove redundant mkdir
Martin Geisler <mg@lazybytes.net>
parents: 12743
diff changeset
     5
  $ hg init repo
12438
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
     6
  $ cd repo
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
     7
  $ echo foo > bar
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
     8
  $ hg add bar
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
     9
  $ hg commit -m "test"
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    10
  $ hg tip
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    11
  changeset:   0:61c9426e69fe
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    12
  tag:         tip
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    13
  user:        test
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    14
  date:        Thu Jan 01 00:00:00 1970 +0000
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    15
  summary:     test
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    16
  
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    17
  $ cat > request.py <<EOF
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    18
  > from mercurial.hgweb import hgweb, hgwebdir
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    19
  > from StringIO import StringIO
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    20
  > import os, sys
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    21
  > 
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    22
  > errors = StringIO()
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    23
  > input = StringIO()
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    24
  > 
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    25
  > def startrsp(status, headers):
12743
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    26
  >     print '---- STATUS'
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    27
  >     print status
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    28
  >     print '---- HEADERS'
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    29
  >     print [i for i in headers if i[0] != 'ETag']
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    30
  >     print '---- DATA'
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    31
  >     return output.write
12438
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    32
  > 
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    33
  > env = {
12743
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    34
  >     'wsgi.version': (1, 0),
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    35
  >     'wsgi.url_scheme': 'http',
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    36
  >     'wsgi.errors': errors,
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    37
  >     'wsgi.input': input,
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    38
  >     'wsgi.multithread': False,
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    39
  >     'wsgi.multiprocess': False,
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    40
  >     'wsgi.run_once': False,
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    41
  >     'REQUEST_METHOD': 'GET',
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    42
  >     'SCRIPT_NAME': '',
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    43
  >     'SERVER_NAME': '127.0.0.1',
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    44
  >     'SERVER_PORT': os.environ['HGPORT'],
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    45
  >     'SERVER_PROTOCOL': 'HTTP/1.0'
12438
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    46
  > }
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    47
  > 
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    48
  > def process(app):
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    49
  >     content = app(env, startrsp)
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    50
  >     sys.stdout.write(output.getvalue())
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    51
  >     sys.stdout.write(''.join(content))
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    52
  >     print '---- ERRORS'
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    53
  >     print errors.getvalue()
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    54
  > 
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    55
  > output = StringIO()
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    56
  > env['QUERY_STRING'] = 'style=atom'
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    57
  > process(hgweb('.', name='repo'))
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    58
  > 
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    59
  > output = StringIO()
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    60
  > env['QUERY_STRING'] = 'style=raw'
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    61
  > process(hgwebdir({'repo': '.'}))
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    62
  > EOF
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    63
  $ python request.py
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    64
  ---- STATUS
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    65
  200 Script output follows
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    66
  ---- HEADERS
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    67
  [('Content-Type', 'application/atom+xml; charset=ascii')]
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    68
  ---- DATA
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    69
  <?xml version="1.0" encoding="ascii"?>
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    70
  <feed xmlns="http://www.w3.org/2005/Atom">
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    71
   <!-- Changelog -->
12643
d08bb64888bc tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12438
diff changeset
    72
   <id>http://127.0.0.1:$HGPORT/</id>
d08bb64888bc tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12438
diff changeset
    73
   <link rel="self" href="http://127.0.0.1:$HGPORT/atom-log"/>
d08bb64888bc tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12438
diff changeset
    74
   <link rel="alternate" href="http://127.0.0.1:$HGPORT/"/>
12438
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    75
   <title>repo Changelog</title>
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    76
   <updated>1970-01-01T00:00:00+00:00</updated>
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    77
  
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    78
   <entry>
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    79
    <title>test</title>
12643
d08bb64888bc tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12438
diff changeset
    80
    <id>http://127.0.0.1:$HGPORT/#changeset-61c9426e69fef294feed5e2bbfc97d39944a5b1c</id>
d08bb64888bc tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12438
diff changeset
    81
    <link href="http://127.0.0.1:$HGPORT/rev/61c9426e69fe"/>
12438
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    82
    <author>
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    83
     <name>test</name>
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    84
     <email>&#116;&#101;&#115;&#116;</email>
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    85
    </author>
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    86
    <updated>1970-01-01T00:00:00+00:00</updated>
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    87
    <published>1970-01-01T00:00:00+00:00</published>
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    88
    <content type="xhtml">
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    89
     <div xmlns="http://www.w3.org/1999/xhtml">
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    90
      <pre xml:space="preserve">test</pre>
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    91
     </div>
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    92
    </content>
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    93
   </entry>
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    94
  
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    95
  </feed>
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    96
  ---- ERRORS
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    97
  
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    98
  ---- STATUS
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    99
  200 Script output follows
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   100
  ---- HEADERS
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   101
  [('Content-Type', 'text/plain; charset=ascii')]
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   102
  ---- DATA
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   103
  
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   104
  repo/
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   105
  
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   106
  ---- ERRORS
922d2078017a tests: unify test-hgweb-no-path-info
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   107