summaryrefslogtreecommitdiff
path: root/test_tools/functional_tests.php
diff options
context:
space:
mode:
authorwei <>2006-07-05 07:30:55 +0000
committerwei <>2006-07-05 07:30:55 +0000
commitb5c7c7b77d33aa3e04ed6c16a489a2076a30f57a (patch)
tree03f30eb8fec8f1b58b9854058d6338bfad698f98 /test_tools/functional_tests.php
parent8d8b6688cbbb1febe92012ccc2a4158fa594fcb3 (diff)
Move tests around.
Diffstat (limited to 'test_tools/functional_tests.php')
-rw-r--r--test_tools/functional_tests.php66
1 files changed, 66 insertions, 0 deletions
diff --git a/test_tools/functional_tests.php b/test_tools/functional_tests.php
new file mode 100644
index 00000000..73bd6226
--- /dev/null
+++ b/test_tools/functional_tests.php
@@ -0,0 +1,66 @@
+<?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);
+ }
+}
+
+?> \ No newline at end of file