diff options
5 files changed, 121 insertions, 1 deletions
diff --git a/.gitattributes b/.gitattributes index e36a617b..bd7b1341 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2565,6 +2565,8 @@ tests/FunctionalTests/tickets/protected/pages/Ticket586.page -text tests/FunctionalTests/tickets/protected/pages/Ticket586.php -text tests/FunctionalTests/tickets/protected/pages/Ticket587.page -text tests/FunctionalTests/tickets/protected/pages/Ticket587.php -text +tests/FunctionalTests/tickets/protected/pages/Ticket587_reopened.page -text +tests/FunctionalTests/tickets/protected/pages/Ticket587_reopened.php -text tests/FunctionalTests/tickets/protected/pages/Ticket605.page -text tests/FunctionalTests/tickets/protected/pages/Ticket606.page -text tests/FunctionalTests/tickets/protected/pages/Ticket614.page -text @@ -2606,6 +2608,7 @@ tests/FunctionalTests/tickets/tests/Ticket573TestCase.php -text tests/FunctionalTests/tickets/tests/Ticket578TestCase.php -text tests/FunctionalTests/tickets/tests/Ticket585TestCase.php -text tests/FunctionalTests/tickets/tests/Ticket586TestCase.php -text +tests/FunctionalTests/tickets/tests/Ticket587TestCase.php -text tests/FunctionalTests/tickets/tests/Ticket72TestCase.php -text tests/FunctionalTests/tickets/tests/Ticket93TestCase.php -text tests/FunctionalTests/validators.php -text diff --git a/framework/Web/UI/ActiveControls/TAutoComplete.php b/framework/Web/UI/ActiveControls/TAutoComplete.php index aaa14920..3b457bbb 100644 --- a/framework/Web/UI/ActiveControls/TAutoComplete.php +++ b/framework/Web/UI/ActiveControls/TAutoComplete.php @@ -321,7 +321,8 @@ class TAutoComplete extends TActiveTextBox implements INamingContainer */
protected function getPostBackOptions()
{
- $this->getActiveControl()->getClientSide()->setEnablePageStateUpdate(false);
+ //disallow page state update ?
+ //$this->getActiveControl()->getClientSide()->setEnablePageStateUpdate(false);
$options = array();
if(strlen($string = $this->getSeparator()))
{
diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket587_reopened.page b/tests/FunctionalTests/tickets/protected/pages/Ticket587_reopened.page new file mode 100644 index 00000000..cf7d2136 --- /dev/null +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket587_reopened.page @@ -0,0 +1,28 @@ +<com:TContent ID="Content">
+
+<com:TActiveDropDownList ID="list1" AutoPostBack="true" OnSelectedIndexChanged="list1_changed">
+ <com:TListItem Value="value 1" Text="item 1" />
+ <com:TListItem Value="value 2" Text="item 2" />
+ <com:TListItem Value="value 3" Text="item 3" />
+ <com:TListItem Value="value 4" Text="item 4" />
+ </com:TActiveDropDownList>
+
+ <com:TActiveDropDownList ID="list2"
+ Enabled="false"
+ AutoPostBack="true" OnSelectedIndexChanged="list2_changed" />
+
+ <div style="margin:1em; padding:1em; border:1px solid #ccc; text-align:center;">
+ <com:TActiveLabel ID="label1" Text="Label 1" />
+ </div>
+ <div style="margin:1em; padding:0.5em; text-align:center; border:1px solid #ccc;">
+ <com:TActiveButton ID="button1" Text="Select Index 3" OnClick="select_index_3" />
+ <com:TActiveButton ID="button2" Text="Clear selection" OnClick="clear_selections" />
+ <com:TActiveButton ID="button3" Text="Select Value 'value 2'" OnClick="select_value_2" />
+ <com:TActiveButton ID="button4" Text="Select Item 3 And Sub Item 3" OnClick="select_index_3_plus" />
+
+ <com:TButton ID="button5" Text="Post Back" OnClick="do_postback"/>
+ </div>
+ <com:TActiveButton ID="button6" Text="Change list 2" OnClick="suggest"/>
+ <com:TAutoComplete ID="text1" OnSuggest="suggest" />
+
+</com:TContent>
\ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket587_reopened.php b/tests/FunctionalTests/tickets/protected/pages/Ticket587_reopened.php new file mode 100644 index 00000000..7d24e5f6 --- /dev/null +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket587_reopened.php @@ -0,0 +1,62 @@ +<?php
+
+Prado::using('System.Web.UI.ActiveControls.*');
+
+class Ticket587_reopened extends TPage
+{
+ function list1_changed($sender)
+ {
+ $this->label1->setText("Selection 1: ".$sender->getSelectedValue());
+ $this->addOptionsToList2($sender->getSelectedValue(),$sender->getSelectedIndex());
+ }
+
+ function suggest($sender, $param)
+ {
+ $this->list2->Items->clear();
+ for($i = 0; $i < 2; $i++)
+ $this->list2->Items[$i] = 'asd 3 - item '.($i+1);
+ }
+
+ function addOptionsToList2($parent,$index)
+ {
+ $this->list2->Items->clear();
+ for($i = 0; $i < 2+$index; $i++)
+ $this->list2->Items[$i] = $parent.' - item '.($i+1);
+ $this->list2->setEnabled(true);
+ }
+
+ function list2_changed($sender)
+ {
+ $this->label1->setText("Selection 2: ".$sender->getSelectedValue());
+ }
+
+ function select_index_3()
+ {
+ $this->list1->setSelectedIndex(3);
+ }
+
+ function clear_selections()
+ {
+ $this->list1->clearSelection();
+ }
+
+ function select_value_2()
+ {
+ $this->list1->setSelectedValue("value 2");
+ }
+
+ function select_index_3_plus()
+ {
+ $this->list1->setSelectedValue("value 3");
+ $this->list1_changed($this->list1);
+ $this->list2->setSelectedValue("value 3 - item 3");
+ }
+
+ function do_postback()
+ {
+ $value = 'List 1: '.$this->list1->selectedValue. ', List 2: '. $this->list2->selectedValue;
+ $this->label1->Text = $value;
+ }
+}
+
+?>
\ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket587TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket587TestCase.php new file mode 100644 index 00000000..f02b6a42 --- /dev/null +++ b/tests/FunctionalTests/tickets/tests/Ticket587TestCase.php @@ -0,0 +1,26 @@ +<?php
+
+class Ticket587TestCase extends SeleniumTestCase
+{
+ function test()
+ {
+ $base = 'ctl0_Content_';
+ $this->open('tickets/index.php?page=Ticket587_reopened');
+ $this->assertTitle("Verifying Ticket 587_reopened");
+
+ $this->assertText($base."label1", "Label 1");
+ $this->select($base."list1", "item 3");
+ $this->pause(800);
+ $this->select($base."list2", "value 3 - item 4");
+ $this->pause(800);
+ $this->assertText($base."label1", "Selection 2: value 3 - item 4");
+
+ $this->keyPress($base.'text1', 't');
+ $this->pause(800);
+ $this->select($base."list2", "asd 3 - item 2");
+ $this->pause(800);
+ $this->assertText($base."label1", "Selection 2: asd 3 - item 2");
+ }
+}
+
+?>
\ No newline at end of file |