lemonldap-ng/lemonldap-ng-portal/t
2019-05-17 10:26:45 +02:00
..
gpghome Add minimal Auth::GPG 2018-12-21 16:07:28 +01:00
lib/Lemonldap/NG Backport code to run test on CentOS 7 2019-04-11 11:18:22 +02:00
sessions SAML in progress (#595) 2016-11-22 20:55:10 +00:00
sessions2 Rename _loginHistory (#1169) 2017-03-21 21:00:37 +00:00
testslapd Add unit test and fix code for ppolicy grace (#1691) 2019-04-01 09:58:56 +02:00
01-AuthDemo.t Tydy 2019-05-11 20:18:43 +02:00
01-pdata.t tidy with new conf 2019-02-07 09:27:56 +01:00
02-Password-Demo.t New method to override messages with JSON files (#1595) 2019-03-19 17:39:13 +01:00
03-XSS-protection.t tidy with new conf 2019-02-07 09:27:56 +01:00
19-Auth-Null.t tidy with new conf 2019-02-07 09:27:56 +01:00
20-Auth-and-password-DBI-dynamic-hash.t Tydy 2019-05-11 20:18:43 +02:00
20-Auth-and-password-DBI.t tidy with new conf 2019-02-07 09:27:56 +01:00
20-Auth-DBI-utf8.t tidy with new conf 2019-02-07 09:27:56 +01:00
21-Auth-and-password-LDAP.t tidy with new conf 2019-02-07 09:27:56 +01:00
21-Auth-LDAP-Policy.t Fix some warnings in tests 2019-04-11 11:58:21 +02:00
21-Auth-LDAP-utf8.t tidy with new conf 2019-02-07 09:27:56 +01:00
22-Auth-and-password-AD.t tidy with new conf 2019-02-07 09:27:56 +01:00
23-Auth-and-password-REST.t tidy with new conf 2019-02-07 09:27:56 +01:00
24-AuthApache.t tidy with new conf 2019-02-07 09:27:56 +01:00
24-AuthKerberos.t tidy with new conf 2019-02-07 09:27:56 +01:00
25-AuthSlave.t tidy with new conf 2019-02-07 09:27:56 +01:00
26-AuthRemote.t tidy with new conf 2019-02-07 09:27:56 +01:00
27-AuthProxy.t tidy with new conf 2019-02-07 09:27:56 +01:00
28-AuthChoice-and-password.t Modularize Display/login (#1652) 2019-05-17 10:26:45 +02:00
28-AuthChoice-with-rules.t Modularize Display/login (#1652) 2019-05-17 10:26:45 +02:00
29-AuthGPG.t Tydy 2019-05-11 20:18:43 +02:00
29-AuthSSL.t Modularize Display/login (#1652) 2019-05-17 10:26:45 +02:00
30-Auth-and-issuer-SAML-Artifact-with-SOAP-SLO-IdP-initiated.t Tydy 2019-05-11 20:18:43 +02:00
30-Auth-and-issuer-SAML-Artifact-with-SOAP-SLO.t tidy with new conf 2019-02-07 09:27:56 +01:00
30-Auth-and-issuer-SAML-Metadata.t Tydy 2019-05-11 20:18:43 +02:00
30-Auth-and-issuer-SAML-POST-IdP-initiated.t tidy with new conf 2019-02-07 09:27:56 +01:00
30-Auth-and-issuer-SAML-POST-Missing-SLO.t When logout-initiating SP has no known SLO endpoint, fallback to portal 2019-03-12 17:58:41 +01:00
30-Auth-and-issuer-SAML-POST.t Fix #1698 by clearing saml request token on unauth issuer flow 2019-04-05 23:27:21 +02:00
30-Auth-and-issuer-SAML-Redirect-IdP-initiated.t Tydy 2019-05-11 20:18:43 +02:00
30-Auth-and-issuer-SAML-Redirect-MultipleSP-Missing-SLO.t Add unit test for #1668 with multiple SP 2019-04-03 11:20:24 +02:00
30-Auth-and-issuer-SAML-Redirect-MultipleSP.t Add HTTP-Redirect unit test for #1671 2019-04-03 11:20:24 +02:00
30-Auth-and-issuer-SAML-Redirect.t Fix #1698 by clearing saml request token on unauth issuer flow 2019-04-05 23:27:21 +02:00
30-Auth-SAML-with-choice.t Tydy 2019-05-11 20:18:43 +02:00
30-CDC.t tidy with new conf 2019-02-07 09:27:56 +01:00
30-SAML-Head-to-Tail-POST.t tidy with new conf 2019-02-07 09:27:56 +01:00
30-SAML-ReAuth-with-choice.t tidy with new conf 2019-02-07 09:27:56 +01:00
30-SAML-ReAuth.t tidy with new conf 2019-02-07 09:27:56 +01:00
30-SAML-SP-rule.t tidy with new conf 2019-02-07 09:27:56 +01:00
31-Auth-and-issuer-CAS-declared-app-userattr.t Allow override of username attribute for CAS apps 2019-04-28 21:06:34 +02:00
31-Auth-and-issuer-CAS-declared-app.t Please use our .perltidyrc 2019-03-07 18:22:58 +01:00
31-Auth-and-issuer-CAS-declared-apps.t Improve unit test (#1712) 2019-04-16 21:13:02 +02:00
31-Auth-and-issuer-CAS-default.t Fix #1698 by clearing saml request token on unauth issuer flow 2019-04-05 23:27:21 +02:00
31-Auth-and-issuer-CAS-gateway.t tidy with new conf 2019-02-07 09:27:56 +01:00
31-Auth-and-issuer-CAS-proxied.t tidy with new conf 2019-02-07 09:27:56 +01:00
31-Auth-and-issuer-CAS-with-choice-and-cancel.t Improve unit test (#1712) 2019-04-15 23:03:56 +02:00
31-Auth-and-issuer-CAS-with-choice.t Fix #1698 by clearing saml request token on unauth issuer flow 2019-04-05 23:27:21 +02:00
32-Auth-and-issuer-OIDC-authorization_code-OP-logout.t tidy with new conf 2019-02-07 09:27:56 +01:00
32-Auth-and-issuer-OIDC-authorization_code-public_client.t Tydy 2019-05-11 20:18:43 +02:00
32-Auth-and-issuer-OIDC-authorization_code-with-authchoice.t Full test for #1639 2019-02-09 20:53:24 +01:00
32-Auth-and-issuer-OIDC-authorization_code.t add test to fix 'id_token validity not correctly evaluated' #1662 2019-02-28 10:37:51 +01:00
32-Auth-and-issuer-OIDC-hybrid.t Please use our .perltidyrc 2019-03-07 18:22:58 +01:00
32-Auth-and-issuer-OIDC-implicit.t tidy with new conf 2019-02-07 09:27:56 +01:00
32-Auth-and-issuer-OIDC-sorted.t Tydy 2019-05-11 20:18:43 +02:00
32-CAS-10.t Send username when calling CAS1.0 validation 2019-04-28 19:29:54 +02:00
32-OIDC-RP-rule.t tidy with new conf 2019-02-07 09:27:56 +01:00
33-Auth-and-issuer-OpenID2.t Please use our .perltidyrc 2019-03-07 18:22:58 +01:00
34-Auth-Proxy-and-REST-Server.t tidy with new conf 2019-02-07 09:27:56 +01:00
34-Auth-Proxy-and-SOAP-Server.t tidy with new conf 2019-02-07 09:27:56 +01:00
35-My-session.t Verify "mysession" (#970) 2017-03-06 16:43:06 +00:00
35-REST-config-backend.t tidy with new conf 2019-02-07 09:27:56 +01:00
35-REST-sessions-with-AuthBasic-handler.t Improve #1700 test 2019-04-09 07:16:05 +02:00
35-REST-sessions-with-REST-server.t tidy with new conf 2019-02-07 09:27:56 +01:00
35-SOAP-config-backend.t tidy with new conf 2019-02-07 09:27:56 +01:00
35-SOAP-sessions-with-SOAP-server.t tidy with new conf 2019-02-07 09:27:56 +01:00
36-Combination-Kerberos-or-Demo.t Modularize Display/login (#1652) 2019-05-17 10:26:45 +02:00
36-Combination-with-over.t Allow hashes in Combination module overload (Closes: #1707) 2019-04-09 21:01:55 +02:00
36-Combination-with-token.t Tydy 2019-05-11 20:18:43 +02:00
36-Combination.t tidy with new conf 2019-02-07 09:27:56 +01:00
37-CAS-App-to-SAML-IdP-POST-with-WAYF.t Fix some warnings in tests 2019-04-11 11:58:21 +02:00
37-CAS-App-to-SAML-IdP-POST.t Fix #1698 by clearing saml request token on unauth issuer flow 2019-04-05 23:27:21 +02:00
37-Logout-from-OIDC-RP-to-SAML-SP.t tidy with new conf 2019-02-07 09:27:56 +01:00
37-OIDC-RP-to-SAML-IdP-GET-with-WAYF.t Tydy 2019-05-11 20:18:43 +02:00
37-OIDC-RP-to-SAML-IdP-GET.t tidy with new conf 2019-02-07 09:27:56 +01:00
37-OIDC-RP-to-SAML-IdP-POST.t tidy with new conf 2019-02-07 09:27:56 +01:00
37-SAML-SP-GET-to-OIDC-OP.t tidy with new conf 2019-02-07 09:27:56 +01:00
37-SAML-SP-POST-to-CAS-server-with-Choice.t tidy with new conf 2019-02-07 09:27:56 +01:00
37-SAML-SP-POST-to-CAS-server.t tidy with new conf 2019-02-07 09:27:56 +01:00
37-SAML-SP-POST-to-OIDC-OP.t tidy with new conf 2019-02-07 09:27:56 +01:00
40-Notifications-JSON-DBI.t tidy with new conf 2019-02-07 09:27:56 +01:00
40-Notifications-JSON-File-with-token.t tidy with new conf 2019-02-07 09:27:56 +01:00
40-Notifications-JSON-File.t tidy with new conf 2019-02-07 09:27:56 +01:00
40-Notifications-JSON-Server.t tidy with new conf 2019-02-07 09:27:56 +01:00
40-Notifications-XML-DBI.t tidy with new conf 2019-02-07 09:27:56 +01:00
40-Notifications-XML-File.t tidy with new conf 2019-02-07 09:27:56 +01:00
40-Notifications-XML-Server.t tidy with new conf 2019-02-07 09:27:56 +01:00
41-Captcha.t Modularize Display/login (#1652) 2019-05-17 10:26:45 +02:00
41-Token-Global-Storage.t Add security test (#1742) 2019-05-11 15:56:17 +02:00
41-Token.t Improve unit test (#1664) 2019-04-05 20:02:24 +02:00
42-Register-Demo-with-captcha.t Fix some warnings in tests 2019-04-11 11:58:21 +02:00
42-Register-Demo-with-token.t Tydy 2019-05-11 20:18:43 +02:00
42-Register-Demo.t tidy with new conf 2019-02-07 09:27:56 +01:00
42-Register-LDAP.t tidy with new conf 2019-02-07 09:27:56 +01:00
42-Register-Security.t Tydy 2019-05-11 20:18:43 +02:00
43-MailPasswordReset-Choice.t tidy with new conf 2019-02-07 09:27:56 +01:00
43-MailPasswordReset-DBI.t tidy with new conf 2019-02-07 09:27:56 +01:00
43-MailPasswordReset-LDAP.t tidy with new conf 2019-02-07 09:27:56 +01:00
43-MailPasswordReset-with-captcha.t tidy with new conf 2019-02-07 09:27:56 +01:00
43-MailPasswordReset-with-token.t Tydy 2019-05-11 20:18:43 +02:00
43-MailPasswordReset.t tidy with new conf 2019-02-07 09:27:56 +01:00
50-IssuerGet.t Please use our .perltidyrc 2019-03-07 18:22:58 +01:00
60-Status.t tidy with new conf 2019-02-07 09:27:56 +01:00
61-BruteForceProtection.t tidy with new conf 2019-02-07 09:27:56 +01:00
61-ForceAuthn.t tidy with new conf 2019-02-07 09:27:56 +01:00
61-GrantSession.t Adapt GrantSession plugin to display authentication error on login form (#1666) 2019-03-18 11:53:30 +01:00
61-Session-ActivityTimeout.t tidy with new conf 2019-02-07 09:27:56 +01:00
61-Session-Timeout.t tidy with new conf 2019-02-07 09:27:56 +01:00
62-SingleSession.t tidy with new conf 2019-02-07 09:27:56 +01:00
63-History.t tidy with new conf 2019-02-07 09:27:56 +01:00
64-StayConnected.t tidy with new conf 2019-02-07 09:27:56 +01:00
65-AutoSignin.t tidy with new conf 2019-02-07 09:27:56 +01:00
66-CDA-already-auth.t Clear url pdata on CDA redirection 2019-03-19 19:15:47 +01:00
66-CDA-with-REST.t tidy with new conf 2019-02-07 09:27:56 +01:00
66-CDA-with-SOAP.t tidy with new conf 2019-02-07 09:27:56 +01:00
66-CDA.t tidy with new conf 2019-02-07 09:27:56 +01:00
67-CheckUser-with-Global-token.t Append unit test (#1755) 2019-05-15 23:50:28 +02:00
67-CheckUser-with-token.t CheckUser with tokenGlobalStorage & Warn if SSO groups are merged 2019-05-15 23:45:06 +02:00
67-CheckUser.t Tydy 2019-05-11 20:18:43 +02:00
68-Impersonation-with-doubleCookies.t Tidy 2019-05-11 23:03:48 +02:00
68-Impersonation-with-merge.t Tidy 2019-05-16 20:45:14 +02:00
68-Impersonation.t Improve unit test (#1746) 2019-05-11 23:01:52 +02:00
69-FavApps.t Append FavApps unit test (#1689) 2019-05-01 12:15:25 +02:00
70-2F-TOTP_8.t tidy with new conf 2019-02-07 09:27:56 +01:00
70-2F-TOTP-with-History.t Append unit test (#1632) 2019-02-16 22:00:25 +01:00
70-2F-TOTP.t tidy with new conf 2019-02-07 09:27:56 +01:00
71-2F-U2F-with-History.t Append unit test (#1632) 2019-02-16 22:00:25 +01:00
71-2F-U2F.t tidy with new conf 2019-02-07 09:27:56 +01:00
72-2F-REST-with-HISTORY.t tidy with new conf 2019-02-07 09:27:56 +01:00
73-2F-UTOTP-TOTP-and-U2F-with-History.t Append unit test (#1632) 2019-02-16 22:00:25 +01:00
73-2F-UTOTP-TOTP-and-U2F.t tidy with new conf 2019-02-07 09:27:56 +01:00
73-2F-UTOTP-TOTP-only-with-History.t Append unit test (#1632) 2019-02-16 22:00:25 +01:00
73-2F-UTOTP-TOTP-only.t tidy with new conf 2019-02-07 09:27:56 +01:00
74-2F-Required.t tidy with new conf 2019-02-07 09:27:56 +01:00
75-2F-Registers.t Tydy 2019-05-11 20:18:43 +02:00
76-2F-Ext-with-BruteForce.t Improve unit test (#1632) 2019-02-14 22:09:59 +01:00
76-2F-Ext-with-CodeActivation.t Please use our .perltidyrc 2019-03-07 18:22:58 +01:00
76-2F-Ext-with-GrantSession.t Append unit test (#1632) 2019-02-16 22:00:25 +01:00
76-2F-Ext-with-History.t Append unit test (#1632) 2019-02-16 22:00:25 +01:00
77-2F-Mail-with-global-storage.t Tidy 2019-05-16 20:45:14 +02:00
77-2F-Mail.t tidy with new conf 2019-02-07 09:27:56 +01:00
90-Translations.t Normalize test names (#595) 2017-03-06 15:56:47 +00:00
99-pod.t Reorganize files - work in progress (#444) 2012-02-28 22:52:36 +00:00
lmConf-1.json Append FavApps unit test (#1689) 2019-05-01 12:15:25 +02:00
pdata.pm make tidy 2018-07-05 23:00:40 +02:00
README.md Remove trailing whitespaces 2019-04-03 14:15:16 +02:00
saml-lib.pm Group SAML tests (#595) 2017-03-15 06:29:44 +00:00
sendCode.pl Please use our .perltidyrc 2019-03-07 18:22:58 +01:00
sendOTP.pl make tidy 2018-10-12 10:04:03 +02:00
separate-handler.pm Tydy 2019-05-11 20:18:43 +02:00
smtp.pm Replace MIME::Lite by Email::Sender/MIME::Entity (#1206) 2017-03-27 05:22:08 +00:00
test-ldap.pm Clean repo 2017-03-03 17:25:03 +00:00
test-lib.pm Remove trailing whitespaces 2019-04-03 14:15:16 +02:00
test-psgi.pm tidy with new conf 2019-02-07 09:27:56 +01:00
vrfyOTP.pl make tidy 2018-10-12 10:04:03 +02:00

NAME

test-lib.pm - Test framework for LLNG portal

SYNOPSIS

use Test::More;
use strict;
use IO::String;

require 't/test-lib.pm';

my $res;

my $client = LLNG::Manager::Test->new( {
    ini => {
        logLevel => 'error',
        #...
    }
  }
);

ok(
    $res = $client->_post(
        '/',
        IO::String->new('user=dwho&password=dwho'),
        length => 23
    ),
    'Auth query'
);
count(1);
expectOK($res);
my $id = expectCookie($res);

clean_sessions();
done_testing( count() );

DESCRIPTION

This test library permits to simulate browser navigation.

Functions

In these functions, $res is the result of a LLNG::Manager::Test::_get() or LLNG::Manager::Test::_post() call (see below).

count($inc)

Returns number of tests done. Increment test number if an argument is given

explain( $result, $expected_result )

Used to display error if test fails:

ok( $res->[0] == 302, 'Get redirection' ) or
  explain( $res->[0], 302 );

clean_sessions()

Clean sessions created during tests

expectRedirection( $res, $location )

Verify that request result is a redirection to $location. $location can be:

  • a string: location must match exactly

  • a regexp: location must match this regexp. In this case, the list of matching strings are returned. Example:

      my( $uri, $query ) = expectRedirection( $res, qr#http://host(/[^\?]*)?(.*)$# );
    

expectAutoPost(@args)

Same behaviour as expectForm() but verify also that form method is post.

TODO: verify javascript

expectForm( $res, $hostRe, $uriRe, @requiredFields )

Verify form in HTML result and return ( $host, $uri, $query, $method ):

  • verify that a GET/POST form exists
  • if a $hostRe regexp is given, verify that form target matches and populates $host. Skipped if $hostRe eq "#"
  • if a $uriRe regexp is given, verify that form target matches and populates $uri
  • if @requiredFields exists, verify that each element is an input name
  • build form-url-encoded string looking at parameters/values and store it in $query

expectAuthenticatedAs($user)

Verify that result has a Lm-Remote-User header and value is $user

expectOK($res)

Verify that returned code is 200

expectBadRequest($res)

Verify that returned code is 400. Note that it works only for Ajax request (see below).

expectReject( $res, $code )

Verify that returned code is 401 and JSON result contains error:"$code". Note that it works only for Ajax request (see below).

expectCookie( $res, $cookieName )

Check if a Set-Cookie exists and set a cookie named $cookieName. Return its value.

exceptCspFormOK( $res, $host )

Verify that Content-Security-Policy header allows to connect to $host.

getCookies($res)

Returns an hash ref with names => values of cookies set by server.

getHeader( $res, $hname )

Returns value of first header named $hname in $res response.

getRedirection($res)

Returns value of Location header.

getUser($res)

Returns value of Lm-Remote-User header.

LLNG::Manager::Test Class

Accessors

  • app: built application
  • class: class to test (default Lemonldap::NG::Portal::Main)
  • p: portal object
  • ini: initialization parameters ($defaultIni values + given parameters)

Methods

logout($id)

Launch a /?logout=1 request an test:

  • if response is 200
  • if cookie 'lemonldap' and 'lemonldappdata' have no value
  • if a GET request with previous cookie value ($i) is rejected

_get( $path, %args )

Simulates a GET requests to $path. Accepted arguments:

  • accept: accepted content, default to Ajax request. Use 'text/html' to test content (to launch a expectForm() for example).
  • cookie: full cookie string
  • custom: additional headers (hash ref only)
  • ip: remote address. Default to 127.0.0.1
  • method: default to GET. Only GET/DELETE values are acceptable (use _post() if you want to launch a POST/PUT request)
  • query: query string
  • referer
  • remote_user: REMOTE_USER header value

_post( $path, $body, %args )

Same as _get except that a body is required. $body must be a file handle. Example with IO::String:

ok(
    $res = $client->_post(
        '/',
        IO::String->new('user=dwho&password=dwho'),
        length => 23
    ),
    'Auth query'
);

_delete( $path, %args )

Call _get() with method set to DELETE.

_put( $path, $body, %args )

Call _post() with method set to PUT