From 3b11f3555426a50664e130148fa37e18b8098e28 Mon Sep 17 00:00:00 2001 From: wei <> Date: Fri, 6 Jan 2006 04:37:22 +0000 Subject: --- tests/FunctionalTests/config.php | 88 +++------------------- .../framework/Demos/testControls.php | 16 ---- .../framework/Demos/testHangMan.php | 32 -------- tests/FunctionalTests/framework/IndexPage.tpl | 13 ---- tests/FunctionalTests/framework/Web/UI/config.xml | 7 -- .../framework/Web/UI/testTButton.php | 23 ------ .../framework/Web/UI/testTButton.tpl | 7 -- tests/FunctionalTests/framework/Web/config.xml | 5 -- tests/FunctionalTests/framework/application.xml | 12 --- tests/FunctionalTests/framework/config.xml | 6 -- tests/FunctionalTests/index.php | 15 +++- .../selenium/html-xpath/html-xpath-patched.js | 2 +- tests/FunctionalTests/selenium/php/results.php | 22 ++---- tests/FunctionalTests/selenium/php/selenium.php | 31 +++----- .../selenium/prado-functional-test.js | 4 +- tests/FunctionalTests/tests.php | 2 +- 16 files changed, 48 insertions(+), 237 deletions(-) delete mode 100644 tests/FunctionalTests/framework/Demos/testControls.php delete mode 100644 tests/FunctionalTests/framework/Demos/testHangMan.php delete mode 100644 tests/FunctionalTests/framework/IndexPage.tpl delete mode 100644 tests/FunctionalTests/framework/Web/UI/config.xml delete mode 100644 tests/FunctionalTests/framework/Web/UI/testTButton.php delete mode 100644 tests/FunctionalTests/framework/Web/UI/testTButton.tpl delete mode 100644 tests/FunctionalTests/framework/Web/config.xml delete mode 100644 tests/FunctionalTests/framework/application.xml delete mode 100644 tests/FunctionalTests/framework/config.xml (limited to 'tests/FunctionalTests') diff --git a/tests/FunctionalTests/config.php b/tests/FunctionalTests/config.php index ebef6f8c..99644888 100644 --- a/tests/FunctionalTests/config.php +++ b/tests/FunctionalTests/config.php @@ -10,6 +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'); /** test configurations , OVERRIDE to suite your enviornment !!! **/ class PradoTestConfig @@ -23,7 +24,7 @@ class PradoTestConfig //test directory base public function tests_directory() { - return dirname(__FILE__).'/framework/'; + return dirname(__FILE__).'/protected/'; } //prado frame work directory @@ -39,18 +40,16 @@ class PradoTestConfig } //run the prado application - public function runApplication($appUrl='tests.php', $file=null, $class='PradoApplicationTester') + public function runApplication($appUrl='tests.php', $class='PradoApplicationTester') { - if(is_null($file)) - $file = $this->tests_directory().'/application.xml'; - $app = new $class($file, $this, $appUrl); + $app = new $class($this, $appUrl); $app->run(); } //file patterns to accept for test public function acceptPattern() { - return '/test(\w+)\.php/'; + return '/\w+\.php/'; } public function rejectPattern() @@ -66,61 +65,33 @@ class PradoTestConfig //set up the PradoApplication Testing stub. -require_once(PradoTestConfig::framework().'/prado.php'); -require_once(PradoTestConfig::framework().'/TApplication.php'); - class PradoApplicationTester extends TApplication { + protected $appUrl; protected $testConfig; - - public function __construct($spec, $config, $appUrl) + public function __construct($config, $appUrl) { + $this->appUrl = $appUrl; $this->testConfig = $config; - parent::__construct($spec); - $request = new FunctionTestRequest(); - $request->init($this, null); - $request->setAppUrl($appUrl); - $this->setRequest($request); - $response = new FunctionTestResponse(); - $response->init($this, null); - $this->setResponse($response); + parent::__construct(); } public function run() { - $this->initApplication($this->getConfigurationFile(),null); - } - - public function getServiceConfig() - { - $config=new TApplicationConfiguration; - $config->loadFromFile($this->getConfigurationFile()); - return $config->getService($this->getTestServiceID()); - } - - public function getTestServiceID() - { - if(($serviceID=$this->getRequest()->getServiceID())===null) - $serviceID=self::DEFAULT_SERVICE; - return $serviceID; + $this->initApplication(); } public function getTestPage($file) { $parameter = $this->getTestServiceParameter($file); - $this->getRequest()->setServiceParameter($parameter); - $service = $this->getService(); - $config = $this->getServiceConfig(); - $service->init($this, $config[2]); - $service->run(); - return $service->getRequestedPage(); + return $this->appUrl.'?page='.$parameter; } protected function getTestServiceParameter($file) { $file = realpath($file); - $base = realpath($this->testConfig->tests_directory()); + $base = realpath($this->testConfig->tests_directory().'/pages/'); $search = array($base, '.php'); $replace = array('', ''); $pagePath = str_replace($search, $replace, $file); @@ -131,41 +102,6 @@ class PradoApplicationTester extends TApplication } } -class FunctionTestRequest extends THttpRequest -{ - protected $appUrl; - - public function setServiceParameter($parameter) - { - parent::setServiceParameter($parameter); - } - - public function setAppUrl($url) - { - $this->appUrl = $url; - } - - public function getApplicationPath() - { - return $this->appUrl; - } - - public function getTestUrl() - { - $serviceParam = $this->getServiceParameter(); - $serviceID= prado::getApplication()->getTestServiceID(); - return $this->constructUrl($serviceID, $serviceParam); - } -} - -class FunctionTestResponse extends THttpResponse -{ - public function write($str) - { - - } -} - /** set up the tests **/ class PradoSimpleTester diff --git a/tests/FunctionalTests/framework/Demos/testControls.php b/tests/FunctionalTests/framework/Demos/testControls.php deleted file mode 100644 index 49f8e99e..00000000 --- a/tests/FunctionalTests/framework/Demos/testControls.php +++ /dev/null @@ -1,16 +0,0 @@ -open('../../demos/controls/index.php'); - } - - function testControlSamples() - { - $this->assertTextPresent("Welcome! Guest"); - $this->clickAndWait('//input[@value="Toggle Button"]'); - $this->assertTextPresent("Login"); - } -} \ No newline at end of file diff --git a/tests/FunctionalTests/framework/Demos/testHangMan.php b/tests/FunctionalTests/framework/Demos/testHangMan.php deleted file mode 100644 index e6bc8c94..00000000 --- a/tests/FunctionalTests/framework/Demos/testHangMan.php +++ /dev/null @@ -1,32 +0,0 @@ -open('../../demos/hangman/index.php'); - } - - function testHangManGame() - { - $this->assertLocation('hangman/index.php'); - $this->assertTextPresent('Prado Hangman Game'); - - //use xpath to select input with value "HardLevel", - //i.e the radio button with value "HardLevel" - $this->click('//input[@value="HardLevel"]'); - $this->clickAndWait('//input[@value="Play!"]'); - - //try 3 alphabets that sure doesn't exists - $this->clickAndWait('link=X'); - $this->assertTextPresent('made 1 bad guesses'); - - $this->clickAndWait('link=J'); - $this->assertTextPresent('made 2 bad guesses'); - - $this->clickAndWait('link=Q'); - $this->assertTextPresent('You Lose!'); - } -} - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/framework/IndexPage.tpl b/tests/FunctionalTests/framework/IndexPage.tpl deleted file mode 100644 index 733c495e..00000000 --- a/tests/FunctionalTests/framework/IndexPage.tpl +++ /dev/null @@ -1,13 +0,0 @@ - - - - - Functional Tests - - - -

