diff options
15 files changed, 57 insertions, 71 deletions
| diff --git a/tests/FunctionalTests/active-controlstests/ActiveRatingListTestCase.php b/tests/FunctionalTests/active-controlstests/ActiveRatingListTestCase.php index 6b2f6f97..2b9a0166 100755 --- a/tests/FunctionalTests/active-controlstests/ActiveRatingListTestCase.php +++ b/tests/FunctionalTests/active-controlstests/ActiveRatingListTestCase.php @@ -207,7 +207,7 @@ class ActiveRatingListTestCase extends PradoGenericSelenium2Test  		$this->assertElementPresent("//input[@id='{$base}RatingList_c4']/../../../td[contains(@class, 'rating')]");  		$this->assertElementPresent("//input[@id='{$base}RatingList_c5']/../../../td[contains(@class, 'rating')]"); -		$this->mouseOver("//input[@id='{$base}RatingList_c4']/../.."); +		$this->moveto($this->byXPath("//input[@id='{$base}RatingList_c4']/../.."));  		$this->assertText("{$base}Status", "Excellent");  		$this->assertElementPresent("//input[@id='{$base}RatingList_c0']/../../../td[contains(@class, 'rating_hover')]");  		$this->assertElementPresent("//input[@id='{$base}RatingList_c1']/../../../td[contains(@class, 'rating_hover')]"); @@ -217,7 +217,7 @@ class ActiveRatingListTestCase extends PradoGenericSelenium2Test  		$this->assertElementPresent("//input[@id='{$base}RatingList_c5']/../../../td[not(contains(@class, 'rating_hover'))]");  		$this->assertElementPresent("//input[@id='{$base}RatingList_c5']/../../../td[contains(@class, 'rating')]"); -		$this->mouseOut("//input[@id='{$base}RatingList_c4']/../.."); +		$this->moveto($this->byCssSelector('body'));  		$this->assertText("{$base}Status", "CaptionID='Status'");  		$this->assertElementPresent("//input[@id='{$base}RatingList_c0']/../../../td[contains(@class, 'rating_selected')]");  		$this->assertElementPresent("//input[@id='{$base}RatingList_c1']/../../../td[contains(@class, 'rating_selected')]"); @@ -228,7 +228,7 @@ class ActiveRatingListTestCase extends PradoGenericSelenium2Test  		$this->assertElementPresent("//input[@id='{$base}RatingList_c5']/../../../td[contains(@class, 'rating')]"); -		$this->mouseOver("//input[@id='{$base}RatingList_c1']/../.."); +		$this->moveto($this->byXPath("//input[@id='{$base}RatingList_c1']/../.."));  		$this->assertText("{$base}Status", "Fair");  		$this->byXPath("//input[@id='{$base}RatingList_c1']/../..")->click(); diff --git a/tests/FunctionalTests/quickstart/Controls/TextBoxTestCase.php b/tests/FunctionalTests/quickstart/Controls/TextBoxTestCase.php index 52095321..3865e33d 100755 --- a/tests/FunctionalTests/quickstart/Controls/TextBoxTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/TextBoxTestCase.php @@ -30,15 +30,15 @@ class QuickstartTextBoxTestCase extends PradoGenericSelenium2Test  		// auto postback textbox, CausesValidation=false  		$this->assertValue("ctl0\$body\$ctl6", "change me"); -		$this->type("ctl0\$body\$ctl6", "change mes"); +		$this->typeSpecial("ctl0\$body\$ctl6", "change mes");  		$this->assertValue("ctl0\$body\$ctl6", "text changed");  		// auto postback textbox, CausesValidation=true  		$this->assertNotVisible('ctl0_body_ctl7'); -		$this->type("ctl0\$body\$TextBox3", "test"); +		$this->typeSpecial("ctl0\$body\$TextBox3", "test");  //		$this->pause(1000);  		$this->assertVisible('ctl0_body_ctl7'); -		$this->type("ctl0\$body\$TextBox3", "non test"); +		$this->typeSpecial("ctl0\$body\$TextBox3", "non test");  		$this->assertNotVisible('ctl0_body_ctl7');  		// submitting textbox with a button @@ -48,7 +48,7 @@ class QuickstartTextBoxTestCase extends PradoGenericSelenium2Test  		// SafeText  		$this->assertText("ctl0_body_Output","test"); -		$this->type("ctl0\$body\$TextBox2","<a href=javascript:xxx>malicious code</a>"); +		$this->typeSpecial("ctl0\$body\$TextBox2","<a href=javascript:xxx>malicious code</a>");  		$this->assertText("ctl0_body_Output","malicious code");  		// password @@ -72,7 +72,7 @@ End of message  		// auto postback textbox  		$this->assertValue("ctl0\$body\$ctl14", "change me"); -		$this->type("ctl0\$body\$ctl14", "change mes"); +		$this->typeSpecial("ctl0\$body\$ctl14", "change mes");  		$this->assertValue("ctl0\$body\$ctl14", "text changed");  		$this->assertValue("ctl0\$body\$ctl10", "This is a\nmultiline\ntextbox.");  		$this->assertValue("ctl0\$body\$ctl11", "This is a multiline text box. @@ -82,10 +82,10 @@ End of message  		// textbox associated with a validator  		$this->assertNotVisible('ctl0_body_ctl15'); -		$this->type("ctl0\$body\$MultiTextBox3", "demo"); +		$this->typeSpecial("ctl0\$body\$MultiTextBox3", "demo");  //		$this->pause(1000);  		$this->assertVisible('ctl0_body_ctl15'); -		$this->type("ctl0\$body\$MultiTextBox3", "non demo"); +		$this->typeSpecial("ctl0\$body\$MultiTextBox3", "non demo");  		$this->assertNotVisible('ctl0_body_ctl15');  	}  } diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket290.page b/tests/FunctionalTests/tickets/protected/pages/Ticket290.page index e9d40b92..3d4bf647 100755 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket290.page +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket290.page @@ -1,18 +1,17 @@  <com:TContent ID="Content"> -	<h3>Needs manual testing</h3>  	<com:TPanel ID="panel1" DefaultButton="button2"  		Style="border:1px solid #ccc; padding:2em">  		<com:TTextBox ID="textbox1" /> -		 +  		<com:TCustomValidator  			ControlToValidate="textbox1"  			OnServerValidate="customValidate"  			ValidationGroup="group1"  			ErrorMessage="required" /> -		 -		<com:TButton ID="button1" Text="Button 1"  + +		<com:TButton ID="button1" Text="Button 1"  			ValidationGroup="group1" OnClick="button_clicked" /> -		<com:TButton ID="button2" Text="Button 2 (default)"  +		<com:TButton ID="button2" Text="Button 2 (default)"  			ValidationGroup="group1" OnClick="button_clicked" />  		<com:TLabel ID="label1" Text="Label 1" /> diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket586.page b/tests/FunctionalTests/tickets/protected/pages/Ticket586.page index 29751cab..31bc7237 100755 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket586.page +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket586.page @@ -1,5 +1,4 @@  <com:TContent ID="Content">
 -<h3>Needs manual testing</h3>
  <com:TPanel DefaultButton="button2" Style="border:1px solid #ccc; padding:2em;">
  <com:TTextBox ID="text1" />
 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket719.page b/tests/FunctionalTests/tickets/protected/pages/Ticket719.page index b36d2d66..3f2bc17b 100755 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket719.page +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket719.page @@ -1,5 +1,4 @@  <com:TContent id="Content"> -<h3>Needs manual testing</h3>  <style>  .autocomplete  { @@ -45,7 +44,7 @@ ul.different  		OnSuggest="suggestCountries" Separator=", "  		OnSuggestionSelected="suggestion_selected"  		ResultPanel.CssClass="autocomplete" CausesValidation="false" /> -	 +  </p>  <p>  	<com:TButton OnClick="validForm" Text="Validate Form" /><br/> diff --git a/tests/FunctionalTests/tickets/protected/pages/ToggleTest.page b/tests/FunctionalTests/tickets/protected/pages/ToggleTest.page index 0d633657..0d633657 100644..100755 --- a/tests/FunctionalTests/tickets/protected/pages/ToggleTest.page +++ b/tests/FunctionalTests/tickets/protected/pages/ToggleTest.page diff --git a/tests/FunctionalTests/tickets/protected/pages/ToggleTest.php b/tests/FunctionalTests/tickets/protected/pages/ToggleTest.php index 31cf0851..31cf0851 100644..100755 --- a/tests/FunctionalTests/tickets/protected/pages/ToggleTest.php +++ b/tests/FunctionalTests/tickets/protected/pages/ToggleTest.php diff --git a/tests/FunctionalTests/tickets/tests/Ticket205TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket205TestCase.php index 57b0c95b..35274e6f 100755 --- a/tests/FunctionalTests/tickets/tests/Ticket205TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket205TestCase.php @@ -7,7 +7,9 @@ class Ticket205TestCase extends PradoGenericSelenium2Test  		$base = 'ctl0_Content_';  		$this->url("tickets/index.php?page=Ticket205");  		$this->assertEquals($this->title(), "Verifying Ticket 205"); -		$this->assertNotVisible("{$base}validator1"); + +		$validator=$this->byId("{$base}validator1"); +		$this->assertFalse($validator->displayed());  		$this->type("{$base}textbox1", "test");  		$this->byId("{$base}button1")->click(); @@ -15,10 +17,13 @@ class Ticket205TestCase extends PradoGenericSelenium2Test  		$this->assertEquals("error", $this->alertText());  		$this->acceptAlert(); -		$this->assertVisible("{$base}validator1"); +		$this->assertTrue($validator->displayed()); + +		// type() calls clear() that triggers a focus change and thus a second alert +		$this->typeSpecial("{$base}textbox1", "Prado"); -		$this->type("{$base}textbox1", "Prado");  		$this->byId("{$base}button1")->click(); -		$this->assertNotVisible("{$base}validator1"); +		$validator=$this->byId("{$base}validator1"); +		$this->assertFalse($validator->displayed());  	}  } diff --git a/tests/FunctionalTests/tickets/tests/Ticket578TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket578TestCase.php index 3adb107c..948d8642 100755 --- a/tests/FunctionalTests/tickets/tests/Ticket578TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket578TestCase.php @@ -14,7 +14,12 @@ class Ticket578TestCase extends PradoGenericSelenium2Test  		$this->assertText("{$base}label1", "Button 1 was clicked :");  		$text="helloworld"; -		$this->runScript("tinyMCE.get('{$base}text1').setContent('{$text}')"); + +		$this->execute(array( +			'script' => "tinyMCE.get('{$base}text1').setContent('{$text}')", +			'args'   => array() +		)); +  		$this->byId("{$base}button1")->click();  		$this->pause(800);  		$this->assertText("{$base}label1", "Button 1 was clicked : <p>{$text}</p>"); diff --git a/tests/FunctionalTests/tickets/tests/Ticket587TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket587TestCase.php index aa81a55e..cb42c343 100755 --- a/tests/FunctionalTests/tickets/tests/Ticket587TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket587TestCase.php @@ -16,7 +16,6 @@ class Ticket587TestCase extends PradoGenericSelenium2Test  		$this->assertText($base."label1", "Selection 2: value 3 - item 4");  		$this->type($base.'text1', 't'); -		$this->runScript("Prado.Registry.get('{$base}text1').onKeyPress({})");  		$this->pause(800);  		$this->select($base."list2", "asd 3 - item 2");  		$this->pause(800); diff --git a/tests/FunctionalTests/tickets/tests/Ticket622TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket622TestCase.php index 672a1d18..b51f55d3 100755 --- a/tests/FunctionalTests/tickets/tests/Ticket622TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket622TestCase.php @@ -10,8 +10,9 @@ class Ticket622TestCase extends PradoGenericSelenium2Test  		$this->byId($base.'ctl0')->click();  		$this->pause(800); -        $this->assertAttribute($base.'ALB@style',''); -        $this->assertAttribute('css=span#acb span@style', ''); -        $this->assertAttribute('css=span#arb span@style', ''); + +        $this->assertEquals('', $this->byId($base.'ALB')->attribute('style')); +        $this->assertEquals('', $this->byCssSelector('span#acb span')->attribute('style')); +        $this->assertEquals('', $this->byCssSelector('span#arb span')->attribute('style'));  	}  } diff --git a/tests/FunctionalTests/tickets/tests/Ticket719TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket719TestCase.php index cc460ee7..46346ca1 100755 --- a/tests/FunctionalTests/tickets/tests/Ticket719TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket719TestCase.php @@ -14,18 +14,17 @@ class Ticket719TestCase extends PradoGenericSelenium2Test  		$this->assertVisible("${base}ctl0", 'Required');  		$this->assertVisible("${base}ctl1", 'Required'); -		$this->type("${base}autocomplete", 'f'); -		$this->runScript("Prado.Registry.get('${base}autocomplete').onKeyPress({})"); +		$this->byId("${base}autocomplete")->click(); + +		$this->keys('f');  		$this->pause(500);  		$this->assertContains('Finland', $this->source()); -		$this->type("${base}autocomplete", 'fr'); -		$this->runScript("Prado.Registry.get('${base}autocomplete').onKeyPress({})"); +		$this->keys('r');  		$this->pause(500);  		$this->assertContains('French', $this->source()); -		$this->type("${base}autocomplete", 'fra'); -		$this->runScript("Prado.Registry.get('${base}autocomplete').onKeyPress({})"); +		$this->keys('a');  		$this->pause(500);  		$this->assertContains('France', $this->source()); @@ -33,7 +32,11 @@ class Ticket719TestCase extends PradoGenericSelenium2Test  		$this->pause(800);  		$this->assertNotVisible("${base}ctl1"); -		$this->type("${base}textbox", "Prado"); +		$this->byId("${base}textbox")->clear(); +		$this->byId("${base}textbox")->value('Prado'); +		// trigger onblur() event +		$this->byCssSelector('body')->click(); +  		$this->assertNotVisible("${base}ctl0");  		$this->byId("${base}ctl2")->click(); diff --git a/tests/FunctionalTests/tickets/tests/Ticket823TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket823TestCase.php index 7b7a7759..163eb541 100755 --- a/tests/FunctionalTests/tickets/tests/Ticket823TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket823TestCase.php @@ -6,7 +6,7 @@ class Ticket823TestCase extends PradoGenericSelenium2Test {  		$this->url('tickets/index.php?page=Ticket823');  		$this->assertEquals($this->title(), "Verifying Ticket 823");  		$base = 'ctl0_Content_'; -		$this->assertElementPresent('xpath=//option[@value="Choose..."]'); +		$this->assertElementPresent('//option[@value="Choose..."]');  	}  } diff --git a/tests/FunctionalTests/tickets/tests/Ticket876TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket876TestCase.php index 29d4d6c6..361235fc 100755 --- a/tests/FunctionalTests/tickets/tests/Ticket876TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket876TestCase.php @@ -7,9 +7,9 @@ class Ticket876TestCase extends PradoGenericSelenium2Test {  		$this->assertEquals($this->title(), "Verifying Ticket 876");  		$base = 'ctl0_Content_'; -		$this->assertElementPresent('xpath=//link[@rel="stylesheet"]'); +		$this->assertElementPresent('//link[@rel="stylesheet"]');  		$this->byId($base.'Button')->click(); -		$this->assertElementNotPresent('xpath=//link[@rel="stylesheet"]'); +		$this->assertElementNotPresent('//link[@rel="stylesheet"]');  		/*$this->select($base.'Date_month', 10);  		$this->select($base.'Date_day', 22); diff --git a/tests/test_tools/PradoGenericSelenium2Test.php b/tests/test_tools/PradoGenericSelenium2Test.php index c81f6e9a..23dfeb61 100644..100755 --- a/tests/test_tools/PradoGenericSelenium2Test.php +++ b/tests/test_tools/PradoGenericSelenium2Test.php @@ -64,15 +64,8 @@ class PradoGenericSelenium2Test extends PHPUnit_Extensions_Selenium2TestCase  	protected function getElement($id)  	{ -		if(strpos($id, 'xpath=')===0) -		{ -			return $this->byXPath(substr($id, 6)); -		} elseif(strpos($id, 'css=')===0) { -			return $this->byCssSelector(substr($id, 4)); -		} elseif(strpos($id, 'id=')===0) { +		if(strpos($id, 'id=')===0) {  			return $this->byId(substr($id, 3)); -		} elseif(strpos($id, 'link=')===0) { -			return $this->byLinkText(substr($id, 5));  		} elseif(strpos($id, 'name=')===0) {  			return $this->byName(substr($id, 5));  		} elseif(strpos($id, '//')===0) { @@ -123,6 +116,15 @@ class PradoGenericSelenium2Test extends PHPUnit_Extensions_Selenium2TestCase  	protected function type($id, $txt='')  	{  		$element = $this->getElement($id); +		$element->clear(); +		$element->value($txt); +		// trigger onblur() event +		$this->byCssSelector('body')->click(); +	} + +	protected function typeSpecial($id, $txt='') +	{ +		$element = $this->getElement($id);  		// clear the textbox without using clear() that triggers onchange()  		// the idea is to focus the input, move to the end of the text and hit  		// backspace until the input is empty. @@ -148,24 +150,6 @@ class PradoGenericSelenium2Test extends PHPUnit_Extensions_Selenium2TestCase  		$this->byCssSelector('body')->click();  	} -	protected function mouseOver($id) -	{ -		$this->moveto(array( -			'element' => $this->getElement($id), -//			'xoffset' => 1, -//			'yoffset' => 1, -		)); -	} - -	protected function mouseOut($id) -	{ -		$this->moveto(array( -			'element' => $this->getElement('css=body'), -//			'xoffset' => 0, -//			'yoffset' => 0, -		)); -	} -  	protected function select($id, $value)  	{  		$select = parent::select($this->getElement($id)); @@ -227,14 +211,6 @@ class PradoGenericSelenium2Test extends PHPUnit_Extensions_Selenium2TestCase  		$this->assertSame($index, parent::select($this->getElement($id))->selectedValue());  	} -	protected function runScript($script) -	{ -		$this->execute(array( -			'script' => $script, -			'args'   => array() -		)); -	} -  	protected function assertAlertNotPresent()  	{  		try { | 
