From a6be5564823be40670e0cad8dc758557dbd37549 Mon Sep 17 00:00:00 2001 From: wei <> Date: Sat, 24 Jun 2006 05:46:22 +0000 Subject: Update active controls. --- .../protected/pages/ActiveDropDownList.page | 26 ++++++++++ .../protected/pages/ActiveDropDownList.php | 39 +++++++++++++++ .../protected/pages/ActiveHyperLinkTest.page | 13 +++++ .../protected/pages/ActiveHyperLinkTest.php | 26 ++++++++++ .../protected/pages/TActiveCheckBoxListTest.page | 24 +++++++++ .../protected/pages/TActiveCheckBoxListTest.php | 37 ++++++++++++++ .../tests/ActiveCheckBoxListTestCase.php | 57 ++++++++++++++++++++++ .../tests/ActiveDropDownListTestCase.php | 41 ++++++++++++++++ .../tests/ActiveHyperLinkTestCase.php | 18 +++++++ .../selenium/prado-functional-test.js | 16 +++++- 10 files changed, 296 insertions(+), 1 deletion(-) create mode 100644 tests/FunctionalTests/active-controls/protected/pages/ActiveDropDownList.page create mode 100644 tests/FunctionalTests/active-controls/protected/pages/ActiveDropDownList.php create mode 100644 tests/FunctionalTests/active-controls/protected/pages/ActiveHyperLinkTest.page create mode 100644 tests/FunctionalTests/active-controls/protected/pages/ActiveHyperLinkTest.php create mode 100644 tests/FunctionalTests/active-controls/protected/pages/TActiveCheckBoxListTest.page create mode 100644 tests/FunctionalTests/active-controls/protected/pages/TActiveCheckBoxListTest.php create mode 100644 tests/FunctionalTests/active-controls/tests/ActiveCheckBoxListTestCase.php create mode 100644 tests/FunctionalTests/active-controls/tests/ActiveDropDownListTestCase.php create mode 100644 tests/FunctionalTests/active-controls/tests/ActiveHyperLinkTestCase.php (limited to 'tests/FunctionalTests') diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveDropDownList.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveDropDownList.page new file mode 100644 index 00000000..8b8962a8 --- /dev/null +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveDropDownList.page @@ -0,0 +1,26 @@ + +

Active Drop Down List Test Case

+ + + + + + + + + + +
+ +
+
+ + + +
+ + + +
\ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveDropDownList.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveDropDownList.php new file mode 100644 index 00000000..7060d84b --- /dev/null +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveDropDownList.php @@ -0,0 +1,39 @@ +label1->setText("Selection 1: ".$sender->getSelectedValue()); + $this->addOptionsToList2($sender->getSelectedValue()); + } + + function addOptionsToList2($parent) + { + for($i = 0; $i < 5; $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"); + } +} + +?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveHyperLinkTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveHyperLinkTest.page new file mode 100644 index 00000000..59098052 --- /dev/null +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveHyperLinkTest.page @@ -0,0 +1,13 @@ + +

Active HyperLink Test Case

+ +
+ +
+ + + + + + +
\ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveHyperLinkTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveHyperLinkTest.php new file mode 100644 index 00000000..cd4880d2 --- /dev/null +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveHyperLinkTest.php @@ -0,0 +1,26 @@ +link1->Text = "Pradosoft.com"; + } + + function change_image() + { + $this->link1->ImageUrl = "..."; + } + + function change_target() + { + $this->link1->Target = "_top"; + } + + function change_url() + { + $this->link1->NavigateUrl = "http://www.xlab6.com"; + } +} + +?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/TActiveCheckBoxListTest.page b/tests/FunctionalTests/active-controls/protected/pages/TActiveCheckBoxListTest.page new file mode 100644 index 00000000..b30ced69 --- /dev/null +++ b/tests/FunctionalTests/active-controls/protected/pages/TActiveCheckBoxListTest.page @@ -0,0 +1,24 @@ + +

TActiveCheckBoxList Test Case

