aboutsummaryrefslogtreecommitdiff
path: root/models/openid-php-openid-782224d/Tests/TestDriver.php
diff options
context:
space:
mode:
Diffstat (limited to 'models/openid-php-openid-782224d/Tests/TestDriver.php')
-rw-r--r--models/openid-php-openid-782224d/Tests/TestDriver.php202
1 files changed, 202 insertions, 0 deletions
diff --git a/models/openid-php-openid-782224d/Tests/TestDriver.php b/models/openid-php-openid-782224d/Tests/TestDriver.php
new file mode 100644
index 000000000..1a1f5b1de
--- /dev/null
+++ b/models/openid-php-openid-782224d/Tests/TestDriver.php
@@ -0,0 +1,202 @@
+<?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;
+}
+