diff options
Diffstat (limited to 'tests')
8 files changed, 109 insertions, 9 deletions
diff --git a/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxListTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxListTestCase.php index a66cf853..03081f9e 100644 --- a/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxListTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxListTestCase.php @@ -4,6 +4,9 @@ class ActiveCheckBoxListTestCase extends SeleniumTestCase  {  	function test()  	{ +		//problem with test runner clicking on radio buttons +		$this->skipBrowsers(self::OPERA); +  		$this->open("active-controls/index.php?page=TActiveCheckBoxListTest");  		$this->verifyTextPresent("TActiveCheckBoxList Test Case"); diff --git a/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxTestCase.php index 6bf00f05..ce2ce430 100644 --- a/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxTestCase.php @@ -4,6 +4,9 @@ class ActiveCheckBoxTestCase extends SeleniumTestCase  {  	function test()  	{ +		//problem with test runner clicking on checkboxes +		$this->skipBrowsers(self::OPERA); +  		$this->open("active-controls/index.php?page=ActiveCheckBoxTest");  		$this->verifyTextPresent("Active CheckBox Test"); diff --git a/tests/FunctionalTests/active-controls/tests/ActiveImageButtonTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveImageButtonTestCase.php index 3d9937bd..d497e915 100644 --- a/tests/FunctionalTests/active-controls/tests/ActiveImageButtonTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveImageButtonTestCase.php @@ -10,7 +10,7 @@ class ActiveImageButtonTestCase extends SeleniumTestCase  		$this->click("image1");
  		$this->pause(800);
  		//unable to determine mouse position
 -		$this->assertTextPresent("Image clicked at x=0, y=0");
 +		$this->assertTextPresent("regexp:Image clicked at x=\d+, y=\d+");
  	}
  }
 diff --git a/tests/FunctionalTests/active-controls/tests/ActiveRadioButtonListTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveRadioButtonListTestCase.php index 386caa55..ce269cd1 100644 --- a/tests/FunctionalTests/active-controls/tests/ActiveRadioButtonListTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveRadioButtonListTestCase.php @@ -4,6 +4,9 @@ class ActiveRadioButtonListTestCase extends SeleniumTestCase  {
  	function test()
  	{
 +		//problem with test runner clicking on radio buttons
 +		$this->skipBrowsers(self::OPERA);
 +
  		$this->open("active-controls/index.php?page=ActiveRadioButtonListTest");
  		$this->verifyTextPresent("TActiveRadioButtonList Test Case");
 diff --git a/tests/FunctionalTests/active-controls/tests/ActiveRadioButtonTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveRadioButtonTestCase.php index c21426cb..46925960 100644 --- a/tests/FunctionalTests/active-controls/tests/ActiveRadioButtonTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveRadioButtonTestCase.php @@ -4,6 +4,9 @@ class ActiveRadioButtonTestCase extends SeleniumTestCase  {
  	function test()
  	{
 +		//problem with test runner clicking on radio buttons
 +		$this->skipBrowsers(self::OPERA);
 +
  		$this->open("active-controls/index.php?page=ActiveRadioButtonTest");
  		$this->verifyTextPresent("Active Radio Button Test");
  		$this->assertText('label1', 'Label 1');
 diff --git a/tests/FunctionalTests/active-controls/tests/CallbackAdapterTestCase.php b/tests/FunctionalTests/active-controls/tests/CallbackAdapterTestCase.php index e49eb513..c733a7fd 100644 --- a/tests/FunctionalTests/active-controls/tests/CallbackAdapterTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/CallbackAdapterTestCase.php @@ -4,6 +4,8 @@ class CallbackAdapterTestCase extends SeleniumTestCase  {  	function test()  	{ +		$this->skipBrowsers(self::INTERNET_EXPLORER); +  		$this->open("active-controls/index.php?page=ControlAdapterTest");  		$this->assertTextPresent('Control Adapter - State Tracking Tests'); @@ -27,6 +29,34 @@ class CallbackAdapterTestCase extends SeleniumTestCase  		$this->assertAlert('baz!');  	} + +	function testIE() +	{ +		$this->targetBrowsers(self::INTERNET_EXPLORER); + +		$this->open("active-controls/index.php?page=ControlAdapterTest"); +		$this->assertTextPresent('Control Adapter - State Tracking Tests'); + +		$this->click('button2'); +		$this->assertAlert('ok'); + +		$this->click('test6'); +		$this->pause(800); +		$this->click('test7'); +		$this->pause(800); +		$this->click('test8'); +		$this->pause(800); +		$this->click('test9'); +		$this->pause(800); + +		$this->click('button1'); +		$this->assertAlert('haha!'); + +		//IE alerts in diffrent order +		$this->click('button2'); +		$this->assertAlert('baz!'); +		$this->assertAlert('ok'); +	}  }  ?>
\ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ReplaceContentTestCase.php b/tests/FunctionalTests/active-controls/tests/ReplaceContentTestCase.php index be0d0645..b90607e6 100644 --- a/tests/FunctionalTests/active-controls/tests/ReplaceContentTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ReplaceContentTestCase.php @@ -4,6 +4,8 @@ class ReplaceContentTestCase extends SeleniumTestCase  {
  	function test()
  	{
 +		$this->skipBrowsers(self::INTERNET_EXPLORER);
 +
  		$this->open('active-controls/index.php?page=ReplaceContentTest');
  		$this->assertTextPresent('Callback Replace Content Test');
 @@ -43,6 +45,51 @@ class ReplaceContentTestCase extends SeleniumTestCase  		$this->assertText('panel1', 'Main Panel pradomauahahahaphp');
  	}
 +
 +	function testIE()
 +	{
 +		$this->targetBrowsers(self::INTERNET_EXPLORER);
 +
 +		$this->open('active-controls/index.php?page=ReplaceContentTest');
 +		$this->assertTextPresent('Callback Replace Content Test');
 +
 +		$this->assertText('subpanel', 'Sub Panel');
 +		$this->assertText('panel1', 'regexp:Main Panel\s*Sub Panel');
 +
 +		$this->type('content', 'something');
 +
 +		$this->click('btn_append');
 +		$this->pause(800);
 +
 +		$this->assertText('subpanel', 'Sub Panel something');
 +		$this->assertText('panel1', 'regexp:Main Panel\s*Sub Panel\s*something');
 +
 +		$this->type('content', 'more');
 +		$this->click('btn_prepend');
 +		$this->pause(800);
 +
 +		$this->assertText('subpanel', 'regexp:more\s*Sub Panel\s*something');
 +		$this->assertText('panel1', 'regexp:Main Panel\s*moreSub Panel\s*something');
 +
 +
 +		$this->type('content', 'prado');
 +		$this->click('btn_before');
 +		$this->pause(800);
 +
 +		$this->assertText('subpanel', 'regexp:more\s*Sub Panel\s*something');
 +		$this->assertText('panel1', 'regexp:Main Panel\s*prado\s*more\s*Sub Panel\s*something');
 +
 +		$this->type('content', ' php ');
 +		$this->click('btn_after');
 +		$this->pause(800);
 +
 +		$this->type('content', 'mauahahaha');
 +		$this->click('btn_replace');
 +		$this->pause(1000);
 +
 +		$this->assertText('panel1', 'Main Panel pradomauahahahaphp');
 +	}
 +
  }
  ?>
\ No newline at end of file diff --git a/tests/test_tools/selenium/php/selenium.php b/tests/test_tools/selenium/php/selenium.php index fcbbe562..bfba617a 100644 --- a/tests/test_tools/selenium/php/selenium.php +++ b/tests/test_tools/selenium/php/selenium.php @@ -49,7 +49,7 @@ class SeleniumTestRunner  		if((php_sapi_name() == 'cli')) return;  		$file = dirname(__FILE__).'/TestRunner.php';  		$driver = $this->driver; -		 +  		//$base_dir = $this->base_dir;  		$base_dir = $driver.'?sr=';  		include($file); @@ -130,20 +130,20 @@ class SeleneseInterpreter  	public function __call($func, $args)  	{  		if($func{0} == '_') return; -		 +  		$trace = debug_backtrace();  		if($this->isTestOptionFunction($func,$args,$trace))  			return; -		 +  		$ID = isset($args[0]) ? $args[0] : "";  		$value = isset($args[1]) ? $args[1] : "";  		if(strpos(strtolower($func),'htmlpresent') || strpos(strtolower($func),'htmlnotpresent'))  			$ID = htmlspecialchars($ID);  		$command = array($func, $ID, $value); -		 +  		if(is_int(strpos(strtolower($func), 'visible')))  			$this->addCommand(array('pause','500',''),$trace); -		 +  		return $this->addCommand($command, $trace);  	} @@ -416,7 +416,7 @@ class SeleniumTestRunnerServer  			$case = $command[5];  			$option=isset($options[$case])?$options[$case]:null;  			$this->cases[$case][] = -				array('test' => $command[2],  +				array('test' => $command[2],  					'trace' => $command[4], 'option'=>$option);  			if(is_null($this->name))  				$this->name = $command[6]; @@ -528,7 +528,12 @@ class SeleniumTestCase extends UnitTestCase  	function skipBrowsers()  	{ -		$arg_list = func_get_args(); +		$conditions = $this->getBrowserOptions(func_get_args()); +		$this->selenium->skipCondition($conditions); +	} + +	protected function getBrowserOptions($arg_list) +	{  		$browsers=array();  		foreach($arg_list as $arg)  		{ @@ -537,7 +542,13 @@ class SeleniumTestCase extends UnitTestCase  			else  				$browsers[] = $arg;  		} -		$this->selenium->skipCondition(implode(' || ', $browsers)); +		return implode(' || ', $browsers); +	} + +	function targetBrowsers() +	{ +		$conditions = $this->getBrowserOptions(func_get_args()); +		$this->selenium->skipCondition("!(".$conditions.")");  	}  }  | 
