Subversion-Projekte lars-tiefland.prado

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?php

$TEST_TOOLS = dirname(__FILE__);

if(isset($_GET['sr']))
{
        
        if(($selenium_resource=realpath($TEST_TOOLS.'/selenium/'.$_GET['sr']))!==false)
                echo file_get_contents($selenium_resource);
        exit;
}

require_once($TEST_TOOLS.'/simpletest/unit_tester.php');
require_once($TEST_TOOLS.'/simpletest/web_tester.php');
require_once($TEST_TOOLS.'/simpletest/mock_objects.php');
require_once($TEST_TOOLS.'/simpletest/reporter.php');
require_once($TEST_TOOLS.'/selenium/php/selenium.php');

class PradoFunctionalTester
{
        private $_name;
        private $_basePath;
        private $_selenium;

        public function __construct($basePath,$selenium='',$name='All Tests')
        {
                $this->_name=$name;
                if($basePath==='' || ($this->_basePath=realpath($basePath))===false)
                        throw new Exception('Invalid base path '.$basePath);
                $this->_basePath=strtr($this->_basePath,'\\','/');
                                
                $this->_selenium = $selenium.'selenium/';
        }

        public function run($simpleReporter)
        {
                $server=SimpleSeleniumProxyServer::getInstance(dirname(__FILE__));//, '', $this->_selenium);

                $groupTest=new GroupTest($this->_name);
                $this->collectTestFiles($groupTest,$this->_basePath);
                $groupTest->run($simpleReporter);

                $server->handleRequest();
        }

        protected function collectTestFiles($groupTest,$basePath)
        {
                $folder=@opendir($basePath);
                while($entry=@readdir($folder))
                {
                        $fullPath=strtr($basePath.'/'.$entry,'\\','/');
                        if(is_file($fullPath) && $this->isValidFile($entry))
                                $groupTest->addTestFile($fullPath);
                        else if($entry[0]!=='.')
                                $this->collectTestFiles($groupTest,$fullPath);
                }
                @closedir($folder);
        }

        protected function isValidFile($entry)
        {
                return preg_match('/\w+\.php$/',$entry);
        }
}

?>