#! /usr/bin/env php
#
# $Id$
#
# PHP unit tests for Lasso library
#
# Copyright (C) 2004, 2005 Entr'ouvert
# http://lasso.entrouvert.org
#
# Authors: See AUTHORS file.
#
# 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 2 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, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
consent == NULL);
$authnRequest->consent = LassoLibConsentObtained;
assert($authnRequest->consent == LassoLibConsentObtained);
$authnRequest->consent = NULL;
assert($authnRequest->consent == NULL);
# Test a renamed string attribute. But renaming doesn't work with current SWIG PHP binding.
assert($authnRequest->RelayState == NULL);
$authnRequest->RelayState = 'Hello World!';
assert($authnRequest->RelayState == 'Hello World!');
$authnRequest->RelayState = NULL;
assert($authnRequest->RelayState == NULL);
# Test an integer attribute.
assert($authnRequest->majorVersion == 0);
$authnRequest->majorVersion = 314;
assert($authnRequest->majorVersion == 314);
$authnRequest = NULL;
print ".. OK\n";
}
function test03()
{
print "Get & set attributes of nodes of type string list.";
$authnRequest = new LassoLibAuthnRequest();
assert($authnRequest->respondWith == NULL);
$respondWith = new LassoStringList();
assert($respondWith->length() == 0);
$respondWith->append('first string');
assert($respondWith->length() == 1);
assert($respondWith->getitem(0) == 'first string');
assert($respondWith->getitem(0) == 'first string');
$respondWith->append('second string');
assert($respondWith->length() == 2);
assert($respondWith->getitem(0) == 'first string');
assert($respondWith->getitem(1) == 'second string');
$respondWith->append('third string');
assert($respondWith->length() == 3);
assert($respondWith->getitem(0) == 'first string');
assert($respondWith->getitem(1) == 'second string');
assert($respondWith->getitem(2) == 'third string');
$authnRequest->RespondWith = $respondWith;
# $authnRequest->RespondWith->getitem(0) doesnt work. It raises:
# Fatal error: Class 'lassolibauthnrequest' does not support overloaded method calls
$authnRequestRespondWith = $authnRequest->RespondWith;
assert($authnRequestRespondWith->getitem(0) == 'first string');
assert($authnRequestRespondWith->getitem(1) == 'second string');
assert($authnRequestRespondWith->getitem(2) == 'third string');
assert($respondWith->getitem(0) == 'first string');
assert($respondWith->getitem(1) == 'second string');
assert($respondWith->getitem(2) == 'third string');
$respondWith = NULL;
assert($authnRequestRespondWith->getitem(0) == 'first string');
assert($authnRequestRespondWith->getitem(1) == 'second string');
assert($authnRequestRespondWith->getitem(2) == 'third string');
$respondWith = $authnRequest->RespondWith;
assert($respondWith->getitem(0) == 'first string');
assert($respondWith->getitem(1) == 'second string');
assert($respondWith->getitem(2) == 'third string');
$respondWith = NULL;
assert($authnRequestRespondWith->getitem(0) == 'first string');
assert($authnRequestRespondWith->getitem(1) == 'second string');
assert($authnRequestRespondWith->getitem(2) == 'third string');
$authnRequestRespondWith = NULL;
$authnRequest->RespondWith = NULL;
print_r($authnRequest->RespondWith);
assert($authnRequest->RespondWith == NULL);
$authnRequest = NULL;
print ".. OK\n";
}
function test04()
{
print "Get & set attributes of nodes of type node list.";
$response = new LassoSamlpResponse();
assert($response->assertion == NULL);
$assertions = new LassoNodeList();
assert($assertions->length() == 0);
$assertion1 = new LassoSamlAssertion();
$assertion1->AssertionID = 'assertion 1';
$assertions->append($assertion1);
assert($assertions->length() == 1);
$assertionsItem0 = $assertions->getitem(0);
assert($assertionsItem0->AssertionID == 'assertion 1');
$assertionsItem0 = $assertions->getitem(0);
assert($assertionsItem0->AssertionID == 'assertion 1');
$assertion2 = new LassoSamlAssertion();
$assertion2->AssertionID = 'assertion 2';
$assertions->append($assertion2);
assert($assertions->length() == 2);
$assertionsItem0 = $assertions->getitem(0);
assert($assertionsItem0->AssertionID == 'assertion 1');
$assertionsItem1 = $assertions->getitem(1);
assert($assertionsItem1->AssertionID == 'assertion 2');
$assertion3 = new LassoSamlAssertion();
$assertion3->AssertionID = 'assertion 3';
$assertions->append($assertion3);
assert($assertions->length() == 3);
$assertionsItem0 = $assertions->getitem(0);
assert($assertionsItem0->AssertionID == 'assertion 1');
$assertionsItem1 = $assertions->getitem(1);
assert($assertionsItem1->AssertionID == 'assertion 2');
$assertionsItem2 = $assertions->getitem(2);
assert($assertionsItem2->AssertionID == 'assertion 3');
$response->assertion = $assertions;
$responseAssertion = $response->assertion;
$responseAssertionItem0 = $responseAssertion->getitem(0);
assert($responseAssertionItem0->AssertionID == 'assertion 1');
$responseAssertion = $response->assertion;
$responseAssertionItem1 = $responseAssertion->getitem(1);
assert($responseAssertionItem1->AssertionID == 'assertion 2');
$responseAssertion = $response->assertion;
$responseAssertionItem2 = $responseAssertion->getitem(2);
assert($responseAssertionItem2->AssertionID == 'assertion 3');
$assertionsItem0 = $assertions->getitem(0);
assert($assertionsItem0->AssertionID == 'assertion 1');
$assertionsItem1 = $assertions->getitem(1);
assert($assertionsItem1->AssertionID == 'assertion 2');
$assertionsItem2 = $assertions->getitem(2);
assert($assertionsItem2->AssertionID == 'assertion 3');
$assertions = NULL;
$responseAssertion = $response->assertion;
$responseAssertionItem0 = $responseAssertion->getitem(0);
assert($responseAssertionItem0->AssertionID == 'assertion 1');
$responseAssertion = $response->assertion;
$responseAssertionItem1 = $responseAssertion->getitem(1);
assert($responseAssertionItem1->AssertionID == 'assertion 2');
$responseAssertion = $response->assertion;
$responseAssertionItem2 = $responseAssertion->getitem(2);
assert($responseAssertionItem2->AssertionID == 'assertion 3');
$assertions = $response->assertion;
$assertionsItem0 = $assertions->getitem(0);
assert($assertionsItem0->AssertionID == 'assertion 1');
$assertionsItem1 = $assertions->getitem(1);
assert($assertionsItem1->AssertionID == 'assertion 2');
$assertionsItem2 = $assertions->getitem(2);
assert($assertionsItem2->AssertionID == 'assertion 3');
$assertions = NULL;
$responseAssertion = $response->assertion;
$responseAssertionItem0 = $responseAssertion->getitem(0);
assert($responseAssertionItem0->AssertionID == 'assertion 1');
$responseAssertion = $response->assertion;
$responseAssertionItem1 = $responseAssertion->getitem(1);
assert($responseAssertionItem1->AssertionID == 'assertion 2');
$responseAssertion = $response->assertion;
$responseAssertionItem2 = $responseAssertion->getitem(2);
assert($responseAssertionItem2->AssertionID == 'assertion 3');
$response->assertion = NULL;
assert($response->assertion == NULL);
$response = NULL;
print ".. OK\n";
}
function test05()
{
print "Get & set attributes of nodes of type XML list.";
$authnRequest = new LassoLibAuthnRequest();
assert($authnRequest->extension == NULL);
$actionString1 = '
do 1
';
$actionString2 = '
do 2
';
$actionString3 = '
do 3
';
$extension = new LassoStringList();
assert($extension->length() == 0);
$extension->append($actionString1);
assert($extension->length() == 1);
assert($extension->getitem(0) == $actionString1);
assert($extension->getitem(0) == $actionString1);
$extension->append($actionString2);
assert($extension->length() == 2);
assert($extension->getitem(0) == $actionString1);
assert($extension->getitem(1) == $actionString2);
$extension->append($actionString3);
assert($extension->length() == 3);
assert($extension->getitem(0) == $actionString1);
assert($extension->getitem(1) == $actionString2);
assert($extension->getitem(2) == $actionString3);
$authnRequest->extension = $extension;
# $authnRequest->extension->getitem(0) doesnt work. It raises:
# Fatal error: Class 'lassolibauthnrequest' does not support overloaded method calls
$authnRequestExtension = $authnRequest->extension;
assert($authnRequestExtension->getitem(0) == $actionString1);
assert($authnRequestExtension->getitem(1) == $actionString2);
assert($authnRequestExtension->getitem(2) == $actionString3);
assert($extension->getitem(0) == $actionString1);
assert($extension->getitem(1) == $actionString2);
assert($extension->getitem(2) == $actionString3);
$extension = NULL;
assert($authnRequestExtension->getitem(0) == $actionString1);
assert($authnRequestExtension->getitem(1) == $actionString2);
assert($authnRequestExtension->getitem(2) == $actionString3);
$extension = $authnRequest->extension;
assert($extension->getitem(0) == $actionString1);
assert($extension->getitem(1) == $actionString2);
assert($extension->getitem(2) == $actionString3);
$extension = NULL;
assert($authnRequestExtension->getitem(0) == $actionString1);
assert($authnRequestExtension->getitem(1) == $actionString2);
assert($authnRequestExtension->getitem(2) == $actionString3);
$authnRequestExtension = NULL;
$authnRequest->extension = NULL;
print_r($authnRequest->Extension);
assert($authnRequest->extension == NULL);
$authnRequest = NULL;
print ".. OK\n";
}
function test06()
{
print "Get & set attributes of nodes of type node.";
$login = new LassoLogin(new LassoServer());
assert($login->request == NULL);
$login->request = new LassoLibAuthnRequest();
$loginRequest = $login->request;
$loginRequest->consent = LassoLibConsentObtained;
assert($loginRequest->consent == LassoLibConsentObtained);
$loginRequest = $login->request;
assert($loginRequest->consent == LassoLibConsentObtained);
$login->request = NULL;
assert($login->request == NULL);
$login = NULL;
print ".. OK\n";
}
lasso_init();
test01();
test02();
test03();
test04();
test05();
test06();
lasso_shutdown();
?>