diff options
-rw-r--r-- | .gitattributes | 2 | ||||
-rw-r--r-- | tests/FunctionalTests/PradoTester.php | 54 | ||||
-rw-r--r-- | tests/FunctionalTests/config.php | 8 | ||||
-rw-r--r-- | tests/FunctionalTests/features.php | 37 | ||||
-rw-r--r-- | tests/FunctionalTests/quickstart.php | 37 | ||||
-rw-r--r-- | tests/FunctionalTests/selenium/php/selenium.php | 1 | ||||
-rw-r--r-- | tests/FunctionalTests/tests.php | 10 | ||||
-rw-r--r-- | tests/FunctionalTests/tickets.php | 37 |
8 files changed, 68 insertions, 118 deletions
diff --git a/.gitattributes b/.gitattributes index 33f5442b..095817ef 100644 --- a/.gitattributes +++ b/.gitattributes @@ -781,6 +781,7 @@ requirements/messages-zh.txt -text requirements/messages.txt -text requirements/template-zh.html -text requirements/template.html -text +tests/FunctionalTests/PradoTester.php -text tests/FunctionalTests/README.txt -text tests/FunctionalTests/config.php -text tests/FunctionalTests/features.php -text @@ -901,7 +902,6 @@ tests/FunctionalTests/selenium/selenium.css -text tests/FunctionalTests/selenium/user-extensions.js.sample -text tests/FunctionalTests/selenium/xmlextras.js -text tests/FunctionalTests/selenium/xpath.js -text -tests/FunctionalTests/tests.php -text tests/FunctionalTests/tickets.php -text tests/FunctionalTests/tickets/index.php -text tests/FunctionalTests/tickets/protected/pages/Layout.php -text diff --git a/tests/FunctionalTests/PradoTester.php b/tests/FunctionalTests/PradoTester.php new file mode 100644 index 00000000..8d081e0f --- /dev/null +++ b/tests/FunctionalTests/PradoTester.php @@ -0,0 +1,54 @@ +<?php
+
+$SIMPLE_TEST = dirname(__FILE__).'/../UnitTests';
+
+require_once($SIMPLE_TEST.'/simpletest/unit_tester.php');
+require_once($SIMPLE_TEST.'/simpletest/web_tester.php');
+require_once($SIMPLE_TEST.'/simpletest/mock_objects.php');
+require_once($SIMPLE_TEST.'/simpletest/reporter.php');
+require(dirname(__FILE__).'/selenium/php/selenium.php');
+
+class PradoTester
+{
+ private $_name;
+ private $_basePath;
+
+ public function __construct($basePath,$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,'\\','/');
+ }
+
+ public function run($simpleReporter)
+ {
+ $groupTest=new GroupTest($this->_name);
+ $this->collectTestFiles($groupTest,$this->_basePath);
+ $groupTest->run($simpleReporter);
+
+ $server=SimpleSeleniumProxyServer::getInstance(dirname(__FILE__));
+ $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);
+ }
+}
+
+?>
\ No newline at end of file diff --git a/tests/FunctionalTests/config.php b/tests/FunctionalTests/config.php index 73491c6e..358fb8e2 100644 --- a/tests/FunctionalTests/config.php +++ b/tests/FunctionalTests/config.php @@ -10,7 +10,7 @@ require_once($SIMPLE_TEST.'/simpletest/web_tester.php'); require_once($SIMPLE_TEST.'/simpletest/mock_objects.php'); require_once($SIMPLE_TEST.'/simpletest/reporter.php'); require(dirname(__FILE__).'/selenium/php/selenium.php'); -require_once(PradoTestConfig::framework().'/prado.php'); +//require_once(PradoTestConfig::framework().'/prado.php'); /** test configurations , OVERRIDE to suite your enviornment !!! **/ class PradoTestConfig @@ -65,7 +65,7 @@ class PradoTestConfig //set up the PradoApplication Testing stub. -class PradoApplicationTester extends TApplication +class PradoApplicationTester { protected $appUrl; protected $testConfig; @@ -74,12 +74,10 @@ class PradoApplicationTester extends TApplication { $this->appUrl = $appUrl; $this->testConfig = $config; - parent::__construct(); } public function run() { - $this->initApplication(); } public function getTestPage($file) @@ -129,7 +127,7 @@ class PradoSimpleTester while (false !== ($entry = $dir->read())) { - $file = realpath($path.'/'.$entry); + $file = strtr(realpath($path.'/'.$entry),'\\','/'); $matchFile = $this->tester->getTestCase(); if(is_file($file) && $this->filePatternMatch($file)) { diff --git a/tests/FunctionalTests/features.php b/tests/FunctionalTests/features.php index 71c8ce3a..8a3c87a6 100644 --- a/tests/FunctionalTests/features.php +++ b/tests/FunctionalTests/features.php @@ -1,39 +1,8 @@ <?php -require('config.php'); -header("Content-Type: text/html; charset=UTF-8"); -class BrowserTestConfig extends PradoTestConfig -{ - //functional test groups - public function unit_test_groups() - { - $groups = array(); +require(dirname(__FILE__).'/PradoTester.php'); - //tests for quickstart samples - $this->get_directories(dirname(__FILE__).'/features/tests', $groups); - - return $groups; - } - - protected function get_directories($base,&$groups) - { - $groups[] = realpath($base); - $dirs = new DirectoryIterator($base); - foreach($dirs as $dir) - if(!$dir->isDot() && $dir->isDir() - && !preg_match("/\.svn/", $dir->getPathName())) - $this->get_directories($dir->getPathName(), $groups); - } -} - - -$root = dirname(__FILE__); -$server = SimpleSeleniumProxyServer::getInstance($root); - -$tester = new PradoSimpleTester(new BrowserTestConfig()); -$browser_tests = $tester->getTests(); -$browser_tests->run(new SimpleReporter()); - -$server->handleRequest(); +$tester=new PradoTester(dirname(__FILE__).'/features/tests'); +$tester->run(new SimpleReporter()); ?>
\ No newline at end of file diff --git a/tests/FunctionalTests/quickstart.php b/tests/FunctionalTests/quickstart.php index e4157aca..aa6dc119 100644 --- a/tests/FunctionalTests/quickstart.php +++ b/tests/FunctionalTests/quickstart.php @@ -1,39 +1,8 @@ <?php -require('config.php'); -header("Content-Type: text/html; charset=UTF-8"); -class BrowserTestConfig extends PradoTestConfig -{ - //functional test groups - public function unit_test_groups() - { - $groups = array(); +require(dirname(__FILE__).'/PradoTester.php'); - //tests for quickstart samples - $this->get_directories(dirname(__FILE__).'/quickstart', $groups); - - return $groups; - } - - protected function get_directories($base,&$groups) - { - $groups[] = realpath($base); - $dirs = new DirectoryIterator($base); - foreach($dirs as $dir) - if(!$dir->isDot() && $dir->isDir() - && !preg_match("/\.svn/", $dir->getPathName())) - $this->get_directories($dir->getPathName(), $groups); - } -} - - -$root = dirname(__FILE__); -$server = SimpleSeleniumProxyServer::getInstance($root); - -$tester = new PradoSimpleTester(new BrowserTestConfig()); -$browser_tests = $tester->getTests(); -$browser_tests->run(new SimpleReporter()); - -$server->handleRequest(); +$tester=new PradoTester(dirname(__FILE__).'/quickstart'); +$tester->run(new SimpleReporter()); ?>
\ No newline at end of file diff --git a/tests/FunctionalTests/selenium/php/selenium.php b/tests/FunctionalTests/selenium/php/selenium.php index 03b264db..4b36b8c2 100644 --- a/tests/FunctionalTests/selenium/php/selenium.php +++ b/tests/FunctionalTests/selenium/php/selenium.php @@ -267,6 +267,7 @@ EOD; foreach($this->suites as $name => $suite) { $file = $suite[0]['trace']['file']; + $file = strtr($file,'\\','/'); $url = $this->runner->getDriver()."?case={$name}&file={$file}"; echo "<tr>\n"; echo "<td><a href=\"{$url}\">{$name}</a></td>\n"; diff --git a/tests/FunctionalTests/tests.php b/tests/FunctionalTests/tests.php deleted file mode 100644 index 706c0661..00000000 --- a/tests/FunctionalTests/tests.php +++ /dev/null @@ -1,10 +0,0 @@ -<?php - -require_once(dirname(__FILE__).'/../../framework/prado.php'); -require_once(dirname(__FILE__).'/config.php'); - - -$application=new TApplication(); -$application->run(); - -?>
\ No newline at end of file diff --git a/tests/FunctionalTests/tickets.php b/tests/FunctionalTests/tickets.php index a2ea99d2..36511e73 100644 --- a/tests/FunctionalTests/tickets.php +++ b/tests/FunctionalTests/tickets.php @@ -1,39 +1,8 @@ <?php -require('config.php'); -header("Content-Type: text/html; charset=UTF-8"); -class BrowserTestConfig extends PradoTestConfig -{ - //functional test groups - public function unit_test_groups() - { - $groups = array(); +require(dirname(__FILE__).'/PradoTester.php'); - //tests for quickstart samples - $this->get_directories(dirname(__FILE__).'/tickets/tests', $groups); - - return $groups; - } - - protected function get_directories($base,&$groups) - { - $groups[] = realpath($base); - $dirs = new DirectoryIterator($base); - foreach($dirs as $dir) - if(!$dir->isDot() && $dir->isDir() - && !preg_match("/\.svn/", $dir->getPathName())) - $this->get_directories($dir->getPathName(), $groups); - } -} - - -$root = dirname(__FILE__); -$server = SimpleSeleniumProxyServer::getInstance($root); - -$tester = new PradoSimpleTester(new BrowserTestConfig()); -$browser_tests = $tester->getTests(); -$browser_tests->run(new SimpleReporter()); - -$server->handleRequest(); +$tester=new PradoTester(dirname(__FILE__).'/tickets/tests'); +$tester->run(new SimpleReporter()); ?>
\ No newline at end of file |