tests/test-newercgi.t
author Gregory Szorc <gregory.szorc@gmail.com>
Sun, 15 May 2016 11:32:11 -0700
changeset 29226 33006bd6a1d7
parent 22046 7a9cbb315d84
child 32938 b6776b34e44e
permissions -rw-r--r--
sslutil: store and use hostname and ui in socket instance Currently, we pass a hostname and ui to sslutil.wrap_socket() then create a separate sslutil.validator instance also from a hostname and ui. There is a 1:1 mapping between a wrapped socket and a validator instance. This commit lays the groundwork for making the validation function generic by storing the hostname and ui instance in the state dict attached to the socket instance and then using these variables in the validator function. Since the arguments to sslutil.validator.__init__ are no longer used, we make them optional and make __init__ a no-op.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22046
7a9cbb315d84 tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents: 15567
diff changeset
     1
#require no-msys # MSYS will translate web paths as if they were file paths
15567
8b84d040d9f9 tests: introduce 'hghave msys' to skip tests that would fail because of msys
Mads Kiilerich <mads@kiilerich.com>
parents: 13269
diff changeset
     2
12471
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     3
This is a rudimentary test of the CGI files as of d74fc8dec2b4.
5577
e0173902c813 CGI compatibility fix for d74fc8dec2b4.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     4
12471
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     5
  $ hg init test
5577
e0173902c813 CGI compatibility fix for d74fc8dec2b4.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     6
12471
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     7
  $ cat >hgweb.cgi <<HGWEB
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     8
  > #!/usr/bin/env python
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     9
  > #
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    10
  > # An example CGI script to use hgweb, edit as necessary
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    11
  > 
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    12
  > import cgitb
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    13
  > cgitb.enable()
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    14
  > 
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    15
  > from mercurial import demandimport; demandimport.enable()
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    16
  > from mercurial.hgweb import hgweb
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    17
  > from mercurial.hgweb import wsgicgi
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    18
  > 
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    19
  > application = hgweb("test", "Empty test repository")
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    20
  > wsgicgi.launch(application)
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    21
  > HGWEB
5577
e0173902c813 CGI compatibility fix for d74fc8dec2b4.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    22
12471
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    23
  $ chmod 755 hgweb.cgi
5577
e0173902c813 CGI compatibility fix for d74fc8dec2b4.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    24
12471
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    25
  $ cat >hgweb.config <<HGWEBDIRCONF
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    26
  > [paths]
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    27
  > test = test
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    28
  > HGWEBDIRCONF
5577
e0173902c813 CGI compatibility fix for d74fc8dec2b4.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    29
12471
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    30
  $ cat >hgwebdir.cgi <<HGWEBDIR
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    31
  > #!/usr/bin/env python
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    32
  > #
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    33
  > # An example CGI script to export multiple hgweb repos, edit as necessary
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    34
  > 
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    35
  > import cgitb
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    36
  > cgitb.enable()
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    37
  > 
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    38
  > from mercurial import demandimport; demandimport.enable()
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    39
  > from mercurial.hgweb import hgwebdir
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    40
  > from mercurial.hgweb import wsgicgi
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    41
  > 
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    42
  > application = hgwebdir("hgweb.config")
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    43
  > wsgicgi.launch(application)
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    44
  > HGWEBDIR
5577
e0173902c813 CGI compatibility fix for d74fc8dec2b4.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    45
12471
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    46
  $ chmod 755 hgwebdir.cgi
5577
e0173902c813 CGI compatibility fix for d74fc8dec2b4.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    47
13269
aa3f726a2bdb tests: remove duplication of the CGI environment variables
StevenGBrown
parents: 12471
diff changeset
    48
  $ . "$TESTDIR/cgienv"
12471
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    49
  $ python hgweb.cgi > page1
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    50
  $ python hgwebdir.cgi > page2
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    51
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    52
  $ PATH_INFO="/test/"
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    53
  $ PATH_TRANSLATED="/var/something/test.cgi"
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    54
  $ REQUEST_URI="/test/test/"
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    55
  $ SCRIPT_URI="http://hg.omnifarious.org/test/test/"
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    56
  $ SCRIPT_URL="/test/test/"
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    57
  $ python hgwebdir.cgi > page3
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    58
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    59
  $ grep -i error page1 page2 page3
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    60
  [1]