summaryrefslogtreecommitdiff
path: root/tests/FunctionalTests/quickstart/Controls/TextBoxTestCase.php
blob: 3865e33d6ab72a81e7a5d7bc5727a1fa6e67c8ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?php

class QuickstartTextBoxTestCase extends PradoGenericSelenium2Test
{
	function test ()
	{
		$this->url("../../demos/quickstart/index.php?page=Controls.Samples.TTextBox.Home&amp;notheme=true&amp;lang=en");

		$this->assertEquals("PRADO QuickStart Sample", $this->title());

		// a normal textbox
		$this->type("ctl0\$body\$ctl0", "test");

		// textbox with maxlength set
		$this->assertAttribute("ctl0\$body\$ctl1@size","4");
		$this->assertAttribute("ctl0\$body\$ctl1@maxlength","6");
		$this->type("ctl0\$body\$ctl1", "textte");

		// vCard textboxes
		$this->assertAttribute("ctl0\$body\$ctl2@vcard_name","vCard.FirstName");
		$this->type("ctl0\$body\$ctl2", "first");
		$this->assertAttribute("ctl0\$body\$ctl3@vcard_name","vCard.LastName");
		$this->type("ctl0\$body\$ctl3", "last");

		// a disabled textbox
		$this->assertAttribute("ctl0\$body\$ctl4@disabled","regexp:true|disabled");

		// a read-only textbox
		$this->assertAttribute("ctl0\$body\$ctl5@readonly","regexp:true|readonly");

		// auto postback textbox, CausesValidation=false
		$this->assertValue("ctl0\$body\$ctl6", "change me");
		$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->typeSpecial("ctl0\$body\$TextBox3", "test");
//		$this->pause(1000);
		$this->assertVisible('ctl0_body_ctl7');
		$this->typeSpecial("ctl0\$body\$TextBox3", "non test");
		$this->assertNotVisible('ctl0_body_ctl7');

		// submitting textbox with a button
		$this->type("ctl0\$body\$TextBox1", "texttext");
		$this->byXPath("//input[@type='submit' and @value='Submit']")->click();
		$this->assertValue("ctl0\$body\$TextBox1", "You just entered 'texttext'.");

		// SafeText
		$this->assertText("ctl0_body_Output","test");
		$this->typeSpecial("ctl0\$body\$TextBox2","<a href=javascript:xxx>malicious code</a>");
		$this->assertText("ctl0_body_Output","malicious code");

		// password
		$this->assertAttribute("ctl0\$body\$ctl9@type","password");

		// ------------------multiline textbox----------------------

		// regular textbox
		$this->type("ctl0\$body\$ctl10", "This is a\nmultiline\ntextbox.");
		$this->type("ctl0\$body\$ctl11", "This is a multiline text box.
In HTML, it is displayed as a textarea.
End of message
");

		// a disabled multiline textbox
		$this->assertAttribute("ctl0\$body\$ctl12@disabled","regexp:true|disabled");

		// a read-only multiline textbox
		$this->assertAttribute("ctl0\$body\$ctl13@readonly","regexp:true|readonly");
		$this->assertAttribute("ctl0\$body\$ctl13@wrap","off");

		// auto postback textbox
		$this->assertValue("ctl0\$body\$ctl14", "change me");
		$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.
In HTML, it is displayed as a textarea.
End of message
");

		// textbox associated with a validator
		$this->assertNotVisible('ctl0_body_ctl15');
		$this->typeSpecial("ctl0\$body\$MultiTextBox3", "demo");
//		$this->pause(1000);
		$this->assertVisible('ctl0_body_ctl15');
		$this->typeSpecial("ctl0\$body\$MultiTextBox3", "non demo");
		$this->assertNotVisible('ctl0_body_ctl15');
	}
}