+ + + + + + + + +
+ +
+
+ + + + + +
+ + + +
\ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/TActiveCheckBoxListTest.php b/tests/FunctionalTests/active-controls/protected/pages/TActiveCheckBoxListTest.php new file mode 100644 index 00000000..66bfe83d --- /dev/null +++ b/tests/FunctionalTests/active-controls/protected/pages/TActiveCheckBoxListTest.php @@ -0,0 +1,37 @@ +getSelectedValues(); + $this->label1->setText("Selection: ".implode(', ', $values)); + } + + function select_index_123() + { + $this->list1->setSelectedIndices(array(1,2,3)); + } + + function select_index_4() + { + $this->list1->setSelectedIndex(4); + } + + function clear_selections() + { + $this->list1->clearSelection(); + } + + function select_value_1() + { + $this->list1->setSelectedValue("value 1"); + } + + function select_values_25() + { + $this->list1->setSelectedValues(array('value 2', 'value 5')); + } +} + +?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxListTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxListTestCase.php new file mode 100644 index 00000000..af7ea1f0 --- /dev/null +++ b/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxListTestCase.php @@ -0,0 +1,57 @@ +open("active-controls/index.php?page=TActiveCheckBoxListTest"); + $this->verifyTextPresent("TActiveCheckBoxList Test Case"); + + $this->assertText("label1", "Label 1"); + + $this->click("button1"); + $this->pause(500); + $this->assertCheckBoxes(array(1,2,3)); + + $this->click("button2"); + $this->pause(500); + $this->assertCheckBoxes(array()); + + + $this->click("button3"); + $this->pause(500); + $this->assertCheckBoxes(array(0)); + + + $this->click("button4"); + $this->pause(500); + $this->assertCheckBoxes(array(4)); + + + $this->click("button5"); + $this->pause(500); + $this->assertCheckBoxes(array(1,4)); + + $this->click("list1_c2"); + $this->pause(500); + $this->assertText("label1", "Selection: value 2, value 3, value 5"); + + $this->click("list1_c2"); + $this->pause(500); + $this->assertText("label1", "Selection: value 2, value 5"); + + } + + function assertCheckBoxes($checks, $total = 5) + { + for($i = 0; $i < $total; $i++) + { + if(in_array($i, $checks)) + $this->assertChecked("list1_c{$i}"); + else + $this->assertNotChecked("list1_c{$i}"); + } + } +} + +?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ActiveDropDownListTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveDropDownListTestCase.php new file mode 100644 index 00000000..5806a3ec --- /dev/null +++ b/tests/FunctionalTests/active-controls/tests/ActiveDropDownListTestCase.php @@ -0,0 +1,41 @@ +open("active-controls/index.php?page=ActiveDropDownList"); + $this->assertTextPresent('Active Drop Down List Test Case'); + + $this->assertText("label1", "Label 1"); + + $this->click("button1"); + $this->pause(500); + $this->assertSelected("list1", "item 4"); + + $this->click("button2"); + $this->pause(500); + $this->assertEmptySelection("list1"); + + $this->click("button3"); + $this->pause(500); + $this->assertSelected("list1", "item 2"); + + // due to clearing selection and then updating the selection + // otherwise it should not fire the changed event (fired by js because of change to options). + $this->assertText("label1", "Selection 1: value 1"); + + $this->select("list2", "value 1 - item 4"); + $this->pause(500); + $this->assertText("label1", "Selection 2: value 1 - item 4"); + + $this->select("list1", "item 3"); + $this->pause(500); + $this->select("list2", "value 3 - item 5"); + $this->pause(500); + $this->assertText("label1", "Selection 2: value 3 - item 5"); + + } +} + +?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ActiveHyperLinkTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveHyperLinkTestCase.php new file mode 100644 index 00000000..53198806 --- /dev/null +++ b/tests/FunctionalTests/active-controls/tests/ActiveHyperLinkTestCase.php @@ -0,0 +1,18 @@ +open("active-controls/index.php?page=ActiveHyperLinkTest"); + $this->assertTextPresent("Active HyperLink Test Case"); + + $this->assertText("link1", "Link 1"); + + $this->click("button1"); + $this->pause(500); + $this->assertText("link1", "Pradosoft.com"); + } +} + +?> \ No newline at end of file diff --git a/tests/FunctionalTests/selenium/prado-functional-test.js b/tests/FunctionalTests/selenium/prado-functional-test.js index f9889a72..306f6a74 100644 --- a/tests/FunctionalTests/selenium/prado-functional-test.js +++ b/tests/FunctionalTests/selenium/prado-functional-test.js @@ -39,7 +39,21 @@ Selenium.prototype._isDisplayed = function(element) { return true; }; - +Selenium.prototype.assertEmptySelection = function(selectLocator, optionLocator) +{ + /** + * Verifies that the selected option of a drop-down satisfies the optionSpecifier. + * + *

See the select command for more information about option locators.

+ * + * @param selectLocator an element locator identifying a drop-down menu + * @param optionLocator an option locator, typically just an option label (e.g. "John Smith") + */ + var element = this.page().findElement(selectLocator); + var locator = this.optionLocatorFactory.fromLocatorString(optionLocator); + return element.selectedIndex == -1; +} + function runNextTest() { if (!runAllTests) return; -- cgit v1.2.3