PHP Classes

File: web/SSO/vendor/openid/php-openid/Tests/TestDriver.php

Recommend this page to a friend!
  Classes of william amed   Raptor 2   web/SSO/vendor/openid/php-openid/Tests/TestDriver.php   Download  
File: web/SSO/vendor/openid/php-openid/Tests/TestDriver.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Raptor 2
Framework that takes routes from annotations
Author: By
Last change:
Date: 8 years ago
Size: 5,488 bytes
 

Contents

Class file image Download
<?php

/**
 * A driver for the PHP OpenID unit tests.
 *
 * PHP versions 4 and 5
 *
 * LICENSE: See the COPYING file included in this distribution.
 *
 * @package OpenID
 * @author JanRain, Inc. <openid@janrain.com>
 * @copyright 2005-2008 Janrain, Inc.
 * @license http://www.apache.org/licenses/LICENSE-2.0 Apache
 */

require_once 'PHPUnit/Framework.php';
//require_once 'PHPUnit/GUI/HTML.php';

error_reporting(E_ALL | E_STRICT);

global
$__test_errors;
$__test_errors = array();

function
__handler($code, $message)
{
    global
$__test_errors;

    if (
$code == E_USER_WARNING) {
       
$__test_errors[] = $message;
    }
}

function
__raiseError($message)
{
   
set_error_handler('__handler');
   
trigger_error($message, E_USER_WARNING);
   
restore_error_handler();
}

function
__getError()
{
    global
$__test_errors;
    if (
$__test_errors) {
        return
array_pop($__test_errors);
    }
    return
null;
}

/**
 * Load the tests that are defined in the named modules.
 *
 * If you have Tests/Foo.php which defines a test class called
 * Tests_Foo, the call would look like:
 *
 * loadTests('Tests/', array('Foo'))
 *
 * @param string $test_dir The root of the test hierarchy. Must end
 * with a /
 *
 * @param array $test_names The names of the modules in which the
 * tests are defined. This should not include the root of the test
 * hierarchy.
 */
function loadTests($test_dir, $test_names)
{
    global
$_tests;
   
$suites = array();

    foreach (
$test_names as $filename) {
       
$filename = $test_dir . $filename . '.php';

        if (!
global_require_once($filename)) {
            continue;
        }

       
$class_name = str_replace('/', '_', $filename);
       
$class_name = basename($class_name, '.php');

       
$suites[] = makeSuite($class_name);
    }

    return
$suites;
}

function
makeSuite($class_name) {
   
$test = new $class_name($class_name);

    if (
is_a($test, 'PHPUnit_Framework_TestCase')) {
       
$s = new PHPUnit_Framework_TestSuite();
       
$s->setName($class_name);
       
$s->addTestSuite($class_name);
       
$test = $s;
    }

   
$tc_array_name = $class_name . '_other';
    if (
array_key_exists($tc_array_name, $GLOBALS) &&
       
is_array($GLOBALS[$tc_array_name])) {

        foreach (
$GLOBALS[$tc_array_name] as $tc) {
           
$test->addTestSuite(get_class($tc));
        }
    }

    return
$test;
}


function
global_require_once($name)
{
   
$f = include_once $name;
    if (!
$f) {
        print(
"global require once skipping $name\n");
        return
false;
    }
    foreach (
get_defined_vars() as $k => $v) {
        if (!
in_array($k, array('name', 'GLOBALS'))) {
           
$GLOBALS[$k] = $v;
        }
    }
    return
true;
}

$_tests = array(
                array(
                     
'dir' => 'Tests/Auth/OpenID/',
                     
'files' => array(
                                      
'Association',
                                      
'AssociationResponse',
                                      
'AuthRequest',
                                      
'AX',
                                      
'BigMath',
                                      
'Consumer',
                                      
'CryptUtil',
                                      
'DiffieHellman',
                                      
'Discover_OpenID',
                                      
'Extension',
                                      
'HMAC',
                                      
'KVForm',
                                      
'Message',
                                      
'Negotiation',
                                      
'Nonce',
                                      
'OpenID_Yadis',
                                      
'PAPE',
                                      
'Parse',
                                      
'RPVerify',
                                      
'Server',
                                      
'SReg',
                                      
'StoreTest',
                                      
'TrustRoot',
                                      
'URINorm',
                                      
'Util',
                                      
'VerifyDisco'),
                      ),
                array(
                     
'dir' => 'Tests/Auth/Yadis/',
                     
'files' => array(
                                      
'ParseHTML',
                                      
'XRDS',
                                      
'Yadis',
                                      
'Discover_Yadis',
                                      
'XRI'
                                      
)
                      )
                );

function
selectTests($package, $names)
{
    global
$_tests;
   
$lnames = array_map('strtolower', $names);
   
$include = array();
   
$exclude = array();
    foreach (
$package['files'] as $t) {
       
$l = strtolower($t);
        if (
in_array($l, $lnames)) {
           
$include[] = $t;
        }

        if (
in_array("/$l", $lnames)) {
           
$exclude[] = $t;
        }
    }

    return
array_diff($include, $exclude);
}

// Load OpenID library tests
function loadSuite($names=null)
{
    global
$_tests;
   
$result = array();
    foreach (
$_tests as $package) {
        if (!
$names) {
           
$selected = $package['files'];
        } else {
           
$selected = selectTests($package, $names);
        }
       
$result = array_merge($result, loadTests($package['dir'], $selected));
    }

    return
$result;
}