Functional Test Pages

- - \ No newline at end of file diff --git a/tests/FunctionalTests/framework/Web/UI/config.xml b/tests/FunctionalTests/framework/Web/UI/config.xml deleted file mode 100644 index 7e71f4aa..00000000 --- a/tests/FunctionalTests/framework/Web/UI/config.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/tests/FunctionalTests/framework/Web/UI/testTButton.php b/tests/FunctionalTests/framework/Web/UI/testTButton.php deleted file mode 100644 index 09ba28f6..00000000 --- a/tests/FunctionalTests/framework/Web/UI/testTButton.php +++ /dev/null @@ -1,23 +0,0 @@ -initPage(__FILE__); - $this->open($this->Page->Request->TestUrl); - } - - function testButtonClick() - { - $this->assertTextPresent("TButton Functional Test"); - $this->click($this->Page->button1); - } -} - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/framework/Web/UI/testTButton.tpl b/tests/FunctionalTests/framework/Web/UI/testTButton.tpl deleted file mode 100644 index ac051f28..00000000 --- a/tests/FunctionalTests/framework/Web/UI/testTButton.tpl +++ /dev/null @@ -1,7 +0,0 @@ - - -

TButton Functional Test

- - - -
\ No newline at end of file diff --git a/tests/FunctionalTests/framework/Web/config.xml b/tests/FunctionalTests/framework/Web/config.xml deleted file mode 100644 index f9533de1..00000000 --- a/tests/FunctionalTests/framework/Web/config.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/tests/FunctionalTests/framework/application.xml b/tests/FunctionalTests/framework/application.xml deleted file mode 100644 index 16377248..00000000 --- a/tests/FunctionalTests/framework/application.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/tests/FunctionalTests/framework/config.xml b/tests/FunctionalTests/framework/config.xml deleted file mode 100644 index 918c49df..00000000 --- a/tests/FunctionalTests/framework/config.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/tests/FunctionalTests/index.php b/tests/FunctionalTests/index.php index b2c9e16c..442c4bbf 100644 --- a/tests/FunctionalTests/index.php +++ b/tests/FunctionalTests/index.php @@ -7,10 +7,19 @@ class BrowserTestConfig extends PradoTestConfig //functional test groups public function unit_test_groups() { - $groups['Web/UI'] = realpath($this->tests_directory().'/Web/UI/'); - $groups['Demos'] = realpath($this->tests_directory().'/Demos/'); + $groups = array(); + $this->get_directories($this->tests_directory(),$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()) + $this->get_directories($dir->getPathName(), $groups); + } } @@ -19,7 +28,7 @@ $server = SimpleSeleniumProxyServer::getInstance($root); $tester = new PradoSimpleTester(new BrowserTestConfig()); $browser_tests = $tester->getTests(); -$browser_tests->run(new SeleniumReporter()); +$browser_tests->run(new SimpleReporter()); $server->handleRequest(); diff --git a/tests/FunctionalTests/selenium/html-xpath/html-xpath-patched.js b/tests/FunctionalTests/selenium/html-xpath/html-xpath-patched.js index 4b9e05f6..d135e879 100644 --- a/tests/FunctionalTests/selenium/html-xpath/html-xpath-patched.js +++ b/tests/FunctionalTests/selenium/html-xpath/html-xpath-patched.js @@ -602,7 +602,7 @@ if (isIe) { var attribute = node.attributes[i]; var attributeValue = attribute.nodeValue; - if (attributeValue && attribute.specified) + if (attributeValue && (attribute.specified || attribute.nodeName == 'value')) { var domAttribute = dom.createAttribute(attribute.nodeName); domAttribute.value = attributeValue; diff --git a/tests/FunctionalTests/selenium/php/results.php b/tests/FunctionalTests/selenium/php/results.php index 2ad9c56b..77dab43b 100644 --- a/tests/FunctionalTests/selenium/php/results.php +++ b/tests/FunctionalTests/selenium/php/results.php @@ -45,9 +45,9 @@ class SeleniumTestResult $case->commands = $test['commands']; for($i = 0; $i < count($case->commands); $i++) { - $trace = $case->commands[$i]['trace']; - $trace = html_entity_decode($trace); - $case->commands[$i]['trace'] = @unserialize($trace); + //$trace = $case->commands[$i]['trace']; + //$trace = html_entity_decode($trace); + //$case->commands[$i]['trace'] = @unserialize($trace); if($case->commands[$i]['result'] == 'failed') { $case->result = 'failed'; @@ -126,33 +126,27 @@ EOD; foreach($test->suites as $suite) { foreach($suite->failures as $error) - $contents .= $this->getErrorMsg($error, $count++); + $contents .= $this->getErrorMsg($suite, $error, $count++); } return $contents; } - protected function getErrorMsg($info, $count) + protected function getErrorMsg($suite, $info, $count) { - $args = array(); - foreach($info['trace']['args'] as $arg) - $args[] = "'{$arg}'"; - $args = implode(",", $args); $parity = $count%2==0 ? 'even' : 'odd'; + $command = explode("|",$info['command']); $msg = << #{$count}. "{$info['msg']}" in - {$info['trace']['class']}::{$info['trace']['function']}({$args}) - - near - - {$info['trace']['file']}:({$info['trace']['line']}) + {$suite->name}::{$command[1]}('{$command[2]}'); EOD; + return $msg; } diff --git a/tests/FunctionalTests/selenium/php/selenium.php b/tests/FunctionalTests/selenium/php/selenium.php index a06a6eab..33dc8801 100644 --- a/tests/FunctionalTests/selenium/php/selenium.php +++ b/tests/FunctionalTests/selenium/php/selenium.php @@ -142,9 +142,9 @@ class SeleniumTestTrace { $group = array_pop($trace); $info = $trace[3]; - $test = $group['args'][0]->getTestStack(); + $test = $group['args'][0]->getTestList(); $i = count($test); - $name = $test[1].'::'.$test[$i-1]; + $name = $test[$i-2].'::'.$test[$i-1]; $suite = $test[0]; unset($info['object']); for($i = 0; $i < count($info['args']); $i++) @@ -158,14 +158,6 @@ class SeleniumTestTrace } } -class SeleniumReporter extends SimpleReporter -{ - function getTestStack() - { - return $this->_test_stack; - } -} - class SimpleSeleniumProxyServer// extends SeleniumProxyServer { protected $runner; @@ -250,8 +242,7 @@ class SeleniumTestSuiteWriter $contents = << - + Test Suite @@ -287,19 +278,18 @@ EOD; foreach($this->suites as $name => $suite) { $name = $name; - $contents .= "prado_trace['{$name}'] = new Array();\n"; + $contents .= "prado_trace['{$name}'] = ["; + $cases = array(); foreach($suite as $testcase) - { - $trace = addslashes(htmlspecialchars(serialize($testcase['trace']))); - $contents .= "prado_trace['{$name}'].push('{$trace}')\n"; - } + $cases[] = "'".addslashes(htmlspecialchars(serialize($testcase['trace'])))."'"; + $contents .= implode(",\n", $cases)."];\n\n"; } return $contents; } protected function renderFooter() { - $trace = $this->getJsTraceInfo(); + $trace = '';//$this->getJsTraceInfo(); $contents = << @@ -333,7 +323,7 @@ class SeleniumTestCaseWriter {$this->case} - + @@ -351,6 +341,8 @@ EOD; foreach($this->tests as $test) { $t = explode('|', $test['test']); + if($t[1] == "open") + $t[2] = "{$t[2]}"; echo "\n"; echo "\n"; echo "\n"; @@ -464,6 +456,7 @@ class SeleniumTestCase extends UnitTestCase $server = SimpleSeleniumProxyServer::getInstance(); if(!is_null($server)) $this->selenium = $server->proxy(); + parent::__construct(); } public function initPage($file) diff --git a/tests/FunctionalTests/selenium/prado-functional-test.js b/tests/FunctionalTests/selenium/prado-functional-test.js index 1d0ef39a..37e26516 100644 --- a/tests/FunctionalTests/selenium/prado-functional-test.js +++ b/tests/FunctionalTests/selenium/prado-functional-test.js @@ -148,7 +148,7 @@ function parse_resultCell(resultCell,rowNum,form) form.createHiddenField("tests["+rowNum+"][testcase]",testname); - var trace = window.testSuiteFrame.prado_trace[testname]; + //var trace = window.testSuiteFrame.prado_trace[testname]; for(var i = 1; irun(); ?> \ No newline at end of file -- cgit v1.2.3
{$t[1]}{$t[2]}