summaryrefslogtreecommitdiffstats
path: root/test/testsni.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/testsni.py')
-rw-r--r--test/testsni.py101
1 files changed, 101 insertions, 0 deletions
diff --git a/test/testsni.py b/test/testsni.py
new file mode 100644
index 0000000..9808f91
--- /dev/null
+++ b/test/testsni.py
@@ -0,0 +1,101 @@
+from test_config import Declarative, write_template_file, restart_apache
+from test_config import stop_apache
+import ssl
+import requests.exceptions
+import os
+
+class test_suite1(Declarative):
+ @classmethod
+ def setUpClass(cls):
+ write_template_file('suite1.tmpl', 'work/httpd/conf/test.conf',
+ {'DBPREFIX': os.environ.get('DBPREFIX', ''),
+ 'SNI': 'on'}
+ )
+ for i in range(1,26):
+ write_template_file('sni.tmpl', 'work/httpd/conf.d/sni%d.conf' % i,
+ {'DBPREFIX': os.environ.get('DBPREFIX', ''),
+ 'SNINAME': 'www%d.example.com' % i,
+ 'SNINUM': i,
+ }
+ )
+ restart_apache()
+
+ @classmethod
+ def tearDownClass(cls):
+ stop_apache()
+
+ tests = [
+
+ dict(
+ desc='Get this host',
+ request=('/', {'sni': True}),
+ expected=200,
+ content='content',
+ ),
+
+ dict(
+ desc='Get www1.example.com',
+ request=('/', {'host': 'www1.example.com', 'sni': True}),
+ expected=200,
+ content='sni1',
+ ),
+
+ dict(
+ desc='Get www2.example.com',
+ request=('/', {'host': 'www2.example.com', 'sni': True}),
+ expected=200,
+ content='sni2',
+ ),
+
+ dict(
+ desc='Get www4.example.com',
+ request=('/', {'host': 'www4.example.com', 'sni': True}),
+ expected=200,
+ content='sni4',
+ ),
+
+ dict(
+ desc='Get www6.example.com',
+ request=('/', {'host': 'www6.example.com', 'sni': True}),
+ expected=200,
+ content='sni6',
+ ),
+
+ dict(
+ desc='Get www1.example.com again',
+ request=('/', {'host': 'www1.example.com', 'sni': True}),
+ expected=200,
+ content='sni1',
+ ),
+
+ dict(
+ desc='Get non-existant page on www8.example.com',
+ request=('/notfound', {'host': 'www8.example.com', 'sni': True}),
+ expected=404,
+ ),
+
+ dict(
+ desc='Client auth to www10.example.com, valid certificate',
+ request=('/acl/aclS01.html', {
+ 'host': 'www10.example.com', 'sni': True,
+ 'key_file': 'work/httpd/alpha.key',
+ 'cert_file': 'work/httpd/alpha.crt',}
+ ),
+ expected=200,
+ content='sni10',
+ ),
+
+ dict(
+ desc='Get www25.example.com',
+ request=('/', {'host': 'www25.example.com', 'sni': True}),
+ expected=200,
+ content='sni25',
+ ),
+
+ dict(
+ desc='Non-existant www26.example.com',
+ request=('/', {'host': 'www26.example.com', 'sni': True}),
+ expected=requests.exceptions.ConnectionError(),
+ ),
+
+ ]