#!/usr/bin/python
#
-# Copyright (C) 2014 Simo Sorce <simo@redhat.com>
-#
-# see file 'COPYING' for use and warranty information
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
+# Copyright (C) 2014 Ipsilon project Contributors, for license see COPYING
from helpers.common import IpsilonTestBase # pylint: disable=relative-import
from helpers.http import HttpSessions # pylint: disable=relative-import
idp_g = {'TEMPLATES': '${TESTDIR}/templates/install',
'CONFDIR': '${TESTDIR}/etc',
'DATADIR': '${TESTDIR}/lib',
+ 'CACHEDIR': '${TESTDIR}/cache',
'HTTPDCONFD': '${TESTDIR}/${NAME}/conf.d',
'STATICDIR': '${ROOTDIR}',
'BINDIR': '${ROOTDIR}/ipsilon',
'admin_user': '${TEST_USER}',
'system_user': '${TEST_USER}',
'instance': '${NAME}',
+ 'openid': 'False',
'secure': 'no',
'testauth': 'yes',
'pam': 'no',
- 'krb': 'no',
+ 'gssapi': 'no',
'ipa': 'no',
'server_debugging': 'True'}
<Directory ${HTTPDIR}/sp>
Require all granted
</Directory>
+
+Alias /open ${HTTPDIR}/open
+
+<Directory ${HTTPDIR}/open>
+</Directory>
"""
index = """WORKS!"""
+ logged_out = """Logged out"""
t = Template(location)
text = t.substitute({'HTTPDIR': httpdir})
os.mkdir(httpdir + '/sp')
with open(httpdir + '/sp/index.html', 'w') as f:
f.write(index)
+ os.mkdir(httpdir + '/open')
+ with open(httpdir + '/open/logged_out.html', 'w') as f:
+ f.write(logged_out)
class IpsilonTest(IpsilonTestBase):
sess.add_server(idpname, 'http://127.0.0.10:45080', user, 'ipsilon')
sess.add_server(spname, 'http://127.0.0.11:45081')
- print "test1: Authenticate to IDP ...",
+ print "pgdb: Authenticate to IDP ...",
+ sys.stdout.flush()
try:
+ print 'Stress-testing the database connections...',
+ sys.stdout.flush()
+ for i in xrange(50):
+ sess.auth_to_idp(idpname)
+ sess.logout_from_idp(idpname)
sess.auth_to_idp(idpname)
except Exception, e: # pylint: disable=broad-except
print >> sys.stderr, " ERROR: %s" % repr(e)
sys.exit(1)
print " SUCCESS"
- print "test1: Add SP Metadata to IDP ...",
+ print "pgdb: Add SP Metadata to IDP ...",
try:
sess.add_sp_metadata(idpname, spname)
except Exception, e: # pylint: disable=broad-except
sys.exit(1)
print " SUCCESS"
- print "test1: Access SP Protected Area ...",
+ print "pgdb: Access SP Protected Area ...",
try:
page = sess.fetch_page(idpname, 'http://127.0.0.11:45081/sp/')
page.expected_value('text()', 'WORKS!')
print >> sys.stderr, " ERROR: %s" % repr(e)
sys.exit(1)
print " SUCCESS"
+
+ print "pgdb: Logout from SP ...",
+ try:
+ page = sess.fetch_page(idpname, '%s/%s?%s' % (
+ 'http://127.0.0.11:45081', 'saml2/logout',
+ 'ReturnTo=http://127.0.0.11:45081/open/logged_out.html'))
+ page.expected_value('text()', 'Logged out')
+ except ValueError, e:
+ print >> sys.stderr, " ERROR: %s" % repr(e)
+ sys.exit(1)
+ print " SUCCESS"