<?php
require_once dirname(__FILE__).'/accesscheck.php';

## some kind of attempt to make a test suite for certain elements of phplist

print '<h3>'.$GLOBALS['I18N']->get('phplist test suite').'</h3>';

if (empty($GLOBALS['developer_email'])) {
  print "Only available in developer mode";
  return;
}


$tests = array();
# generic class that's extended by all tests
include_once dirname(__FILE__).'/defaulttest.php';

$testdir = dirname(__FILE__).'/tests';
if (is_dir($testdir)) {
  if ($dh = opendir($testdir)) {
    while (($file = readdir($dh)) !== false) {
      if (preg_match("/\.php$/",$file) && is_file($testdir."/".$file)) {
        require_once ($testdir.'/'.$file);
        $class = basename($file,'.php');
        eval("\$test = new \$class();");
        if (method_exists($test,'runtest')) {
          $tests[$class] = $test;
        }
      }
    }
    closedir($dh);
  }
}

if (!empty($_GET['runtest']) && in_array($_GET['runtest'],array_keys($tests))) {
  print "<h3>Running test:  ".$tests[$_GET['runtest']]->name.'</h3>';
  $testresult = $tests[$_GET['runtest']]->runtest();
  if ($testresult) {
    print $GLOBALS['I18N']->get('Test passed');
  } else {
    print $GLOBALS['I18N']->get('Test failed');
  }
  print '<br/><br/>';
}

$ls = new WebblerListing($GLOBALS['I18N']->get('Tests available'));

foreach ($tests as $testclassname => $testclass) {
  $el = $GLOBALS['I18N']->get($testclass->name);
  $ls->addElement($el,PageUrl2('tests&runtest='.$testclassname));
  $ls->addColumn($el,$GLOBALS['I18N']->get('Purpose'),$GLOBALS['I18N']->get($testclass->purpose));
}
print $ls->display();

