From 7c65b2f40ea9242260eac5a746863f5925423861 Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Sun, 22 Sep 2013 22:39:41 +0200 Subject: Phing: added target for phpunit+selenium Functional tests were using an old selenium RC version. Ported them to use phpunit + selenium; next: opensauce --- .../active-controls/assets/.gitignore | 0 tests/FunctionalTests/active-controls/index.php | 2 - .../active-controls/protected/.htaccess | 0 .../protected/pages/ActiveBricksTest.page | 0 .../protected/pages/ActiveBricksTest.php | 3 +- .../protected/pages/ActiveButtonTest.page | 0 .../protected/pages/ActiveButtonTest.php | 2 - .../protected/pages/ActiveCheckBoxTest.page | 0 .../protected/pages/ActiveCheckBoxTest.php | 2 - .../pages/ActiveControlExpressionTag.page | 0 .../protected/pages/ActiveControlExpressionTag.php | 2 - .../protected/pages/ActiveControlWithTinyMce.page | 0 .../protected/pages/ActiveControlWithTinyMce.php | 2 - .../protected/pages/ActiveDatePicker.php | 2 - .../protected/pages/ActiveDropDownList.page | 0 .../protected/pages/ActiveDropDownList.php | 2 - .../protected/pages/ActiveHiddenFieldTest.page | 0 .../protected/pages/ActiveHiddenFieldTest.php | 2 - .../protected/pages/ActiveHyperLinkTest.page | 0 .../protected/pages/ActiveHyperLinkTest.php | 2 - .../protected/pages/ActiveImageButtonTest.page | 0 .../protected/pages/ActiveImageButtonTest.php | 2 - .../protected/pages/ActiveLinkButtonTest.page | 0 .../protected/pages/ActiveLinkButtonTest.php | 2 - .../protected/pages/ActiveListBoxMasterTest.page | 0 .../protected/pages/ActiveListBoxMasterTest.php | 2 - .../protected/pages/ActiveListBoxTest.page | 0 .../protected/pages/ActiveListBoxTest.php | 2 - .../protected/pages/ActivePanelTest.page | 0 .../protected/pages/ActivePanelTest.php | 2 - .../protected/pages/ActivePanelVisibleTest.page | 0 .../protected/pages/ActivePanelVisibleTest.php | 2 - .../protected/pages/ActiveRadioButtonListTest.page | 0 .../protected/pages/ActiveRadioButtonListTest.php | 2 - .../protected/pages/ActiveRadioButtonTest.page | 0 .../protected/pages/ActiveRadioButtonTest.php | 2 - .../pages/ActiveRatingListAllowInputTest.page | 0 .../pages/ActiveRatingListAllowInputTest.php | 3 +- .../pages/ActiveRatingListAutoPostBackTest.page | 0 .../pages/ActiveRatingListAutoPostBackTest.php | 3 +- .../pages/ActiveRatingListCheckBoxesTest.page | 0 .../pages/ActiveRatingListCheckBoxesTest.php | 3 +- .../pages/ActiveRatingListEnabledTest.page | 0 .../pages/ActiveRatingListEnabledTest.php | 3 +- .../pages/ActiveRatingListHoverCaptionTest.page | 0 .../pages/ActiveRatingListHoverCaptionTest.php | 3 +- .../pages/ActiveRatingListRatingTest.page | 0 .../protected/pages/ActiveRatingListRatingTest.php | 3 +- .../pages/ActiveRatingListReadOnlyTest.page | 0 .../pages/ActiveRatingListReadOnlyTest.php | 3 +- .../pages/ActiveRatingListSelectedIndexTest.page | 0 .../pages/ActiveRatingListSelectedIndexTest.php | 3 +- .../protected/pages/ActiveRedirectionTest.page | 0 .../protected/pages/ActiveRedirectionTest.php | 2 - .../protected/pages/ActiveTextBoxCallback.page | 0 .../protected/pages/ActiveTextBoxCallback.php | 2 - .../protected/pages/AutoCompleteTest.page | 0 .../protected/pages/AutoCompleteTest.php | 2 - .../protected/pages/Calculator.page | 0 .../active-controls/protected/pages/Calculator.php | 2 - .../active-controls/protected/pages/Callback.page | 0 .../active-controls/protected/pages/Callback.php | 2 - .../pages/CallbackCustomValidatorTest.page | 0 .../pages/CallbackCustomValidatorTest.php | 2 - .../protected/pages/CallbackOptionsTest.page | 0 .../protected/pages/ClientSideDispatch.page | 0 .../protected/pages/ClientSideDispatch.php | 2 - .../protected/pages/ControlAdapterTest.page | 0 .../protected/pages/ControlAdapterTest.php | 2 - .../protected/pages/CustomTemplateComponent.php | 2 - .../protected/pages/CustomTemplateComponent.tpl | 0 .../protected/pages/CustomTemplateControlTest.page | 0 .../protected/pages/CustomTemplateControlTest.php | 2 - .../protected/pages/CustomValidatorByPass.page | 0 .../protected/pages/CustomValidatorByPass.php | 2 - .../protected/pages/DMessagesPanel.php | 2 - .../protected/pages/DMessagesPanel.tpl | 0 .../protected/pages/DatePickerInCallback.page | 0 .../protected/pages/DatePickerInCallback.php | 2 - .../protected/pages/DelayedCallback.page | 0 .../protected/pages/DelayedCallback.php | 2 - .../protected/pages/DisplayStyleTest.page | 0 .../protected/pages/DisplayStyleTest.php | 2 - .../protected/pages/DynamicRepeaterDataTest.page | 0 .../protected/pages/DynamicRepeaterDataTest.php | 2 - .../protected/pages/EventTriggeredCallback.page | 0 .../protected/pages/EventTriggeredCallback.php | 2 - .../protected/pages/FeatureList.php | 2 - .../active-controls/protected/pages/GerTurno2.page | 0 .../active-controls/protected/pages/GerTurno2.php | 2 - .../active-controls/protected/pages/Home.page | 0 .../active-controls/protected/pages/Home.php | 2 - .../protected/pages/InPlaceWithValidator.page | 0 .../protected/pages/InPlaceWithValidator.php | 2 - .../active-controls/protected/pages/LTemplate.php | 3 +- .../active-controls/protected/pages/LTemplate.tpl | 0 .../protected/pages/LargePageStateTest.page | 0 .../protected/pages/LargePageStateTest.php | 2 - .../protected/pages/LargePageStateTest2.page | 0 .../protected/pages/LargePageStateTest2.php | 2 - .../active-controls/protected/pages/Master1.php | 2 - .../active-controls/protected/pages/Master1.tpl | 0 .../protected/pages/MasterTest1.page | 0 .../protected/pages/MessagesPanelTest.page | 0 .../protected/pages/MessagesPanelTest.php | 2 - .../active-controls/protected/pages/MyControl.php | 2 - .../active-controls/protected/pages/MyControl.tpl | 0 .../protected/pages/MyTabPanelTest.page | 0 .../protected/pages/MyTabPanelTest.php | 2 - .../protected/pages/NestedActiveControls.page | 0 .../protected/pages/NestedActiveControls.php | 2 - .../protected/pages/NullStateTest.page | 0 .../protected/pages/NullStateTest.php | 2 - .../protected/pages/PopulateActiveList.page | 0 .../protected/pages/PopulateActiveList.php | 2 - .../protected/pages/PostLoadingTest.page | 0 .../protected/pages/PostLoadingTest.php | 2 - .../protected/pages/RadioButtonListTest.page | 0 .../protected/pages/RadioButtonListTest.php | 2 - .../protected/pages/RatingList.page | 0 .../active-controls/protected/pages/RatingList.php | 2 - .../pages/RepeaterWithActiveControls.page | 0 .../protected/pages/RepeaterWithActiveControls.php | 2 - .../protected/pages/ReplaceContentTest.page | 0 .../protected/pages/ReplaceContentTest.php | 2 - .../protected/pages/Sessioned/PageStateTest.page | 0 .../protected/pages/Sessioned/PageStateTest.php | 2 - .../protected/pages/Sessioned/config.xml | 0 .../protected/pages/TActiveCheckBoxListTest.page | 0 .../protected/pages/TActiveCheckBoxListTest.php | 2 - .../pages/TActiveFileUploadAutoPostBackTest.php | 3 +- .../protected/pages/TInPlaceTextBoxTest.page | 0 .../protected/pages/TInPlaceTextBoxTest.php | 2 - .../protected/pages/TestMasterPage.php | 2 - .../protected/pages/TestMasterPage.tpl | 0 .../protected/pages/TextBoxValidationCallback.page | 0 .../protected/pages/TextBoxValidationCallback.php | 3 +- .../protected/pages/TimeTriggeredCallbackTest.page | 0 .../protected/pages/TimeTriggeredCallbackTest.php | 2 - .../protected/pages/ValueTriggerCallbackTest.page | 0 .../protected/pages/ValueTriggerCallbackTest.php | 2 - .../active-controls/protected/pages/group.gif | Bin .../active-controls/protected/pages/report.gif | Bin .../active-controls/protected/runtime/.gitignore | 0 .../active-controls/tests/ActiveButtonTestCase.php | 4 +- .../tests/ActiveCheckBoxListTestCase.php | 7 +- .../tests/ActiveCheckBoxTestCase.php | 7 +- .../tests/ActiveControlExpressTagTestCase.php | 4 +- .../tests/ActiveDatePickerTestCase.php | 4 +- .../tests/ActiveDropDownListTestCase.php | 4 +- .../tests/ActiveHiddenFieldTestCase.php | 4 +- .../tests/ActiveHyperLinkTestCase.php | 4 +- .../tests/ActiveImageButtonTestCase.php | 4 +- .../tests/ActiveLinkButtonTestCase.php | 4 +- .../tests/ActiveListBoxMasterTestCase.php | 5 +- .../tests/ActiveListBoxTestCase.php | 5 +- .../active-controls/tests/ActivePanelTestCase.php | 4 +- .../tests/ActiveRadioButtonListTestCase.php | 7 +- .../tests/ActiveRadioButtonTestCase.php | 8 +- .../active-controls/tests/AutoCompleteTestCase.php | 5 +- .../active-controls/tests/CalculatorTestCase.php | 4 +- .../tests/CallbackAdapterTestCase.php | 7 +- .../tests/CallbackOptionsTestCase.php | 4 +- .../tests/CustomTemplateTestCase.php | 4 +- .../tests/DelayedCallbackTestCase.php | 4 +- .../active-controls/tests/EventTriggerTestCase.php | 4 +- .../tests/NestedActiveControlsTestCase.php | 4 +- .../active-controls/tests/PopulateListTestCase.php | 4 +- .../active-controls/tests/PostLoadingTestCase.php | 4 +- .../tests/ReplaceContentTestCase.php | 7 +- .../tests/TextBoxCallbackTestCase.php | 4 +- .../tests/TextBoxGroupValidationTestCase.php | 4 +- .../tests/TimeTriggeredCallbackTestCase.php | 4 +- .../tests/ValueTriggerCallbackTestCase.php | 4 +- .../ActiveRatingListTestCase.php | 5 +- tests/FunctionalTests/active.php | 8 - tests/FunctionalTests/features.php | 8 - tests/FunctionalTests/features/assets/.gitignore | 0 tests/FunctionalTests/features/index.php | 2 - .../features/protected/application.xml | 0 .../features/protected/controls/LabeledTextBox.tpl | 0 .../features/protected/controls/LabeledTextbox.php | 1 - .../features/protected/controls/Layout.php | 2 - .../features/protected/controls/Layout.tpl | 0 .../pages/ActiveControls/ActiveControl.page | 0 .../pages/ActiveControls/ActiveControl.php | 1 - .../pages/ActiveControls/AutoComplete.page | 0 .../pages/ActiveControls/AutoComplete.php | 2 - .../protected/pages/ActiveControls/Calculator.page | 0 .../protected/pages/ActiveControls/Calculator.php | 2 - .../pages/ActiveControls/Calculator2.page | 0 .../protected/pages/ActiveControls/Calculator2.php | 2 - .../pages/ActiveControls/VisibleUpdate.page | 0 .../pages/ActiveControls/VisibleUpdate.php | 2 - .../protected/pages/ActiveControls/config.xml | 0 .../features/protected/pages/ClientScripts.page | 0 .../features/protected/pages/ColorPicker.page | 0 .../features/protected/pages/FeatureList.page | 0 .../features/protected/pages/FeatureList.php | 2 - .../features/protected/pages/FocusControl.page | 0 .../features/protected/pages/FocusControl.php | 2 - .../features/protected/pages/I18N/BasicI18N.page | 0 .../features/protected/pages/I18N/BasicI18N.php | 5 +- .../features/protected/pages/I18N/Home.page | 0 .../features/protected/pages/I18N/Home.zh_CN.page | 0 .../features/protected/pages/I18N/config.xml | 0 .../protected/pages/I18N/messages/.gitignore | 0 .../features/protected/pages/MyJavascriptLib.php | 2 - .../features/protected/pages/RatingList.page | 0 .../features/protected/pages/TestComp.php | 2 - .../features/protected/pages/ValidatorEffects.page | 0 .../protected/pages/myscripts/packages.php | 2 - .../features/protected/runtime/.gitignore | 0 .../FunctionalTests/features/tests/MyTestCase.php | 11 +- tests/FunctionalTests/index.php | 17 - tests/FunctionalTests/quickstart.php | 8 - .../ActiveControls/ActiveButtonTestCase.php | 4 +- .../ActiveControls/ActiveCheckBoxTestCase.php | 4 +- .../ActiveCustomValidatorTestCase.php | 4 +- tests/FunctionalTests/quickstart/Advanced/I18N.php | 4 +- .../quickstart/Controls/BulletedListTestCase.php | 4 +- .../quickstart/Controls/ButtonTestCase.php | 4 +- .../quickstart/Controls/CheckBoxListTestCase.php | 4 +- .../quickstart/Controls/CheckBoxTestCase.php | 4 +- .../quickstart/Controls/DataGrid1TestCase.php | 4 +- .../quickstart/Controls/DataGrid2TestCase.php | 4 +- .../quickstart/Controls/DataGrid3TestCase.php | 4 +- .../quickstart/Controls/DataGrid4TestCase.php | 4 +- .../quickstart/Controls/DataGrid5TestCase.php | 4 +- .../quickstart/Controls/DataGrid6TestCase.php | 4 +- .../quickstart/Controls/DataList1TestCase.php | 4 +- .../quickstart/Controls/DataList2TestCase.php | 4 +- .../quickstart/Controls/DropDownListTestCase.php | 4 +- .../quickstart/Controls/ExpressionTestCase.php | 4 +- .../quickstart/Controls/HtmlAreaTestCase.php | 4 +- .../quickstart/Controls/HyperLinkTestCase.php | 4 +- .../quickstart/Controls/ImageButtonTestCase.php | 4 +- .../quickstart/Controls/ImageTestCase.php | 4 +- .../quickstart/Controls/LabelTestCase.php | 4 +- .../quickstart/Controls/LinkButtonTestCase.php | 4 +- .../quickstart/Controls/ListBoxTestCase.php | 4 +- .../quickstart/Controls/MultiViewTestCase.php | 4 +- .../quickstart/Controls/PagerTestCase.php | 4 +- .../quickstart/Controls/PanelTestCase.php | 4 +- .../Controls/RadioButtonListTestCase.php | 4 +- .../quickstart/Controls/RadioButtonTestCase.php | 4 +- .../quickstart/Controls/Repeater1TestCase.php | 4 +- .../quickstart/Controls/Repeater2TestCase.php | 4 +- .../quickstart/Controls/Repeater3TestCase.php | 4 +- .../quickstart/Controls/StatementsTestCase.php | 4 +- .../quickstart/Controls/TabPanelTestCase.php | 4 +- .../quickstart/Controls/TableTestCase.php | 4 +- .../quickstart/Controls/TextBoxTestCase.php | 4 +- .../quickstart/Controls/Wizard1TestCase.php | 4 +- .../quickstart/Controls/Wizard2TestCase.php | 4 +- .../quickstart/Controls/Wizard3TestCase.php | 4 +- .../quickstart/Controls/Wizard4TestCase.php | 4 +- .../quickstart/Controls/Wizard5TestCase.php | 4 +- .../quickstart/Fundamentals/HangmanTestCase.php | 4 +- tests/FunctionalTests/selenium.css | 0 tests/FunctionalTests/tickets.php | 8 - tests/FunctionalTests/tickets/assets/.gitignore | 0 tests/FunctionalTests/tickets/index.php | 2 - tests/FunctionalTests/tickets/index700.php | 2 - .../tickets/protected/application.xml | 0 .../protected/controls/ToggleImageButton.php | 2 - .../tickets/protected/controls/down.gif | Bin .../tickets/protected/controls/up.gif | Bin .../tickets/protected/messages/en/messages.xml | 0 .../protected/pages/DActiveDropDownList2.php | 2 - .../protected/pages/ExtendedToggleImageButton.php | 3 +- .../tickets/protected/pages/Home.php | 2 - .../tickets/protected/pages/Issue120.page | 0 .../tickets/protected/pages/Issue120.php | 2 - .../tickets/protected/pages/Issue216.page | 0 .../tickets/protected/pages/Issue216.php | 2 - .../tickets/protected/pages/Layout.php | 2 - .../tickets/protected/pages/Layout.tpl | 0 .../tickets/protected/pages/TestHtmlArea.php | 2 - .../tickets/protected/pages/Ticket121.page | 0 .../tickets/protected/pages/Ticket121.php | 2 - .../tickets/protected/pages/Ticket163.page | 0 .../tickets/protected/pages/Ticket169.page | 0 .../tickets/protected/pages/Ticket191.page | 0 .../tickets/protected/pages/Ticket191.php | 2 - .../tickets/protected/pages/Ticket200.page | 0 .../tickets/protected/pages/Ticket200.php | 2 - .../tickets/protected/pages/Ticket202.page | 0 .../tickets/protected/pages/Ticket205.page | 0 .../tickets/protected/pages/Ticket205.php | 2 - .../tickets/protected/pages/Ticket207.page | 0 .../tickets/protected/pages/Ticket21.page | 0 .../tickets/protected/pages/Ticket21.php | 2 - .../tickets/protected/pages/Ticket220.page | 0 .../tickets/protected/pages/Ticket225.page | 0 .../tickets/protected/pages/Ticket225.php | 2 - .../tickets/protected/pages/Ticket227.page | 0 .../tickets/protected/pages/Ticket239.page | 0 .../tickets/protected/pages/Ticket239.php | 2 - .../tickets/protected/pages/Ticket246.page | 0 .../tickets/protected/pages/Ticket269.page | 0 .../tickets/protected/pages/Ticket27.page | 0 .../tickets/protected/pages/Ticket273.page | 0 .../tickets/protected/pages/Ticket273.php | 2 - .../tickets/protected/pages/Ticket274.page | 0 .../tickets/protected/pages/Ticket278.page | 0 .../tickets/protected/pages/Ticket278.php | 2 - .../tickets/protected/pages/Ticket28.page | 0 .../tickets/protected/pages/Ticket28.php | 2 - .../tickets/protected/pages/Ticket283.page | 0 .../tickets/protected/pages/Ticket283.php | 2 - .../tickets/protected/pages/Ticket284.page | 0 .../tickets/protected/pages/Ticket284.php | 2 - .../tickets/protected/pages/Ticket284Component.php | 1 - .../tickets/protected/pages/Ticket284Component.tpl | 0 .../tickets/protected/pages/Ticket285.page | 0 .../tickets/protected/pages/Ticket290.page | 0 .../tickets/protected/pages/Ticket290.php | 2 - .../tickets/protected/pages/Ticket306.page | 0 .../tickets/protected/pages/Ticket311.page | 0 .../tickets/protected/pages/Ticket312.page | 0 .../tickets/protected/pages/Ticket351.page | 0 .../tickets/protected/pages/Ticket359.page | 0 .../tickets/protected/pages/Ticket359.php | 2 - .../tickets/protected/pages/Ticket384.page | 0 .../tickets/protected/pages/Ticket384.php | 2 - .../tickets/protected/pages/Ticket413.page | 0 .../tickets/protected/pages/Ticket413.php | 2 - .../tickets/protected/pages/Ticket422.page | 0 .../tickets/protected/pages/Ticket422.php | 2 - .../tickets/protected/pages/Ticket433.page | 0 .../tickets/protected/pages/Ticket433.php | 2 - .../tickets/protected/pages/Ticket439.page | 0 .../tickets/protected/pages/Ticket439.php | 2 - .../tickets/protected/pages/Ticket453.page | 0 .../tickets/protected/pages/Ticket463.page | 0 .../tickets/protected/pages/Ticket470.page | 0 .../tickets/protected/pages/Ticket470.php | 2 - .../tickets/protected/pages/Ticket472.page | 0 .../tickets/protected/pages/Ticket472.php | 2 - .../tickets/protected/pages/Ticket477.page | 0 .../tickets/protected/pages/Ticket477.php | 2 - .../tickets/protected/pages/Ticket484.page | 0 .../tickets/protected/pages/Ticket484.php | 2 - .../tickets/protected/pages/Ticket488.page | 0 .../tickets/protected/pages/Ticket488.php | 2 - .../tickets/protected/pages/Ticket500.page | 0 .../tickets/protected/pages/Ticket500.php | 2 - .../tickets/protected/pages/Ticket504.page | 0 .../tickets/protected/pages/Ticket504.php | 2 - .../tickets/protected/pages/Ticket507.page | 0 .../tickets/protected/pages/Ticket507.php | 2 - .../tickets/protected/pages/Ticket511.page | 0 .../tickets/protected/pages/Ticket518.page | 0 .../tickets/protected/pages/Ticket521.page | 0 .../tickets/protected/pages/Ticket521.php | 3 +- .../tickets/protected/pages/Ticket526.page | 0 .../tickets/protected/pages/Ticket526.php | 2 - .../tickets/protected/pages/Ticket528.page | 0 .../tickets/protected/pages/Ticket528.php | 2 - .../tickets/protected/pages/Ticket535.page | 0 .../tickets/protected/pages/Ticket535.php | 2 - .../tickets/protected/pages/Ticket538.page | 0 .../tickets/protected/pages/Ticket538.php | 2 - .../tickets/protected/pages/Ticket54.page | 0 .../tickets/protected/pages/Ticket542.page | 0 .../tickets/protected/pages/Ticket542.php | 2 - .../tickets/protected/pages/Ticket54Master.php | 2 - .../tickets/protected/pages/Ticket54Master.tpl | 0 .../tickets/protected/pages/Ticket573.page | 0 .../tickets/protected/pages/Ticket578.page | 0 .../tickets/protected/pages/Ticket578.php | 2 - .../tickets/protected/pages/Ticket583/Home.page | 0 .../tickets/protected/pages/Ticket585.page | 0 .../tickets/protected/pages/Ticket585.php | 2 - .../tickets/protected/pages/Ticket586.page | 0 .../tickets/protected/pages/Ticket586.php | 2 - .../tickets/protected/pages/Ticket587.page | 0 .../tickets/protected/pages/Ticket587.php | 2 - .../protected/pages/Ticket587_reopened.page | 0 .../tickets/protected/pages/Ticket587_reopened.php | 2 - .../tickets/protected/pages/Ticket591.page | 0 .../tickets/protected/pages/Ticket591.php | 2 - .../tickets/protected/pages/Ticket592.page | 0 .../tickets/protected/pages/Ticket592.php | 2 - .../tickets/protected/pages/Ticket593.page | 0 .../tickets/protected/pages/Ticket595.page | 0 .../tickets/protected/pages/Ticket598.page | 0 .../tickets/protected/pages/Ticket598.php | 3 +- .../tickets/protected/pages/Ticket603.page | 0 .../tickets/protected/pages/Ticket603.php | 2 - .../tickets/protected/pages/Ticket605.page | 0 .../tickets/protected/pages/Ticket606.page | 0 .../tickets/protected/pages/Ticket609.page | 0 .../tickets/protected/pages/Ticket614.page | 0 .../tickets/protected/pages/Ticket617.page | 0 .../tickets/protected/pages/Ticket622.page | 0 .../tickets/protected/pages/Ticket622.php | 1 - .../tickets/protected/pages/Ticket653/Layout.php | 2 - .../tickets/protected/pages/Ticket653/Layout.tpl | 0 .../protected/pages/Ticket653/ticket653.page | 0 .../tickets/protected/pages/Ticket656.page | 0 .../tickets/protected/pages/Ticket656.php | 3 +- .../tickets/protected/pages/Ticket659.page | 0 .../tickets/protected/pages/Ticket659.php | 3 +- .../tickets/protected/pages/Ticket660.page | 0 .../tickets/protected/pages/Ticket660.php | 1 - .../tickets/protected/pages/Ticket669.page | 0 .../tickets/protected/pages/Ticket669.php | 2 - .../tickets/protected/pages/Ticket670.page | 0 .../tickets/protected/pages/Ticket670.php | 3 +- .../tickets/protected/pages/Ticket671.page | 0 .../tickets/protected/pages/Ticket671.php | 3 +- .../protected/pages/Ticket671_reopened.page | 0 .../tickets/protected/pages/Ticket671_reopened.php | 3 +- .../tickets/protected/pages/Ticket679.page | 0 .../tickets/protected/pages/Ticket679.php | 3 +- .../tickets/protected/pages/Ticket68.page | 0 .../tickets/protected/pages/Ticket691.page | 0 .../tickets/protected/pages/Ticket691.php | 3 +- .../tickets/protected/pages/Ticket695.page | 0 .../tickets/protected/pages/Ticket695.php | 1 - .../tickets/protected/pages/Ticket698.page | 0 .../tickets/protected/pages/Ticket698.php | 3 +- .../protected/pages/Ticket703/Logs/LogFile.txt | 1 + .../protected/pages/Ticket703/Ticket703.page | 0 .../protected/pages/Ticket703/Ticket703.php | 3 +- .../tickets/protected/pages/Ticket703/config.xml | 0 .../tickets/protected/pages/Ticket708.page | 0 .../tickets/protected/pages/Ticket708.php | 3 +- .../tickets/protected/pages/Ticket719.page | 0 .../tickets/protected/pages/Ticket719.php | 3 +- .../tickets/protected/pages/Ticket72.page | 0 .../tickets/protected/pages/Ticket72.php | 2 - .../tickets/protected/pages/Ticket722.page | 0 .../tickets/protected/pages/Ticket722.php | 3 +- .../tickets/protected/pages/Ticket745.php | 2 - .../tickets/protected/pages/Ticket769.page | 0 .../tickets/protected/pages/Ticket769.php | 3 +- .../tickets/protected/pages/Ticket785.page | 0 .../tickets/protected/pages/Ticket785.php | 3 +- .../tickets/protected/pages/Ticket823.page | 0 .../tickets/protected/pages/Ticket828.page | 0 .../tickets/protected/pages/Ticket849.page | 0 .../tickets/protected/pages/Ticket876.page | 0 .../tickets/protected/pages/Ticket876.php | 1 - .../tickets/protected/pages/Ticket886.page | 0 .../tickets/protected/pages/Ticket886.php | 1 - .../tickets/protected/pages/Ticket897.page | 0 .../tickets/protected/pages/Ticket897.php | 1 - .../tickets/protected/pages/Ticket900.page | 0 .../tickets/protected/pages/Ticket900.php | 1 - .../tickets/protected/pages/Ticket922.page | 0 .../tickets/protected/pages/Ticket922.php | 0 .../tickets/protected/pages/Ticket925.php | 3 +- .../tickets/protected/pages/Ticket93.page | 0 .../tickets/protected/pages/Ticket93.php | 1 - .../tickets/protected/pages/config.xml | 0 .../tickets/protected/pages/hotspot.jpg | Bin .../tickets/protected/pages/test.js | 0 .../tickets/protected/runtime/.gitignore | 0 .../tickets/protected700/application.xml | 0 .../tickets/protected700/common/BasePage.php | 2 - .../tickets/protected700/layout/MainLayout.php | 2 - .../tickets/protected700/layout/MainLayout.tpl | 0 .../tickets/protected700/pages/Home.page | 0 .../tickets/protected700/pages/UserLogin.page | 0 .../tickets/protected700/pages/UserLogin.php | 2 - .../tickets/protected700/pages/admin/Home.page | 0 .../tickets/protected700/pages/admin/Home2.page | 0 .../tickets/protected700/pages/admin/config.xml | 0 .../protected700/pages/admin/users/Home.page | 0 .../protected700/pages/admin/users/Home2.page | 0 .../protected700/pages/admin/users/config.xml | 0 .../tickets/protected700/pages/config.xml | 0 .../tickets/protected700/pages/content/Home.page | 0 .../tickets/protected700/runtime/.gitignore | 0 .../tickets/tests/Issue120TestCase.php | 4 +- .../tickets/tests/Issue216TestCase.php | 4 +- .../tickets/tests/Ticket121TestCase.php | 4 +- .../tickets/tests/Ticket163TestCase.php | 4 +- .../tickets/tests/Ticket169TestCase.php | 4 +- .../tickets/tests/Ticket191TestCase.php | 4 +- .../tickets/tests/Ticket205TestCase.php | 4 +- .../tickets/tests/Ticket207TestCase.php | 4 +- .../tickets/tests/Ticket21TestCase.php | 7 +- .../tickets/tests/Ticket220TestCase.php | 4 +- .../tickets/tests/Ticket225TestCase.php | 7 +- .../tickets/tests/Ticket227TestCase.php | 4 +- .../tickets/tests/Ticket239TestCase.php | 4 +- .../tickets/tests/Ticket246TestCase.php | 4 +- .../tickets/tests/Ticket274TestCase.php | 4 +- .../tickets/tests/Ticket278TestCase.php | 7 +- .../tickets/tests/Ticket27TestCase.php | 4 +- .../tickets/tests/Ticket284TestCase.php | 4 +- .../tickets/tests/Ticket285TestCase.php | 5 +- .../tickets/tests/Ticket28TestCase.php | 4 +- .../tickets/tests/Ticket290TestCase.php | 4 +- .../tickets/tests/Ticket433TestCase.php | 4 +- .../tickets/tests/Ticket439TestCase.php | 5 +- .../tickets/tests/Ticket463TestCase.php | 4 +- .../tickets/tests/Ticket470TestCase.php | 4 +- .../tickets/tests/Ticket477TestCase.php | 4 +- .../tickets/tests/Ticket488TestCase.php | 4 +- .../tickets/tests/Ticket504TestCase.php | 4 +- .../tickets/tests/Ticket507TestCase.php | 4 +- .../tickets/tests/Ticket521TestCase.php | 4 +- .../tickets/tests/Ticket526TestCase.php | 5 +- .../tickets/tests/Ticket528TestCase.php | 4 +- .../tickets/tests/Ticket535TestCase.php | 4 +- .../tickets/tests/Ticket538TestCase.php | 4 +- .../tickets/tests/Ticket54TestCase.php | 4 +- .../tickets/tests/Ticket573TestCase.php | 4 +- .../tickets/tests/Ticket578TestCase.php | 4 +- .../tickets/tests/Ticket585TestCase.php | 4 +- .../tickets/tests/Ticket586TestCase.php | 4 +- .../tickets/tests/Ticket587TestCase.php | 5 +- .../tickets/tests/Ticket592TestCase.php | 4 +- .../tickets/tests/Ticket595TestCase.php | 3 +- .../tickets/tests/Ticket622TestCase.php | 3 +- .../tickets/tests/Ticket653TestCase.php | 4 +- .../tickets/tests/Ticket656TestCase.php | 5 +- .../tickets/tests/Ticket659TestCase.php | 4 +- .../tickets/tests/Ticket660TestCase.php | 3 +- .../tickets/tests/Ticket669TestCase.php | 5 +- .../tickets/tests/Ticket670TestCase.php | 5 +- .../tickets/tests/Ticket671TestCase.php | 5 +- .../tickets/tests/Ticket671_reopenedTestCase.php | 5 +- .../tickets/tests/Ticket679TestCase.php | 5 +- .../tickets/tests/Ticket691TestCase.php | 5 +- .../tickets/tests/Ticket698TestCase.php | 5 +- .../tickets/tests/Ticket700TestCase.php | 5 +- .../tickets/tests/Ticket703TestCase.php | 5 +- .../tickets/tests/Ticket708TestCase.php | 5 +- .../tickets/tests/Ticket719TestCase.php | 4 +- .../tickets/tests/Ticket722TestCase.php | 5 +- .../tickets/tests/Ticket72TestCase.php | 4 +- .../tickets/tests/Ticket745TestCase.php | 5 +- .../tickets/tests/Ticket769TestCase.php | 5 +- .../tickets/tests/Ticket785TestCase.php | 5 +- .../tickets/tests/Ticket823TestCase.php | 3 +- .../tickets/tests/Ticket828TestCase.php | 8 +- .../tickets/tests/Ticket849TestCase.php | 4 +- .../tickets/tests/Ticket876TestCase.php | 3 +- .../tickets/tests/Ticket886TestCase.php | 3 +- .../tickets/tests/Ticket897TestCase.php | 3 +- .../tickets/tests/Ticket900TestCase.php | 3 +- .../tickets/tests/Ticket922TestCase.php | 3 +- .../tickets/tests/Ticket93TestCase.php | 3 +- tests/FunctionalTests/validators.php | 8 - tests/FunctionalTests/validators/assets/.gitignore | 0 tests/FunctionalTests/validators/index.php | 2 - .../validators/protected/pages/Button.page | 0 .../validators/protected/pages/Button.php | 2 - .../protected/pages/CausesValidation.page | 0 .../validators/protected/pages/CheckBox.page | 0 .../validators/protected/pages/CheckBox.php | 2 - .../protected/pages/CompareValidator.page | 0 .../protected/pages/ConditionalValidation.page | 0 .../protected/pages/ConditionalValidation.php | 1 - .../protected/pages/CustomValidator.page | 0 .../validators/protected/pages/CustomValidator.php | 1 - .../protected/pages/DataTypeValidator.page | 0 .../validators/protected/pages/DatePicker.page | 0 .../validators/protected/pages/Home.php | 2 - .../validators/protected/pages/ImageButton.page | 0 .../validators/protected/pages/ImageButton.php | 2 - .../validators/protected/pages/Layout.php | 2 - .../validators/protected/pages/Layout.tpl | 0 .../validators/protected/pages/LinkButton.page | 0 .../validators/protected/pages/LinkButton.php | 2 - .../validators/protected/pages/ListControl.page | 0 .../protected/pages/RangeValidatorDate.page | 0 .../protected/pages/RangeValidatorFloat.page | 0 .../protected/pages/RangeValidatorInteger.page | 0 .../protected/pages/RangeValidatorString.page | 0 .../pages/RegularExpressionValidator.page | 0 .../protected/pages/RequiredFieldValidator.page | 0 .../protected/pages/RequiredListValidator.page | 0 .../protected/pages/StringRangeValidator.page | 0 .../protected/pages/ValidationSummary.page | 0 .../validators/protected/pages/config.xml | 0 .../validators/protected/runtime/.gitignore | 0 .../validators/tests/ButtonTestCase.php | 4 +- .../validators/tests/CheckBoxTestCase.php | 7 +- .../validators/tests/CompareValidatorTestCase.php | 4 +- .../tests/ConditionalValidationTestCase.php | 3 +- .../validators/tests/CustomValidatorTestCase.php | 4 +- .../validators/tests/DataTypeValidatorTestCase.php | 3 +- .../validators/tests/DatePickerTestCase.php | 3 +- .../validators/tests/ImageButtonTestCase.php | 4 +- .../validators/tests/LinkButtonTestCase.php | 4 +- .../validators/tests/ListControlTestCase.php | 6 +- .../validators/tests/RangeValidatorTestCase.php | 3 +- .../validators/tests/RegExpValidatorTestCase.php | 4 +- .../validators/tests/RequiredFieldTestCase.php | 8 +- .../validators/tests/RequiredListTestCase.php | 7 +- .../validators/tests/ValidationSummaryTestCase.php | 4 +- tests/test_tools/PradoGenericSeleniumTest.php | 15 + tests/test_tools/functional_tests.php | 69 - tests/test_tools/phpunit_bootstrap.php | 23 + tests/test_tools/selenium/core/SeleniumLog.html | 74 - .../selenium/core/TestRunner-splash.html | 53 - .../selenium/core/lib/cssQuery/cssQuery-p.js | 6 - .../core/lib/cssQuery/src/cssQuery-level2.js | 142 - .../core/lib/cssQuery/src/cssQuery-level3.js | 150 - .../core/lib/cssQuery/src/cssQuery-standard.js | 53 - .../selenium/core/lib/cssQuery/src/cssQuery.js | 356 -- tests/test_tools/selenium/core/lib/prototype.js | 2006 ---------- .../selenium/core/lib/scriptaculous/builder.js | 101 - .../selenium/core/lib/scriptaculous/controls.js | 815 ----- .../selenium/core/lib/scriptaculous/dragdrop.js | 915 ----- .../selenium/core/lib/scriptaculous/effects.js | 958 ----- .../core/lib/scriptaculous/scriptaculous.js | 47 - .../selenium/core/lib/scriptaculous/slider.js | 283 -- .../selenium/core/lib/scriptaculous/unittest.js | 383 -- .../selenium/core/scripts/find_matching_child.js | 69 - .../test_tools/selenium/core/scripts/htmlutils.js | 842 ----- .../selenium/core/scripts/injection.html | 79 - .../selenium/core/scripts/injection_iframe.html | 7 - tests/test_tools/selenium/core/scripts/js2html.js | 70 - .../selenium/core/scripts/narcissus-defs.js | 175 - .../selenium/core/scripts/narcissus-exec.js | 1054 ------ .../selenium/core/scripts/narcissus-parse.js | 1003 ----- .../selenium/core/scripts/prototype-1.4.0.js | 1781 --------- tests/test_tools/selenium/core/scripts/se2html.js | 63 - .../selenium/core/scripts/selenium-api.js | 2329 ------------ .../selenium/core/scripts/selenium-browserbot.js | 1946 ---------- .../core/scripts/selenium-browserdetect.js | 142 - .../core/scripts/selenium-commandhandlers.js | 375 -- .../core/scripts/selenium-executionloop.js | 177 - .../selenium/core/scripts/selenium-logging.js | 139 - .../core/scripts/selenium-seleneserunner.js | 451 --- .../selenium/core/scripts/selenium-testrunner.js | 1281 ------- .../selenium/core/scripts/selenium-version.js | 5 - .../core/scripts/user-extensions.js.sample | 75 - .../test_tools/selenium/core/scripts/xmlextras.js | 153 - tests/test_tools/selenium/core/selenium-test.css | 43 - tests/test_tools/selenium/core/selenium.css | 251 -- tests/test_tools/selenium/core/xpath/dom.js | 428 --- tests/test_tools/selenium/core/xpath/misc.js | 255 -- tests/test_tools/selenium/core/xpath/xpath.js | 2182 ----------- tests/test_tools/selenium/php/TestRunner.php | 162 - tests/test_tools/selenium/php/TestSuiteHeader.php | 54 - tests/test_tools/selenium/php/results.php | 160 - tests/test_tools/selenium/php/selenium.php | 555 --- tests/test_tools/selenium/prado-functional-test.js | 259 -- tests/test_tools/selenium/reference.html | 3858 -------------------- tests/test_tools/unit_tests.php | 128 - tests/unit/bootstrap.php | 20 - 650 files changed, 257 insertions(+), 27903 deletions(-) mode change 100644 => 100755 tests/FunctionalTests/active-controls/assets/.gitignore mode change 100644 => 100755 tests/FunctionalTests/active-controls/index.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/.htaccess mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveBricksTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveBricksTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveButtonTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveButtonTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveCheckBoxTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveCheckBoxTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveControlExpressionTag.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveControlExpressionTag.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveControlWithTinyMce.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveControlWithTinyMce.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveDropDownList.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveDropDownList.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveHiddenFieldTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveHiddenFieldTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveHyperLinkTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveHyperLinkTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveImageButtonTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveImageButtonTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveLinkButtonTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveLinkButtonTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveListBoxMasterTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveListBoxMasterTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveListBoxTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveListBoxTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActivePanelTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActivePanelTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActivePanelVisibleTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActivePanelVisibleTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRadioButtonListTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRadioButtonListTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRadioButtonTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRadioButtonTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListAllowInputTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListAllowInputTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListAutoPostBackTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListAutoPostBackTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListCheckBoxesTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListCheckBoxesTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListEnabledTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListEnabledTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListHoverCaptionTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListHoverCaptionTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListRatingTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListRatingTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListReadOnlyTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListReadOnlyTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListSelectedIndexTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListSelectedIndexTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRedirectionTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveRedirectionTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveTextBoxCallback.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ActiveTextBoxCallback.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/AutoCompleteTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/AutoCompleteTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/Calculator.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/Calculator.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/Callback.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/Callback.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/CallbackCustomValidatorTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/CallbackCustomValidatorTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/CallbackOptionsTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ClientSideDispatch.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ClientSideDispatch.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ControlAdapterTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ControlAdapterTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/CustomTemplateComponent.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/CustomTemplateComponent.tpl mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/CustomTemplateControlTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/CustomTemplateControlTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/CustomValidatorByPass.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/CustomValidatorByPass.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/DMessagesPanel.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/DMessagesPanel.tpl mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/DatePickerInCallback.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/DatePickerInCallback.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/DelayedCallback.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/DelayedCallback.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/DynamicRepeaterDataTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/DynamicRepeaterDataTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/EventTriggeredCallback.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/EventTriggeredCallback.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/GerTurno2.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/GerTurno2.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/Home.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/Home.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/InPlaceWithValidator.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/InPlaceWithValidator.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/LTemplate.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/LTemplate.tpl mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/LargePageStateTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/LargePageStateTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/LargePageStateTest2.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/LargePageStateTest2.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/Master1.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/Master1.tpl mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/MasterTest1.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/MessagesPanelTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/MessagesPanelTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/MyControl.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/MyControl.tpl mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/MyTabPanelTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/MyTabPanelTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/NestedActiveControls.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/NestedActiveControls.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/NullStateTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/NullStateTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/PopulateActiveList.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/PopulateActiveList.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/PostLoadingTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/PostLoadingTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/RadioButtonListTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/RadioButtonListTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/RatingList.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/RatingList.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/RepeaterWithActiveControls.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/RepeaterWithActiveControls.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ReplaceContentTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ReplaceContentTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/Sessioned/PageStateTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/Sessioned/PageStateTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/Sessioned/config.xml mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/TActiveCheckBoxListTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/TActiveCheckBoxListTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/TInPlaceTextBoxTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/TInPlaceTextBoxTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/TestMasterPage.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/TestMasterPage.tpl mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/TextBoxValidationCallback.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/TextBoxValidationCallback.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/TimeTriggeredCallbackTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/TimeTriggeredCallbackTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ValueTriggerCallbackTest.page mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/ValueTriggerCallbackTest.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/group.gif mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/pages/report.gif mode change 100644 => 100755 tests/FunctionalTests/active-controls/protected/runtime/.gitignore mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/ActiveButtonTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/ActiveCheckBoxListTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/ActiveCheckBoxTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/ActiveControlExpressTagTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/ActiveDropDownListTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/ActiveHiddenFieldTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/ActiveHyperLinkTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/ActiveImageButtonTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/ActiveLinkButtonTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/ActiveListBoxMasterTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/ActiveListBoxTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/ActivePanelTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/ActiveRadioButtonListTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/ActiveRadioButtonTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/AutoCompleteTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/CalculatorTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/CallbackAdapterTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/CallbackOptionsTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/CustomTemplateTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/DelayedCallbackTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/EventTriggerTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/NestedActiveControlsTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/PopulateListTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/PostLoadingTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/ReplaceContentTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/TextBoxCallbackTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/TextBoxGroupValidationTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/TimeTriggeredCallbackTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controls/tests/ValueTriggerCallbackTestCase.php mode change 100644 => 100755 tests/FunctionalTests/active-controlstests/ActiveRatingListTestCase.php delete mode 100755 tests/FunctionalTests/active.php delete mode 100644 tests/FunctionalTests/features.php mode change 100644 => 100755 tests/FunctionalTests/features/assets/.gitignore mode change 100644 => 100755 tests/FunctionalTests/features/index.php mode change 100644 => 100755 tests/FunctionalTests/features/protected/application.xml mode change 100644 => 100755 tests/FunctionalTests/features/protected/controls/LabeledTextBox.tpl mode change 100644 => 100755 tests/FunctionalTests/features/protected/controls/LabeledTextbox.php mode change 100644 => 100755 tests/FunctionalTests/features/protected/controls/Layout.php mode change 100644 => 100755 tests/FunctionalTests/features/protected/controls/Layout.tpl mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/ActiveControls/ActiveControl.page mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/ActiveControls/ActiveControl.php mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/ActiveControls/AutoComplete.page mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/ActiveControls/AutoComplete.php mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/ActiveControls/Calculator.page mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/ActiveControls/Calculator.php mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/ActiveControls/Calculator2.page mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/ActiveControls/Calculator2.php mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/ActiveControls/VisibleUpdate.page mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/ActiveControls/VisibleUpdate.php mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/ActiveControls/config.xml mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/ClientScripts.page mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/ColorPicker.page mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/FeatureList.page mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/FeatureList.php mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/FocusControl.page mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/FocusControl.php mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/I18N/BasicI18N.page mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/I18N/BasicI18N.php mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/I18N/Home.page mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/I18N/Home.zh_CN.page mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/I18N/config.xml mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/I18N/messages/.gitignore mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/MyJavascriptLib.php mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/RatingList.page mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/TestComp.php mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/ValidatorEffects.page mode change 100644 => 100755 tests/FunctionalTests/features/protected/pages/myscripts/packages.php mode change 100644 => 100755 tests/FunctionalTests/features/protected/runtime/.gitignore mode change 100644 => 100755 tests/FunctionalTests/features/tests/MyTestCase.php delete mode 100644 tests/FunctionalTests/index.php delete mode 100755 tests/FunctionalTests/quickstart.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/ActiveControls/ActiveButtonTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/ActiveControls/ActiveCheckBoxTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/ActiveControls/ActiveCustomValidatorTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Advanced/I18N.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/BulletedListTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/ButtonTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/CheckBoxListTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/CheckBoxTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/DataGrid1TestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/DataGrid2TestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/DataGrid3TestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/DataGrid4TestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/DataGrid5TestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/DataGrid6TestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/DataList1TestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/DataList2TestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/DropDownListTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/ExpressionTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/HtmlAreaTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/HyperLinkTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/ImageButtonTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/ImageTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/LabelTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/LinkButtonTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/ListBoxTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/MultiViewTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/PagerTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/PanelTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/RadioButtonListTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/RadioButtonTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/Repeater1TestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/Repeater2TestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/Repeater3TestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/StatementsTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/TabPanelTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/TableTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/TextBoxTestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/Wizard1TestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/Wizard2TestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/Wizard3TestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/Wizard4TestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Controls/Wizard5TestCase.php mode change 100644 => 100755 tests/FunctionalTests/quickstart/Fundamentals/HangmanTestCase.php delete mode 100644 tests/FunctionalTests/selenium.css delete mode 100644 tests/FunctionalTests/tickets.php mode change 100644 => 100755 tests/FunctionalTests/tickets/assets/.gitignore mode change 100644 => 100755 tests/FunctionalTests/tickets/index.php mode change 100644 => 100755 tests/FunctionalTests/tickets/index700.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/application.xml mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/controls/ToggleImageButton.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/controls/down.gif mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/controls/up.gif mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/messages/en/messages.xml mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/DActiveDropDownList2.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/ExtendedToggleImageButton.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Issue120.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Issue120.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Issue216.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Issue216.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Layout.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Layout.tpl mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/TestHtmlArea.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket121.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket121.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket163.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket169.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket191.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket191.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket200.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket200.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket202.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket205.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket205.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket207.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket21.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket21.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket220.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket225.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket225.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket227.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket239.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket239.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket246.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket269.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket27.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket273.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket273.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket274.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket278.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket278.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket28.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket28.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket283.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket283.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket284.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket284.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket284Component.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket284Component.tpl mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket285.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket290.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket290.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket306.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket311.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket312.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket351.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket359.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket359.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket384.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket384.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket413.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket413.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket422.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket422.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket433.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket433.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket439.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket439.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket453.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket463.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket470.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket470.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket472.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket472.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket477.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket477.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket484.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket484.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket488.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket488.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket500.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket500.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket504.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket504.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket507.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket507.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket511.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket518.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket521.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket521.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket526.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket526.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket528.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket528.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket535.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket535.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket538.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket538.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket54.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket542.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket542.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket54Master.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket54Master.tpl mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket573.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket578.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket578.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket583/Home.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket585.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket585.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket586.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket586.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket587.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket587.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket587_reopened.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket587_reopened.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket591.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket591.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket592.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket592.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket593.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket595.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket598.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket598.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket603.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket603.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket605.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket606.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket609.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket614.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket617.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket622.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket622.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket653/Layout.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket653/Layout.tpl mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket653/ticket653.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket656.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket656.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket659.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket659.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket660.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket660.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket669.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket669.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket670.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket670.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket671.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket671.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket671_reopened.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket671_reopened.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket679.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket679.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket68.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket691.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket691.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket695.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket695.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket698.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket698.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket703/Logs/LogFile.txt mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket703/Ticket703.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket703/Ticket703.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket703/config.xml mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket708.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket708.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket719.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket719.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket72.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket72.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket722.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket722.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket769.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket769.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket785.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket785.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket823.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket828.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket849.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket876.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket876.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket886.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket886.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket897.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket897.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket900.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket900.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket922.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket922.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket93.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/Ticket93.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/config.xml mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/hotspot.jpg mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/pages/test.js mode change 100644 => 100755 tests/FunctionalTests/tickets/protected/runtime/.gitignore mode change 100644 => 100755 tests/FunctionalTests/tickets/protected700/application.xml mode change 100644 => 100755 tests/FunctionalTests/tickets/protected700/common/BasePage.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected700/layout/MainLayout.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected700/layout/MainLayout.tpl mode change 100644 => 100755 tests/FunctionalTests/tickets/protected700/pages/Home.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected700/pages/UserLogin.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected700/pages/UserLogin.php mode change 100644 => 100755 tests/FunctionalTests/tickets/protected700/pages/admin/Home.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected700/pages/admin/Home2.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected700/pages/admin/config.xml mode change 100644 => 100755 tests/FunctionalTests/tickets/protected700/pages/admin/users/Home.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected700/pages/admin/users/Home2.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected700/pages/admin/users/config.xml mode change 100644 => 100755 tests/FunctionalTests/tickets/protected700/pages/config.xml mode change 100644 => 100755 tests/FunctionalTests/tickets/protected700/pages/content/Home.page mode change 100644 => 100755 tests/FunctionalTests/tickets/protected700/runtime/.gitignore mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Issue120TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Issue216TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket121TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket163TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket169TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket191TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket205TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket207TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket21TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket220TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket225TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket227TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket239TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket246TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket274TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket278TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket27TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket284TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket285TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket28TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket290TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket433TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket439TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket463TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket470TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket477TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket488TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket504TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket507TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket521TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket526TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket528TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket535TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket538TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket54TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket573TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket578TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket585TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket586TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket587TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket592TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket595TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket622TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket653TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket656TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket659TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket660TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket669TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket670TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket671TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket671_reopenedTestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket679TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket691TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket698TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket700TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket703TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket708TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket719TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket722TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket72TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket745TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket769TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket785TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket823TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket828TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket849TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket876TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket886TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket897TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket900TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket922TestCase.php mode change 100644 => 100755 tests/FunctionalTests/tickets/tests/Ticket93TestCase.php delete mode 100644 tests/FunctionalTests/validators.php mode change 100644 => 100755 tests/FunctionalTests/validators/assets/.gitignore mode change 100644 => 100755 tests/FunctionalTests/validators/index.php mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/Button.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/Button.php mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/CausesValidation.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/CheckBox.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/CheckBox.php mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/CompareValidator.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/ConditionalValidation.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/ConditionalValidation.php mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/CustomValidator.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/CustomValidator.php mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/DataTypeValidator.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/DatePicker.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/ImageButton.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/ImageButton.php mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/Layout.php mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/Layout.tpl mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/LinkButton.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/LinkButton.php mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/ListControl.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/RangeValidatorDate.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/RangeValidatorFloat.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/RangeValidatorInteger.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/RangeValidatorString.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/RegularExpressionValidator.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/RequiredFieldValidator.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/RequiredListValidator.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/StringRangeValidator.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/ValidationSummary.page mode change 100644 => 100755 tests/FunctionalTests/validators/protected/pages/config.xml mode change 100644 => 100755 tests/FunctionalTests/validators/protected/runtime/.gitignore mode change 100644 => 100755 tests/FunctionalTests/validators/tests/ButtonTestCase.php mode change 100644 => 100755 tests/FunctionalTests/validators/tests/CheckBoxTestCase.php mode change 100644 => 100755 tests/FunctionalTests/validators/tests/CompareValidatorTestCase.php mode change 100644 => 100755 tests/FunctionalTests/validators/tests/ConditionalValidationTestCase.php mode change 100644 => 100755 tests/FunctionalTests/validators/tests/CustomValidatorTestCase.php mode change 100644 => 100755 tests/FunctionalTests/validators/tests/DataTypeValidatorTestCase.php mode change 100644 => 100755 tests/FunctionalTests/validators/tests/DatePickerTestCase.php mode change 100644 => 100755 tests/FunctionalTests/validators/tests/ImageButtonTestCase.php mode change 100644 => 100755 tests/FunctionalTests/validators/tests/LinkButtonTestCase.php mode change 100644 => 100755 tests/FunctionalTests/validators/tests/ListControlTestCase.php mode change 100644 => 100755 tests/FunctionalTests/validators/tests/RangeValidatorTestCase.php mode change 100644 => 100755 tests/FunctionalTests/validators/tests/RegExpValidatorTestCase.php mode change 100644 => 100755 tests/FunctionalTests/validators/tests/RequiredFieldTestCase.php mode change 100644 => 100755 tests/FunctionalTests/validators/tests/RequiredListTestCase.php mode change 100644 => 100755 tests/FunctionalTests/validators/tests/ValidationSummaryTestCase.php create mode 100644 tests/test_tools/PradoGenericSeleniumTest.php delete mode 100644 tests/test_tools/functional_tests.php create mode 100644 tests/test_tools/phpunit_bootstrap.php delete mode 100644 tests/test_tools/selenium/core/SeleniumLog.html delete mode 100644 tests/test_tools/selenium/core/TestRunner-splash.html delete mode 100644 tests/test_tools/selenium/core/lib/cssQuery/cssQuery-p.js delete mode 100644 tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-level2.js delete mode 100644 tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-level3.js delete mode 100644 tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-standard.js delete mode 100644 tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery.js delete mode 100644 tests/test_tools/selenium/core/lib/prototype.js delete mode 100644 tests/test_tools/selenium/core/lib/scriptaculous/builder.js delete mode 100644 tests/test_tools/selenium/core/lib/scriptaculous/controls.js delete mode 100644 tests/test_tools/selenium/core/lib/scriptaculous/dragdrop.js delete mode 100644 tests/test_tools/selenium/core/lib/scriptaculous/effects.js delete mode 100644 tests/test_tools/selenium/core/lib/scriptaculous/scriptaculous.js delete mode 100644 tests/test_tools/selenium/core/lib/scriptaculous/slider.js delete mode 100644 tests/test_tools/selenium/core/lib/scriptaculous/unittest.js delete mode 100644 tests/test_tools/selenium/core/scripts/find_matching_child.js delete mode 100644 tests/test_tools/selenium/core/scripts/htmlutils.js delete mode 100644 tests/test_tools/selenium/core/scripts/injection.html delete mode 100644 tests/test_tools/selenium/core/scripts/injection_iframe.html delete mode 100644 tests/test_tools/selenium/core/scripts/js2html.js delete mode 100644 tests/test_tools/selenium/core/scripts/narcissus-defs.js delete mode 100644 tests/test_tools/selenium/core/scripts/narcissus-exec.js delete mode 100644 tests/test_tools/selenium/core/scripts/narcissus-parse.js delete mode 100644 tests/test_tools/selenium/core/scripts/prototype-1.4.0.js delete mode 100644 tests/test_tools/selenium/core/scripts/se2html.js delete mode 100644 tests/test_tools/selenium/core/scripts/selenium-api.js delete mode 100644 tests/test_tools/selenium/core/scripts/selenium-browserbot.js delete mode 100644 tests/test_tools/selenium/core/scripts/selenium-browserdetect.js delete mode 100644 tests/test_tools/selenium/core/scripts/selenium-commandhandlers.js delete mode 100644 tests/test_tools/selenium/core/scripts/selenium-executionloop.js delete mode 100644 tests/test_tools/selenium/core/scripts/selenium-logging.js delete mode 100644 tests/test_tools/selenium/core/scripts/selenium-seleneserunner.js delete mode 100644 tests/test_tools/selenium/core/scripts/selenium-testrunner.js delete mode 100644 tests/test_tools/selenium/core/scripts/selenium-version.js delete mode 100644 tests/test_tools/selenium/core/scripts/user-extensions.js.sample delete mode 100644 tests/test_tools/selenium/core/scripts/xmlextras.js delete mode 100644 tests/test_tools/selenium/core/selenium-test.css delete mode 100644 tests/test_tools/selenium/core/selenium.css delete mode 100644 tests/test_tools/selenium/core/xpath/dom.js delete mode 100644 tests/test_tools/selenium/core/xpath/misc.js delete mode 100644 tests/test_tools/selenium/core/xpath/xpath.js delete mode 100644 tests/test_tools/selenium/php/TestRunner.php delete mode 100644 tests/test_tools/selenium/php/TestSuiteHeader.php delete mode 100644 tests/test_tools/selenium/php/results.php delete mode 100644 tests/test_tools/selenium/php/selenium.php delete mode 100644 tests/test_tools/selenium/prado-functional-test.js delete mode 100644 tests/test_tools/selenium/reference.html delete mode 100644 tests/test_tools/unit_tests.php delete mode 100644 tests/unit/bootstrap.php (limited to 'tests') diff --git a/tests/FunctionalTests/active-controls/assets/.gitignore b/tests/FunctionalTests/active-controls/assets/.gitignore old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/index.php b/tests/FunctionalTests/active-controls/index.php old mode 100644 new mode 100755 index 4d4aeed2..bb7f4822 --- a/tests/FunctionalTests/active-controls/index.php +++ b/tests/FunctionalTests/active-controls/index.php @@ -16,5 +16,3 @@ require_once($frameworkPath); $application=new TApplication; $application->run(); - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/.htaccess b/tests/FunctionalTests/active-controls/protected/.htaccess old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveBricksTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveBricksTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveBricksTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveBricksTest.php old mode 100644 new mode 100755 index c60d4c67..966c8be0 --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveBricksTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveBricksTest.php @@ -9,5 +9,4 @@ class ActiveBricksTest extends TPage $this->placeholder->getControls()->add($x); $this->Page->CallbackClient->insertContentAfter($this->AjaxInsertPoint, $x); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveButtonTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveButtonTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveButtonTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveButtonTest.php old mode 100644 new mode 100755 index 42322ea1..3b2ba60e --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveButtonTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveButtonTest.php @@ -17,5 +17,3 @@ class ActiveButtonTest extends TPage $this->label1->Text .= "using callback!"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveCheckBoxTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveCheckBoxTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveCheckBoxTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveCheckBoxTest.php old mode 100644 new mode 100755 index d762ab28..138afac4 --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveCheckBoxTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveCheckBoxTest.php @@ -28,5 +28,3 @@ class ActiveCheckBoxTest extends TPage ($sender->checked ? ' Checked ' : ' Not Checked'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveControlExpressionTag.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveControlExpressionTag.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveControlExpressionTag.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveControlExpressionTag.php old mode 100644 new mode 100755 index d0b8650e..12699ace --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveControlExpressionTag.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveControlExpressionTag.php @@ -22,5 +22,3 @@ class ActiveControlExpressionTag extends TPage $this->Page->CallbackClient->insertContentAfter('contents', $this->panel2); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveControlWithTinyMce.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveControlWithTinyMce.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveControlWithTinyMce.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveControlWithTinyMce.php old mode 100644 new mode 100755 index ec9040a1..6944dbe6 --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveControlWithTinyMce.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveControlWithTinyMce.php @@ -7,5 +7,3 @@ class ActiveControlWithTinyMce extends TPage $this->label1->Text = $this->text1->SafeText; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveDatePicker.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveDatePicker.php index 300574aa..9baa2a0a 100755 --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveDatePicker.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveDatePicker.php @@ -46,5 +46,3 @@ class ActiveDatePicker extends TPage { } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveDropDownList.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveDropDownList.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveDropDownList.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveDropDownList.php old mode 100644 new mode 100755 index c7f0f6b4..413e7185 --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveDropDownList.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveDropDownList.php @@ -48,5 +48,3 @@ class ActiveDropDownList extends TPage $this->label1->Text = $value; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveHiddenFieldTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveHiddenFieldTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveHiddenFieldTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveHiddenFieldTest.php old mode 100644 new mode 100755 index 1f7a8a2a..a07df4e0 --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveHiddenFieldTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveHiddenFieldTest.php @@ -18,5 +18,3 @@ class ActiveHiddenFieldTest extends TPage $this->ResponseLabel->setText($this->HiddenFieldEmpty->getValue().'|'.$this->HiddenFieldUsed->getValue()); } } - -?> \ 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 old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveHyperLinkTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveHyperLinkTest.php old mode 100644 new mode 100755 index cd4880d2..ef3f597e --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveHyperLinkTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveHyperLinkTest.php @@ -22,5 +22,3 @@ class ActiveHyperLinkTest extends TPage $this->link1->NavigateUrl = "http://www.xlab6.com"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveImageButtonTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveImageButtonTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveImageButtonTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveImageButtonTest.php old mode 100644 new mode 100755 index 44c20ef6..6f3d9b9e --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveImageButtonTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveImageButtonTest.php @@ -27,5 +27,3 @@ class ActiveImageButtonTest extends TPage $this->label1->Text = "Image clicked at x={$param->x}, y={$param->y}"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveLinkButtonTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveLinkButtonTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveLinkButtonTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveLinkButtonTest.php old mode 100644 new mode 100755 index 74ce985c..31748948 --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveLinkButtonTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveLinkButtonTest.php @@ -12,5 +12,3 @@ class ActiveLinkButtonTest extends TPage $this->label1->Text .= "using callback!"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveListBoxMasterTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveListBoxMasterTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveListBoxMasterTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveListBoxMasterTest.php old mode 100644 new mode 100755 index eaa61fd6..4cea263d --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveListBoxMasterTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveListBoxMasterTest.php @@ -43,5 +43,3 @@ class ActiveListBoxMasterTest extends TPage $this->list1->SelectionMode="Single"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveListBoxTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveListBoxTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveListBoxTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveListBoxTest.php old mode 100644 new mode 100755 index a80dbc1c..219d48c7 --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveListBoxTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveListBoxTest.php @@ -43,5 +43,3 @@ class ActiveListBoxTest extends TPage $this->list1->SelectionMode="Single"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActivePanelTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActivePanelTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActivePanelTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActivePanelTest.php old mode 100644 new mode 100755 index b29f8920..61ab7199 --- a/tests/FunctionalTests/active-controls/protected/pages/ActivePanelTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActivePanelTest.php @@ -8,5 +8,3 @@ class ActivePanelTest extends TPage $this->panel1->render($param->NewWriter); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActivePanelVisibleTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActivePanelVisibleTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActivePanelVisibleTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActivePanelVisibleTest.php old mode 100644 new mode 100755 index aaf43abc..19c58aeb --- a/tests/FunctionalTests/active-controls/protected/pages/ActivePanelVisibleTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActivePanelVisibleTest.php @@ -14,5 +14,3 @@ class ActivePanelVisibleTest extends TPage $this->pnlA->Visible = false; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRadioButtonListTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveRadioButtonListTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRadioButtonListTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveRadioButtonListTest.php old mode 100644 new mode 100755 index 22d2c79c..74113cc8 --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveRadioButtonListTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveRadioButtonListTest.php @@ -24,5 +24,3 @@ class ActiveRadioButtonListTest extends TPage $this->list1->setSelectedValue("value 1"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRadioButtonTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveRadioButtonTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRadioButtonTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveRadioButtonTest.php old mode 100644 new mode 100755 index fce204d1..39fcdb0d --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveRadioButtonTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveRadioButtonTest.php @@ -30,5 +30,3 @@ class ActiveRadioButtonTest extends TPage } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListAllowInputTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListAllowInputTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListAllowInputTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListAllowInputTest.php old mode 100644 new mode 100755 index 50b9817d..44ce480a --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListAllowInputTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListAllowInputTest.php @@ -23,5 +23,4 @@ class ActiveRatingListAllowInputTest extends TPage{ public function ratingChanged($sender, $param){ $this->Status->setText($sender->getRating().' : '.$sender->getSelectedValue()); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListAutoPostBackTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListAutoPostBackTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListAutoPostBackTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListAutoPostBackTest.php old mode 100644 new mode 100755 index c094a34b..f7d6e772 --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListAutoPostBackTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListAutoPostBackTest.php @@ -23,5 +23,4 @@ class ActiveRatingListAutoPostBackTest extends TPage{ public function ratingChanged($sender, $param){ $this->Status->setText($sender->getRating().' : '.$sender->getSelectedValue()); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListCheckBoxesTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListCheckBoxesTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListCheckBoxesTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListCheckBoxesTest.php old mode 100644 new mode 100755 index 0ba260d4..50ca291b --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListCheckBoxesTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListCheckBoxesTest.php @@ -19,5 +19,4 @@ * * Modifications: */ -class ActiveRatingListCheckBoxesTest extends TPage{ } -?> \ No newline at end of file +class ActiveRatingListCheckBoxesTest extends TPage{ } \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListEnabledTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListEnabledTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListEnabledTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListEnabledTest.php old mode 100644 new mode 100755 index fde87812..addac252 --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListEnabledTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListEnabledTest.php @@ -33,5 +33,4 @@ class ActiveRatingListEnabledTest extends TPage{ $this->RatingList->setEnabled(false); $this->Status->setText('Enabled=false'); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListHoverCaptionTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListHoverCaptionTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListHoverCaptionTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListHoverCaptionTest.php old mode 100644 new mode 100755 index c8281256..a4b9b6c2 --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListHoverCaptionTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListHoverCaptionTest.php @@ -23,5 +23,4 @@ class ActiveRatingListHoverCaptionTest extends TPage{ public function ratingChanged($sender, $param){ $sender->setCaption($sender->getRating().' : '.$sender->getSelectedValue()); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListRatingTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListRatingTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListRatingTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListRatingTest.php old mode 100644 new mode 100755 index 97369a8d..b530da02 --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListRatingTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListRatingTest.php @@ -28,5 +28,4 @@ class ActiveRatingListRatingTest extends TPage{ $this->RatingList->setRating(3); $this->ratingChanged($this->RatingList, null); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListReadOnlyTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListReadOnlyTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListReadOnlyTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListReadOnlyTest.php old mode 100644 new mode 100755 index 722f60ea..1e40a3bd --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListReadOnlyTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListReadOnlyTest.php @@ -34,5 +34,4 @@ class ActiveRatingListReadOnlyTest extends TPage{ $this->Status->setText('ReadOnly=false'); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListSelectedIndexTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListSelectedIndexTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListSelectedIndexTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListSelectedIndexTest.php old mode 100644 new mode 100755 index f0d8d2ef..468285cc --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListSelectedIndexTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveRatingListSelectedIndexTest.php @@ -28,5 +28,4 @@ class ActiveRatingListSelectedIndexTest extends TPage{ $this->RatingList->setSelectedIndex(5); $this->ratingChanged($this->RatingList, null); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRedirectionTest.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveRedirectionTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveRedirectionTest.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveRedirectionTest.php old mode 100644 new mode 100755 index a3c714fe..a1516ca4 --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveRedirectionTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveRedirectionTest.php @@ -8,5 +8,3 @@ class ActiveRedirectionTest extends TPage $this->Response->redirect($default); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveTextBoxCallback.page b/tests/FunctionalTests/active-controls/protected/pages/ActiveTextBoxCallback.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ActiveTextBoxCallback.php b/tests/FunctionalTests/active-controls/protected/pages/ActiveTextBoxCallback.php old mode 100644 new mode 100755 index c3f729e5..85bc7225 --- a/tests/FunctionalTests/active-controls/protected/pages/ActiveTextBoxCallback.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ActiveTextBoxCallback.php @@ -7,5 +7,3 @@ class ActiveTextBoxCallback extends TPage $this->label1->Text = 'Label 1: '.$sender->Text; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/AutoCompleteTest.page b/tests/FunctionalTests/active-controls/protected/pages/AutoCompleteTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/AutoCompleteTest.php b/tests/FunctionalTests/active-controls/protected/pages/AutoCompleteTest.php old mode 100644 new mode 100755 index 88fbd760..1a767b79 --- a/tests/FunctionalTests/active-controls/protected/pages/AutoCompleteTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/AutoCompleteTest.php @@ -40,5 +40,3 @@ class AutoCompleteTest extends TPage var_dump($param->selectedIndex); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/Calculator.page b/tests/FunctionalTests/active-controls/protected/pages/Calculator.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/Calculator.php b/tests/FunctionalTests/active-controls/protected/pages/Calculator.php old mode 100644 new mode 100755 index 098a8460..37ba8624 --- a/tests/FunctionalTests/active-controls/protected/pages/Calculator.php +++ b/tests/FunctionalTests/active-controls/protected/pages/Calculator.php @@ -8,5 +8,3 @@ class Calculator extends TPage } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/Callback.page b/tests/FunctionalTests/active-controls/protected/pages/Callback.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/Callback.php b/tests/FunctionalTests/active-controls/protected/pages/Callback.php old mode 100644 new mode 100755 index 00357f1e..8a85f50d --- a/tests/FunctionalTests/active-controls/protected/pages/Callback.php +++ b/tests/FunctionalTests/active-controls/protected/pages/Callback.php @@ -9,5 +9,3 @@ class Callback extends TPage var_dump("ok!"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/CallbackCustomValidatorTest.page b/tests/FunctionalTests/active-controls/protected/pages/CallbackCustomValidatorTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/CallbackCustomValidatorTest.php b/tests/FunctionalTests/active-controls/protected/pages/CallbackCustomValidatorTest.php old mode 100644 new mode 100755 index 319cc354..edae8bf3 --- a/tests/FunctionalTests/active-controls/protected/pages/CallbackCustomValidatorTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/CallbackCustomValidatorTest.php @@ -7,5 +7,3 @@ class CallbackCustomValidatorTest extends TPage $param->IsValid = $param->Value == 'Prado'; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/CallbackOptionsTest.page b/tests/FunctionalTests/active-controls/protected/pages/CallbackOptionsTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ClientSideDispatch.page b/tests/FunctionalTests/active-controls/protected/pages/ClientSideDispatch.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ClientSideDispatch.php b/tests/FunctionalTests/active-controls/protected/pages/ClientSideDispatch.php old mode 100644 new mode 100755 index e747bb63..829ce873 --- a/tests/FunctionalTests/active-controls/protected/pages/ClientSideDispatch.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ClientSideDispatch.php @@ -13,5 +13,3 @@ class ClientSideDispatch extends TPage $this->status2->Text = "Method 2 callback"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ControlAdapterTest.page b/tests/FunctionalTests/active-controls/protected/pages/ControlAdapterTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ControlAdapterTest.php b/tests/FunctionalTests/active-controls/protected/pages/ControlAdapterTest.php old mode 100644 new mode 100755 index edaf0720..01cf442c --- a/tests/FunctionalTests/active-controls/protected/pages/ControlAdapterTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ControlAdapterTest.php @@ -54,5 +54,3 @@ class ControlAdapterTest extends TPage $this->button2->Attributes['onclick'] = "alert('baz!')"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/CustomTemplateComponent.php b/tests/FunctionalTests/active-controls/protected/pages/CustomTemplateComponent.php old mode 100644 new mode 100755 index 8a3e6c9f..375fbd21 --- a/tests/FunctionalTests/active-controls/protected/pages/CustomTemplateComponent.php +++ b/tests/FunctionalTests/active-controls/protected/pages/CustomTemplateComponent.php @@ -7,5 +7,3 @@ class CustomTemplateComponent extends TTemplateControl $sender->setText("Foo"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/CustomTemplateComponent.tpl b/tests/FunctionalTests/active-controls/protected/pages/CustomTemplateComponent.tpl old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/CustomTemplateControlTest.page b/tests/FunctionalTests/active-controls/protected/pages/CustomTemplateControlTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/CustomTemplateControlTest.php b/tests/FunctionalTests/active-controls/protected/pages/CustomTemplateControlTest.php old mode 100644 new mode 100755 index a1d55adc..752b75b8 --- a/tests/FunctionalTests/active-controls/protected/pages/CustomTemplateControlTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/CustomTemplateControlTest.php @@ -23,5 +23,3 @@ class CustomTemplateControlTest extends TPage } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/CustomValidatorByPass.page b/tests/FunctionalTests/active-controls/protected/pages/CustomValidatorByPass.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/CustomValidatorByPass.php b/tests/FunctionalTests/active-controls/protected/pages/CustomValidatorByPass.php old mode 100644 new mode 100755 index edc68ae4..b7634410 --- a/tests/FunctionalTests/active-controls/protected/pages/CustomValidatorByPass.php +++ b/tests/FunctionalTests/active-controls/protected/pages/CustomValidatorByPass.php @@ -33,5 +33,3 @@ class CustomValidatorByPass extends TPage } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/DMessagesPanel.php b/tests/FunctionalTests/active-controls/protected/pages/DMessagesPanel.php old mode 100644 new mode 100755 index ce3d1bc0..7949883e --- a/tests/FunctionalTests/active-controls/protected/pages/DMessagesPanel.php +++ b/tests/FunctionalTests/active-controls/protected/pages/DMessagesPanel.php @@ -59,5 +59,3 @@ class DMessagesPanel extends TTemplateControl $this->Message->CssClass = $value; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/DMessagesPanel.tpl b/tests/FunctionalTests/active-controls/protected/pages/DMessagesPanel.tpl old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/DatePickerInCallback.page b/tests/FunctionalTests/active-controls/protected/pages/DatePickerInCallback.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/DatePickerInCallback.php b/tests/FunctionalTests/active-controls/protected/pages/DatePickerInCallback.php old mode 100644 new mode 100755 index 05fd323e..f04ad281 --- a/tests/FunctionalTests/active-controls/protected/pages/DatePickerInCallback.php +++ b/tests/FunctionalTests/active-controls/protected/pages/DatePickerInCallback.php @@ -13,5 +13,3 @@ class DatePickerInCallback extends TPage { } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/DelayedCallback.page b/tests/FunctionalTests/active-controls/protected/pages/DelayedCallback.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/DelayedCallback.php b/tests/FunctionalTests/active-controls/protected/pages/DelayedCallback.php old mode 100644 new mode 100755 index 1785bd34..dc0b8b3d --- a/tests/FunctionalTests/active-controls/protected/pages/DelayedCallback.php +++ b/tests/FunctionalTests/active-controls/protected/pages/DelayedCallback.php @@ -17,5 +17,3 @@ class DelayedCallback extends TPage } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.page b/tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.php b/tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.php old mode 100644 new mode 100755 index 7c791564..5ed71109 --- a/tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/DisplayStyleTest.php @@ -22,5 +22,3 @@ class DisplayStyleTest extends TPage $this->button2->Display="Hidden"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/DynamicRepeaterDataTest.page b/tests/FunctionalTests/active-controls/protected/pages/DynamicRepeaterDataTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/DynamicRepeaterDataTest.php b/tests/FunctionalTests/active-controls/protected/pages/DynamicRepeaterDataTest.php old mode 100644 new mode 100755 index 0df32f6a..04cd7960 --- a/tests/FunctionalTests/active-controls/protected/pages/DynamicRepeaterDataTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/DynamicRepeaterDataTest.php @@ -19,5 +19,3 @@ class DynamicRepeaterDataTest extends TPage $item->label1->Text = $sender->Text; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/EventTriggeredCallback.page b/tests/FunctionalTests/active-controls/protected/pages/EventTriggeredCallback.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/EventTriggeredCallback.php b/tests/FunctionalTests/active-controls/protected/pages/EventTriggeredCallback.php old mode 100644 new mode 100755 index bcc53389..bbd30205 --- a/tests/FunctionalTests/active-controls/protected/pages/EventTriggeredCallback.php +++ b/tests/FunctionalTests/active-controls/protected/pages/EventTriggeredCallback.php @@ -17,5 +17,3 @@ class EventTriggeredCallback extends TPage $this->label1->Text = 'button 1 clicked'; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/FeatureList.php b/tests/FunctionalTests/active-controls/protected/pages/FeatureList.php index 8f28f6de..e5fad8d0 100755 --- a/tests/FunctionalTests/active-controls/protected/pages/FeatureList.php +++ b/tests/FunctionalTests/active-controls/protected/pages/FeatureList.php @@ -30,5 +30,3 @@ class FeatureList extends TPage return $list; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/GerTurno2.page b/tests/FunctionalTests/active-controls/protected/pages/GerTurno2.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/GerTurno2.php b/tests/FunctionalTests/active-controls/protected/pages/GerTurno2.php old mode 100644 new mode 100755 index e2ffbf07..ae996a65 --- a/tests/FunctionalTests/active-controls/protected/pages/GerTurno2.php +++ b/tests/FunctionalTests/active-controls/protected/pages/GerTurno2.php @@ -49,5 +49,3 @@ class GerTurno2 extends TPage { } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/Home.page b/tests/FunctionalTests/active-controls/protected/pages/Home.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/Home.php b/tests/FunctionalTests/active-controls/protected/pages/Home.php old mode 100644 new mode 100755 index 3dfb4bb0..0d748dc0 --- a/tests/FunctionalTests/active-controls/protected/pages/Home.php +++ b/tests/FunctionalTests/active-controls/protected/pages/Home.php @@ -7,5 +7,3 @@ class Home extends TPage $this->lblTest->Text = "Testing"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/InPlaceWithValidator.page b/tests/FunctionalTests/active-controls/protected/pages/InPlaceWithValidator.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/InPlaceWithValidator.php b/tests/FunctionalTests/active-controls/protected/pages/InPlaceWithValidator.php old mode 100644 new mode 100755 index c58a006a..ce8fef2a --- a/tests/FunctionalTests/active-controls/protected/pages/InPlaceWithValidator.php +++ b/tests/FunctionalTests/active-controls/protected/pages/InPlaceWithValidator.php @@ -9,5 +9,3 @@ class InPlaceWithValidator extends TPage } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/LTemplate.php b/tests/FunctionalTests/active-controls/protected/pages/LTemplate.php old mode 100644 new mode 100755 index 0a5c311e..f47bbaa4 --- a/tests/FunctionalTests/active-controls/protected/pages/LTemplate.php +++ b/tests/FunctionalTests/active-controls/protected/pages/LTemplate.php @@ -68,5 +68,4 @@ class LTemplate extends TTemplateControl } } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/LTemplate.tpl b/tests/FunctionalTests/active-controls/protected/pages/LTemplate.tpl old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/LargePageStateTest.page b/tests/FunctionalTests/active-controls/protected/pages/LargePageStateTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/LargePageStateTest.php b/tests/FunctionalTests/active-controls/protected/pages/LargePageStateTest.php old mode 100644 new mode 100755 index 51e56d48..67e92766 --- a/tests/FunctionalTests/active-controls/protected/pages/LargePageStateTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/LargePageStateTest.php @@ -18,5 +18,3 @@ class LargePageStateTest extends TPage $this->status->Text .= ' Callback Clicked... '; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/LargePageStateTest2.page b/tests/FunctionalTests/active-controls/protected/pages/LargePageStateTest2.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/LargePageStateTest2.php b/tests/FunctionalTests/active-controls/protected/pages/LargePageStateTest2.php old mode 100644 new mode 100755 index 56f9c68f..00573624 --- a/tests/FunctionalTests/active-controls/protected/pages/LargePageStateTest2.php +++ b/tests/FunctionalTests/active-controls/protected/pages/LargePageStateTest2.php @@ -18,5 +18,3 @@ class LargePageStateTest2 extends TPage $this->status->Text .= ' Callback Clicked... '; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/Master1.php b/tests/FunctionalTests/active-controls/protected/pages/Master1.php old mode 100644 new mode 100755 index 1bbcb9c4..588c71d5 --- a/tests/FunctionalTests/active-controls/protected/pages/Master1.php +++ b/tests/FunctionalTests/active-controls/protected/pages/Master1.php @@ -3,5 +3,3 @@ class Master1 extends TTemplateControl { } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/Master1.tpl b/tests/FunctionalTests/active-controls/protected/pages/Master1.tpl old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/MasterTest1.page b/tests/FunctionalTests/active-controls/protected/pages/MasterTest1.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/MessagesPanelTest.page b/tests/FunctionalTests/active-controls/protected/pages/MessagesPanelTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/MessagesPanelTest.php b/tests/FunctionalTests/active-controls/protected/pages/MessagesPanelTest.php old mode 100644 new mode 100755 index d3713308..2f768680 --- a/tests/FunctionalTests/active-controls/protected/pages/MessagesPanelTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/MessagesPanelTest.php @@ -12,5 +12,3 @@ class MessagesPanelTest extends TPage $this->panel1->setMessage(""); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/MyControl.php b/tests/FunctionalTests/active-controls/protected/pages/MyControl.php old mode 100644 new mode 100755 index 5ced5d3a..e8a38908 --- a/tests/FunctionalTests/active-controls/protected/pages/MyControl.php +++ b/tests/FunctionalTests/active-controls/protected/pages/MyControl.php @@ -4,5 +4,3 @@ class MyControl extends TTemplateControl { } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/MyControl.tpl b/tests/FunctionalTests/active-controls/protected/pages/MyControl.tpl old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/MyTabPanelTest.page b/tests/FunctionalTests/active-controls/protected/pages/MyTabPanelTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/MyTabPanelTest.php b/tests/FunctionalTests/active-controls/protected/pages/MyTabPanelTest.php old mode 100644 new mode 100755 index 6736138d..07411f2a --- a/tests/FunctionalTests/active-controls/protected/pages/MyTabPanelTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/MyTabPanelTest.php @@ -38,5 +38,3 @@ class MyTabPanelTest extends TPage } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/NestedActiveControls.page b/tests/FunctionalTests/active-controls/protected/pages/NestedActiveControls.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/NestedActiveControls.php b/tests/FunctionalTests/active-controls/protected/pages/NestedActiveControls.php old mode 100644 new mode 100755 index 76b77ff7..ba47db39 --- a/tests/FunctionalTests/active-controls/protected/pages/NestedActiveControls.php +++ b/tests/FunctionalTests/active-controls/protected/pages/NestedActiveControls.php @@ -15,5 +15,3 @@ class NestedActiveControls extends TPage $this->label3->Text = "Label 3: Button 1 Clicked"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/NullStateTest.page b/tests/FunctionalTests/active-controls/protected/pages/NullStateTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/NullStateTest.php b/tests/FunctionalTests/active-controls/protected/pages/NullStateTest.php old mode 100644 new mode 100755 index f6e5071d..1dd41099 --- a/tests/FunctionalTests/active-controls/protected/pages/NullStateTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/NullStateTest.php @@ -7,5 +7,3 @@ class NullStateTest extends TPage $this->lblTest->Text = "Testing"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/PopulateActiveList.page b/tests/FunctionalTests/active-controls/protected/pages/PopulateActiveList.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/PopulateActiveList.php b/tests/FunctionalTests/active-controls/protected/pages/PopulateActiveList.php old mode 100644 new mode 100755 index 8a1ba198..ea6e9f1c --- a/tests/FunctionalTests/active-controls/protected/pages/PopulateActiveList.php +++ b/tests/FunctionalTests/active-controls/protected/pages/PopulateActiveList.php @@ -30,5 +30,3 @@ class PopulateActiveList extends TPage $this->label1->Text = $sender->ID . ': '.$text; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/PostLoadingTest.page b/tests/FunctionalTests/active-controls/protected/pages/PostLoadingTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/PostLoadingTest.php b/tests/FunctionalTests/active-controls/protected/pages/PostLoadingTest.php old mode 100644 new mode 100755 index d22f2922..63bce75a --- a/tests/FunctionalTests/active-controls/protected/pages/PostLoadingTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/PostLoadingTest.php @@ -41,5 +41,3 @@ class PostLoadingTest extends TPage $this->Page->CallbackClient->Highlight('heading'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/RadioButtonListTest.page b/tests/FunctionalTests/active-controls/protected/pages/RadioButtonListTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/RadioButtonListTest.php b/tests/FunctionalTests/active-controls/protected/pages/RadioButtonListTest.php old mode 100644 new mode 100755 index eb77073b..4b687907 --- a/tests/FunctionalTests/active-controls/protected/pages/RadioButtonListTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/RadioButtonListTest.php @@ -24,5 +24,3 @@ class RadioButtonListTest extends TPage } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/RatingList.page b/tests/FunctionalTests/active-controls/protected/pages/RatingList.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/RatingList.php b/tests/FunctionalTests/active-controls/protected/pages/RatingList.php old mode 100644 new mode 100755 index 8fd879bc..81d59a32 --- a/tests/FunctionalTests/active-controls/protected/pages/RatingList.php +++ b/tests/FunctionalTests/active-controls/protected/pages/RatingList.php @@ -30,5 +30,3 @@ class RatingList extends TPage $this->list1->SelectedIndex=3; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/RepeaterWithActiveControls.page b/tests/FunctionalTests/active-controls/protected/pages/RepeaterWithActiveControls.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/RepeaterWithActiveControls.php b/tests/FunctionalTests/active-controls/protected/pages/RepeaterWithActiveControls.php old mode 100644 new mode 100755 index 013ffe61..c1fbabf3 --- a/tests/FunctionalTests/active-controls/protected/pages/RepeaterWithActiveControls.php +++ b/tests/FunctionalTests/active-controls/protected/pages/RepeaterWithActiveControls.php @@ -57,5 +57,3 @@ class RepeaterWithActiveControls extends TPage } } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ReplaceContentTest.page b/tests/FunctionalTests/active-controls/protected/pages/ReplaceContentTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ReplaceContentTest.php b/tests/FunctionalTests/active-controls/protected/pages/ReplaceContentTest.php old mode 100644 new mode 100755 index a6df2abd..06d8dab4 --- a/tests/FunctionalTests/active-controls/protected/pages/ReplaceContentTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ReplaceContentTest.php @@ -38,5 +38,3 @@ class ReplaceContentTest extends TPage return $this->content->Text; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/Sessioned/PageStateTest.page b/tests/FunctionalTests/active-controls/protected/pages/Sessioned/PageStateTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/Sessioned/PageStateTest.php b/tests/FunctionalTests/active-controls/protected/pages/Sessioned/PageStateTest.php old mode 100644 new mode 100755 index 9d4a7695..f9da46a2 --- a/tests/FunctionalTests/active-controls/protected/pages/Sessioned/PageStateTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/Sessioned/PageStateTest.php @@ -9,5 +9,3 @@ class PageStateTest extends TPage $this->label1->Text = " button1 clicked ".$sender->CustomData." times"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/Sessioned/config.xml b/tests/FunctionalTests/active-controls/protected/pages/Sessioned/config.xml old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/TActiveCheckBoxListTest.page b/tests/FunctionalTests/active-controls/protected/pages/TActiveCheckBoxListTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/TActiveCheckBoxListTest.php b/tests/FunctionalTests/active-controls/protected/pages/TActiveCheckBoxListTest.php old mode 100644 new mode 100755 index 66bfe83d..6bb78240 --- a/tests/FunctionalTests/active-controls/protected/pages/TActiveCheckBoxListTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/TActiveCheckBoxListTest.php @@ -33,5 +33,3 @@ class TActiveCheckBoxListTest extends TPage $this->list1->setSelectedValues(array('value 2', 'value 5')); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/TActiveFileUploadAutoPostBackTest.php b/tests/FunctionalTests/active-controls/protected/pages/TActiveFileUploadAutoPostBackTest.php index 816a899e..742e7048 100755 --- a/tests/FunctionalTests/active-controls/protected/pages/TActiveFileUploadAutoPostBackTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/TActiveFileUploadAutoPostBackTest.php @@ -28,5 +28,4 @@ class TActiveFileUploadAutoPostBackTest extends TPage{ public function uploadComplete($sender, $param){ $this->label1->setText($sender->getFileName()); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/TInPlaceTextBoxTest.page b/tests/FunctionalTests/active-controls/protected/pages/TInPlaceTextBoxTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/TInPlaceTextBoxTest.php b/tests/FunctionalTests/active-controls/protected/pages/TInPlaceTextBoxTest.php old mode 100644 new mode 100755 index 6cc5a500..e773b1b2 --- a/tests/FunctionalTests/active-controls/protected/pages/TInPlaceTextBoxTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/TInPlaceTextBoxTest.php @@ -22,5 +22,3 @@ class TInPlaceTextBoxTest extends TPage throw new TException('Exist'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/TestMasterPage.php b/tests/FunctionalTests/active-controls/protected/pages/TestMasterPage.php old mode 100644 new mode 100755 index 170e618b..bad9f5bd --- a/tests/FunctionalTests/active-controls/protected/pages/TestMasterPage.php +++ b/tests/FunctionalTests/active-controls/protected/pages/TestMasterPage.php @@ -3,5 +3,3 @@ class TestMasterPage extends TTemplateControl { } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/TestMasterPage.tpl b/tests/FunctionalTests/active-controls/protected/pages/TestMasterPage.tpl old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/TextBoxValidationCallback.page b/tests/FunctionalTests/active-controls/protected/pages/TextBoxValidationCallback.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/TextBoxValidationCallback.php b/tests/FunctionalTests/active-controls/protected/pages/TextBoxValidationCallback.php old mode 100644 new mode 100755 index 1d2cc92f..6aa827f3 --- a/tests/FunctionalTests/active-controls/protected/pages/TextBoxValidationCallback.php +++ b/tests/FunctionalTests/active-controls/protected/pages/TextBoxValidationCallback.php @@ -7,5 +7,4 @@ class TextBoxValidationCallback extends TPage { $this->City->Text = "City: ".$this->Address->Text . ' Zip: '.$this->ZipCode->Text; } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/TimeTriggeredCallbackTest.page b/tests/FunctionalTests/active-controls/protected/pages/TimeTriggeredCallbackTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/TimeTriggeredCallbackTest.php b/tests/FunctionalTests/active-controls/protected/pages/TimeTriggeredCallbackTest.php old mode 100644 new mode 100755 index 788857f8..16161a13 --- a/tests/FunctionalTests/active-controls/protected/pages/TimeTriggeredCallbackTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/TimeTriggeredCallbackTest.php @@ -23,5 +23,3 @@ class TimeTriggeredCallbackTest extends TPage $this->label1->Text .= " ".$count; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/ValueTriggerCallbackTest.page b/tests/FunctionalTests/active-controls/protected/pages/ValueTriggerCallbackTest.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/ValueTriggerCallbackTest.php b/tests/FunctionalTests/active-controls/protected/pages/ValueTriggerCallbackTest.php old mode 100644 new mode 100755 index 69985541..229522d1 --- a/tests/FunctionalTests/active-controls/protected/pages/ValueTriggerCallbackTest.php +++ b/tests/FunctionalTests/active-controls/protected/pages/ValueTriggerCallbackTest.php @@ -8,5 +8,3 @@ class ValueTriggerCallbackTest extends TPage $this->label1->Text = "Old = ".$values->OldValue." : New Value = ".$values->NewValue; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/protected/pages/group.gif b/tests/FunctionalTests/active-controls/protected/pages/group.gif old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/pages/report.gif b/tests/FunctionalTests/active-controls/protected/pages/report.gif old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/protected/runtime/.gitignore b/tests/FunctionalTests/active-controls/protected/runtime/.gitignore old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/active-controls/tests/ActiveButtonTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveButtonTestCase.php old mode 100644 new mode 100755 index a8795de5..c8fcfa57 --- a/tests/FunctionalTests/active-controls/tests/ActiveButtonTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveButtonTestCase.php @@ -1,6 +1,6 @@ assertText("label1", "Button 1 was clicked using callback!"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxListTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxListTestCase.php old mode 100644 new mode 100755 index 03081f9e..312b8443 --- a/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxListTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxListTestCase.php @@ -1,12 +1,9 @@ skipBrowsers(self::OPERA); - $this->open("active-controls/index.php?page=TActiveCheckBoxListTest"); $this->verifyTextPresent("TActiveCheckBoxList Test Case"); @@ -56,5 +53,3 @@ class ActiveCheckBoxListTestCase extends SeleniumTestCase } } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxTestCase.php old mode 100644 new mode 100755 index ce2ce430..6f235273 --- a/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveCheckBoxTestCase.php @@ -1,12 +1,9 @@ skipBrowsers(self::OPERA); - $this->open("active-controls/index.php?page=ActiveCheckBoxTest"); $this->verifyTextPresent("Active CheckBox Test"); @@ -60,5 +57,3 @@ class ActiveCheckBoxTestCase extends SeleniumTestCase } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ActiveControlExpressTagTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveControlExpressTagTestCase.php old mode 100644 new mode 100755 index 0cf7d927..75b86e19 --- a/tests/FunctionalTests/active-controls/tests/ActiveControlExpressTagTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveControlExpressTagTestCase.php @@ -1,6 +1,6 @@ assertText('contents', 'Text box content: Hello world'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ActiveDatePickerTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveDatePickerTestCase.php index f5915634..769dd356 100755 --- a/tests/FunctionalTests/active-controls/tests/ActiveDatePickerTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveDatePickerTestCase.php @@ -1,5 +1,5 @@ verifyText("status3", date('m/Y', $dateToCheck)); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ActiveDropDownListTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveDropDownListTestCase.php old mode 100644 new mode 100755 index 9dd210df..d365c784 --- a/tests/FunctionalTests/active-controls/tests/ActiveDropDownListTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveDropDownListTestCase.php @@ -1,6 +1,6 @@ \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ActiveHiddenFieldTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveHiddenFieldTestCase.php old mode 100644 new mode 100755 index 259a6516..b8c02868 --- a/tests/FunctionalTests/active-controls/tests/ActiveHiddenFieldTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveHiddenFieldTestCase.php @@ -1,6 +1,6 @@ assertText('ResponseLabel', $fieldEmpty.'|'.$fieldUsed); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ActiveHyperLinkTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveHyperLinkTestCase.php old mode 100644 new mode 100755 index 6707a442..bfcdd206 --- a/tests/FunctionalTests/active-controls/tests/ActiveHyperLinkTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveHyperLinkTestCase.php @@ -1,6 +1,6 @@ assertText("link1", "Pradosoft.com"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ActiveImageButtonTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveImageButtonTestCase.php old mode 100644 new mode 100755 index 477f7fea..2989ab27 --- a/tests/FunctionalTests/active-controls/tests/ActiveImageButtonTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveImageButtonTestCase.php @@ -1,6 +1,6 @@ assertTextPresent("regexp:Image clicked at x=\d+, y=\d+"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ActiveLinkButtonTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveLinkButtonTestCase.php old mode 100644 new mode 100755 index 7024acd2..88cdf15e --- a/tests/FunctionalTests/active-controls/tests/ActiveLinkButtonTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveLinkButtonTestCase.php @@ -1,6 +1,6 @@ assertText("label1", "Button 1 was clicked using callback!"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ActiveListBoxMasterTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveListBoxMasterTestCase.php old mode 100644 new mode 100755 index 116dd4ad..555d9b25 --- a/tests/FunctionalTests/active-controls/tests/ActiveListBoxMasterTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveListBoxMasterTestCase.php @@ -1,6 +1,6 @@ pause(800); $this->assertText($base.'label1', 'Selection: value 1, value 4'); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ActiveListBoxTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveListBoxTestCase.php old mode 100644 new mode 100755 index 78dbd77e..9976211b --- a/tests/FunctionalTests/active-controls/tests/ActiveListBoxTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveListBoxTestCase.php @@ -1,6 +1,6 @@ pause(800); $this->assertText('label1', 'Selection: value 1, value 4'); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ActivePanelTestCase.php b/tests/FunctionalTests/active-controls/tests/ActivePanelTestCase.php old mode 100644 new mode 100755 index 4c8fd3c6..9b069a14 --- a/tests/FunctionalTests/active-controls/tests/ActivePanelTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActivePanelTestCase.php @@ -1,6 +1,6 @@ assertTextPresent("Something lalala"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ActiveRadioButtonListTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveRadioButtonListTestCase.php old mode 100644 new mode 100755 index 45078830..b0942ffa --- a/tests/FunctionalTests/active-controls/tests/ActiveRadioButtonListTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveRadioButtonListTestCase.php @@ -1,12 +1,9 @@ skipBrowsers(self::OPERA); - $this->open("active-controls/index.php?page=ActiveRadioButtonListTest"); $this->verifyTextPresent("TActiveRadioButtonList Test Case"); @@ -46,5 +43,3 @@ class ActiveRadioButtonListTestCase extends SeleniumTestCase } } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ActiveRadioButtonTestCase.php b/tests/FunctionalTests/active-controls/tests/ActiveRadioButtonTestCase.php old mode 100644 new mode 100755 index 2991da9b..fceb2e21 --- a/tests/FunctionalTests/active-controls/tests/ActiveRadioButtonTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ActiveRadioButtonTestCase.php @@ -1,12 +1,9 @@ skipBrowsers(self::OPERA); - $this->open("active-controls/index.php?page=ActiveRadioButtonTest"); $this->verifyTextPresent("Active Radio Button Test"); $this->assertText('label1', 'Label 1'); @@ -53,5 +50,4 @@ class ActiveRadioButtonTestCase extends SeleniumTestCase } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/AutoCompleteTestCase.php b/tests/FunctionalTests/active-controls/tests/AutoCompleteTestCase.php old mode 100644 new mode 100755 index 08ffe453..063e3d08 --- a/tests/FunctionalTests/active-controls/tests/AutoCompleteTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/AutoCompleteTestCase.php @@ -1,11 +1,10 @@ disabled(); - $this->skipBrowsers(self::INTERNET_EXPLORER); $this->open("active-controls/index.php?page=AutoCompleteTest"); $this->verifyTextPresent("TAutoComplete Test"); @@ -45,5 +44,3 @@ class AutoCompleteTestCase extends SeleniumTestCase $this->assertText("label1", "Label 1: Cuba,Mexico"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/CalculatorTestCase.php b/tests/FunctionalTests/active-controls/tests/CalculatorTestCase.php old mode 100644 new mode 100755 index 2fb28224..1a6347f9 --- a/tests/FunctionalTests/active-controls/tests/CalculatorTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/CalculatorTestCase.php @@ -1,6 +1,6 @@ assertValue("c", "7"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/CallbackAdapterTestCase.php b/tests/FunctionalTests/active-controls/tests/CallbackAdapterTestCase.php old mode 100644 new mode 100755 index c733a7fd..76d8b9af --- a/tests/FunctionalTests/active-controls/tests/CallbackAdapterTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/CallbackAdapterTestCase.php @@ -1,10 +1,9 @@ skipBrowsers(self::INTERNET_EXPLORER); $this->open("active-controls/index.php?page=ControlAdapterTest"); $this->assertTextPresent('Control Adapter - State Tracking Tests'); @@ -32,8 +31,6 @@ class CallbackAdapterTestCase extends SeleniumTestCase function testIE() { - $this->targetBrowsers(self::INTERNET_EXPLORER); - $this->open("active-controls/index.php?page=ControlAdapterTest"); $this->assertTextPresent('Control Adapter - State Tracking Tests'); @@ -58,5 +55,3 @@ class CallbackAdapterTestCase extends SeleniumTestCase $this->assertAlert('ok'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/CallbackOptionsTestCase.php b/tests/FunctionalTests/active-controls/tests/CallbackOptionsTestCase.php old mode 100644 new mode 100755 index 39fa5ec9..d1f48cf3 --- a/tests/FunctionalTests/active-controls/tests/CallbackOptionsTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/CallbackOptionsTestCase.php @@ -1,6 +1,6 @@ assertText("label3", "Button 3 has returned"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/CustomTemplateTestCase.php b/tests/FunctionalTests/active-controls/tests/CustomTemplateTestCase.php old mode 100644 new mode 100755 index 59bc2e93..7e38423e --- a/tests/FunctionalTests/active-controls/tests/CustomTemplateTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/CustomTemplateTestCase.php @@ -1,6 +1,6 @@ assertText('label1', 'Button 1 was clicked Foo Bar! using callback!... and this is the textbox text: Foo Bar!'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/DelayedCallbackTestCase.php b/tests/FunctionalTests/active-controls/tests/DelayedCallbackTestCase.php old mode 100644 new mode 100755 index c5367612..841de5aa --- a/tests/FunctionalTests/active-controls/tests/DelayedCallbackTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/DelayedCallbackTestCase.php @@ -1,6 +1,6 @@ \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/EventTriggerTestCase.php b/tests/FunctionalTests/active-controls/tests/EventTriggerTestCase.php old mode 100644 new mode 100755 index dc10bd28..30678786 --- a/tests/FunctionalTests/active-controls/tests/EventTriggerTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/EventTriggerTestCase.php @@ -1,6 +1,6 @@ assertText('label1', 'text 1 focused'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/NestedActiveControlsTestCase.php b/tests/FunctionalTests/active-controls/tests/NestedActiveControlsTestCase.php old mode 100644 new mode 100755 index f19773ff..e2ceb33e --- a/tests/FunctionalTests/active-controls/tests/NestedActiveControlsTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/NestedActiveControlsTestCase.php @@ -1,6 +1,6 @@ assertText("label3", "Label 3: Button 1 Clicked"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/PopulateListTestCase.php b/tests/FunctionalTests/active-controls/tests/PopulateListTestCase.php old mode 100644 new mode 100755 index 25a6fde5..adb5a3a5 --- a/tests/FunctionalTests/active-controls/tests/PopulateListTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/PopulateListTestCase.php @@ -1,6 +1,6 @@ assertText("label1", "list2: Prado"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/PostLoadingTestCase.php b/tests/FunctionalTests/active-controls/tests/PostLoadingTestCase.php old mode 100644 new mode 100755 index 0fa95b4d..21a5128d --- a/tests/FunctionalTests/active-controls/tests/PostLoadingTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/PostLoadingTestCase.php @@ -1,6 +1,6 @@ assertTextPresent('Result is Hello World'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ReplaceContentTestCase.php b/tests/FunctionalTests/active-controls/tests/ReplaceContentTestCase.php old mode 100644 new mode 100755 index 910b1063..fc1d2c28 --- a/tests/FunctionalTests/active-controls/tests/ReplaceContentTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ReplaceContentTestCase.php @@ -1,10 +1,9 @@ skipBrowsers(self::INTERNET_EXPLORER); $this->open('active-controls/index.php?page=ReplaceContentTest'); $this->assertTextPresent('Callback Replace Content Test'); @@ -48,8 +47,6 @@ class ReplaceContentTestCase extends SeleniumTestCase function testIE() { - $this->targetBrowsers(self::INTERNET_EXPLORER); - $this->open('active-controls/index.php?page=ReplaceContentTest'); $this->assertTextPresent('Callback Replace Content Test'); @@ -91,5 +88,3 @@ class ReplaceContentTestCase extends SeleniumTestCase } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/TextBoxCallbackTestCase.php b/tests/FunctionalTests/active-controls/tests/TextBoxCallbackTestCase.php old mode 100644 new mode 100755 index 6e5a06be..14d575fe --- a/tests/FunctionalTests/active-controls/tests/TextBoxCallbackTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/TextBoxCallbackTestCase.php @@ -1,6 +1,6 @@ assertText("label1", "Label 1: hello!"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/TextBoxGroupValidationTestCase.php b/tests/FunctionalTests/active-controls/tests/TextBoxGroupValidationTestCase.php old mode 100644 new mode 100755 index 0fa0c982..ffc1ac72 --- a/tests/FunctionalTests/active-controls/tests/TextBoxGroupValidationTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/TextBoxGroupValidationTestCase.php @@ -1,6 +1,6 @@ assertValue('City', 'City: Sydney Zip: 2000'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/TimeTriggeredCallbackTestCase.php b/tests/FunctionalTests/active-controls/tests/TimeTriggeredCallbackTestCase.php old mode 100644 new mode 100755 index 675e3311..de0ecad8 --- a/tests/FunctionalTests/active-controls/tests/TimeTriggeredCallbackTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/TimeTriggeredCallbackTestCase.php @@ -1,6 +1,6 @@ \ No newline at end of file diff --git a/tests/FunctionalTests/active-controls/tests/ValueTriggerCallbackTestCase.php b/tests/FunctionalTests/active-controls/tests/ValueTriggerCallbackTestCase.php old mode 100644 new mode 100755 index 5d2e954c..5113cc92 --- a/tests/FunctionalTests/active-controls/tests/ValueTriggerCallbackTestCase.php +++ b/tests/FunctionalTests/active-controls/tests/ValueTriggerCallbackTestCase.php @@ -1,6 +1,6 @@ assertText('label1', 'Old = test : New Value = more'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/active-controlstests/ActiveRatingListTestCase.php b/tests/FunctionalTests/active-controlstests/ActiveRatingListTestCase.php old mode 100644 new mode 100755 index 921543cd..8034d6b2 --- a/tests/FunctionalTests/active-controlstests/ActiveRatingListTestCase.php +++ b/tests/FunctionalTests/active-controlstests/ActiveRatingListTestCase.php @@ -19,7 +19,7 @@ * * Modifications: */ -class ActiveRatingListTestCase extends SeleniumTestCase +class ActiveRatingListTestCase extends PradoGenericSeleniumTest { function testCheckBoxes() { @@ -249,5 +249,4 @@ class ActiveRatingListTestCase extends SeleniumTestCase $this->assertNotChecked("{$clientID}_c{$i}"); } } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/active.php b/tests/FunctionalTests/active.php deleted file mode 100755 index f8776c2e..00000000 --- a/tests/FunctionalTests/active.php +++ /dev/null @@ -1,8 +0,0 @@ -run(new SimpleReporter()); - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/features.php b/tests/FunctionalTests/features.php deleted file mode 100644 index 9005db14..00000000 --- a/tests/FunctionalTests/features.php +++ /dev/null @@ -1,8 +0,0 @@ -run(new SimpleReporter()); - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/features/assets/.gitignore b/tests/FunctionalTests/features/assets/.gitignore old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/index.php b/tests/FunctionalTests/features/index.php old mode 100644 new mode 100755 index fe127639..77ddf367 --- a/tests/FunctionalTests/features/index.php +++ b/tests/FunctionalTests/features/index.php @@ -4,5 +4,3 @@ require_once(dirname(__FILE__).'/../../../framework/prado.php'); $app=new TApplication; $app->run(); - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/features/protected/application.xml b/tests/FunctionalTests/features/protected/application.xml old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/controls/LabeledTextBox.tpl b/tests/FunctionalTests/features/protected/controls/LabeledTextBox.tpl old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/controls/LabeledTextbox.php b/tests/FunctionalTests/features/protected/controls/LabeledTextbox.php old mode 100644 new mode 100755 index ef36863b..6a95407d --- a/tests/FunctionalTests/features/protected/controls/LabeledTextbox.php +++ b/tests/FunctionalTests/features/protected/controls/LabeledTextbox.php @@ -22,4 +22,3 @@ class LabeledTextBox extends TTemplateControl } } -?> diff --git a/tests/FunctionalTests/features/protected/controls/Layout.php b/tests/FunctionalTests/features/protected/controls/Layout.php old mode 100644 new mode 100755 index f60a9a18..0ac4d6b3 --- a/tests/FunctionalTests/features/protected/controls/Layout.php +++ b/tests/FunctionalTests/features/protected/controls/Layout.php @@ -4,5 +4,3 @@ class Layout extends TTemplateControl { } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/features/protected/controls/Layout.tpl b/tests/FunctionalTests/features/protected/controls/Layout.tpl old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/ActiveControls/ActiveControl.page b/tests/FunctionalTests/features/protected/pages/ActiveControls/ActiveControl.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/ActiveControls/ActiveControl.php b/tests/FunctionalTests/features/protected/pages/ActiveControls/ActiveControl.php old mode 100644 new mode 100755 index 322f4db7..d33ee43b --- a/tests/FunctionalTests/features/protected/pages/ActiveControls/ActiveControl.php +++ b/tests/FunctionalTests/features/protected/pages/ActiveControls/ActiveControl.php @@ -40,4 +40,3 @@ class ActiveControl extends TPage return self::$_colors[rand(0,count(self::$_colors)-1)]; } } -?> diff --git a/tests/FunctionalTests/features/protected/pages/ActiveControls/AutoComplete.page b/tests/FunctionalTests/features/protected/pages/ActiveControls/AutoComplete.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/ActiveControls/AutoComplete.php b/tests/FunctionalTests/features/protected/pages/ActiveControls/AutoComplete.php old mode 100644 new mode 100755 index ac08e4ed..c13cda9b --- a/tests/FunctionalTests/features/protected/pages/ActiveControls/AutoComplete.php +++ b/tests/FunctionalTests/features/protected/pages/ActiveControls/AutoComplete.php @@ -30,5 +30,3 @@ class AutoComplete extends TPage return $list; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/features/protected/pages/ActiveControls/Calculator.page b/tests/FunctionalTests/features/protected/pages/ActiveControls/Calculator.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/ActiveControls/Calculator.php b/tests/FunctionalTests/features/protected/pages/ActiveControls/Calculator.php old mode 100644 new mode 100755 index 7afd1d59..86cb3e9b --- a/tests/FunctionalTests/features/protected/pages/ActiveControls/Calculator.php +++ b/tests/FunctionalTests/features/protected/pages/ActiveControls/Calculator.php @@ -11,5 +11,3 @@ class Calculator extends TPage $this->c->Text = floatval($this->a->Text) + floatval($this->b->Text); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/features/protected/pages/ActiveControls/Calculator2.page b/tests/FunctionalTests/features/protected/pages/ActiveControls/Calculator2.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/ActiveControls/Calculator2.php b/tests/FunctionalTests/features/protected/pages/ActiveControls/Calculator2.php old mode 100644 new mode 100755 index 3789a3f9..8d184cb9 --- a/tests/FunctionalTests/features/protected/pages/ActiveControls/Calculator2.php +++ b/tests/FunctionalTests/features/protected/pages/ActiveControls/Calculator2.php @@ -16,5 +16,3 @@ class Calculator2 extends TPage $this->panel1->renderControl($param->Output); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/features/protected/pages/ActiveControls/VisibleUpdate.page b/tests/FunctionalTests/features/protected/pages/ActiveControls/VisibleUpdate.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/ActiveControls/VisibleUpdate.php b/tests/FunctionalTests/features/protected/pages/ActiveControls/VisibleUpdate.php old mode 100644 new mode 100755 index 1b1d0cbc..e01e1c0a --- a/tests/FunctionalTests/features/protected/pages/ActiveControls/VisibleUpdate.php +++ b/tests/FunctionalTests/features/protected/pages/ActiveControls/VisibleUpdate.php @@ -32,5 +32,3 @@ class VisibleUpdate extends TPage " and Button 2 was ".($this->button2->Enabled ? 'enabled' : 'disabled'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/features/protected/pages/ActiveControls/config.xml b/tests/FunctionalTests/features/protected/pages/ActiveControls/config.xml old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/ClientScripts.page b/tests/FunctionalTests/features/protected/pages/ClientScripts.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/ColorPicker.page b/tests/FunctionalTests/features/protected/pages/ColorPicker.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/FeatureList.page b/tests/FunctionalTests/features/protected/pages/FeatureList.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/FeatureList.php b/tests/FunctionalTests/features/protected/pages/FeatureList.php old mode 100644 new mode 100755 index 8f28f6de..e5fad8d0 --- a/tests/FunctionalTests/features/protected/pages/FeatureList.php +++ b/tests/FunctionalTests/features/protected/pages/FeatureList.php @@ -30,5 +30,3 @@ class FeatureList extends TPage return $list; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/features/protected/pages/FocusControl.page b/tests/FunctionalTests/features/protected/pages/FocusControl.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/FocusControl.php b/tests/FunctionalTests/features/protected/pages/FocusControl.php old mode 100644 new mode 100755 index e534a92a..ef57a25b --- a/tests/FunctionalTests/features/protected/pages/FocusControl.php +++ b/tests/FunctionalTests/features/protected/pages/FocusControl.php @@ -13,5 +13,3 @@ class FocusControl extends TPage } } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/features/protected/pages/I18N/BasicI18N.page b/tests/FunctionalTests/features/protected/pages/I18N/BasicI18N.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/I18N/BasicI18N.php b/tests/FunctionalTests/features/protected/pages/I18N/BasicI18N.php old mode 100644 new mode 100755 index 929e2f17..d4a98e26 --- a/tests/FunctionalTests/features/protected/pages/I18N/BasicI18N.php +++ b/tests/FunctionalTests/features/protected/pages/I18N/BasicI18N.php @@ -22,7 +22,7 @@ class BasicI18N extends TPage * @version $Revision: 1.66 $ $Date: ${DATE} ${TIME} $ * @package ${package} *//* -class BasicI18NTestCase extends SeleniumTestCase +class BasicI18NTestCase extends PradoGenericSeleniumTest { function setup() { @@ -41,5 +41,4 @@ class BasicI18NTestCase extends SeleniumTestCase $this->verifyTextPresent("Many things.", ""); } } -*/ -?> \ No newline at end of file +*/ \ No newline at end of file diff --git a/tests/FunctionalTests/features/protected/pages/I18N/Home.page b/tests/FunctionalTests/features/protected/pages/I18N/Home.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/I18N/Home.zh_CN.page b/tests/FunctionalTests/features/protected/pages/I18N/Home.zh_CN.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/I18N/config.xml b/tests/FunctionalTests/features/protected/pages/I18N/config.xml old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/I18N/messages/.gitignore b/tests/FunctionalTests/features/protected/pages/I18N/messages/.gitignore old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/MyJavascriptLib.php b/tests/FunctionalTests/features/protected/pages/MyJavascriptLib.php old mode 100644 new mode 100755 index 72e6061e..a3c4d5e4 --- a/tests/FunctionalTests/features/protected/pages/MyJavascriptLib.php +++ b/tests/FunctionalTests/features/protected/pages/MyJavascriptLib.php @@ -28,5 +28,3 @@ class MyJavascriptLib extends TComponent $this->_manager->registerScriptFile($url,$url); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/features/protected/pages/RatingList.page b/tests/FunctionalTests/features/protected/pages/RatingList.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/TestComp.php b/tests/FunctionalTests/features/protected/pages/TestComp.php old mode 100644 new mode 100755 index 0358357a..b70a4911 --- a/tests/FunctionalTests/features/protected/pages/TestComp.php +++ b/tests/FunctionalTests/features/protected/pages/TestComp.php @@ -16,5 +16,3 @@ class TestComp extends TControl MyJavascriptLib::registerPackage($this,$this->_class); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/features/protected/pages/ValidatorEffects.page b/tests/FunctionalTests/features/protected/pages/ValidatorEffects.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/protected/pages/myscripts/packages.php b/tests/FunctionalTests/features/protected/pages/myscripts/packages.php old mode 100644 new mode 100755 index e39199f9..a5666551 --- a/tests/FunctionalTests/features/protected/pages/myscripts/packages.php +++ b/tests/FunctionalTests/features/protected/pages/myscripts/packages.php @@ -6,5 +6,3 @@ $deps['test'] = array('test'); $deps['test2'] = array('test'); return array($packages,$deps); - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/features/protected/runtime/.gitignore b/tests/FunctionalTests/features/protected/runtime/.gitignore old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/features/tests/MyTestCase.php b/tests/FunctionalTests/features/tests/MyTestCase.php old mode 100644 new mode 100755 index 43a4762d..92b0886a --- a/tests/FunctionalTests/features/tests/MyTestCase.php +++ b/tests/FunctionalTests/features/tests/MyTestCase.php @@ -1,19 +1,10 @@ open('http://127.0.0.1'); $this->assertTextNotPresent('asd'); } - - function test2() - { - $this->skipBrowsers(self::FIREFOX); - $this->open('http://127.0.0.1'); - $this->assertTextNotPresent('asd'); - } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/index.php b/tests/FunctionalTests/index.php deleted file mode 100644 index 128e80e3..00000000 --- a/tests/FunctionalTests/index.php +++ /dev/null @@ -1,17 +0,0 @@ - - - -Prado Functional Test Suites - - - -

Prado Functional Test Suites

- - - diff --git a/tests/FunctionalTests/quickstart.php b/tests/FunctionalTests/quickstart.php deleted file mode 100755 index 3493a907..00000000 --- a/tests/FunctionalTests/quickstart.php +++ /dev/null @@ -1,8 +0,0 @@ -run(new SimpleReporter()); - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/ActiveControls/ActiveButtonTestCase.php b/tests/FunctionalTests/quickstart/ActiveControls/ActiveButtonTestCase.php old mode 100644 new mode 100755 index 408776f3..03861440 --- a/tests/FunctionalTests/quickstart/ActiveControls/ActiveButtonTestCase.php +++ b/tests/FunctionalTests/quickstart/ActiveControls/ActiveButtonTestCase.php @@ -1,6 +1,6 @@ verifyElementPresent("//input[@type='submit' and @value=\"I'm clicked using callback\"]", ""); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/ActiveControls/ActiveCheckBoxTestCase.php b/tests/FunctionalTests/quickstart/ActiveControls/ActiveCheckBoxTestCase.php old mode 100644 new mode 100755 index 15a3c798..4f210608 --- a/tests/FunctionalTests/quickstart/ActiveControls/ActiveCheckBoxTestCase.php +++ b/tests/FunctionalTests/quickstart/ActiveControls/ActiveCheckBoxTestCase.php @@ -1,7 +1,7 @@ assertChecked("//input[@name='ctl0\$body\$CheckBox2']"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/ActiveControls/ActiveCustomValidatorTestCase.php b/tests/FunctionalTests/quickstart/ActiveControls/ActiveCustomValidatorTestCase.php old mode 100644 new mode 100755 index 4b81e872..967842b0 --- a/tests/FunctionalTests/quickstart/ActiveControls/ActiveCustomValidatorTestCase.php +++ b/tests/FunctionalTests/quickstart/ActiveControls/ActiveCustomValidatorTestCase.php @@ -1,6 +1,6 @@ assertNotVisible($base.'validator1'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Advanced/I18N.php b/tests/FunctionalTests/quickstart/Advanced/I18N.php old mode 100644 new mode 100755 index fb8aa710..726501ce --- a/tests/FunctionalTests/quickstart/Advanced/I18N.php +++ b/tests/FunctionalTests/quickstart/Advanced/I18N.php @@ -1,7 +1,7 @@ \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/BulletedListTestCase.php b/tests/FunctionalTests/quickstart/Controls/BulletedListTestCase.php old mode 100644 new mode 100755 index e1987e38..0b272428 --- a/tests/FunctionalTests/quickstart/Controls/BulletedListTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/BulletedListTestCase.php @@ -1,6 +1,6 @@ verifyTextPresent("You clicked amazon : http://www.amazon.com/.", ""); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/ButtonTestCase.php b/tests/FunctionalTests/quickstart/Controls/ButtonTestCase.php old mode 100644 new mode 100755 index ca079c14..ad84e1d0 --- a/tests/FunctionalTests/quickstart/Controls/ButtonTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/ButtonTestCase.php @@ -1,6 +1,6 @@ verifyNotVisible('ctl0_body_ctl3'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/CheckBoxListTestCase.php b/tests/FunctionalTests/quickstart/Controls/CheckBoxListTestCase.php old mode 100644 new mode 100755 index 01db9da7..242bc815 --- a/tests/FunctionalTests/quickstart/Controls/CheckBoxListTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/CheckBoxListTestCase.php @@ -1,7 +1,7 @@ verifyNotVisible('ctl0_body_ctl8'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/CheckBoxTestCase.php b/tests/FunctionalTests/quickstart/Controls/CheckBoxTestCase.php old mode 100644 new mode 100755 index 4cd71bd4..57b50dd9 --- a/tests/FunctionalTests/quickstart/Controls/CheckBoxTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/CheckBoxTestCase.php @@ -1,6 +1,6 @@ verifyNotVisible('ctl0_body_ctl7'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/DataGrid1TestCase.php b/tests/FunctionalTests/quickstart/Controls/DataGrid1TestCase.php old mode 100644 new mode 100755 index 9eea13b8..57ee92ae --- a/tests/FunctionalTests/quickstart/Controls/DataGrid1TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/DataGrid1TestCase.php @@ -1,6 +1,6 @@ verifyAttribute("ctl0_body_DataGrid@cellpadding","2"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/DataGrid2TestCase.php b/tests/FunctionalTests/quickstart/Controls/DataGrid2TestCase.php old mode 100644 new mode 100755 index 6573125a..0473d6d5 --- a/tests/FunctionalTests/quickstart/Controls/DataGrid2TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/DataGrid2TestCase.php @@ -1,6 +1,6 @@ verifyTextPresent('Head First Design Patterns',''); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/DataGrid3TestCase.php b/tests/FunctionalTests/quickstart/Controls/DataGrid3TestCase.php old mode 100644 new mode 100755 index d342c791..47762d7d --- a/tests/FunctionalTests/quickstart/Controls/DataGrid3TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/DataGrid3TestCase.php @@ -1,6 +1,6 @@ verifyTextPresent("Extreme Programming Explained : Embrace Change",''); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/DataGrid4TestCase.php b/tests/FunctionalTests/quickstart/Controls/DataGrid4TestCase.php old mode 100644 new mode 100755 index 0e554dea..9a212dd8 --- a/tests/FunctionalTests/quickstart/Controls/DataGrid4TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/DataGrid4TestCase.php @@ -1,6 +1,6 @@ verifyAttribute('ctl0_body_DataGrid_ctl4_ctl5@checked','regexp:false|null'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/DataGrid5TestCase.php b/tests/FunctionalTests/quickstart/Controls/DataGrid5TestCase.php old mode 100644 new mode 100755 index c602ddf1..f854d44c --- a/tests/FunctionalTests/quickstart/Controls/DataGrid5TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/DataGrid5TestCase.php @@ -1,6 +1,6 @@ verifyTextNotPresent('ITN018',''); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/DataGrid6TestCase.php b/tests/FunctionalTests/quickstart/Controls/DataGrid6TestCase.php old mode 100644 new mode 100755 index 1bf00aff..c6fba20f --- a/tests/FunctionalTests/quickstart/Controls/DataGrid6TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/DataGrid6TestCase.php @@ -1,6 +1,6 @@ verifyTextNotPresent('ITN006',''); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/DataList1TestCase.php b/tests/FunctionalTests/quickstart/Controls/DataList1TestCase.php old mode 100644 new mode 100755 index 4a42bf7b..4ff6478a --- a/tests/FunctionalTests/quickstart/Controls/DataList1TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/DataList1TestCase.php @@ -1,6 +1,6 @@ verifyElementPresent("//td[@align='right']"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/DataList2TestCase.php b/tests/FunctionalTests/quickstart/Controls/DataList2TestCase.php old mode 100644 new mode 100755 index 4d91e409..4fb3743e --- a/tests/FunctionalTests/quickstart/Controls/DataList2TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/DataList2TestCase.php @@ -1,6 +1,6 @@ verifyTextPresent("Monitor ", ""); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/DropDownListTestCase.php b/tests/FunctionalTests/quickstart/Controls/DropDownListTestCase.php old mode 100644 new mode 100755 index ebd0b5e7..e374de1d --- a/tests/FunctionalTests/quickstart/Controls/DropDownListTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/DropDownListTestCase.php @@ -1,6 +1,6 @@ verifyNotVisible('ctl0_body_ctl8'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/ExpressionTestCase.php b/tests/FunctionalTests/quickstart/Controls/ExpressionTestCase.php old mode 100644 new mode 100755 index b474518d..4d47fecd --- a/tests/FunctionalTests/quickstart/Controls/ExpressionTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/ExpressionTestCase.php @@ -1,6 +1,6 @@ verifyTextPresent('PRADO QuickStart Sample'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/HtmlAreaTestCase.php b/tests/FunctionalTests/quickstart/Controls/HtmlAreaTestCase.php old mode 100644 new mode 100755 index 82d3ad24..caa7a893 --- a/tests/FunctionalTests/quickstart/Controls/HtmlAreaTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/HtmlAreaTestCase.php @@ -1,6 +1,6 @@ \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/HyperLinkTestCase.php b/tests/FunctionalTests/quickstart/Controls/HyperLinkTestCase.php old mode 100644 new mode 100755 index 3b48e961..dc0261e7 --- a/tests/FunctionalTests/quickstart/Controls/HyperLinkTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/HyperLinkTestCase.php @@ -1,6 +1,6 @@ verifyElementPresent("//a[contains(text(),'Body contents')]"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/ImageButtonTestCase.php b/tests/FunctionalTests/quickstart/Controls/ImageButtonTestCase.php old mode 100644 new mode 100755 index 32568e59..bf531d72 --- a/tests/FunctionalTests/quickstart/Controls/ImageButtonTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/ImageButtonTestCase.php @@ -1,6 +1,6 @@ verifyNotVisible('ctl0_body_ctl2'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/ImageTestCase.php b/tests/FunctionalTests/quickstart/Controls/ImageTestCase.php old mode 100644 new mode 100755 index f203f6aa..19e80470 --- a/tests/FunctionalTests/quickstart/Controls/ImageTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/ImageTestCase.php @@ -1,7 +1,7 @@ verifyElementPresent("//img[contains(@src,'/hello_world.gif') and contains(@longdesc,'HelloWorld.html')]"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/LabelTestCase.php b/tests/FunctionalTests/quickstart/Controls/LabelTestCase.php old mode 100644 new mode 100755 index a2a02ff5..03bba8ed --- a/tests/FunctionalTests/quickstart/Controls/LabelTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/LabelTestCase.php @@ -1,7 +1,7 @@ type("ctl0\$body\$test", "test"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/LinkButtonTestCase.php b/tests/FunctionalTests/quickstart/Controls/LinkButtonTestCase.php old mode 100644 new mode 100755 index 1f33ba07..57e7b975 --- a/tests/FunctionalTests/quickstart/Controls/LinkButtonTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/LinkButtonTestCase.php @@ -1,6 +1,6 @@ verifyNotVisible('ctl0_body_ctl4'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/ListBoxTestCase.php b/tests/FunctionalTests/quickstart/Controls/ListBoxTestCase.php old mode 100644 new mode 100755 index dcd048b5..bb1a8be0 --- a/tests/FunctionalTests/quickstart/Controls/ListBoxTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/ListBoxTestCase.php @@ -1,7 +1,7 @@ verifyNotVisible('ctl0_body_ctl12'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/MultiViewTestCase.php b/tests/FunctionalTests/quickstart/Controls/MultiViewTestCase.php old mode 100644 new mode 100755 index 080af26d..4a31a0be --- a/tests/FunctionalTests/quickstart/Controls/MultiViewTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/MultiViewTestCase.php @@ -1,6 +1,6 @@ verifySelected('ctl0$body$DropDownList', "label=Blue"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/PagerTestCase.php b/tests/FunctionalTests/quickstart/Controls/PagerTestCase.php old mode 100644 new mode 100755 index fac4160f..9ffbdcf6 --- a/tests/FunctionalTests/quickstart/Controls/PagerTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/PagerTestCase.php @@ -1,6 +1,6 @@ verifyTextNotPresent('ITN018',''); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/PanelTestCase.php b/tests/FunctionalTests/quickstart/Controls/PanelTestCase.php old mode 100644 new mode 100755 index 8d1e28fb..3def308b --- a/tests/FunctionalTests/quickstart/Controls/PanelTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/PanelTestCase.php @@ -1,6 +1,6 @@ verifyTextPresent("You have clicked on 'button2'."); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/RadioButtonListTestCase.php b/tests/FunctionalTests/quickstart/Controls/RadioButtonListTestCase.php old mode 100644 new mode 100755 index 6c179a24..659f20ff --- a/tests/FunctionalTests/quickstart/Controls/RadioButtonListTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/RadioButtonListTestCase.php @@ -1,7 +1,7 @@ verifyNotVisible('ctl0_body_ctl8'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/RadioButtonTestCase.php b/tests/FunctionalTests/quickstart/Controls/RadioButtonTestCase.php old mode 100644 new mode 100755 index 644d1c29..86a4bf86 --- a/tests/FunctionalTests/quickstart/Controls/RadioButtonTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/RadioButtonTestCase.php @@ -1,6 +1,6 @@ verifyTextPresent("Your selection is 34"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/Repeater1TestCase.php b/tests/FunctionalTests/quickstart/Controls/Repeater1TestCase.php old mode 100644 new mode 100755 index b2d51118..948055e1 --- a/tests/FunctionalTests/quickstart/Controls/Repeater1TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/Repeater1TestCase.php @@ -1,6 +1,6 @@ verifyElementPresent("//table[@cellpadding='2']"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/Repeater2TestCase.php b/tests/FunctionalTests/quickstart/Controls/Repeater2TestCase.php old mode 100644 new mode 100755 index b592a135..7d989fd0 --- a/tests/FunctionalTests/quickstart/Controls/Repeater2TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/Repeater2TestCase.php @@ -1,6 +1,6 @@ verifyElementPresent("//tr[@id='ctl0_body_Repeater_ctl4_Repeater2_ctl2_Row']",""); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/Repeater3TestCase.php b/tests/FunctionalTests/quickstart/Controls/Repeater3TestCase.php old mode 100644 new mode 100755 index e1922ffd..a5031af5 --- a/tests/FunctionalTests/quickstart/Controls/Repeater3TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/Repeater3TestCase.php @@ -1,6 +1,6 @@ verifyElementPresent("//td[text()='99.01']",''); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/StatementsTestCase.php b/tests/FunctionalTests/quickstart/Controls/StatementsTestCase.php old mode 100644 new mode 100755 index b8f322d7..a7c4c579 --- a/tests/FunctionalTests/quickstart/Controls/StatementsTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/StatementsTestCase.php @@ -1,6 +1,6 @@ verifyTextPresent('UniqueID is \'ctl0$body$ctl0\''); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/TabPanelTestCase.php b/tests/FunctionalTests/quickstart/Controls/TabPanelTestCase.php old mode 100644 new mode 100755 index 66417eda..d01e824d --- a/tests/FunctionalTests/quickstart/Controls/TabPanelTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/TabPanelTestCase.php @@ -1,6 +1,6 @@ verifyVisible('ctl0_body_ctl2'); // view 3 } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/TableTestCase.php b/tests/FunctionalTests/quickstart/Controls/TableTestCase.php old mode 100644 new mode 100755 index 7ea6fc39..128f4b22 --- a/tests/FunctionalTests/quickstart/Controls/TableTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/TableTestCase.php @@ -1,6 +1,6 @@ verifyElementPresent("//td[text()='Cell 1']"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/TextBoxTestCase.php b/tests/FunctionalTests/quickstart/Controls/TextBoxTestCase.php old mode 100644 new mode 100755 index 7bf46351..b17f9e9b --- a/tests/FunctionalTests/quickstart/Controls/TextBoxTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/TextBoxTestCase.php @@ -1,6 +1,6 @@ verifyNotVisible('ctl0_body_ctl15'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/Wizard1TestCase.php b/tests/FunctionalTests/quickstart/Controls/Wizard1TestCase.php old mode 100644 new mode 100755 index 474529a6..5e7018c4 --- a/tests/FunctionalTests/quickstart/Controls/Wizard1TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/Wizard1TestCase.php @@ -1,6 +1,6 @@ verifyTextPresent('Wizard Step 2'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/Wizard2TestCase.php b/tests/FunctionalTests/quickstart/Controls/Wizard2TestCase.php old mode 100644 new mode 100755 index 3c49bfd8..a77280ff --- a/tests/FunctionalTests/quickstart/Controls/Wizard2TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/Wizard2TestCase.php @@ -1,6 +1,6 @@ verifyTextPresent('Thank you for your answer'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/Wizard3TestCase.php b/tests/FunctionalTests/quickstart/Controls/Wizard3TestCase.php old mode 100644 new mode 100755 index 04224bb4..ec0efe90 --- a/tests/FunctionalTests/quickstart/Controls/Wizard3TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/Wizard3TestCase.php @@ -1,6 +1,6 @@ verifyTextPresent('Your favorite sport is: Baseball'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/Wizard4TestCase.php b/tests/FunctionalTests/quickstart/Controls/Wizard4TestCase.php old mode 100644 new mode 100755 index b2d757dc..3cbf1bd3 --- a/tests/FunctionalTests/quickstart/Controls/Wizard4TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/Wizard4TestCase.php @@ -1,6 +1,6 @@ verifyTextPresent('Step 3 of 3'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Controls/Wizard5TestCase.php b/tests/FunctionalTests/quickstart/Controls/Wizard5TestCase.php old mode 100644 new mode 100755 index 631167b9..debd8d43 --- a/tests/FunctionalTests/quickstart/Controls/Wizard5TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/Wizard5TestCase.php @@ -1,6 +1,6 @@ verifyTextPresent('Your favorite sport is: Football'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/quickstart/Fundamentals/HangmanTestCase.php b/tests/FunctionalTests/quickstart/Fundamentals/HangmanTestCase.php old mode 100644 new mode 100755 index 8803e352..3d531b47 --- a/tests/FunctionalTests/quickstart/Fundamentals/HangmanTestCase.php +++ b/tests/FunctionalTests/quickstart/Fundamentals/HangmanTestCase.php @@ -1,6 +1,6 @@ verifyTextPresent("maximum of 5", ""); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/selenium.css b/tests/FunctionalTests/selenium.css deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/FunctionalTests/tickets.php b/tests/FunctionalTests/tickets.php deleted file mode 100644 index ef8b52d6..00000000 --- a/tests/FunctionalTests/tickets.php +++ /dev/null @@ -1,8 +0,0 @@ -run(new SimpleReporter()); - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/assets/.gitignore b/tests/FunctionalTests/tickets/assets/.gitignore old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/index.php b/tests/FunctionalTests/tickets/index.php old mode 100644 new mode 100755 index fe127639..77ddf367 --- a/tests/FunctionalTests/tickets/index.php +++ b/tests/FunctionalTests/tickets/index.php @@ -4,5 +4,3 @@ require_once(dirname(__FILE__).'/../../../framework/prado.php'); $app=new TApplication; $app->run(); - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/index700.php b/tests/FunctionalTests/tickets/index700.php old mode 100644 new mode 100755 index d35f789f..a49485d6 --- a/tests/FunctionalTests/tickets/index700.php +++ b/tests/FunctionalTests/tickets/index700.php @@ -4,5 +4,3 @@ require_once(dirname(__FILE__).'/../../../framework/prado.php'); $app=new TApplication('protected700/application.xml'); $app->run(); - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/application.xml b/tests/FunctionalTests/tickets/protected/application.xml old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/controls/ToggleImageButton.php b/tests/FunctionalTests/tickets/protected/controls/ToggleImageButton.php old mode 100644 new mode 100755 index 861a8e31..9aecda84 --- a/tests/FunctionalTests/tickets/protected/controls/ToggleImageButton.php +++ b/tests/FunctionalTests/tickets/protected/controls/ToggleImageButton.php @@ -43,5 +43,3 @@ class ToggleImageButtonState extends TEnumerable { const Down='Down'; const Up='Up'; } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/controls/down.gif b/tests/FunctionalTests/tickets/protected/controls/down.gif old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/controls/up.gif b/tests/FunctionalTests/tickets/protected/controls/up.gif old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/messages/en/messages.xml b/tests/FunctionalTests/tickets/protected/messages/en/messages.xml old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/DActiveDropDownList2.php b/tests/FunctionalTests/tickets/protected/pages/DActiveDropDownList2.php old mode 100644 new mode 100755 index 532b17b0..4d354dcc --- a/tests/FunctionalTests/tickets/protected/pages/DActiveDropDownList2.php +++ b/tests/FunctionalTests/tickets/protected/pages/DActiveDropDownList2.php @@ -30,5 +30,3 @@ class DActiveDropDownList2 extends TActiveDropDownList $this->dataBind(); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/ExtendedToggleImageButton.php b/tests/FunctionalTests/tickets/protected/pages/ExtendedToggleImageButton.php old mode 100644 new mode 100755 index 5e7c8184..934efcef --- a/tests/FunctionalTests/tickets/protected/pages/ExtendedToggleImageButton.php +++ b/tests/FunctionalTests/tickets/protected/pages/ExtendedToggleImageButton.php @@ -13,5 +13,4 @@ prado::using ('Application.controls.ToggleImageButton'); class ExtendedToggleImageButton extends ToggleImageButton { -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Home.php b/tests/FunctionalTests/tickets/protected/pages/Home.php index 37804419..9bb123b9 100755 --- a/tests/FunctionalTests/tickets/protected/pages/Home.php +++ b/tests/FunctionalTests/tickets/protected/pages/Home.php @@ -30,5 +30,3 @@ class Home extends TPage return $list; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Issue120.page b/tests/FunctionalTests/tickets/protected/pages/Issue120.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Issue120.php b/tests/FunctionalTests/tickets/protected/pages/Issue120.php old mode 100644 new mode 100755 index ad6431a0..9a1d8800 --- a/tests/FunctionalTests/tickets/protected/pages/Issue120.php +++ b/tests/FunctionalTests/tickets/protected/pages/Issue120.php @@ -18,5 +18,3 @@ class Issue120 extends TPage } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Issue216.page b/tests/FunctionalTests/tickets/protected/pages/Issue216.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Issue216.php b/tests/FunctionalTests/tickets/protected/pages/Issue216.php old mode 100644 new mode 100755 index 41eac5e9..bfd23998 --- a/tests/FunctionalTests/tickets/protected/pages/Issue216.php +++ b/tests/FunctionalTests/tickets/protected/pages/Issue216.php @@ -10,5 +10,3 @@ class Issue216 extends TPage } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Layout.php b/tests/FunctionalTests/tickets/protected/pages/Layout.php old mode 100644 new mode 100755 index b971fb1c..c92cd9c0 --- a/tests/FunctionalTests/tickets/protected/pages/Layout.php +++ b/tests/FunctionalTests/tickets/protected/pages/Layout.php @@ -20,5 +20,3 @@ class Layout extends TTemplateControl } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Layout.tpl b/tests/FunctionalTests/tickets/protected/pages/Layout.tpl old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/TestHtmlArea.php b/tests/FunctionalTests/tickets/protected/pages/TestHtmlArea.php old mode 100644 new mode 100755 index 13a4189b..f4f9c148 --- a/tests/FunctionalTests/tickets/protected/pages/TestHtmlArea.php +++ b/tests/FunctionalTests/tickets/protected/pages/TestHtmlArea.php @@ -4,5 +4,3 @@ class TestHtmlArea extends THtmlArea { } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket121.page b/tests/FunctionalTests/tickets/protected/pages/Ticket121.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket121.php b/tests/FunctionalTests/tickets/protected/pages/Ticket121.php old mode 100644 new mode 100755 index d913805c..5cb61ca5 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket121.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket121.php @@ -7,5 +7,3 @@ class Ticket121 extends TPage $this->Result->Text="clicked at ({$param->X},{$param->Y})"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket163.page b/tests/FunctionalTests/tickets/protected/pages/Ticket163.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket169.page b/tests/FunctionalTests/tickets/protected/pages/Ticket169.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket191.page b/tests/FunctionalTests/tickets/protected/pages/Ticket191.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket191.php b/tests/FunctionalTests/tickets/protected/pages/Ticket191.php old mode 100644 new mode 100755 index 1b111bed..d7ef6d27 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket191.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket191.php @@ -18,5 +18,3 @@ class Ticket191 extends TPage $this->Application->setGlobalState('ticket190',$this->TextBox2->Text); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket200.page b/tests/FunctionalTests/tickets/protected/pages/Ticket200.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket200.php b/tests/FunctionalTests/tickets/protected/pages/Ticket200.php old mode 100644 new mode 100755 index a80a3b8a..e61bb157 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket200.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket200.php @@ -12,5 +12,3 @@ class Ticket200 extends TPage } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket202.page b/tests/FunctionalTests/tickets/protected/pages/Ticket202.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket205.page b/tests/FunctionalTests/tickets/protected/pages/Ticket205.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket205.php b/tests/FunctionalTests/tickets/protected/pages/Ticket205.php old mode 100644 new mode 100755 index 6145af9a..8df2be39 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket205.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket205.php @@ -7,5 +7,3 @@ class Ticket205 extends TPage $param->IsValid = $this->textbox1->Text == "Prado"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket207.page b/tests/FunctionalTests/tickets/protected/pages/Ticket207.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket21.page b/tests/FunctionalTests/tickets/protected/pages/Ticket21.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket21.php b/tests/FunctionalTests/tickets/protected/pages/Ticket21.php old mode 100644 new mode 100755 index 6a06a0f4..3caca20b --- a/tests/FunctionalTests/tickets/protected/pages/Ticket21.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket21.php @@ -18,5 +18,3 @@ class Ticket21 extends TPage $this->setViewState("clicks", $clicks); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket220.page b/tests/FunctionalTests/tickets/protected/pages/Ticket220.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket225.page b/tests/FunctionalTests/tickets/protected/pages/Ticket225.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket225.php b/tests/FunctionalTests/tickets/protected/pages/Ticket225.php old mode 100644 new mode 100755 index 2cc3fc38..82a447d8 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket225.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket225.php @@ -15,5 +15,3 @@ class Ticket225 extends TPage return $ids; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket227.page b/tests/FunctionalTests/tickets/protected/pages/Ticket227.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket239.page b/tests/FunctionalTests/tickets/protected/pages/Ticket239.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket239.php b/tests/FunctionalTests/tickets/protected/pages/Ticket239.php old mode 100644 new mode 100755 index bbf908b1..c1b3440c --- a/tests/FunctionalTests/tickets/protected/pages/Ticket239.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket239.php @@ -12,5 +12,3 @@ class Ticket239 extends TPage $this->Result->Text.=$sender->ID." is deactivated. "; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket246.page b/tests/FunctionalTests/tickets/protected/pages/Ticket246.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket269.page b/tests/FunctionalTests/tickets/protected/pages/Ticket269.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket27.page b/tests/FunctionalTests/tickets/protected/pages/Ticket27.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket273.page b/tests/FunctionalTests/tickets/protected/pages/Ticket273.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket273.php b/tests/FunctionalTests/tickets/protected/pages/Ticket273.php old mode 100644 new mode 100755 index 8dca86c9..fed130c8 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket273.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket273.php @@ -7,5 +7,3 @@ class Ticket273 extends TPage $this->label1->Text = $sender->Text . ' Clicked!'; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket274.page b/tests/FunctionalTests/tickets/protected/pages/Ticket274.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket278.page b/tests/FunctionalTests/tickets/protected/pages/Ticket278.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket278.php b/tests/FunctionalTests/tickets/protected/pages/Ticket278.php old mode 100644 new mode 100755 index 2e18fd54..86968b18 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket278.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket278.php @@ -19,5 +19,3 @@ class Ticket278 extends TPage $this->check1->Checked ? "display:block" : "display:none"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket28.page b/tests/FunctionalTests/tickets/protected/pages/Ticket28.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket28.php b/tests/FunctionalTests/tickets/protected/pages/Ticket28.php old mode 100644 new mode 100755 index 7980119e..32b539c1 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket28.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket28.php @@ -8,5 +8,3 @@ class Ticket28 extends TPage } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket283.page b/tests/FunctionalTests/tickets/protected/pages/Ticket283.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket283.php b/tests/FunctionalTests/tickets/protected/pages/Ticket283.php old mode 100644 new mode 100755 index 302ad2da..f230cd40 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket283.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket283.php @@ -7,5 +7,3 @@ class Ticket283 extends TPage $this->label1->Text = $sender->Text.' Clicked!'; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket284.page b/tests/FunctionalTests/tickets/protected/pages/Ticket284.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket284.php b/tests/FunctionalTests/tickets/protected/pages/Ticket284.php old mode 100644 new mode 100755 index f9380b12..7388b94b --- a/tests/FunctionalTests/tickets/protected/pages/Ticket284.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket284.php @@ -7,5 +7,3 @@ class Ticket284 extends TPage } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket284Component.php b/tests/FunctionalTests/tickets/protected/pages/Ticket284Component.php old mode 100644 new mode 100755 index 4405ca44..71f78269 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket284Component.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket284Component.php @@ -100,4 +100,3 @@ class Ticket284Component extends TTemplateControl implements IValidatable $this->_isValid=TPropertyValue::ensureBoolean($value); } } -?> diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket284Component.tpl b/tests/FunctionalTests/tickets/protected/pages/Ticket284Component.tpl old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket285.page b/tests/FunctionalTests/tickets/protected/pages/Ticket285.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket290.page b/tests/FunctionalTests/tickets/protected/pages/Ticket290.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket290.php b/tests/FunctionalTests/tickets/protected/pages/Ticket290.php old mode 100644 new mode 100755 index c5e9e357..ed7466fc --- a/tests/FunctionalTests/tickets/protected/pages/Ticket290.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket290.php @@ -12,5 +12,3 @@ class Ticket290 extends TPage $this->label2->Text = $sender->Text . " Clicked!"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket306.page b/tests/FunctionalTests/tickets/protected/pages/Ticket306.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket311.page b/tests/FunctionalTests/tickets/protected/pages/Ticket311.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket312.page b/tests/FunctionalTests/tickets/protected/pages/Ticket312.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket351.page b/tests/FunctionalTests/tickets/protected/pages/Ticket351.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket359.page b/tests/FunctionalTests/tickets/protected/pages/Ticket359.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket359.php b/tests/FunctionalTests/tickets/protected/pages/Ticket359.php old mode 100644 new mode 100755 index 6b15f699..341d3b4b --- a/tests/FunctionalTests/tickets/protected/pages/Ticket359.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket359.php @@ -9,5 +9,3 @@ class Ticket359 extends TPage $param->IsValid = $param->Value == 'Prado'; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket384.page b/tests/FunctionalTests/tickets/protected/pages/Ticket384.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket384.php b/tests/FunctionalTests/tickets/protected/pages/Ticket384.php old mode 100644 new mode 100755 index b485ef2b..98ecb4cf --- a/tests/FunctionalTests/tickets/protected/pages/Ticket384.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket384.php @@ -42,5 +42,3 @@ class Ticket384 extends TPage return $list; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket413.page b/tests/FunctionalTests/tickets/protected/pages/Ticket413.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket413.php b/tests/FunctionalTests/tickets/protected/pages/Ticket413.php old mode 100644 new mode 100755 index c7a7081a..164b3b4a --- a/tests/FunctionalTests/tickets/protected/pages/Ticket413.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket413.php @@ -27,5 +27,3 @@ class Ticket413 extends TPage } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket422.page b/tests/FunctionalTests/tickets/protected/pages/Ticket422.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket422.php b/tests/FunctionalTests/tickets/protected/pages/Ticket422.php old mode 100644 new mode 100755 index 85647ae2..c8c12077 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket422.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket422.php @@ -104,5 +104,3 @@ class Ticket422 extends TPage $this->list2->setSelectedValue("value 3 - item 3"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket433.page b/tests/FunctionalTests/tickets/protected/pages/Ticket433.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket433.php b/tests/FunctionalTests/tickets/protected/pages/Ticket433.php old mode 100644 new mode 100755 index a87f8f82..a2f63438 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket433.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket433.php @@ -20,5 +20,3 @@ class Ticket433 extends TPage $sender->Text .= ' CALLBACK DONE'; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket439.page b/tests/FunctionalTests/tickets/protected/pages/Ticket439.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket439.php b/tests/FunctionalTests/tickets/protected/pages/Ticket439.php old mode 100644 new mode 100755 index dcb46412..e70e0d1e --- a/tests/FunctionalTests/tickets/protected/pages/Ticket439.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket439.php @@ -11,5 +11,3 @@ class Ticket439 extends TPage $this->Response->redirect($page); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket453.page b/tests/FunctionalTests/tickets/protected/pages/Ticket453.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket463.page b/tests/FunctionalTests/tickets/protected/pages/Ticket463.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket470.page b/tests/FunctionalTests/tickets/protected/pages/Ticket470.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket470.php b/tests/FunctionalTests/tickets/protected/pages/Ticket470.php old mode 100644 new mode 100755 index 2e023242..e9ebff82 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket470.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket470.php @@ -20,5 +20,3 @@ class Ticket470 extends TPage $this->Results->Text = "OK!!!"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket472.page b/tests/FunctionalTests/tickets/protected/pages/Ticket472.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket472.php b/tests/FunctionalTests/tickets/protected/pages/Ticket472.php old mode 100644 new mode 100755 index f0b9c092..9f987aee --- a/tests/FunctionalTests/tickets/protected/pages/Ticket472.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket472.php @@ -9,5 +9,3 @@ class Ticket472 extends TPage $this->label1->Text = "丧两∞…壹åƒè‚†ã…•ã…“ㆈㆆㅰڂٸשסã›ãœãŒê’²ê’ºê“‚à¸à¸™àª”இ༃í í°¦Ò–ЉӅՓՇǢǼÅhe"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket477.page b/tests/FunctionalTests/tickets/protected/pages/Ticket477.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket477.php b/tests/FunctionalTests/tickets/protected/pages/Ticket477.php old mode 100644 new mode 100755 index a6309958..87213e08 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket477.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket477.php @@ -12,5 +12,3 @@ class Ticket477 extends TPage $param->IsValid=false; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket484.page b/tests/FunctionalTests/tickets/protected/pages/Ticket484.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket484.php b/tests/FunctionalTests/tickets/protected/pages/Ticket484.php old mode 100644 new mode 100755 index 89dac261..a6010297 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket484.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket484.php @@ -26,5 +26,3 @@ class Ticket484 extends TPage $this->label1->Text .= "using callback!"; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket488.page b/tests/FunctionalTests/tickets/protected/pages/Ticket488.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket488.php b/tests/FunctionalTests/tickets/protected/pages/Ticket488.php old mode 100644 new mode 100755 index 97334f21..400cda0a --- a/tests/FunctionalTests/tickets/protected/pages/Ticket488.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket488.php @@ -9,5 +9,3 @@ class Ticket488 extends TPage //$param->IsValid = $this->Password == 'Prado'; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket500.page b/tests/FunctionalTests/tickets/protected/pages/Ticket500.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket500.php b/tests/FunctionalTests/tickets/protected/pages/Ticket500.php old mode 100644 new mode 100755 index a0b96ed5..0c315ac5 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket500.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket500.php @@ -9,5 +9,3 @@ class Ticket500 extends TPage $this->link1->NavigateUrl = $url; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket504.page b/tests/FunctionalTests/tickets/protected/pages/Ticket504.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket504.php b/tests/FunctionalTests/tickets/protected/pages/Ticket504.php old mode 100644 new mode 100755 index 3d1bdfb6..07bdcd22 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket504.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket504.php @@ -21,5 +21,3 @@ class Ticket504 extends TPage die("parameter is ".$param->CallbackParameter); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket507.page b/tests/FunctionalTests/tickets/protected/pages/Ticket507.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket507.php b/tests/FunctionalTests/tickets/protected/pages/Ticket507.php old mode 100644 new mode 100755 index ea358e65..3f6549bb --- a/tests/FunctionalTests/tickets/protected/pages/Ticket507.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket507.php @@ -21,5 +21,3 @@ class Ticket507 extends TPage $this->list1->enabled = true; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket511.page b/tests/FunctionalTests/tickets/protected/pages/Ticket511.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket518.page b/tests/FunctionalTests/tickets/protected/pages/Ticket518.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket521.page b/tests/FunctionalTests/tickets/protected/pages/Ticket521.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket521.php b/tests/FunctionalTests/tickets/protected/pages/Ticket521.php old mode 100644 new mode 100755 index e7e65b86..37f005e0 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket521.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket521.php @@ -12,5 +12,4 @@ class Ticket521 extends TPage } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket526.page b/tests/FunctionalTests/tickets/protected/pages/Ticket526.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket526.php b/tests/FunctionalTests/tickets/protected/pages/Ticket526.php old mode 100644 new mode 100755 index 1500ad73..baca5d7a --- a/tests/FunctionalTests/tickets/protected/pages/Ticket526.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket526.php @@ -11,5 +11,3 @@ class Ticket526 extends TPage $this->activePanel->render($p->NewWriter); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket528.page b/tests/FunctionalTests/tickets/protected/pages/Ticket528.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket528.php b/tests/FunctionalTests/tickets/protected/pages/Ticket528.php old mode 100644 new mode 100755 index 2e05dbfd..1642f6e1 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket528.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket528.php @@ -31,5 +31,3 @@ class Ticket528 extends TPage $this->loadDadosTurno($sender->getSelectedValue()); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket535.page b/tests/FunctionalTests/tickets/protected/pages/Ticket535.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket535.php b/tests/FunctionalTests/tickets/protected/pages/Ticket535.php old mode 100644 new mode 100755 index 705a5474..830aa1bf --- a/tests/FunctionalTests/tickets/protected/pages/Ticket535.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket535.php @@ -12,5 +12,3 @@ class Ticket535 extends TPage $this->label1->Text = "bad_radio1 checked:{".$this->bad_radio1->getChecked()."} bad_radio2 checked:{".$this->bad_radio2->getChecked()."} "; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket538.page b/tests/FunctionalTests/tickets/protected/pages/Ticket538.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket538.php b/tests/FunctionalTests/tickets/protected/pages/Ticket538.php old mode 100644 new mode 100755 index 2ba0d841..1f437ad4 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket538.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket538.php @@ -98,5 +98,3 @@ class Ticket538 extends TPage } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket54.page b/tests/FunctionalTests/tickets/protected/pages/Ticket54.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket542.page b/tests/FunctionalTests/tickets/protected/pages/Ticket542.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket542.php b/tests/FunctionalTests/tickets/protected/pages/Ticket542.php old mode 100644 new mode 100755 index 59169d64..627fccc0 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket542.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket542.php @@ -19,5 +19,3 @@ class Ticket542 extends TPage { } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket54Master.php b/tests/FunctionalTests/tickets/protected/pages/Ticket54Master.php old mode 100644 new mode 100755 index 917f45cf..7b035662 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket54Master.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket54Master.php @@ -3,5 +3,3 @@ class Ticket54Master extends TTemplateControl { } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket54Master.tpl b/tests/FunctionalTests/tickets/protected/pages/Ticket54Master.tpl old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket573.page b/tests/FunctionalTests/tickets/protected/pages/Ticket573.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket578.page b/tests/FunctionalTests/tickets/protected/pages/Ticket578.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket578.php b/tests/FunctionalTests/tickets/protected/pages/Ticket578.php old mode 100644 new mode 100755 index 7b7463a2..ad9b50ba --- a/tests/FunctionalTests/tickets/protected/pages/Ticket578.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket578.php @@ -9,5 +9,3 @@ class Ticket578 extends TPage } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket583/Home.page b/tests/FunctionalTests/tickets/protected/pages/Ticket583/Home.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket585.page b/tests/FunctionalTests/tickets/protected/pages/Ticket585.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket585.php b/tests/FunctionalTests/tickets/protected/pages/Ticket585.php old mode 100644 new mode 100755 index 1cda7900..638b7453 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket585.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket585.php @@ -14,5 +14,3 @@ class Ticket585 extends TPage } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket586.page b/tests/FunctionalTests/tickets/protected/pages/Ticket586.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket586.php b/tests/FunctionalTests/tickets/protected/pages/Ticket586.php old mode 100644 new mode 100755 index 574d6f72..4691f984 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket586.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket586.php @@ -7,5 +7,3 @@ class Ticket586 extends TPage $this->label1->Text = $sender->Text . ' Clicked!'; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket587.page b/tests/FunctionalTests/tickets/protected/pages/Ticket587.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket587.php b/tests/FunctionalTests/tickets/protected/pages/Ticket587.php old mode 100644 new mode 100755 index 21ce7a64..851321c5 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket587.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket587.php @@ -8,5 +8,3 @@ class Ticket587 extends TPage $this->count->setText( ++$count ); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket587_reopened.page b/tests/FunctionalTests/tickets/protected/pages/Ticket587_reopened.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket587_reopened.php b/tests/FunctionalTests/tickets/protected/pages/Ticket587_reopened.php old mode 100644 new mode 100755 index fea88274..ea62dfb5 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket587_reopened.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket587_reopened.php @@ -58,5 +58,3 @@ class Ticket587_reopened extends TPage $this->label1->Text = $value; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket591.page b/tests/FunctionalTests/tickets/protected/pages/Ticket591.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket591.php b/tests/FunctionalTests/tickets/protected/pages/Ticket591.php old mode 100644 new mode 100755 index 8616ac02..be8b436c --- a/tests/FunctionalTests/tickets/protected/pages/Ticket591.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket591.php @@ -5,5 +5,3 @@ Prado::using('System.Web.UI.ActiveControls.*'); class Ticket591 extends TPage { } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket592.page b/tests/FunctionalTests/tickets/protected/pages/Ticket592.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket592.php b/tests/FunctionalTests/tickets/protected/pages/Ticket592.php old mode 100644 new mode 100755 index 751de056..6ace086c --- a/tests/FunctionalTests/tickets/protected/pages/Ticket592.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket592.php @@ -18,5 +18,3 @@ class Ticket592 extends TPage } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket593.page b/tests/FunctionalTests/tickets/protected/pages/Ticket593.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket595.page b/tests/FunctionalTests/tickets/protected/pages/Ticket595.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket598.page b/tests/FunctionalTests/tickets/protected/pages/Ticket598.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket598.php b/tests/FunctionalTests/tickets/protected/pages/Ticket598.php old mode 100644 new mode 100755 index a8c4c397..208867b6 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket598.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket598.php @@ -15,5 +15,4 @@ public function onLoad ($param) { public function updateLbl($sender, $param) { $this->Lbl->SetText(date("h:m:s")); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket603.page b/tests/FunctionalTests/tickets/protected/pages/Ticket603.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket603.php b/tests/FunctionalTests/tickets/protected/pages/Ticket603.php old mode 100644 new mode 100755 index 138ffbd4..d1b83220 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket603.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket603.php @@ -26,5 +26,3 @@ class Ticket603 extends TPage $this->ContentPanel->render( $param->NewWriter ); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket605.page b/tests/FunctionalTests/tickets/protected/pages/Ticket605.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket606.page b/tests/FunctionalTests/tickets/protected/pages/Ticket606.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket609.page b/tests/FunctionalTests/tickets/protected/pages/Ticket609.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket614.page b/tests/FunctionalTests/tickets/protected/pages/Ticket614.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket617.page b/tests/FunctionalTests/tickets/protected/pages/Ticket617.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket622.page b/tests/FunctionalTests/tickets/protected/pages/Ticket622.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket622.php b/tests/FunctionalTests/tickets/protected/pages/Ticket622.php old mode 100644 new mode 100755 index 003b32de..24565d09 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket622.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket622.php @@ -7,4 +7,3 @@ class Ticket622 extends TPage { $this->ARB->setDisplay('Dynamic'); } } -?> diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket653/Layout.php b/tests/FunctionalTests/tickets/protected/pages/Ticket653/Layout.php old mode 100644 new mode 100755 index de4d3b3d..9af5b134 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket653/Layout.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket653/Layout.php @@ -9,5 +9,3 @@ class Layout extends TTemplateControl $this->ticketlink->setNavigateUrl("http://trac.pradosoft.com/prado/ticket/653"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket653/Layout.tpl b/tests/FunctionalTests/tickets/protected/pages/Ticket653/Layout.tpl old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket653/ticket653.page b/tests/FunctionalTests/tickets/protected/pages/Ticket653/ticket653.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket656.page b/tests/FunctionalTests/tickets/protected/pages/Ticket656.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket656.php b/tests/FunctionalTests/tickets/protected/pages/Ticket656.php old mode 100644 new mode 100755 index 943908c9..8fd3794e --- a/tests/FunctionalTests/tickets/protected/pages/Ticket656.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket656.php @@ -5,5 +5,4 @@ class Ticket656 extends TPage { $this->lblStatus->setText($this->datePicker->getDate()); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket659.page b/tests/FunctionalTests/tickets/protected/pages/Ticket659.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket659.php b/tests/FunctionalTests/tickets/protected/pages/Ticket659.php old mode 100644 new mode 100755 index 68da138b..cb266fd7 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket659.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket659.php @@ -15,5 +15,4 @@ class Ticket659 extends TPage { public function clickToggleButton ($sender, $param) { $this->lbl->Text=$sender->State; } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket660.page b/tests/FunctionalTests/tickets/protected/pages/Ticket660.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket660.php b/tests/FunctionalTests/tickets/protected/pages/Ticket660.php old mode 100644 new mode 100755 index 457e3ed8..e0d611b8 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket660.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket660.php @@ -23,4 +23,3 @@ class Ticket660 extends TPage { } } -?> diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket669.page b/tests/FunctionalTests/tickets/protected/pages/Ticket669.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket669.php b/tests/FunctionalTests/tickets/protected/pages/Ticket669.php old mode 100644 new mode 100755 index 0131d95c..2cb86cff --- a/tests/FunctionalTests/tickets/protected/pages/Ticket669.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket669.php @@ -32,5 +32,3 @@ class Ticket669 extends TPage $this->panel7->render($param->getNewWriter()); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket670.page b/tests/FunctionalTests/tickets/protected/pages/Ticket670.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket670.php b/tests/FunctionalTests/tickets/protected/pages/Ticket670.php old mode 100644 new mode 100755 index 416b0235..fb474df6 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket670.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket670.php @@ -5,5 +5,4 @@ class Ticket670 extends TPage { $this->lbl->Text=$this->datePicker->getDate(); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket671.page b/tests/FunctionalTests/tickets/protected/pages/Ticket671.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket671.php b/tests/FunctionalTests/tickets/protected/pages/Ticket671.php old mode 100644 new mode 100755 index 04bd1a7e..3e76739d --- a/tests/FunctionalTests/tickets/protected/pages/Ticket671.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket671.php @@ -29,5 +29,4 @@ class Ticket671 extends TPage } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket671_reopened.page b/tests/FunctionalTests/tickets/protected/pages/Ticket671_reopened.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket671_reopened.php b/tests/FunctionalTests/tickets/protected/pages/Ticket671_reopened.php old mode 100644 new mode 100755 index ae45bf96..fcb70751 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket671_reopened.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket671_reopened.php @@ -35,5 +35,4 @@ class Ticket671_reopened extends TPage { return $this->getViewState('CheckCount', 0); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket679.page b/tests/FunctionalTests/tickets/protected/pages/Ticket679.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket679.php b/tests/FunctionalTests/tickets/protected/pages/Ticket679.php old mode 100644 new mode 100755 index c28252bd..4f5547f7 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket679.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket679.php @@ -39,5 +39,4 @@ class Ticket679 extends TPage //$this->CallbackClient->check($this->myRadioButton, false); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket68.page b/tests/FunctionalTests/tickets/protected/pages/Ticket68.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket691.page b/tests/FunctionalTests/tickets/protected/pages/Ticket691.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket691.php b/tests/FunctionalTests/tickets/protected/pages/Ticket691.php old mode 100644 new mode 100755 index a47a6a9d..91a72b27 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket691.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket691.php @@ -9,5 +9,4 @@ class Ticket691 extends TPage $sender->Rating=$sender->SelectedIndex+1; $this->Result->Text="You vote ".$sender->Rating; } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket695.page b/tests/FunctionalTests/tickets/protected/pages/Ticket695.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket695.php b/tests/FunctionalTests/tickets/protected/pages/Ticket695.php old mode 100644 new mode 100755 index 205b01c0..175d1ebc --- a/tests/FunctionalTests/tickets/protected/pages/Ticket695.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket695.php @@ -5,4 +5,3 @@ class Ticket695 extends TPage { $this->X->Text=$this->X->Text+1; } } -?> diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket698.page b/tests/FunctionalTests/tickets/protected/pages/Ticket698.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket698.php b/tests/FunctionalTests/tickets/protected/pages/Ticket698.php old mode 100644 new mode 100755 index e7bf6646..507cefbb --- a/tests/FunctionalTests/tickets/protected/pages/Ticket698.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket698.php @@ -11,5 +11,4 @@ class Ticket698 extends TPage public function switchContentTypeCallback( $sender, $param ) { $this->ContentPanel->render( $param->NewWriter ); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket703/Logs/LogFile.txt b/tests/FunctionalTests/tickets/protected/pages/Ticket703/Logs/LogFile.txt old mode 100644 new mode 100755 index e69de29b..af19780d --- a/tests/FunctionalTests/tickets/protected/pages/Ticket703/Logs/LogFile.txt +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket703/Logs/LogFile.txt @@ -0,0 +1 @@ +Sep 22 20:21:44 [Debug] [Tickets] Test of prado logging system diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket703/Ticket703.page b/tests/FunctionalTests/tickets/protected/pages/Ticket703/Ticket703.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket703/Ticket703.php b/tests/FunctionalTests/tickets/protected/pages/Ticket703/Ticket703.php old mode 100644 new mode 100755 index eb446077..54240798 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket703/Ticket703.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket703/Ticket703.php @@ -27,5 +27,4 @@ class Ticket703 extends TPage { { prado::log($this->logMessage->getText(), TLogger::DEBUG, "Tickets"); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket703/config.xml b/tests/FunctionalTests/tickets/protected/pages/Ticket703/config.xml old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket708.page b/tests/FunctionalTests/tickets/protected/pages/Ticket708.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket708.php b/tests/FunctionalTests/tickets/protected/pages/Ticket708.php old mode 100644 new mode 100755 index 2eca39d9..275fa869 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket708.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket708.php @@ -26,5 +26,4 @@ class Ticket708 extends TPage { $this->Result->setText("You have selected Radio Button #".$sender->getValue()); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket719.page b/tests/FunctionalTests/tickets/protected/pages/Ticket719.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket719.php b/tests/FunctionalTests/tickets/protected/pages/Ticket719.php old mode 100644 new mode 100755 index a08aac36..376eecdd --- a/tests/FunctionalTests/tickets/protected/pages/Ticket719.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket719.php @@ -37,5 +37,4 @@ class Ticket719 extends TPage { $this->Result->Text = "TextBox Content : ".$this->textbox->getText()." -- Autocomplete Content :".$this->autocomplete->getText(); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket72.page b/tests/FunctionalTests/tickets/protected/pages/Ticket72.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket72.php b/tests/FunctionalTests/tickets/protected/pages/Ticket72.php old mode 100644 new mode 100755 index 14a8a112..997c0d8d --- a/tests/FunctionalTests/tickets/protected/pages/Ticket72.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket72.php @@ -9,5 +9,3 @@ class Ticket72 extends TPage $this->ResultLabel->Text = $a2; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket722.page b/tests/FunctionalTests/tickets/protected/pages/Ticket722.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket722.php b/tests/FunctionalTests/tickets/protected/pages/Ticket722.php old mode 100644 new mode 100755 index 91759fb0..71bf2841 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket722.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket722.php @@ -26,5 +26,4 @@ class Ticket722 extends TPage { return $this->getViewState('text', "Editable Text"); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket745.php b/tests/FunctionalTests/tickets/protected/pages/Ticket745.php index 8d7c66ce..f50d17f1 100755 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket745.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket745.php @@ -7,5 +7,3 @@ class Ticket745 extends TPage $this->Result->Text="Your favorite color is: " . $this->DropDownList1->SelectedValue; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket769.page b/tests/FunctionalTests/tickets/protected/pages/Ticket769.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket769.php b/tests/FunctionalTests/tickets/protected/pages/Ticket769.php old mode 100644 new mode 100755 index e1a86f0d..95bdd62d --- a/tests/FunctionalTests/tickets/protected/pages/Ticket769.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket769.php @@ -22,5 +22,4 @@ class Ticket769 extends TPage { $sender->Text = $sender->Text.' clicked'; } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket785.page b/tests/FunctionalTests/tickets/protected/pages/Ticket785.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket785.php b/tests/FunctionalTests/tickets/protected/pages/Ticket785.php old mode 100644 new mode 100755 index 91ba918d..57b5f241 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket785.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket785.php @@ -3,5 +3,4 @@ class Ticket785 extends TPage { -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket823.page b/tests/FunctionalTests/tickets/protected/pages/Ticket823.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket828.page b/tests/FunctionalTests/tickets/protected/pages/Ticket828.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket849.page b/tests/FunctionalTests/tickets/protected/pages/Ticket849.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket876.page b/tests/FunctionalTests/tickets/protected/pages/Ticket876.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket876.php b/tests/FunctionalTests/tickets/protected/pages/Ticket876.php old mode 100644 new mode 100755 index e95a677c..f6cc22e5 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket876.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket876.php @@ -8,4 +8,3 @@ class Ticket876 extends TPage { } -?> diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket886.page b/tests/FunctionalTests/tickets/protected/pages/Ticket886.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket886.php b/tests/FunctionalTests/tickets/protected/pages/Ticket886.php old mode 100644 new mode 100755 index f14d067d..4a989dbb --- a/tests/FunctionalTests/tickets/protected/pages/Ticket886.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket886.php @@ -6,4 +6,3 @@ class Ticket886 extends TPage { } } -?> diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket897.page b/tests/FunctionalTests/tickets/protected/pages/Ticket897.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket897.php b/tests/FunctionalTests/tickets/protected/pages/Ticket897.php old mode 100644 new mode 100755 index b0b8959f..358572bc --- a/tests/FunctionalTests/tickets/protected/pages/Ticket897.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket897.php @@ -6,4 +6,3 @@ class Ticket897 extends TPage { } } -?> diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket900.page b/tests/FunctionalTests/tickets/protected/pages/Ticket900.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket900.php b/tests/FunctionalTests/tickets/protected/pages/Ticket900.php old mode 100644 new mode 100755 index 21e87f67..5e8a1d07 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket900.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket900.php @@ -55,4 +55,3 @@ class Ticket900 extends TPage { } } -?> diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket922.page b/tests/FunctionalTests/tickets/protected/pages/Ticket922.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket922.php b/tests/FunctionalTests/tickets/protected/pages/Ticket922.php old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket925.php b/tests/FunctionalTests/tickets/protected/pages/Ticket925.php index 0284bd66..02cef023 100755 --- a/tests/FunctionalTests/tickets/protected/pages/Ticket925.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket925.php @@ -72,5 +72,4 @@ class Ticket925 extends TPage } } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket93.page b/tests/FunctionalTests/tickets/protected/pages/Ticket93.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket93.php b/tests/FunctionalTests/tickets/protected/pages/Ticket93.php old mode 100644 new mode 100755 index dbee4556..6b37932a --- a/tests/FunctionalTests/tickets/protected/pages/Ticket93.php +++ b/tests/FunctionalTests/tickets/protected/pages/Ticket93.php @@ -11,4 +11,3 @@ class Ticket93 extends TPage } } -?> diff --git a/tests/FunctionalTests/tickets/protected/pages/config.xml b/tests/FunctionalTests/tickets/protected/pages/config.xml old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/hotspot.jpg b/tests/FunctionalTests/tickets/protected/pages/hotspot.jpg old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/pages/test.js b/tests/FunctionalTests/tickets/protected/pages/test.js old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected/runtime/.gitignore b/tests/FunctionalTests/tickets/protected/runtime/.gitignore old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected700/application.xml b/tests/FunctionalTests/tickets/protected700/application.xml old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected700/common/BasePage.php b/tests/FunctionalTests/tickets/protected700/common/BasePage.php old mode 100644 new mode 100755 index bbb93650..0a68f56d --- a/tests/FunctionalTests/tickets/protected700/common/BasePage.php +++ b/tests/FunctionalTests/tickets/protected700/common/BasePage.php @@ -64,5 +64,3 @@ class BasePage extends TPage $this->_param5=$value; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected700/layout/MainLayout.php b/tests/FunctionalTests/tickets/protected700/layout/MainLayout.php old mode 100644 new mode 100755 index 6f385ce8..26bd782a --- a/tests/FunctionalTests/tickets/protected700/layout/MainLayout.php +++ b/tests/FunctionalTests/tickets/protected700/layout/MainLayout.php @@ -8,5 +8,3 @@ class MainLayout extends TTemplateControl $this->Response->reload(); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected700/layout/MainLayout.tpl b/tests/FunctionalTests/tickets/protected700/layout/MainLayout.tpl old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected700/pages/Home.page b/tests/FunctionalTests/tickets/protected700/pages/Home.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected700/pages/UserLogin.page b/tests/FunctionalTests/tickets/protected700/pages/UserLogin.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected700/pages/UserLogin.php b/tests/FunctionalTests/tickets/protected700/pages/UserLogin.php old mode 100644 new mode 100755 index 8071fb29..9003adfe --- a/tests/FunctionalTests/tickets/protected700/pages/UserLogin.php +++ b/tests/FunctionalTests/tickets/protected700/pages/UserLogin.php @@ -9,5 +9,3 @@ class UserLogin extends BasePage $this->Response->redirect($this->Service->constructUrl('Home')); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/protected700/pages/admin/Home.page b/tests/FunctionalTests/tickets/protected700/pages/admin/Home.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected700/pages/admin/Home2.page b/tests/FunctionalTests/tickets/protected700/pages/admin/Home2.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected700/pages/admin/config.xml b/tests/FunctionalTests/tickets/protected700/pages/admin/config.xml old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected700/pages/admin/users/Home.page b/tests/FunctionalTests/tickets/protected700/pages/admin/users/Home.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected700/pages/admin/users/Home2.page b/tests/FunctionalTests/tickets/protected700/pages/admin/users/Home2.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected700/pages/admin/users/config.xml b/tests/FunctionalTests/tickets/protected700/pages/admin/users/config.xml old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected700/pages/config.xml b/tests/FunctionalTests/tickets/protected700/pages/config.xml old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected700/pages/content/Home.page b/tests/FunctionalTests/tickets/protected700/pages/content/Home.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/protected700/runtime/.gitignore b/tests/FunctionalTests/tickets/protected700/runtime/.gitignore old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/tickets/tests/Issue120TestCase.php b/tests/FunctionalTests/tickets/tests/Issue120TestCase.php old mode 100644 new mode 100755 index 07afd06c..20a4096b --- a/tests/FunctionalTests/tickets/tests/Issue120TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Issue120TestCase.php @@ -1,6 +1,6 @@ assertSelectedValue("ctl0_Content_ddl1", 'PromptValue'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Issue216TestCase.php b/tests/FunctionalTests/tickets/tests/Issue216TestCase.php old mode 100644 new mode 100755 index 0c351f33..375f90a7 --- a/tests/FunctionalTests/tickets/tests/Issue216TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Issue216TestCase.php @@ -1,6 +1,6 @@ assertText("ctl0_Content_result", "Tab ActiveIndex is : 1"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket121TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket121TestCase.php old mode 100644 new mode 100755 index 3cad6c77..905a31a4 --- a/tests/FunctionalTests/tickets/tests/Ticket121TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket121TestCase.php @@ -1,6 +1,6 @@ verifyTextPresent("clicked at", ""); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket163TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket163TestCase.php old mode 100644 new mode 100755 index cc78c466..1727ac40 --- a/tests/FunctionalTests/tickets/tests/Ticket163TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket163TestCase.php @@ -1,6 +1,6 @@ assertTextPresent('-kr 100,00'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket169TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket169TestCase.php old mode 100644 new mode 100755 index 30bbc92d..9889ea50 --- a/tests/FunctionalTests/tickets/tests/Ticket169TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket169TestCase.php @@ -1,6 +1,6 @@ assertVisible('ctl0_Content_validator1'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket191TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket191TestCase.php old mode 100644 new mode 100755 index 616a578a..88de08cc --- a/tests/FunctionalTests/tickets/tests/Ticket191TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket191TestCase.php @@ -1,6 +1,6 @@ verifyNotVisible('ctl0_Content_ctl2'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket205TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket205TestCase.php old mode 100644 new mode 100755 index d883cce4..86768354 --- a/tests/FunctionalTests/tickets/tests/Ticket205TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket205TestCase.php @@ -1,6 +1,6 @@ assertNotVisible("{$base}validator1"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket207TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket207TestCase.php old mode 100644 new mode 100755 index 53ae6528..cd618a5d --- a/tests/FunctionalTests/tickets/tests/Ticket207TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket207TestCase.php @@ -1,6 +1,6 @@ assertVisible("{$base}validator2"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket21TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket21TestCase.php old mode 100644 new mode 100755 index 24c5e346..5e48ff2d --- a/tests/FunctionalTests/tickets/tests/Ticket21TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket21TestCase.php @@ -1,12 +1,9 @@ skipBrowsers(self::OPERA); - $this->open('tickets/index.php?page=Ticket21'); $this->assertTitle("Verifying Ticket 21"); $this->clickAndWait("ctl0_Content_button1"); @@ -15,5 +12,3 @@ class Ticket21TestCase extends SeleniumTestCase $this->verifyTextPresent("Radio button clicks: 1", ""); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket220TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket220TestCase.php old mode 100644 new mode 100755 index 0753f732..72a1b227 --- a/tests/FunctionalTests/tickets/tests/Ticket220TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket220TestCase.php @@ -1,6 +1,6 @@ assertAlertNotPresent(); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket225TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket225TestCase.php old mode 100644 new mode 100755 index e8c0f612..c723be38 --- a/tests/FunctionalTests/tickets/tests/Ticket225TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket225TestCase.php @@ -1,12 +1,9 @@ skipBrowsers(self::OPERA); - $base="ctl0_Content_"; $this->open('tickets/index.php?page=Ticket225'); $this->assertTextPresent('RadioButton Group Tests'); @@ -23,5 +20,3 @@ class Ticket225TestCase extends SeleniumTestCase $this->assertNotVisible("{$base}validator1"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket227TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket227TestCase.php old mode 100644 new mode 100755 index c0dd2a98..1f1c0fb9 --- a/tests/FunctionalTests/tickets/tests/Ticket227TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket227TestCase.php @@ -1,6 +1,6 @@ assertTitle('Verifying Ticket 227'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket239TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket239TestCase.php old mode 100644 new mode 100755 index 2fe84397..57251d23 --- a/tests/FunctionalTests/tickets/tests/Ticket239TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket239TestCase.php @@ -1,6 +1,6 @@ verifyTextNotPresent('view3 is deactivated',''); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket246TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket246TestCase.php old mode 100644 new mode 100755 index 8f07790e..bedd6e2c --- a/tests/FunctionalTests/tickets/tests/Ticket246TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket246TestCase.php @@ -1,6 +1,6 @@ assertTitle('Verifying Ticket 246'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket274TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket274TestCase.php old mode 100644 new mode 100755 index b7ba1251..b2b17de7 --- a/tests/FunctionalTests/tickets/tests/Ticket274TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket274TestCase.php @@ -1,6 +1,6 @@ assertVisible($base.'validator2'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket278TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket278TestCase.php old mode 100644 new mode 100755 index a559ca14..4bfffede --- a/tests/FunctionalTests/tickets/tests/Ticket278TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket278TestCase.php @@ -1,12 +1,9 @@ skipBrowsers(self::OPERA); - $base = 'ctl0_Content_'; $this->open('tickets/index.php?page=Ticket278'); $this->assertTitle('Verifying Ticket 278'); @@ -53,5 +50,3 @@ class Ticket278TestCase extends SeleniumTestCase $this->assertVisible($base.'panel1'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket27TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket27TestCase.php old mode 100644 new mode 100755 index dac852e2..7defd7ae --- a/tests/FunctionalTests/tickets/tests/Ticket27TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket27TestCase.php @@ -1,6 +1,6 @@ assertNotVisible("ctl0_Content_validator1", ""); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket284TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket284TestCase.php old mode 100644 new mode 100755 index 15194f60..d28ea771 --- a/tests/FunctionalTests/tickets/tests/Ticket284TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket284TestCase.php @@ -1,6 +1,6 @@ \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket285TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket285TestCase.php old mode 100644 new mode 100755 index 6f4a2a8e..8b996964 --- a/tests/FunctionalTests/tickets/tests/Ticket285TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket285TestCase.php @@ -1,6 +1,6 @@ assertTextPresent('350.00'); $this->assertTextPresent('349.99'); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket28TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket28TestCase.php old mode 100644 new mode 100755 index 960dd2d8..1f64b3f9 --- a/tests/FunctionalTests/tickets/tests/Ticket28TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket28TestCase.php @@ -1,6 +1,6 @@ assertTextPresent('Link Button 1 Clicked!'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket290TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket290TestCase.php old mode 100644 new mode 100755 index e32e58bf..214c728b --- a/tests/FunctionalTests/tickets/tests/Ticket290TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket290TestCase.php @@ -3,7 +3,7 @@ /** * */ -class Ticket290TestCase extends SeleniumTestCase +class Ticket290TestCase extends PradoGenericSeleniumTest { function test() { @@ -22,5 +22,3 @@ class Ticket290TestCase extends SeleniumTestCase } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket433TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket433TestCase.php old mode 100644 new mode 100755 index b855edc8..b8462988 --- a/tests/FunctionalTests/tickets/tests/Ticket433TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket433TestCase.php @@ -1,6 +1,6 @@ assertText("{$base}VoteClick", "AFTER click CALLBACK DONE"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket439TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket439TestCase.php old mode 100644 new mode 100755 index e097a9ce..c393de91 --- a/tests/FunctionalTests/tickets/tests/Ticket439TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket439TestCase.php @@ -1,6 +1,6 @@ pause(800); $this->assertTitle("Verifying Home"); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket463TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket463TestCase.php old mode 100644 new mode 100755 index 9da3be34..34ffb8fd --- a/tests/FunctionalTests/tickets/tests/Ticket463TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket463TestCase.php @@ -1,6 +1,6 @@ assertTextPresent('May 1, 2005 12:00:00 AM'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket470TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket470TestCase.php old mode 100644 new mode 100755 index a2c4826e..4a2804ea --- a/tests/FunctionalTests/tickets/tests/Ticket470TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket470TestCase.php @@ -1,6 +1,6 @@ assertNotVisible("{$base}validator1"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket477TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket477TestCase.php old mode 100644 new mode 100755 index 10c36e7d..16ebc56e --- a/tests/FunctionalTests/tickets/tests/Ticket477TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket477TestCase.php @@ -1,6 +1,6 @@ assertVisible("{$base}validator2"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket488TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket488TestCase.php old mode 100644 new mode 100755 index d96b92f1..c3b2f43f --- a/tests/FunctionalTests/tickets/tests/Ticket488TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket488TestCase.php @@ -1,6 +1,6 @@ \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket504TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket504TestCase.php old mode 100644 new mode 100755 index 5629e5f3..63ecfe2f --- a/tests/FunctionalTests/tickets/tests/Ticket504TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket504TestCase.php @@ -1,6 +1,6 @@ \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket507TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket507TestCase.php old mode 100644 new mode 100755 index a430fb4e..19d54e9b --- a/tests/FunctionalTests/tickets/tests/Ticket507TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket507TestCase.php @@ -1,6 +1,6 @@ assertText("{$base}label1", "Selection: value 1, value 3"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket521TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket521TestCase.php old mode 100644 new mode 100755 index b0cdd8af..2df88612 --- a/tests/FunctionalTests/tickets/tests/Ticket521TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket521TestCase.php @@ -1,6 +1,6 @@ \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket526TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket526TestCase.php old mode 100644 new mode 100755 index c8894082..7476db69 --- a/tests/FunctionalTests/tickets/tests/Ticket526TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket526TestCase.php @@ -1,6 +1,6 @@ pause(800); $this->assertElementPresent("{$base}dpbutton"); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket528TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket528TestCase.php old mode 100644 new mode 100755 index 79791444..3903000a --- a/tests/FunctionalTests/tickets/tests/Ticket528TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket528TestCase.php @@ -1,6 +1,6 @@ \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket535TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket535TestCase.php old mode 100644 new mode 100755 index 222f4b7b..f3ed5bf1 --- a/tests/FunctionalTests/tickets/tests/Ticket535TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket535TestCase.php @@ -1,6 +1,6 @@ \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket538TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket538TestCase.php old mode 100644 new mode 100755 index 20730b25..16b0f863 --- a/tests/FunctionalTests/tickets/tests/Ticket538TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket538TestCase.php @@ -1,6 +1,6 @@ assertText("{$base}ALLog", '4- "test1", 10- "test2",'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket54TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket54TestCase.php old mode 100644 new mode 100755 index 62d2599d..f8e5a469 --- a/tests/FunctionalTests/tickets/tests/Ticket54TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket54TestCase.php @@ -1,6 +1,6 @@ verifyTextPresent("|A|a|B|b|C|", ""); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket573TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket573TestCase.php old mode 100644 new mode 100755 index 755d5dd6..996d72e9 --- a/tests/FunctionalTests/tickets/tests/Ticket573TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket573TestCase.php @@ -1,6 +1,6 @@ assertText('test1', '10.00'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket578TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket578TestCase.php old mode 100644 new mode 100755 index 5f3bd4d6..bc115927 --- a/tests/FunctionalTests/tickets/tests/Ticket578TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket578TestCase.php @@ -1,6 +1,6 @@ \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket585TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket585TestCase.php old mode 100644 new mode 100755 index 2b3f671b..8b2d36b3 --- a/tests/FunctionalTests/tickets/tests/Ticket585TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket585TestCase.php @@ -1,6 +1,6 @@ assertVisible("{$base}validator1"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket586TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket586TestCase.php old mode 100644 new mode 100755 index 037b9223..04b9fe57 --- a/tests/FunctionalTests/tickets/tests/Ticket586TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket586TestCase.php @@ -1,6 +1,6 @@ assertText("{$base}label1", "Button 2 (default) Clicked!"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket587TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket587TestCase.php old mode 100644 new mode 100755 index f8255a2f..c7662b5c --- a/tests/FunctionalTests/tickets/tests/Ticket587TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket587TestCase.php @@ -1,10 +1,9 @@ skipBrowsers(self::INTERNET_EXPLORER); $base = 'ctl0_Content_'; $this->open('tickets/index.php?page=Ticket587_reopened'); $this->assertTitle("Verifying Ticket 587_reopened"); @@ -43,5 +42,3 @@ class Ticket587TestCase extends SeleniumTestCase $this->assertText($base."label1", "Selection 2: asd 3 - item 2"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket592TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket592TestCase.php old mode 100644 new mode 100755 index b6a734b8..8f49ff91 --- a/tests/FunctionalTests/tickets/tests/Ticket592TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket592TestCase.php @@ -1,6 +1,6 @@ \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket595TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket595TestCase.php old mode 100644 new mode 100755 index 4321bd67..317795d6 --- a/tests/FunctionalTests/tickets/tests/Ticket595TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket595TestCase.php @@ -1,6 +1,6 @@ assertAttribute($base.'B@class','null'); } } -?> diff --git a/tests/FunctionalTests/tickets/tests/Ticket622TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket622TestCase.php old mode 100644 new mode 100755 index 61b7d314..9210d9b5 --- a/tests/FunctionalTests/tickets/tests/Ticket622TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket622TestCase.php @@ -1,6 +1,6 @@ assertAttribute('css=span#arb span@style','null'); } } -?> diff --git a/tests/FunctionalTests/tickets/tests/Ticket653TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket653TestCase.php old mode 100644 new mode 100755 index d4a05fd8..ec5eceb4 --- a/tests/FunctionalTests/tickets/tests/Ticket653TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket653TestCase.php @@ -1,6 +1,6 @@ assertText('textspan', 'This is the page for Ticket653'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket656TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket656TestCase.php old mode 100644 new mode 100755 index df77334b..ff167b0e --- a/tests/FunctionalTests/tickets/tests/Ticket656TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket656TestCase.php @@ -1,5 +1,5 @@ assertText($base."lblStatus",date("d-m-Y", mktime(0,0,0,10,20,2008))); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket659TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket659TestCase.php old mode 100644 new mode 100755 index 8d705772..91326e9d --- a/tests/FunctionalTests/tickets/tests/Ticket659TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket659TestCase.php @@ -1,6 +1,6 @@ assertText("${base}lbl", "Up"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket660TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket660TestCase.php old mode 100644 new mode 100755 index 5156d7b4..7fcc5766 --- a/tests/FunctionalTests/tickets/tests/Ticket660TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket660TestCase.php @@ -1,5 +1,5 @@ diff --git a/tests/FunctionalTests/tickets/tests/Ticket669TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket669TestCase.php old mode 100644 new mode 100755 index c3c2fa5d..be3483f4 --- a/tests/FunctionalTests/tickets/tests/Ticket669TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket669TestCase.php @@ -1,5 +1,5 @@ \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket670TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket670TestCase.php old mode 100644 new mode 100755 index 657e1137..33e45b49 --- a/tests/FunctionalTests/tickets/tests/Ticket670TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket670TestCase.php @@ -1,5 +1,5 @@ \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket671TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket671TestCase.php old mode 100644 new mode 100755 index 866fc330..031dc991 --- a/tests/FunctionalTests/tickets/tests/Ticket671TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket671TestCase.php @@ -1,5 +1,5 @@ verifyText($base.'lblResult2', 'Thanks !'); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket671_reopenedTestCase.php b/tests/FunctionalTests/tickets/tests/Ticket671_reopenedTestCase.php old mode 100644 new mode 100755 index 63c191cb..639f9e3d --- a/tests/FunctionalTests/tickets/tests/Ticket671_reopenedTestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket671_reopenedTestCase.php @@ -1,6 +1,6 @@ assertText($base.'Result', 'Check callback called (6) --- Save callback called DATA OK'); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket679TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket679TestCase.php old mode 100644 new mode 100755 index 9ab29115..4ee22c20 --- a/tests/FunctionalTests/tickets/tests/Ticket679TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket679TestCase.php @@ -1,5 +1,5 @@ pause(800); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket691TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket691TestCase.php old mode 100644 new mode 100755 index 12371e74..a441f82c --- a/tests/FunctionalTests/tickets/tests/Ticket691TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket691TestCase.php @@ -1,5 +1,5 @@ assertText($base."Result", "You vote 3"); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket698TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket698TestCase.php old mode 100644 new mode 100755 index 30911d5d..8f58a320 --- a/tests/FunctionalTests/tickets/tests/Ticket698TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket698TestCase.php @@ -1,5 +1,5 @@ assertNotVisible($base."EditHtmlTextBox"); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket700TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket700TestCase.php old mode 100644 new mode 100755 index c8929693..0366c2fc --- a/tests/FunctionalTests/tickets/tests/Ticket700TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket700TestCase.php @@ -1,5 +1,5 @@ assertTextPresent('|Param5: Set at app config|'); $this->clickAndWait('ctl0_Logout'); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket703TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket703TestCase.php old mode 100644 new mode 100755 index b001aa28..515bc275 --- a/tests/FunctionalTests/tickets/tests/Ticket703TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket703TestCase.php @@ -1,5 +1,5 @@ click($base.'ctl1'); $this->assertTextPresent($base.'logBox', "Test of prado logging system"); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket708TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket708TestCase.php old mode 100644 new mode 100755 index 7c9f706b..87509b29 --- a/tests/FunctionalTests/tickets/tests/Ticket708TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket708TestCase.php @@ -1,5 +1,5 @@ assertText($base."Result", "You have selected Radio Button #4"); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket719TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket719TestCase.php old mode 100644 new mode 100755 index 51b321ad..e340306a --- a/tests/FunctionalTests/tickets/tests/Ticket719TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket719TestCase.php @@ -1,6 +1,6 @@ assertText("${base}Result", "TextBox Content : Prado -- Autocomplete Content :France"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket722TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket722TestCase.php old mode 100644 new mode 100755 index 68a0282c..62e13526 --- a/tests/FunctionalTests/tickets/tests/Ticket722TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket722TestCase.php @@ -1,5 +1,5 @@ \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket72TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket72TestCase.php old mode 100644 new mode 100755 index 346b08e3..111b7583 --- a/tests/FunctionalTests/tickets/tests/Ticket72TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket72TestCase.php @@ -1,6 +1,6 @@ verifyTextNotPresent("abcefg", ""); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket745TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket745TestCase.php old mode 100644 new mode 100755 index 492b10ae..f822e37f --- a/tests/FunctionalTests/tickets/tests/Ticket745TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket745TestCase.php @@ -1,5 +1,5 @@ \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket769TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket769TestCase.php old mode 100644 new mode 100755 index 3a993d87..468342a5 --- a/tests/FunctionalTests/tickets/tests/Ticket769TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket769TestCase.php @@ -1,6 +1,6 @@ verifyTextPresent($base.'ctl0', 'T1 clicked clicked' ); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket785TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket785TestCase.php old mode 100644 new mode 100755 index 153422be..229a68eb --- a/tests/FunctionalTests/tickets/tests/Ticket785TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket785TestCase.php @@ -1,5 +1,5 @@ \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket823TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket823TestCase.php old mode 100644 new mode 100755 index c42990de..11e363ba --- a/tests/FunctionalTests/tickets/tests/Ticket823TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket823TestCase.php @@ -1,6 +1,6 @@ open('tickets/index.php?page=Ticket823'); @@ -10,4 +10,3 @@ class Ticket823TestCase extends SeleniumTestCase { } } -?> diff --git a/tests/FunctionalTests/tickets/tests/Ticket828TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket828TestCase.php old mode 100644 new mode 100755 index 0c753a63..bbe185ad --- a/tests/FunctionalTests/tickets/tests/Ticket828TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket828TestCase.php @@ -1,12 +1,9 @@ skipBrowsers(self::OPERA); - $base = "ctl0_Content_"; $this->open("tickets/index.php?page=Ticket828"); $this->click("{$base}submit1"); @@ -37,5 +34,4 @@ class Ticket828TestCase extends SeleniumTestCase $this->assertNotVisible("{$base}validator2"); $this->assertNotVisible("{$base}validator3"); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket849TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket849TestCase.php old mode 100644 new mode 100755 index 52f47e2e..fef9ac31 --- a/tests/FunctionalTests/tickets/tests/Ticket849TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket849TestCase.php @@ -1,6 +1,6 @@ assertValue($base.'ctl0', date('m-d-Y')); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/tickets/tests/Ticket876TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket876TestCase.php old mode 100644 new mode 100755 index 0ad9ebfa..8006dd09 --- a/tests/FunctionalTests/tickets/tests/Ticket876TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket876TestCase.php @@ -1,6 +1,6 @@ open('tickets/index.php?page=Ticket876'); @@ -20,4 +20,3 @@ class Ticket876TestCase extends SeleniumTestCase { } -?> diff --git a/tests/FunctionalTests/tickets/tests/Ticket886TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket886TestCase.php old mode 100644 new mode 100755 index 1350096b..99990ebf --- a/tests/FunctionalTests/tickets/tests/Ticket886TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket886TestCase.php @@ -1,6 +1,6 @@ diff --git a/tests/FunctionalTests/tickets/tests/Ticket897TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket897TestCase.php old mode 100644 new mode 100755 index c59dbdcd..67d1f1f2 --- a/tests/FunctionalTests/tickets/tests/Ticket897TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket897TestCase.php @@ -1,6 +1,6 @@ diff --git a/tests/FunctionalTests/tickets/tests/Ticket900TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket900TestCase.php old mode 100644 new mode 100755 index b80e1187..3ec69873 --- a/tests/FunctionalTests/tickets/tests/Ticket900TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket900TestCase.php @@ -1,6 +1,6 @@ diff --git a/tests/FunctionalTests/tickets/tests/Ticket922TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket922TestCase.php old mode 100644 new mode 100755 index 8420c10d..208bd1d0 --- a/tests/FunctionalTests/tickets/tests/Ticket922TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket922TestCase.php @@ -1,6 +1,6 @@ diff --git a/tests/FunctionalTests/tickets/tests/Ticket93TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket93TestCase.php old mode 100644 new mode 100755 index 8d11f98b..a56925a8 --- a/tests/FunctionalTests/tickets/tests/Ticket93TestCase.php +++ b/tests/FunctionalTests/tickets/tests/Ticket93TestCase.php @@ -4,7 +4,7 @@ * */ -class Ticket93TestCase extends SeleniumTestCase +class Ticket93TestCase extends PradoGenericSeleniumTest { function test() { @@ -13,4 +13,3 @@ class Ticket93TestCase extends SeleniumTestCase } } -?> diff --git a/tests/FunctionalTests/validators.php b/tests/FunctionalTests/validators.php deleted file mode 100644 index 521cca56..00000000 --- a/tests/FunctionalTests/validators.php +++ /dev/null @@ -1,8 +0,0 @@ -run(new SimpleReporter()); - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/validators/assets/.gitignore b/tests/FunctionalTests/validators/assets/.gitignore old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/index.php b/tests/FunctionalTests/validators/index.php old mode 100644 new mode 100755 index fe127639..77ddf367 --- a/tests/FunctionalTests/validators/index.php +++ b/tests/FunctionalTests/validators/index.php @@ -4,5 +4,3 @@ require_once(dirname(__FILE__).'/../../../framework/prado.php'); $app=new TApplication; $app->run(); - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/validators/protected/pages/Button.page b/tests/FunctionalTests/validators/protected/pages/Button.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/Button.php b/tests/FunctionalTests/validators/protected/pages/Button.php old mode 100644 new mode 100755 index 94aaf6c8..43913831 --- a/tests/FunctionalTests/validators/protected/pages/Button.php +++ b/tests/FunctionalTests/validators/protected/pages/Button.php @@ -23,5 +23,3 @@ class Button extends TPage $this->Result3->Text.=' and valid'; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/validators/protected/pages/CausesValidation.page b/tests/FunctionalTests/validators/protected/pages/CausesValidation.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/CheckBox.page b/tests/FunctionalTests/validators/protected/pages/CheckBox.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/CheckBox.php b/tests/FunctionalTests/validators/protected/pages/CheckBox.php old mode 100644 new mode 100755 index f29792e0..641d1419 --- a/tests/FunctionalTests/validators/protected/pages/CheckBox.php +++ b/tests/FunctionalTests/validators/protected/pages/CheckBox.php @@ -23,5 +23,3 @@ class CheckBox extends TPage $this->Result3->Text.=' and valid'; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/validators/protected/pages/CompareValidator.page b/tests/FunctionalTests/validators/protected/pages/CompareValidator.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/ConditionalValidation.page b/tests/FunctionalTests/validators/protected/pages/ConditionalValidation.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/ConditionalValidation.php b/tests/FunctionalTests/validators/protected/pages/ConditionalValidation.php old mode 100644 new mode 100755 index 83546617..5bdf9282 --- a/tests/FunctionalTests/validators/protected/pages/ConditionalValidation.php +++ b/tests/FunctionalTests/validators/protected/pages/ConditionalValidation.php @@ -17,4 +17,3 @@ class ConditionalValidation extends TPage } } -?> diff --git a/tests/FunctionalTests/validators/protected/pages/CustomValidator.page b/tests/FunctionalTests/validators/protected/pages/CustomValidator.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/CustomValidator.php b/tests/FunctionalTests/validators/protected/pages/CustomValidator.php old mode 100644 new mode 100755 index b56a9d8b..1e630601 --- a/tests/FunctionalTests/validators/protected/pages/CustomValidator.php +++ b/tests/FunctionalTests/validators/protected/pages/CustomValidator.php @@ -11,4 +11,3 @@ class CustomValidator extends TPage } } -?> diff --git a/tests/FunctionalTests/validators/protected/pages/DataTypeValidator.page b/tests/FunctionalTests/validators/protected/pages/DataTypeValidator.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/DatePicker.page b/tests/FunctionalTests/validators/protected/pages/DatePicker.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/Home.php b/tests/FunctionalTests/validators/protected/pages/Home.php index 37804419..9bb123b9 100755 --- a/tests/FunctionalTests/validators/protected/pages/Home.php +++ b/tests/FunctionalTests/validators/protected/pages/Home.php @@ -30,5 +30,3 @@ class Home extends TPage return $list; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/validators/protected/pages/ImageButton.page b/tests/FunctionalTests/validators/protected/pages/ImageButton.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/ImageButton.php b/tests/FunctionalTests/validators/protected/pages/ImageButton.php old mode 100644 new mode 100755 index 65392b75..175c5f55 --- a/tests/FunctionalTests/validators/protected/pages/ImageButton.php +++ b/tests/FunctionalTests/validators/protected/pages/ImageButton.php @@ -23,5 +23,3 @@ class ImageButton extends TPage $this->Result3->Text.=' and valid'; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/validators/protected/pages/Layout.php b/tests/FunctionalTests/validators/protected/pages/Layout.php old mode 100644 new mode 100755 index 7f5e5802..723f200c --- a/tests/FunctionalTests/validators/protected/pages/Layout.php +++ b/tests/FunctionalTests/validators/protected/pages/Layout.php @@ -3,5 +3,3 @@ class Layout extends TTemplateControl { } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/validators/protected/pages/Layout.tpl b/tests/FunctionalTests/validators/protected/pages/Layout.tpl old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/LinkButton.page b/tests/FunctionalTests/validators/protected/pages/LinkButton.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/LinkButton.php b/tests/FunctionalTests/validators/protected/pages/LinkButton.php old mode 100644 new mode 100755 index 2b5a3c23..2da51c20 --- a/tests/FunctionalTests/validators/protected/pages/LinkButton.php +++ b/tests/FunctionalTests/validators/protected/pages/LinkButton.php @@ -23,5 +23,3 @@ class LinkButton extends TPage $this->Result3->Text.=' and valid'; } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/validators/protected/pages/ListControl.page b/tests/FunctionalTests/validators/protected/pages/ListControl.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/RangeValidatorDate.page b/tests/FunctionalTests/validators/protected/pages/RangeValidatorDate.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/RangeValidatorFloat.page b/tests/FunctionalTests/validators/protected/pages/RangeValidatorFloat.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/RangeValidatorInteger.page b/tests/FunctionalTests/validators/protected/pages/RangeValidatorInteger.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/RangeValidatorString.page b/tests/FunctionalTests/validators/protected/pages/RangeValidatorString.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/RegularExpressionValidator.page b/tests/FunctionalTests/validators/protected/pages/RegularExpressionValidator.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/RequiredFieldValidator.page b/tests/FunctionalTests/validators/protected/pages/RequiredFieldValidator.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/RequiredListValidator.page b/tests/FunctionalTests/validators/protected/pages/RequiredListValidator.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/StringRangeValidator.page b/tests/FunctionalTests/validators/protected/pages/StringRangeValidator.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/ValidationSummary.page b/tests/FunctionalTests/validators/protected/pages/ValidationSummary.page old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/pages/config.xml b/tests/FunctionalTests/validators/protected/pages/config.xml old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/protected/runtime/.gitignore b/tests/FunctionalTests/validators/protected/runtime/.gitignore old mode 100644 new mode 100755 diff --git a/tests/FunctionalTests/validators/tests/ButtonTestCase.php b/tests/FunctionalTests/validators/tests/ButtonTestCase.php old mode 100644 new mode 100755 index 99ebf4a4..58001322 --- a/tests/FunctionalTests/validators/tests/ButtonTestCase.php +++ b/tests/FunctionalTests/validators/tests/ButtonTestCase.php @@ -1,6 +1,6 @@ verifyTextPresent('Button3 is clicked and valid'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/validators/tests/CheckBoxTestCase.php b/tests/FunctionalTests/validators/tests/CheckBoxTestCase.php old mode 100644 new mode 100755 index 957a7cbf..847cbc9a --- a/tests/FunctionalTests/validators/tests/CheckBoxTestCase.php +++ b/tests/FunctionalTests/validators/tests/CheckBoxTestCase.php @@ -1,12 +1,9 @@ skipBrowsers(self::OPERA); - $this->open('validators/index.php?page=CheckBox'); @@ -66,5 +63,3 @@ class CheckBoxTestCase extends SeleniumTestCase $this->verifyTextPresent('Button3 is clicked and valid'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/validators/tests/CompareValidatorTestCase.php b/tests/FunctionalTests/validators/tests/CompareValidatorTestCase.php old mode 100644 new mode 100755 index 5a7dbc80..187351c1 --- a/tests/FunctionalTests/validators/tests/CompareValidatorTestCase.php +++ b/tests/FunctionalTests/validators/tests/CompareValidatorTestCase.php @@ -1,7 +1,7 @@ \ No newline at end of file diff --git a/tests/FunctionalTests/validators/tests/ConditionalValidationTestCase.php b/tests/FunctionalTests/validators/tests/ConditionalValidationTestCase.php old mode 100644 new mode 100755 index 0c0ffc51..02b174ef --- a/tests/FunctionalTests/validators/tests/ConditionalValidationTestCase.php +++ b/tests/FunctionalTests/validators/tests/ConditionalValidationTestCase.php @@ -1,6 +1,6 @@ diff --git a/tests/FunctionalTests/validators/tests/CustomValidatorTestCase.php b/tests/FunctionalTests/validators/tests/CustomValidatorTestCase.php old mode 100644 new mode 100755 index c5cbae8e..106f7a00 --- a/tests/FunctionalTests/validators/tests/CustomValidatorTestCase.php +++ b/tests/FunctionalTests/validators/tests/CustomValidatorTestCase.php @@ -1,7 +1,7 @@ \ No newline at end of file diff --git a/tests/FunctionalTests/validators/tests/DataTypeValidatorTestCase.php b/tests/FunctionalTests/validators/tests/DataTypeValidatorTestCase.php old mode 100644 new mode 100755 index c7c4bdb6..5ec5f065 --- a/tests/FunctionalTests/validators/tests/DataTypeValidatorTestCase.php +++ b/tests/FunctionalTests/validators/tests/DataTypeValidatorTestCase.php @@ -3,7 +3,7 @@ * Created on 25/04/2006 */ -class DataTypeValidatorTestCase extends SeleniumTestCase +class DataTypeValidatorTestCase extends PradoGenericSeleniumTest { function test() { @@ -46,4 +46,3 @@ class DataTypeValidatorTestCase extends SeleniumTestCase } -?> diff --git a/tests/FunctionalTests/validators/tests/DatePickerTestCase.php b/tests/FunctionalTests/validators/tests/DatePickerTestCase.php old mode 100644 new mode 100755 index 12368448..e7425a33 --- a/tests/FunctionalTests/validators/tests/DatePickerTestCase.php +++ b/tests/FunctionalTests/validators/tests/DatePickerTestCase.php @@ -1,6 +1,6 @@ diff --git a/tests/FunctionalTests/validators/tests/ImageButtonTestCase.php b/tests/FunctionalTests/validators/tests/ImageButtonTestCase.php old mode 100644 new mode 100755 index a83c4f89..e6b5d6d8 --- a/tests/FunctionalTests/validators/tests/ImageButtonTestCase.php +++ b/tests/FunctionalTests/validators/tests/ImageButtonTestCase.php @@ -1,6 +1,6 @@ verifyTextPresent('Button3 is clicked and valid'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/validators/tests/LinkButtonTestCase.php b/tests/FunctionalTests/validators/tests/LinkButtonTestCase.php old mode 100644 new mode 100755 index fa9508fb..b523452c --- a/tests/FunctionalTests/validators/tests/LinkButtonTestCase.php +++ b/tests/FunctionalTests/validators/tests/LinkButtonTestCase.php @@ -1,6 +1,6 @@ verifyTextPresent('Button3 is clicked and valid'); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/validators/tests/ListControlTestCase.php b/tests/FunctionalTests/validators/tests/ListControlTestCase.php old mode 100644 new mode 100755 index e4281794..68feee84 --- a/tests/FunctionalTests/validators/tests/ListControlTestCase.php +++ b/tests/FunctionalTests/validators/tests/ListControlTestCase.php @@ -3,13 +3,10 @@ * Created on 24/04/2006 */ -class ListControlTestCase extends SeleniumTestCase +class ListControlTestCase extends PradoGenericSeleniumTest { function test() { - //problem with test runner clicking on radio buttons - $this->skipBrowsers(self::OPERA); - $base = "ctl0_Content_"; $this->open("validators/index.php?page=ListControl", ""); $this->verifyTextPresent("List Control Required Field Validation Test", ""); @@ -48,4 +45,3 @@ class ListControlTestCase extends SeleniumTestCase } -?> diff --git a/tests/FunctionalTests/validators/tests/RangeValidatorTestCase.php b/tests/FunctionalTests/validators/tests/RangeValidatorTestCase.php old mode 100644 new mode 100755 index 31ad6c23..022ee7f6 --- a/tests/FunctionalTests/validators/tests/RangeValidatorTestCase.php +++ b/tests/FunctionalTests/validators/tests/RangeValidatorTestCase.php @@ -1,7 +1,7 @@ diff --git a/tests/FunctionalTests/validators/tests/RegExpValidatorTestCase.php b/tests/FunctionalTests/validators/tests/RegExpValidatorTestCase.php old mode 100644 new mode 100755 index 40719cf3..f269bf3b --- a/tests/FunctionalTests/validators/tests/RegExpValidatorTestCase.php +++ b/tests/FunctionalTests/validators/tests/RegExpValidatorTestCase.php @@ -1,7 +1,7 @@ \ No newline at end of file diff --git a/tests/FunctionalTests/validators/tests/RequiredFieldTestCase.php b/tests/FunctionalTests/validators/tests/RequiredFieldTestCase.php old mode 100644 new mode 100755 index 69765238..f8b54eb0 --- a/tests/FunctionalTests/validators/tests/RequiredFieldTestCase.php +++ b/tests/FunctionalTests/validators/tests/RequiredFieldTestCase.php @@ -1,12 +1,9 @@ skipBrowsers(self::OPERA); - $base = "ctl0_Content_"; $this->open("validators/index.php?page=RequiredFieldValidator"); $this->assertTextPresent("RequiredFieldValidator Tests"); @@ -86,5 +83,4 @@ class RequiredFieldTestCase extends SeleniumTestCase $this->pause(250); $this->assertNotVisible("{$base}validator9"); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/tests/FunctionalTests/validators/tests/RequiredListTestCase.php b/tests/FunctionalTests/validators/tests/RequiredListTestCase.php old mode 100644 new mode 100755 index 2151e492..2662c721 --- a/tests/FunctionalTests/validators/tests/RequiredListTestCase.php +++ b/tests/FunctionalTests/validators/tests/RequiredListTestCase.php @@ -1,13 +1,10 @@ skipBrowsers(self::OPERA); - $base = "ctl0_Content_"; $this->open("validators/index.php?page=RequiredListValidator"); $this->click("{$base}submit1"); @@ -39,5 +36,3 @@ class RequiredListTestCase extends SeleniumTestCase $this->assertNotVisible("{$base}validator3"); } } - -?> \ No newline at end of file diff --git a/tests/FunctionalTests/validators/tests/ValidationSummaryTestCase.php b/tests/FunctionalTests/validators/tests/ValidationSummaryTestCase.php old mode 100644 new mode 100755 index 802392ac..7dc1d6b1 --- a/tests/FunctionalTests/validators/tests/ValidationSummaryTestCase.php +++ b/tests/FunctionalTests/validators/tests/ValidationSummaryTestCase.php @@ -1,7 +1,7 @@ \ No newline at end of file diff --git a/tests/test_tools/PradoGenericSeleniumTest.php b/tests/test_tools/PradoGenericSeleniumTest.php new file mode 100644 index 00000000..547ff2f0 --- /dev/null +++ b/tests/test_tools/PradoGenericSeleniumTest.php @@ -0,0 +1,15 @@ +setBrowser('*googlechrome'); + $this->setBrowserUrl('http://127.0.0.1/prado-3.2/tests/FunctionalTests/'); + } + + protected function tearDown() + { + } +} \ No newline at end of file diff --git a/tests/test_tools/functional_tests.php b/tests/test_tools/functional_tests.php deleted file mode 100644 index 151f77db..00000000 --- a/tests/test_tools/functional_tests.php +++ /dev/null @@ -1,69 +0,0 @@ -_name=$name; - if($basePath==='' || ($this->_basePath=realpath($basePath))===false) - throw new Exception('Invalid base path '.$basePath); - $this->_basePath=strtr($this->_basePath,'\\','/'); - - $this->_selenium = $selenium.'selenium/'; - } - - public function run($simpleReporter) - { - $server=SimpleSeleniumProxyServer::getInstance(dirname(__FILE__));//, '', $this->_selenium); - - $groupTest=new GroupTest($this->_name); - $this->collectTestFiles($groupTest,$this->_basePath); - $groupTest->run($simpleReporter); - - $server->handleRequest(); - } - - protected function collectTestFiles($groupTest,$basePath) - { - $folder=@opendir($basePath); - while($entry=@readdir($folder)) - { - $fullPath=strtr($basePath.'/'.$entry,'\\','/'); - if(is_file($fullPath) && $this->isValidFile($entry)) - $groupTest->addTestFile($fullPath); - else if($entry[0]!=='.') - $this->collectTestFiles($groupTest,$fullPath); - } - @closedir($folder); - } - - protected function isValidFile($entry) - { - return preg_match('/\w+\.php$/',$entry); - } -} - -?> \ No newline at end of file diff --git a/tests/test_tools/phpunit_bootstrap.php b/tests/test_tools/phpunit_bootstrap.php new file mode 100644 index 00000000..dc2ce948 --- /dev/null +++ b/tests/test_tools/phpunit_bootstrap.php @@ -0,0 +1,23 @@ + - - -Selenium Log Console - - - - - - - - - - - - - diff --git a/tests/test_tools/selenium/core/TestRunner-splash.html b/tests/test_tools/selenium/core/TestRunner-splash.html deleted file mode 100644 index 1c32dd79..00000000 --- a/tests/test_tools/selenium/core/TestRunner-splash.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - -
Test SuiteCurrent TestControl Panel
 
- -

Selenium

-

by ThoughtWorks and friends

- -

-For more information on Selenium, visit - -

-    http://selenium.openqa.org
-
- -
- - diff --git a/tests/test_tools/selenium/core/lib/cssQuery/cssQuery-p.js b/tests/test_tools/selenium/core/lib/cssQuery/cssQuery-p.js deleted file mode 100644 index 00e43a42..00000000 --- a/tests/test_tools/selenium/core/lib/cssQuery/cssQuery-p.js +++ /dev/null @@ -1,6 +0,0 @@ -/* - cssQuery, version 2.0.2 (2005-08-19) - Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/) - License: http://creativecommons.org/licenses/LGPL/2.1/ -*/ -eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('7 x=6(){7 1D="2.0.2";7 C=/\\s*,\\s*/;7 x=6(s,A){33{7 m=[];7 u=1z.32.2c&&!A;7 b=(A)?(A.31==22)?A:[A]:[1g];7 1E=18(s).1l(C),i;9(i=0;i<1E.y;i++){s=1y(1E[i]);8(U&&s.Z(0,3).2b("")==" *#"){s=s.Z(2);A=24([],b,s[1])}1A A=b;7 j=0,t,f,a,c="";H(j+~]/;7 20=/[\\s#.:>+~()@]|[^\\s#.:>+~()@]+/g;6 1y(s){8(S.l(s))s=" "+s;5 s.P(20)||[]};7 W=/\\s*([\\s>+~(),]|^|$)\\s*/g;7 I=/([\\s>+~,]|[^(]\\+|^)([#.:@])/g;7 18=6(s){5 s.O(W,"$1").O(I,"$1*$2")};7 1u={1Z:6(){5"\'"},P:/^(\'[^\']*\')|("[^"]*")$/,l:6(s){5 o.P.l(s)},1S:6(s){5 o.l(s)?s:o+s+o},1Y:6(s){5 o.l(s)?s.Z(1,-1):s}};7 1s=6(t){5 1u.1Y(t)};7 E=/([\\/()[\\]?{}|*+-])/g;6 R(s){5 s.O(E,"\\\\$1")};x.15("1j-2H",6(){D[">"]=6(r,f,t,n){7 e,i,j;9(i=0;i=c);5(c%m)==s}});x.15("1j-2m",6(){U=1i("L;/*@2l@8(@\\2k)U=K@2j@*/");8(!U){X=6(e,t,n){5 n?e.2i("*",t):e.X(t)};14=6(e,n){5!n||(n=="*")||(e.2h==n)};1h=1g.1I?6(e){5/1J/i.l(Q(e).1I)}:6(e){5 Q(e).1H.1f!="2g"};1e=6(e){5 e.2f||e.1G||1b(e)};6 1b(e){7 t="",n,i;9(i=0;(n=e.1F[i]);i++){1d(n.1c){F 11:F 1:t+=1b(n);1a;F 3:t+=n.2e;1a}}5 t}}});19=K;5 x}();',62,190,'|||||return|function|var|if|for||||||||pseudoClasses||||test|||this||AttributeSelector|||||||cssQuery|length|push|fr|id||selectors||case|nextElementSibling|while||tests|true|false|thisElement||replace|match|getDocument|regEscape||attributeSelectors|isMSIE|cache||getElementsByTagName|isNaN|slice|child||new|getAttribute|compareNamespace|addModule|previousElementSibling|compareTagName|parseSelector|loaded|break|_0|nodeType|switch|getTextContent|tagName|document|isXML|eval|css|_1|split|ch|parentNode|childElements|nthChild|disabled|firstElementChild|getText|RegExp|Quote|x22|PREFIX|lang|_2|arguments|else|all|links|version|se|childNodes|innerText|documentElement|contentType|xml|parseInt|indeterminate|checked|last|nth|lastElementChild|parse|_3|add|href|String|className|create|NS_IE|remove|toString|ST|select|Array|null|_4|mimeType|lastChild|firstChild|continue|modules|delete|join|caching|error|nodeValue|textContent|HTML|prefix|getElementsByTagNameNS|end|x5fwin32|cc_on|standard||odd|even|enabled|hash|location|target|not|only|empty|root|contains|level3|outerHTML|htmlFor|class|toLowerCase|Function|name|first|level2|prototype|item|scopeName|toUpperCase|ownerDocument|Document|XML|Boolean|URL|unknown|typeof|nextSibling|previousSibling|visited|link|valueOf|clearCache|catch|concat|constructor|callee|try'.split('|'),0,{})) diff --git a/tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-level2.js b/tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-level2.js deleted file mode 100644 index 2987b15b..00000000 --- a/tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-level2.js +++ /dev/null @@ -1,142 +0,0 @@ -/* - cssQuery, version 2.0.2 (2005-08-19) - Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/) - License: http://creativecommons.org/licenses/LGPL/2.1/ -*/ - -cssQuery.addModule("css-level2", function() { - -// ----------------------------------------------------------------------- -// selectors -// ----------------------------------------------------------------------- - -// child selector -selectors[">"] = function($results, $from, $tagName, $namespace) { - var $element, i, j; - for (i = 0; i < $from.length; i++) { - var $subset = childElements($from[i]); - for (j = 0; ($element = $subset[j]); j++) - if (compareTagName($element, $tagName, $namespace)) - $results.push($element); - } -}; - -// sibling selector -selectors["+"] = function($results, $from, $tagName, $namespace) { - for (var i = 0; i < $from.length; i++) { - var $element = nextElementSibling($from[i]); - if ($element && compareTagName($element, $tagName, $namespace)) - $results.push($element); - } -}; - -// attribute selector -selectors["@"] = function($results, $from, $attributeSelectorID) { - var $test = attributeSelectors[$attributeSelectorID].test; - var $element, i; - for (i = 0; ($element = $from[i]); i++) - if ($test($element)) $results.push($element); -}; - -// ----------------------------------------------------------------------- -// pseudo-classes -// ----------------------------------------------------------------------- - -pseudoClasses["first-child"] = function($element) { - return !previousElementSibling($element); -}; - -pseudoClasses["lang"] = function($element, $code) { - $code = new RegExp("^" + $code, "i"); - while ($element && !$element.getAttribute("lang")) $element = $element.parentNode; - return $element && $code.test($element.getAttribute("lang")); -}; - -// ----------------------------------------------------------------------- -// attribute selectors -// ----------------------------------------------------------------------- - -// constants -AttributeSelector.NS_IE = /\\:/g; -AttributeSelector.PREFIX = "@"; -// properties -AttributeSelector.tests = {}; -// methods -AttributeSelector.replace = function($match, $attribute, $namespace, $compare, $value) { - var $key = this.PREFIX + $match; - if (!attributeSelectors[$key]) { - $attribute = this.create($attribute, $compare || "", $value || ""); - // store the selector - attributeSelectors[$key] = $attribute; - attributeSelectors.push($attribute); - } - return attributeSelectors[$key].id; -}; -AttributeSelector.parse = function($selector) { - $selector = $selector.replace(this.NS_IE, "|"); - var $match; - while ($match = $selector.match(this.match)) { - var $replace = this.replace($match[0], $match[1], $match[2], $match[3], $match[4]); - $selector = $selector.replace(this.match, $replace); - } - return $selector; -}; -AttributeSelector.create = function($propertyName, $test, $value) { - var $attributeSelector = {}; - $attributeSelector.id = this.PREFIX + attributeSelectors.length; - $attributeSelector.name = $propertyName; - $test = this.tests[$test]; - $test = $test ? $test(this.getAttribute($propertyName), getText($value)) : false; - $attributeSelector.test = new Function("e", "return " + $test); - return $attributeSelector; -}; -AttributeSelector.getAttribute = function($name) { - switch ($name.toLowerCase()) { - case "id": - return "e.id"; - case "class": - return "e.className"; - case "for": - return "e.htmlFor"; - case "href": - if (isMSIE) { - // IE always returns the full path not the fragment in the href attribute - // so we RegExp it out of outerHTML. Opera does the same thing but there - // is no way to get the original attribute. - return "String((e.outerHTML.match(/href=\\x22?([^\\s\\x22]*)\\x22?/)||[])[1]||'')"; - } - } - return "e.getAttribute('" + $name.replace($NAMESPACE, ":") + "')"; -}; - -// ----------------------------------------------------------------------- -// attribute selector tests -// ----------------------------------------------------------------------- - -AttributeSelector.tests[""] = function($attribute) { - return $attribute; -}; - -AttributeSelector.tests["="] = function($attribute, $value) { - return $attribute + "==" + Quote.add($value); -}; - -AttributeSelector.tests["~="] = function($attribute, $value) { - return "/(^| )" + regEscape($value) + "( |$)/.test(" + $attribute + ")"; -}; - -AttributeSelector.tests["|="] = function($attribute, $value) { - return "/^" + regEscape($value) + "(-|$)/.test(" + $attribute + ")"; -}; - -// ----------------------------------------------------------------------- -// parsing -// ----------------------------------------------------------------------- - -// override parseSelector to parse out attribute selectors -var _parseSelector = parseSelector; -parseSelector = function($selector) { - return _parseSelector(AttributeSelector.parse($selector)); -}; - -}); // addModule diff --git a/tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-level3.js b/tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-level3.js deleted file mode 100644 index 4dce4651..00000000 --- a/tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-level3.js +++ /dev/null @@ -1,150 +0,0 @@ -/* - cssQuery, version 2.0.2 (2005-08-19) - Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/) - License: http://creativecommons.org/licenses/LGPL/2.1/ -*/ - -/* Thanks to Bill Edney */ - -cssQuery.addModule("css-level3", function() { - -// ----------------------------------------------------------------------- -// selectors -// ----------------------------------------------------------------------- - -// indirect sibling selector -selectors["~"] = function($results, $from, $tagName, $namespace) { - var $element, i; - for (i = 0; ($element = $from[i]); i++) { - while ($element = nextElementSibling($element)) { - if (compareTagName($element, $tagName, $namespace)) - $results.push($element); - } - } -}; - -// ----------------------------------------------------------------------- -// pseudo-classes -// ----------------------------------------------------------------------- - -// I'm hoping these pseudo-classes are pretty readable. Let me know if -// any need explanation. - -pseudoClasses["contains"] = function($element, $text) { - $text = new RegExp(regEscape(getText($text))); - return $text.test(getTextContent($element)); -}; - -pseudoClasses["root"] = function($element) { - return $element == getDocument($element).documentElement; -}; - -pseudoClasses["empty"] = function($element) { - var $node, i; - for (i = 0; ($node = $element.childNodes[i]); i++) { - if (thisElement($node) || $node.nodeType == 3) return false; - } - return true; -}; - -pseudoClasses["last-child"] = function($element) { - return !nextElementSibling($element); -}; - -pseudoClasses["only-child"] = function($element) { - $element = $element.parentNode; - return firstElementChild($element) == lastElementChild($element); -}; - -pseudoClasses["not"] = function($element, $selector) { - var $negated = cssQuery($selector, getDocument($element)); - for (var i = 0; i < $negated.length; i++) { - if ($negated[i] == $element) return false; - } - return true; -}; - -pseudoClasses["nth-child"] = function($element, $arguments) { - return nthChild($element, $arguments, previousElementSibling); -}; - -pseudoClasses["nth-last-child"] = function($element, $arguments) { - return nthChild($element, $arguments, nextElementSibling); -}; - -pseudoClasses["target"] = function($element) { - return $element.id == location.hash.slice(1); -}; - -// UI element states - -pseudoClasses["checked"] = function($element) { - return $element.checked; -}; - -pseudoClasses["enabled"] = function($element) { - return $element.disabled === false; -}; - -pseudoClasses["disabled"] = function($element) { - return $element.disabled; -}; - -pseudoClasses["indeterminate"] = function($element) { - return $element.indeterminate; -}; - -// ----------------------------------------------------------------------- -// attribute selector tests -// ----------------------------------------------------------------------- - -AttributeSelector.tests["^="] = function($attribute, $value) { - return "/^" + regEscape($value) + "/.test(" + $attribute + ")"; -}; - -AttributeSelector.tests["$="] = function($attribute, $value) { - return "/" + regEscape($value) + "$/.test(" + $attribute + ")"; -}; - -AttributeSelector.tests["*="] = function($attribute, $value) { - return "/" + regEscape($value) + "/.test(" + $attribute + ")"; -}; - -// ----------------------------------------------------------------------- -// nth child support (Bill Edney) -// ----------------------------------------------------------------------- - -function nthChild($element, $arguments, $traverse) { - switch ($arguments) { - case "n": return true; - case "even": $arguments = "2n"; break; - case "odd": $arguments = "2n+1"; - } - - var $$children = childElements($element.parentNode); - function _checkIndex($index) { - var $index = ($traverse == nextElementSibling) ? $$children.length - $index : $index - 1; - return $$children[$index] == $element; - }; - - // it was just a number (no "n") - if (!isNaN($arguments)) return _checkIndex($arguments); - - $arguments = $arguments.split("n"); - var $multiplier = parseInt($arguments[0]); - var $step = parseInt($arguments[1]); - - if ((isNaN($multiplier) || $multiplier == 1) && $step == 0) return true; - if ($multiplier == 0 && !isNaN($step)) return _checkIndex($step); - if (isNaN($step)) $step = 0; - - var $count = 1; - while ($element = $traverse($element)) $count++; - - if (isNaN($multiplier) || $multiplier == 1) - return ($traverse == nextElementSibling) ? ($count <= $step) : ($step >= $count); - - return ($count % $multiplier) == $step; -}; - -}); // addModule diff --git a/tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-standard.js b/tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-standard.js deleted file mode 100644 index 309184d5..00000000 --- a/tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-standard.js +++ /dev/null @@ -1,53 +0,0 @@ -/* - cssQuery, version 2.0.2 (2005-08-19) - Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/) - License: http://creativecommons.org/licenses/LGPL/2.1/ -*/ - -cssQuery.addModule("css-standard", function() { // override IE optimisation - -// cssQuery was originally written as the CSS engine for IE7. It is -// optimised (in terms of size not speed) for IE so this module is -// provided separately to provide cross-browser support. - -// ----------------------------------------------------------------------- -// browser compatibility -// ----------------------------------------------------------------------- - -// sniff for Win32 Explorer -isMSIE = eval("false;/*@cc_on@if(@\x5fwin32)isMSIE=true@end@*/"); - -if (!isMSIE) { - getElementsByTagName = function($element, $tagName, $namespace) { - return $namespace ? $element.getElementsByTagNameNS("*", $tagName) : - $element.getElementsByTagName($tagName); - }; - - compareNamespace = function($element, $namespace) { - return !$namespace || ($namespace == "*") || ($element.prefix == $namespace); - }; - - isXML = document.contentType ? function($element) { - return /xml/i.test(getDocument($element).contentType); - } : function($element) { - return getDocument($element).documentElement.tagName != "HTML"; - }; - - getTextContent = function($element) { - // mozilla || opera || other - return $element.textContent || $element.innerText || _getTextContent($element); - }; - - function _getTextContent($element) { - var $textContent = "", $node, i; - for (i = 0; ($node = $element.childNodes[i]); i++) { - switch ($node.nodeType) { - case 11: // document fragment - case 1: $textContent += _getTextContent($node); break; - case 3: $textContent += $node.nodeValue; break; - } - } - return $textContent; - }; -} -}); // addModule diff --git a/tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery.js b/tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery.js deleted file mode 100644 index 7a6efee8..00000000 --- a/tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery.js +++ /dev/null @@ -1,356 +0,0 @@ -/* - cssQuery, version 2.0.2 (2005-08-19) - Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/) - License: http://creativecommons.org/licenses/LGPL/2.1/ -*/ - -// the following functions allow querying of the DOM using CSS selectors -var cssQuery = function() { -var version = "2.0.2"; - -// ----------------------------------------------------------------------- -// main query function -// ----------------------------------------------------------------------- - -var $COMMA = /\s*,\s*/; -var cssQuery = function($selector, $$from) { -try { - var $match = []; - var $useCache = arguments.callee.caching && !$$from; - var $base = ($$from) ? ($$from.constructor == Array) ? $$from : [$$from] : [document]; - // process comma separated selectors - var $$selectors = parseSelector($selector).split($COMMA), i; - for (i = 0; i < $$selectors.length; i++) { - // convert the selector to a stream - $selector = _toStream($$selectors[i]); - // faster chop if it starts with id (MSIE only) - if (isMSIE && $selector.slice(0, 3).join("") == " *#") { - $selector = $selector.slice(2); - $$from = _msie_selectById([], $base, $selector[1]); - } else $$from = $base; - // process the stream - var j = 0, $token, $filter, $arguments, $cacheSelector = ""; - while (j < $selector.length) { - $token = $selector[j++]; - $filter = $selector[j++]; - $cacheSelector += $token + $filter; - // some pseudo-classes allow arguments to be passed - // e.g. nth-child(even) - $arguments = ""; - if ($selector[j] == "(") { - while ($selector[j++] != ")" && j < $selector.length) { - $arguments += $selector[j]; - } - $arguments = $arguments.slice(0, -1); - $cacheSelector += "(" + $arguments + ")"; - } - // process a token/filter pair use cached results if possible - $$from = ($useCache && cache[$cacheSelector]) ? - cache[$cacheSelector] : select($$from, $token, $filter, $arguments); - if ($useCache) cache[$cacheSelector] = $$from; - } - $match = $match.concat($$from); - } - delete cssQuery.error; - return $match; -} catch ($error) { - cssQuery.error = $error; - return []; -}}; - -// ----------------------------------------------------------------------- -// public interface -// ----------------------------------------------------------------------- - -cssQuery.toString = function() { - return "function cssQuery() {\n [version " + version + "]\n}"; -}; - -// caching -var cache = {}; -cssQuery.caching = false; -cssQuery.clearCache = function($selector) { - if ($selector) { - $selector = _toStream($selector).join(""); - delete cache[$selector]; - } else cache = {}; -}; - -// allow extensions -var modules = {}; -var loaded = false; -cssQuery.addModule = function($name, $script) { - if (loaded) eval("$script=" + String($script)); - modules[$name] = new $script();; -}; - -// hackery -cssQuery.valueOf = function($code) { - return $code ? eval($code) : this; -}; - -// ----------------------------------------------------------------------- -// declarations -// ----------------------------------------------------------------------- - -var selectors = {}; -var pseudoClasses = {}; -// a safari bug means that these have to be declared here -var AttributeSelector = {match: /\[([\w-]+(\|[\w-]+)?)\s*(\W?=)?\s*([^\]]*)\]/}; -var attributeSelectors = []; - -// ----------------------------------------------------------------------- -// selectors -// ----------------------------------------------------------------------- - -// descendant selector -selectors[" "] = function($results, $from, $tagName, $namespace) { - // loop through current selection - var $element, i, j; - for (i = 0; i < $from.length; i++) { - // get descendants - var $subset = getElementsByTagName($from[i], $tagName, $namespace); - // loop through descendants and add to results selection - for (j = 0; ($element = $subset[j]); j++) { - if (thisElement($element) && compareNamespace($element, $namespace)) - $results.push($element); - } - } -}; - -// ID selector -selectors["#"] = function($results, $from, $id) { - // loop through current selection and check ID - var $element, j; - for (j = 0; ($element = $from[j]); j++) if ($element.id == $id) $results.push($element); -}; - -// class selector -selectors["."] = function($results, $from, $className) { - // create a RegExp version of the class - $className = new RegExp("(^|\\s)" + $className + "(\\s|$)"); - // loop through current selection and check class - var $element, i; - for (i = 0; ($element = $from[i]); i++) - if ($className.test($element.className)) $results.push($element); -}; - -// pseudo-class selector -selectors[":"] = function($results, $from, $pseudoClass, $arguments) { - // retrieve the cssQuery pseudo-class function - var $test = pseudoClasses[$pseudoClass], $element, i; - // loop through current selection and apply pseudo-class filter - if ($test) for (i = 0; ($element = $from[i]); i++) - // if the cssQuery pseudo-class function returns "true" add the element - if ($test($element, $arguments)) $results.push($element); -}; - -// ----------------------------------------------------------------------- -// pseudo-classes -// ----------------------------------------------------------------------- - -pseudoClasses["link"] = function($element) { - var $document = getDocument($element); - if ($document.links) for (var i = 0; i < $document.links.length; i++) { - if ($document.links[i] == $element) return true; - } -}; - -pseudoClasses["visited"] = function($element) { - // can't do this without jiggery-pokery -}; - -// ----------------------------------------------------------------------- -// DOM traversal -// ----------------------------------------------------------------------- - -// IE5/6 includes comments (LOL) in it's elements collections. -// so we have to check for this. the test is tagName != "!". LOL (again). -var thisElement = function($element) { - return ($element && $element.nodeType == 1 && $element.tagName != "!") ? $element : null; -}; - -// return the previous element to the supplied element -// previousSibling is not good enough as it might return a text or comment node -var previousElementSibling = function($element) { - while ($element && ($element = $element.previousSibling) && !thisElement($element)) continue; - return $element; -}; - -// return the next element to the supplied element -var nextElementSibling = function($element) { - while ($element && ($element = $element.nextSibling) && !thisElement($element)) continue; - return $element; -}; - -// return the first child ELEMENT of an element -// NOT the first child node (though they may be the same thing) -var firstElementChild = function($element) { - return thisElement($element.firstChild) || nextElementSibling($element.firstChild); -}; - -var lastElementChild = function($element) { - return thisElement($element.lastChild) || previousElementSibling($element.lastChild); -}; - -// return child elements of an element (not child nodes) -var childElements = function($element) { - var $childElements = []; - $element = firstElementChild($element); - while ($element) { - $childElements.push($element); - $element = nextElementSibling($element); - } - return $childElements; -}; - -// ----------------------------------------------------------------------- -// browser compatibility -// ----------------------------------------------------------------------- - -// all of the functions in this section can be overwritten. the default -// configuration is for IE. The functions below reflect this. standard -// methods are included in a separate module. It would probably be better -// the other way round of course but this makes it easier to keep IE7 trim. - -var isMSIE = true; - -var isXML = function($element) { - var $document = getDocument($element); - return (typeof $document.mimeType == "unknown") ? - /\.xml$/i.test($document.URL) : - Boolean($document.mimeType == "XML Document"); -}; - -// return the element's containing document -var getDocument = function($element) { - return $element.ownerDocument || $element.document; -}; - -var getElementsByTagName = function($element, $tagName) { - return ($tagName == "*" && $element.all) ? $element.all : $element.getElementsByTagName($tagName); -}; - -var compareTagName = function($element, $tagName, $namespace) { - if ($tagName == "*") return thisElement($element); - if (!compareNamespace($element, $namespace)) return false; - if (!isXML($element)) $tagName = $tagName.toUpperCase(); - return $element.tagName == $tagName; -}; - -var compareNamespace = function($element, $namespace) { - return !$namespace || ($namespace == "*") || ($element.scopeName == $namespace); -}; - -var getTextContent = function($element) { - return $element.innerText; -}; - -function _msie_selectById($results, $from, id) { - var $match, i, j; - for (i = 0; i < $from.length; i++) { - if ($match = $from[i].all.item(id)) { - if ($match.id == id) $results.push($match); - else if ($match.length != null) { - for (j = 0; j < $match.length; j++) { - if ($match[j].id == id) $results.push($match[j]); - } - } - } - } - return $results; -}; - -// for IE5.0 -if (![].push) Array.prototype.push = function() { - for (var i = 0; i < arguments.length; i++) { - this[this.length] = arguments[i]; - } - return this.length; -}; - -// ----------------------------------------------------------------------- -// query support -// ----------------------------------------------------------------------- - -// select a set of matching elements. -// "from" is an array of elements. -// "token" is a character representing the type of filter -// e.g. ">" means child selector -// "filter" represents the tag name, id or class name that is being selected -// the function returns an array of matching elements -var $NAMESPACE = /\|/; -function select($$from, $token, $filter, $arguments) { - if ($NAMESPACE.test($filter)) { - $filter = $filter.split($NAMESPACE); - $arguments = $filter[0]; - $filter = $filter[1]; - } - var $results = []; - if (selectors[$token]) { - selectors[$token]($results, $$from, $filter, $arguments); - } - return $results; -}; - -// ----------------------------------------------------------------------- -// parsing -// ----------------------------------------------------------------------- - -// convert css selectors to a stream of tokens and filters -// it's not a real stream. it's just an array of strings. -var $STANDARD_SELECT = /^[^\s>+~]/; -var $$STREAM = /[\s#.:>+~()@]|[^\s#.:>+~()@]+/g; -function _toStream($selector) { - if ($STANDARD_SELECT.test($selector)) $selector = " " + $selector; - return $selector.match($$STREAM) || []; -}; - -var $WHITESPACE = /\s*([\s>+~(),]|^|$)\s*/g; -var $IMPLIED_ALL = /([\s>+~,]|[^(]\+|^)([#.:@])/g; -var parseSelector = function($selector) { - return $selector - // trim whitespace - .replace($WHITESPACE, "$1") - // e.g. ".class1" --> "*.class1" - .replace($IMPLIED_ALL, "$1*$2"); -}; - -var Quote = { - toString: function() {return "'"}, - match: /^('[^']*')|("[^"]*")$/, - test: function($string) { - return this.match.test($string); - }, - add: function($string) { - return this.test($string) ? $string : this + $string + this; - }, - remove: function($string) { - return this.test($string) ? $string.slice(1, -1) : $string; - } -}; - -var getText = function($text) { - return Quote.remove($text); -}; - -var $ESCAPE = /([\/()[\]?{}|*+-])/g; -function regEscape($string) { - return $string.replace($ESCAPE, "\\$1"); -}; - -// ----------------------------------------------------------------------- -// modules -// ----------------------------------------------------------------------- - -// -------- >> insert modules here for packaging << -------- \\ - -loaded = true; - -// ----------------------------------------------------------------------- -// return the query function -// ----------------------------------------------------------------------- - -return cssQuery; - -}(); // cssQuery diff --git a/tests/test_tools/selenium/core/lib/prototype.js b/tests/test_tools/selenium/core/lib/prototype.js deleted file mode 100644 index 0caf9cd7..00000000 --- a/tests/test_tools/selenium/core/lib/prototype.js +++ /dev/null @@ -1,2006 +0,0 @@ -/* Prototype JavaScript framework, version 1.5.0_rc0 - * (c) 2005 Sam Stephenson - * - * Prototype is freely distributable under the terms of an MIT-style license. - * For details, see the Prototype web site: http://prototype.conio.net/ - * -/*--------------------------------------------------------------------------*/ - -var Prototype = { - Version: '1.5.0_rc0', - ScriptFragment: '(?:)((\n|\r|.)*?)(?:<\/script>)', - - emptyFunction: function() {}, - K: function(x) {return x} -} - -var Class = { - create: function() { - return function() { - this.initialize.apply(this, arguments); - } - } -} - -var Abstract = new Object(); - -Object.extend = function(destination, source) { - for (var property in source) { - destination[property] = source[property]; - } - return destination; -} - -Object.inspect = function(object) { - try { - if (object == undefined) return 'undefined'; - if (object == null) return 'null'; - return object.inspect ? object.inspect() : object.toString(); - } catch (e) { - if (e instanceof RangeError) return '...'; - throw e; - } -} - -Function.prototype.bind = function() { - var __method = this, args = $A(arguments), object = args.shift(); - return function() { - return __method.apply(object, args.concat($A(arguments))); - } -} - -Function.prototype.bindAsEventListener = function(object) { - var __method = this; - return function(event) { - return __method.call(object, event || window.event); - } -} - -Object.extend(Number.prototype, { - toColorPart: function() { - var digits = this.toString(16); - if (this < 16) return '0' + digits; - return digits; - }, - - succ: function() { - return this + 1; - }, - - times: function(iterator) { - $R(0, this, true).each(iterator); - return this; - } -}); - -var Try = { - these: function() { - var returnValue; - - for (var i = 0; i < arguments.length; i++) { - var lambda = arguments[i]; - try { - returnValue = lambda(); - break; - } catch (e) {} - } - - return returnValue; - } -} - -/*--------------------------------------------------------------------------*/ - -var PeriodicalExecuter = Class.create(); -PeriodicalExecuter.prototype = { - initialize: function(callback, frequency) { - this.callback = callback; - this.frequency = frequency; - this.currentlyExecuting = false; - - this.registerCallback(); - }, - - registerCallback: function() { - setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); - }, - - onTimerEvent: function() { - if (!this.currentlyExecuting) { - try { - this.currentlyExecuting = true; - this.callback(); - } finally { - this.currentlyExecuting = false; - } - } - } -} -Object.extend(String.prototype, { - gsub: function(pattern, replacement) { - var result = '', source = this, match; - replacement = arguments.callee.prepareReplacement(replacement); - - while (source.length > 0) { - if (match = source.match(pattern)) { - result += source.slice(0, match.index); - result += (replacement(match) || '').toString(); - source = source.slice(match.index + match[0].length); - } else { - result += source, source = ''; - } - } - return result; - }, - - sub: function(pattern, replacement, count) { - replacement = this.gsub.prepareReplacement(replacement); - count = count === undefined ? 1 : count; - - return this.gsub(pattern, function(match) { - if (--count < 0) return match[0]; - return replacement(match); - }); - }, - - scan: function(pattern, iterator) { - this.gsub(pattern, iterator); - return this; - }, - - truncate: function(length, truncation) { - length = length || 30; - truncation = truncation === undefined ? '...' : truncation; - return this.length > length ? - this.slice(0, length - truncation.length) + truncation : this; - }, - - strip: function() { - return this.replace(/^\s+/, '').replace(/\s+$/, ''); - }, - - stripTags: function() { - return this.replace(/<\/?[^>]+>/gi, ''); - }, - - stripScripts: function() { - return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); - }, - - extractScripts: function() { - var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); - var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); - return (this.match(matchAll) || []).map(function(scriptTag) { - return (scriptTag.match(matchOne) || ['', ''])[1]; - }); - }, - - evalScripts: function() { - return this.extractScripts().map(function(script) { return eval(script) }); - }, - - escapeHTML: function() { - var div = document.createElement('div'); - var text = document.createTextNode(this); - div.appendChild(text); - return div.innerHTML; - }, - - unescapeHTML: function() { - var div = document.createElement('div'); - div.innerHTML = this.stripTags(); - return div.childNodes[0] ? div.childNodes[0].nodeValue : ''; - }, - - toQueryParams: function() { - var pairs = this.match(/^\??(.*)$/)[1].split('&'); - return pairs.inject({}, function(params, pairString) { - var pair = pairString.split('='); - params[pair[0]] = pair[1]; - return params; - }); - }, - - toArray: function() { - return this.split(''); - }, - - camelize: function() { - var oStringList = this.split('-'); - if (oStringList.length == 1) return oStringList[0]; - - var camelizedString = this.indexOf('-') == 0 - ? oStringList[0].charAt(0).toUpperCase() + oStringList[0].substring(1) - : oStringList[0]; - - for (var i = 1, len = oStringList.length; i < len; i++) { - var s = oStringList[i]; - camelizedString += s.charAt(0).toUpperCase() + s.substring(1); - } - - return camelizedString; - }, - - inspect: function() { - return "'" + this.replace(/\\/g, '\\\\').replace(/'/g, '\\\'') + "'"; - } -}); - -String.prototype.gsub.prepareReplacement = function(replacement) { - if (typeof replacement == 'function') return replacement; - var template = new Template(replacement); - return function(match) { return template.evaluate(match) }; -} - -String.prototype.parseQuery = String.prototype.toQueryParams; - -var Template = Class.create(); -Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/; -Template.prototype = { - initialize: function(template, pattern) { - this.template = template.toString(); - this.pattern = pattern || Template.Pattern; - }, - - evaluate: function(object) { - return this.template.gsub(this.pattern, function(match) { - var before = match[1]; - if (before == '\\') return match[2]; - return before + (object[match[3]] || '').toString(); - }); - } -} - -var $break = new Object(); -var $continue = new Object(); - -var Enumerable = { - each: function(iterator) { - var index = 0; - try { - this._each(function(value) { - try { - iterator(value, index++); - } catch (e) { - if (e != $continue) throw e; - } - }); - } catch (e) { - if (e != $break) throw e; - } - }, - - all: function(iterator) { - var result = true; - this.each(function(value, index) { - result = result && !!(iterator || Prototype.K)(value, index); - if (!result) throw $break; - }); - return result; - }, - - any: function(iterator) { - var result = true; - this.each(function(value, index) { - if (result = !!(iterator || Prototype.K)(value, index)) - throw $break; - }); - return result; - }, - - collect: function(iterator) { - var results = []; - this.each(function(value, index) { - results.push(iterator(value, index)); - }); - return results; - }, - - detect: function (iterator) { - var result; - this.each(function(value, index) { - if (iterator(value, index)) { - result = value; - throw $break; - } - }); - return result; - }, - - findAll: function(iterator) { - var results = []; - this.each(function(value, index) { - if (iterator(value, index)) - results.push(value); - }); - return results; - }, - - grep: function(pattern, iterator) { - var results = []; - this.each(function(value, index) { - var stringValue = value.toString(); - if (stringValue.match(pattern)) - results.push((iterator || Prototype.K)(value, index)); - }) - return results; - }, - - include: function(object) { - var found = false; - this.each(function(value) { - if (value == object) { - found = true; - throw $break; - } - }); - return found; - }, - - inject: function(memo, iterator) { - this.each(function(value, index) { - memo = iterator(memo, value, index); - }); - return memo; - }, - - invoke: function(method) { - var args = $A(arguments).slice(1); - return this.collect(function(value) { - return value[method].apply(value, args); - }); - }, - - max: function(iterator) { - var result; - this.each(function(value, index) { - value = (iterator || Prototype.K)(value, index); - if (result == undefined || value >= result) - result = value; - }); - return result; - }, - - min: function(iterator) { - var result; - this.each(function(value, index) { - value = (iterator || Prototype.K)(value, index); - if (result == undefined || value < result) - result = value; - }); - return result; - }, - - partition: function(iterator) { - var trues = [], falses = []; - this.each(function(value, index) { - ((iterator || Prototype.K)(value, index) ? - trues : falses).push(value); - }); - return [trues, falses]; - }, - - pluck: function(property) { - var results = []; - this.each(function(value, index) { - results.push(value[property]); - }); - return results; - }, - - reject: function(iterator) { - var results = []; - this.each(function(value, index) { - if (!iterator(value, index)) - results.push(value); - }); - return results; - }, - - sortBy: function(iterator) { - return this.collect(function(value, index) { - return {value: value, criteria: iterator(value, index)}; - }).sort(function(left, right) { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - }).pluck('value'); - }, - - toArray: function() { - return this.collect(Prototype.K); - }, - - zip: function() { - var iterator = Prototype.K, args = $A(arguments); - if (typeof args.last() == 'function') - iterator = args.pop(); - - var collections = [this].concat(args).map($A); - return this.map(function(value, index) { - return iterator(collections.pluck(index)); - }); - }, - - inspect: function() { - return '#'; - } -} - -Object.extend(Enumerable, { - map: Enumerable.collect, - find: Enumerable.detect, - select: Enumerable.findAll, - member: Enumerable.include, - entries: Enumerable.toArray -}); -var $A = Array.from = function(iterable) { - if (!iterable) return []; - if (iterable.toArray) { - return iterable.toArray(); - } else { - var results = []; - for (var i = 0; i < iterable.length; i++) - results.push(iterable[i]); - return results; - } -} - -Object.extend(Array.prototype, Enumerable); - -if (!Array.prototype._reverse) - Array.prototype._reverse = Array.prototype.reverse; - -Object.extend(Array.prototype, { - _each: function(iterator) { - for (var i = 0; i < this.length; i++) - iterator(this[i]); - }, - - clear: function() { - this.length = 0; - return this; - }, - - first: function() { - return this[0]; - }, - - last: function() { - return this[this.length - 1]; - }, - - compact: function() { - return this.select(function(value) { - return value != undefined || value != null; - }); - }, - - flatten: function() { - return this.inject([], function(array, value) { - return array.concat(value && value.constructor == Array ? - value.flatten() : [value]); - }); - }, - - without: function() { - var values = $A(arguments); - return this.select(function(value) { - return !values.include(value); - }); - }, - - indexOf: function(object) { - for (var i = 0; i < this.length; i++) - if (this[i] == object) return i; - return -1; - }, - - reverse: function(inline) { - return (inline !== false ? this : this.toArray())._reverse(); - }, - - inspect: function() { - return '[' + this.map(Object.inspect).join(', ') + ']'; - } -}); -var Hash = { - _each: function(iterator) { - for (var key in this) { - var value = this[key]; - if (typeof value == 'function') continue; - - var pair = [key, value]; - pair.key = key; - pair.value = value; - iterator(pair); - } - }, - - keys: function() { - return this.pluck('key'); - }, - - values: function() { - return this.pluck('value'); - }, - - merge: function(hash) { - return $H(hash).inject($H(this), function(mergedHash, pair) { - mergedHash[pair.key] = pair.value; - return mergedHash; - }); - }, - - toQueryString: function() { - return this.map(function(pair) { - return pair.map(encodeURIComponent).join('='); - }).join('&'); - }, - - inspect: function() { - return '#'; - } -} - -function $H(object) { - var hash = Object.extend({}, object || {}); - Object.extend(hash, Enumerable); - Object.extend(hash, Hash); - return hash; -} -ObjectRange = Class.create(); -Object.extend(ObjectRange.prototype, Enumerable); -Object.extend(ObjectRange.prototype, { - initialize: function(start, end, exclusive) { - this.start = start; - this.end = end; - this.exclusive = exclusive; - }, - - _each: function(iterator) { - var value = this.start; - do { - iterator(value); - value = value.succ(); - } while (this.include(value)); - }, - - include: function(value) { - if (value < this.start) - return false; - if (this.exclusive) - return value < this.end; - return value <= this.end; - } -}); - -var $R = function(start, end, exclusive) { - return new ObjectRange(start, end, exclusive); -} - -var Ajax = { - getTransport: function() { - return Try.these( - function() {return new XMLHttpRequest()}, - function() {return new ActiveXObject('Msxml2.XMLHTTP')}, - function() {return new ActiveXObject('Microsoft.XMLHTTP')} - ) || false; - }, - - activeRequestCount: 0 -} - -Ajax.Responders = { - responders: [], - - _each: function(iterator) { - this.responders._each(iterator); - }, - - register: function(responderToAdd) { - if (!this.include(responderToAdd)) - this.responders.push(responderToAdd); - }, - - unregister: function(responderToRemove) { - this.responders = this.responders.without(responderToRemove); - }, - - dispatch: function(callback, request, transport, json) { - this.each(function(responder) { - if (responder[callback] && typeof responder[callback] == 'function') { - try { - responder[callback].apply(responder, [request, transport, json]); - } catch (e) {} - } - }); - } -}; - -Object.extend(Ajax.Responders, Enumerable); - -Ajax.Responders.register({ - onCreate: function() { - Ajax.activeRequestCount++; - }, - - onComplete: function() { - Ajax.activeRequestCount--; - } -}); - -Ajax.Base = function() {}; -Ajax.Base.prototype = { - setOptions: function(options) { - this.options = { - method: 'post', - asynchronous: true, - contentType: 'application/x-www-form-urlencoded', - parameters: '' - } - Object.extend(this.options, options || {}); - }, - - responseIsSuccess: function() { - return this.transport.status == undefined - || this.transport.status == 0 - || (this.transport.status >= 200 && this.transport.status < 300); - }, - - responseIsFailure: function() { - return !this.responseIsSuccess(); - } -} - -Ajax.Request = Class.create(); -Ajax.Request.Events = - ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; - -Ajax.Request.prototype = Object.extend(new Ajax.Base(), { - initialize: function(url, options) { - this.transport = Ajax.getTransport(); - this.setOptions(options); - this.request(url); - }, - - request: function(url) { - var parameters = this.options.parameters || ''; - if (parameters.length > 0) parameters += '&_='; - - try { - this.url = url; - if (this.options.method == 'get' && parameters.length > 0) - this.url += (this.url.match(/\?/) ? '&' : '?') + parameters; - - Ajax.Responders.dispatch('onCreate', this, this.transport); - - this.transport.open(this.options.method, this.url, - this.options.asynchronous); - - if (this.options.asynchronous) { - this.transport.onreadystatechange = this.onStateChange.bind(this); - setTimeout((function() {this.respondToReadyState(1)}).bind(this), 10); - } - - this.setRequestHeaders(); - - var body = this.options.postBody ? this.options.postBody : parameters; - this.transport.send(this.options.method == 'post' ? body : null); - - } catch (e) { - this.dispatchException(e); - } - }, - - setRequestHeaders: function() { - var requestHeaders = - ['X-Requested-With', 'XMLHttpRequest', - 'X-Prototype-Version', Prototype.Version, - 'Accept', 'text/javascript, text/html, application/xml, text/xml, */*']; - - if (this.options.method == 'post') { - requestHeaders.push('Content-type', this.options.contentType); - - /* Force "Connection: close" for Mozilla browsers to work around - * a bug where XMLHttpReqeuest sends an incorrect Content-length - * header. See Mozilla Bugzilla #246651. - */ - if (this.transport.overrideMimeType) - requestHeaders.push('Connection', 'close'); - } - - if (this.options.requestHeaders) - requestHeaders.push.apply(requestHeaders, this.options.requestHeaders); - - for (var i = 0; i < requestHeaders.length; i += 2) - this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i+1]); - }, - - onStateChange: function() { - var readyState = this.transport.readyState; - if (readyState != 1) - this.respondToReadyState(this.transport.readyState); - }, - - header: function(name) { - try { - return this.transport.getResponseHeader(name); - } catch (e) {} - }, - - evalJSON: function() { - try { - return eval('(' + this.header('X-JSON') + ')'); - } catch (e) {} - }, - - evalResponse: function() { - try { - return eval(this.transport.responseText); - } catch (e) { - this.dispatchException(e); - } - }, - - respondToReadyState: function(readyState) { - var event = Ajax.Request.Events[readyState]; - var transport = this.transport, json = this.evalJSON(); - - if (event == 'Complete') { - try { - (this.options['on' + this.transport.status] - || this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')] - || Prototype.emptyFunction)(transport, json); - } catch (e) { - this.dispatchException(e); - } - - if ((this.header('Content-type') || '').match(/^text\/javascript/i)) - this.evalResponse(); - } - - try { - (this.options['on' + event] || Prototype.emptyFunction)(transport, json); - Ajax.Responders.dispatch('on' + event, this, transport, json); - } catch (e) { - this.dispatchException(e); - } - - /* Avoid memory leak in MSIE: clean up the oncomplete event handler */ - if (event == 'Complete') - this.transport.onreadystatechange = Prototype.emptyFunction; - }, - - dispatchException: function(exception) { - (this.options.onException || Prototype.emptyFunction)(this, exception); - Ajax.Responders.dispatch('onException', this, exception); - } -}); - -Ajax.Updater = Class.create(); - -Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), { - initialize: function(container, url, options) { - this.containers = { - success: container.success ? $(container.success) : $(container), - failure: container.failure ? $(container.failure) : - (container.success ? null : $(container)) - } - - this.transport = Ajax.getTransport(); - this.setOptions(options); - - var onComplete = this.options.onComplete || Prototype.emptyFunction; - this.options.onComplete = (function(transport, object) { - this.updateContent(); - onComplete(transport, object); - }).bind(this); - - this.request(url); - }, - - updateContent: function() { - var receiver = this.responseIsSuccess() ? - this.containers.success : this.containers.failure; - var response = this.transport.responseText; - - if (!this.options.evalScripts) - response = response.stripScripts(); - - if (receiver) { - if (this.options.insertion) { - new this.options.insertion(receiver, response); - } else { - Element.update(receiver, response); - } - } - - if (this.responseIsSuccess()) { - if (this.onComplete) - setTimeout(this.onComplete.bind(this), 10); - } - } -}); - -Ajax.PeriodicalUpdater = Class.create(); -Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), { - initialize: function(container, url, options) { - this.setOptions(options); - this.onComplete = this.options.onComplete; - - this.frequency = (this.options.frequency || 2); - this.decay = (this.options.decay || 1); - - this.updater = {}; - this.container = container; - this.url = url; - - this.start(); - }, - - start: function() { - this.options.onComplete = this.updateComplete.bind(this); - this.onTimerEvent(); - }, - - stop: function() { - this.updater.onComplete = undefined; - clearTimeout(this.timer); - (this.onComplete || Prototype.emptyFunction).apply(this, arguments); - }, - - updateComplete: function(request) { - if (this.options.decay) { - this.decay = (request.responseText == this.lastText ? - this.decay * this.options.decay : 1); - - this.lastText = request.responseText; - } - this.timer = setTimeout(this.onTimerEvent.bind(this), - this.decay * this.frequency * 1000); - }, - - onTimerEvent: function() { - this.updater = new Ajax.Updater(this.container, this.url, this.options); - } -}); -function $() { - var results = [], element; - for (var i = 0; i < arguments.length; i++) { - element = arguments[i]; - if (typeof element == 'string') - element = document.getElementById(element); - results.push(Element.extend(element)); - } - return results.length < 2 ? results[0] : results; -} - -document.getElementsByClassName = function(className, parentElement) { - var children = ($(parentElement) || document.body).getElementsByTagName('*'); - return $A(children).inject([], function(elements, child) { - if (child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)"))) - elements.push(Element.extend(child)); - return elements; - }); -} - -/*--------------------------------------------------------------------------*/ - -if (!window.Element) - var Element = new Object(); - -Element.extend = function(element) { - if (!element) return; - if (_nativeExtensions) return element; - - if (!element._extended && element.tagName && element != window) { - var methods = Element.Methods, cache = Element.extend.cache; - for (property in methods) { - var value = methods[property]; - if (typeof value == 'function') - element[property] = cache.findOrStore(value); - } - } - - element._extended = true; - return element; -} - -Element.extend.cache = { - findOrStore: function(value) { - return this[value] = this[value] || function() { - return value.apply(null, [this].concat($A(arguments))); - } - } -} - -Element.Methods = { - visible: function(element) { - return $(element).style.display != 'none'; - }, - - toggle: function() { - for (var i = 0; i < arguments.length; i++) { - var element = $(arguments[i]); - Element[Element.visible(element) ? 'hide' : 'show'](element); - } - }, - - hide: function() { - for (var i = 0; i < arguments.length; i++) { - var element = $(arguments[i]); - element.style.display = 'none'; - } - }, - - show: function() { - for (var i = 0; i < arguments.length; i++) { - var element = $(arguments[i]); - element.style.display = ''; - } - }, - - remove: function(element) { - element = $(element); - element.parentNode.removeChild(element); - }, - - update: function(element, html) { - $(element).innerHTML = html.stripScripts(); - setTimeout(function() {html.evalScripts()}, 10); - }, - - replace: function(element, html) { - element = $(element); - if (element.outerHTML) { - element.outerHTML = html.stripScripts(); - } else { - var range = element.ownerDocument.createRange(); - range.selectNodeContents(element); - element.parentNode.replaceChild( - range.createContextualFragment(html.stripScripts()), element); - } - setTimeout(function() {html.evalScripts()}, 10); - }, - - getHeight: function(element) { - element = $(element); - return element.offsetHeight; - }, - - classNames: function(element) { - return new Element.ClassNames(element); - }, - - hasClassName: function(element, className) { - if (!(element = $(element))) return; - return Element.classNames(element).include(className); - }, - - addClassName: function(element, className) { - if (!(element = $(element))) return; - return Element.classNames(element).add(className); - }, - - removeClassName: function(element, className) { - if (!(element = $(element))) return; - return Element.classNames(element).remove(className); - }, - - // removes whitespace-only text node children - cleanWhitespace: function(element) { - element = $(element); - for (var i = 0; i < element.childNodes.length; i++) { - var node = element.childNodes[i]; - if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) - Element.remove(node); - } - }, - - empty: function(element) { - return $(element).innerHTML.match(/^\s*$/); - }, - - childOf: function(element, ancestor) { - element = $(element), ancestor = $(ancestor); - while (element = element.parentNode) - if (element == ancestor) return true; - return false; - }, - - scrollTo: function(element) { - element = $(element); - var x = element.x ? element.x : element.offsetLeft, - y = element.y ? element.y : element.offsetTop; - window.scrollTo(x, y); - }, - - getStyle: function(element, style) { - element = $(element); - var value = element.style[style.camelize()]; - if (!value) { - if (document.defaultView && document.defaultView.getComputedStyle) { - var css = document.defaultView.getComputedStyle(element, null); - value = css ? css.getPropertyValue(style) : null; - } else if (element.currentStyle) { - value = element.currentStyle[style.camelize()]; - } - } - - if (window.opera && ['left', 'top', 'right', 'bottom'].include(style)) - if (Element.getStyle(element, 'position') == 'static') value = 'auto'; - - return value == 'auto' ? null : value; - }, - - setStyle: function(element, style) { - element = $(element); - for (var name in style) - element.style[name.camelize()] = style[name]; - }, - - getDimensions: function(element) { - element = $(element); - if (Element.getStyle(element, 'display') != 'none') - return {width: element.offsetWidth, height: element.offsetHeight}; - - // All *Width and *Height properties give 0 on elements with display none, - // so enable the element temporarily - var els = element.style; - var originalVisibility = els.visibility; - var originalPosition = els.position; - els.visibility = 'hidden'; - els.position = 'absolute'; - els.display = ''; - var originalWidth = element.clientWidth; - var originalHeight = element.clientHeight; - els.display = 'none'; - els.position = originalPosition; - els.visibility = originalVisibility; - return {width: originalWidth, height: originalHeight}; - }, - - makePositioned: function(element) { - element = $(element); - var pos = Element.getStyle(element, 'position'); - if (pos == 'static' || !pos) { - element._madePositioned = true; - element.style.position = 'relative'; - // Opera returns the offset relative to the positioning context, when an - // element is position relative but top and left have not been defined - if (window.opera) { - element.style.top = 0; - element.style.left = 0; - } - } - }, - - undoPositioned: function(element) { - element = $(element); - if (element._madePositioned) { - element._madePositioned = undefined; - element.style.position = - element.style.top = - element.style.left = - element.style.bottom = - element.style.right = ''; - } - }, - - makeClipping: function(element) { - element = $(element); - if (element._overflow) return; - element._overflow = element.style.overflow; - if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden') - element.style.overflow = 'hidden'; - }, - - undoClipping: function(element) { - element = $(element); - if (element._overflow) return; - element.style.overflow = element._overflow; - element._overflow = undefined; - } -} - -Object.extend(Element, Element.Methods); - -var _nativeExtensions = false; - -if(!HTMLElement && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) { - var HTMLElement = {} - HTMLElement.prototype = document.createElement('div').__proto__; -} - -Element.addMethods = function(methods) { - Object.extend(Element.Methods, methods || {}); - - if(typeof HTMLElement != 'undefined') { - var methods = Element.Methods, cache = Element.extend.cache; - for (property in methods) { - var value = methods[property]; - if (typeof value == 'function') - HTMLElement.prototype[property] = cache.findOrStore(value); - } - _nativeExtensions = true; - } -} - -Element.addMethods(); - -var Toggle = new Object(); -Toggle.display = Element.toggle; - -/*--------------------------------------------------------------------------*/ - -Abstract.Insertion = function(adjacency) { - this.adjacency = adjacency; -} - -Abstract.Insertion.prototype = { - initialize: function(element, content) { - this.element = $(element); - this.content = content.stripScripts(); - - if (this.adjacency && this.element.insertAdjacentHTML) { - try { - this.element.insertAdjacentHTML(this.adjacency, this.content); - } catch (e) { - var tagName = this.element.tagName.toLowerCase(); - if (tagName == 'tbody' || tagName == 'tr') { - this.insertContent(this.contentFromAnonymousTable()); - } else { - throw e; - } - } - } else { - this.range = this.element.ownerDocument.createRange(); - if (this.initializeRange) this.initializeRange(); - this.insertContent([this.range.createContextualFragment(this.content)]); - } - - setTimeout(function() {content.evalScripts()}, 10); - }, - - contentFromAnonymousTable: function() { - var div = document.createElement('div'); - div.innerHTML = '' + this.content + '
'; - return $A(div.childNodes[0].childNodes[0].childNodes); - } -} - -var Insertion = new Object(); - -Insertion.Before = Class.create(); -Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), { - initializeRange: function() { - this.range.setStartBefore(this.element); - }, - - insertContent: function(fragments) { - fragments.each((function(fragment) { - this.element.parentNode.insertBefore(fragment, this.element); - }).bind(this)); - } -}); - -Insertion.Top = Class.create(); -Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), { - initializeRange: function() { - this.range.selectNodeContents(this.element); - this.range.collapse(true); - }, - - insertContent: function(fragments) { - fragments.reverse(false).each((function(fragment) { - this.element.insertBefore(fragment, this.element.firstChild); - }).bind(this)); - } -}); - -Insertion.Bottom = Class.create(); -Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), { - initializeRange: function() { - this.range.selectNodeContents(this.element); - this.range.collapse(this.element); - }, - - insertContent: function(fragments) { - fragments.each((function(fragment) { - this.element.appendChild(fragment); - }).bind(this)); - } -}); - -Insertion.After = Class.create(); -Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), { - initializeRange: function() { - this.range.setStartAfter(this.element); - }, - - insertContent: function(fragments) { - fragments.each((function(fragment) { - this.element.parentNode.insertBefore(fragment, - this.element.nextSibling); - }).bind(this)); - } -}); - -/*--------------------------------------------------------------------------*/ - -Element.ClassNames = Class.create(); -Element.ClassNames.prototype = { - initialize: function(element) { - this.element = $(element); - }, - - _each: function(iterator) { - this.element.className.split(/\s+/).select(function(name) { - return name.length > 0; - })._each(iterator); - }, - - set: function(className) { - this.element.className = className; - }, - - add: function(classNameToAdd) { - if (this.include(classNameToAdd)) return; - this.set(this.toArray().concat(classNameToAdd).join(' ')); - }, - - remove: function(classNameToRemove) { - if (!this.include(classNameToRemove)) return; - this.set(this.select(function(className) { - return className != classNameToRemove; - }).join(' ')); - }, - - toString: function() { - return this.toArray().join(' '); - } -} - -Object.extend(Element.ClassNames.prototype, Enumerable); -var Selector = Class.create(); -Selector.prototype = { - initialize: function(expression) { - this.params = {classNames: []}; - this.expression = expression.toString().strip(); - this.parseExpression(); - this.compileMatcher(); - }, - - parseExpression: function() { - function abort(message) { throw 'Parse error in selector: ' + message; } - - if (this.expression == '') abort('empty expression'); - - var params = this.params, expr = this.expression, match, modifier, clause, rest; - while (match = expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!]?=)(?:"([^"]*)"|([^\]\s]*)))?\]$/i)) { - params.attributes = params.attributes || []; - params.attributes.push({name: match[2], operator: match[3], value: match[4] || match[5] || ''}); - expr = match[1]; - } - - if (expr == '*') return this.params.wildcard = true; - - while (match = expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+)(.*)/i)) { - modifier = match[1], clause = match[2], rest = match[3]; - switch (modifier) { - case '#': params.id = clause; break; - case '.': params.classNames.push(clause); break; - case '': - case undefined: params.tagName = clause.toUpperCase(); break; - default: abort(expr.inspect()); - } - expr = rest; - } - - if (expr.length > 0) abort(expr.inspect()); - }, - - buildMatchExpression: function() { - var params = this.params, conditions = [], clause; - - if (params.wildcard) - conditions.push('true'); - if (clause = params.id) - conditions.push('element.id == ' + clause.inspect()); - if (clause = params.tagName) - conditions.push('element.tagName.toUpperCase() == ' + clause.inspect()); - if ((clause = params.classNames).length > 0) - for (var i = 0; i < clause.length; i++) - conditions.push('Element.hasClassName(element, ' + clause[i].inspect() + ')'); - if (clause = params.attributes) { - clause.each(function(attribute) { - var value = 'element.getAttribute(' + attribute.name.inspect() + ')'; - var splitValueBy = function(delimiter) { - return value + ' && ' + value + '.split(' + delimiter.inspect() + ')'; - } - - switch (attribute.operator) { - case '=': conditions.push(value + ' == ' + attribute.value.inspect()); break; - case '~=': conditions.push(splitValueBy(' ') + '.include(' + attribute.value.inspect() + ')'); break; - case '|=': conditions.push( - splitValueBy('-') + '.first().toUpperCase() == ' + attribute.value.toUpperCase().inspect() - ); break; - case '!=': conditions.push(value + ' != ' + attribute.value.inspect()); break; - case '': - case undefined: conditions.push(value + ' != null'); break; - default: throw 'Unknown operator ' + attribute.operator + ' in selector'; - } - }); - } - - return conditions.join(' && '); - }, - - compileMatcher: function() { - this.match = new Function('element', 'if (!element.tagName) return false; \ - return ' + this.buildMatchExpression()); - }, - - findElements: function(scope) { - var element; - - if (element = $(this.params.id)) - if (this.match(element)) - if (!scope || Element.childOf(element, scope)) - return [element]; - - scope = (scope || document).getElementsByTagName(this.params.tagName || '*'); - - var results = []; - for (var i = 0; i < scope.length; i++) - if (this.match(element = scope[i])) - results.push(Element.extend(element)); - - return results; - }, - - toString: function() { - return this.expression; - } -} - -function $$() { - return $A(arguments).map(function(expression) { - return expression.strip().split(/\s+/).inject([null], function(results, expr) { - var selector = new Selector(expr); - return results.map(selector.findElements.bind(selector)).flatten(); - }); - }).flatten(); -} -var Field = { - clear: function() { - for (var i = 0; i < arguments.length; i++) - $(arguments[i]).value = ''; - }, - - focus: function(element) { - $(element).focus(); - }, - - present: function() { - for (var i = 0; i < arguments.length; i++) - if ($(arguments[i]).value == '') return false; - return true; - }, - - select: function(element) { - $(element).select(); - }, - - activate: function(element) { - element = $(element); - element.focus(); - if (element.select) - element.select(); - } -} - -/*--------------------------------------------------------------------------*/ - -var Form = { - serialize: function(form) { - var elements = Form.getElements($(form)); - var queryComponents = new Array(); - - for (var i = 0; i < elements.length; i++) { - var queryComponent = Form.Element.serialize(elements[i]); - if (queryComponent) - queryComponents.push(queryComponent); - } - - return queryComponents.join('&'); - }, - - getElements: function(form) { - form = $(form); - var elements = new Array(); - - for (var tagName in Form.Element.Serializers) { - var tagElements = form.getElementsByTagName(tagName); - for (var j = 0; j < tagElements.length; j++) - elements.push(tagElements[j]); - } - return elements; - }, - - getInputs: function(form, typeName, name) { - form = $(form); - var inputs = form.getElementsByTagName('input'); - - if (!typeName && !name) - return inputs; - - var matchingInputs = new Array(); - for (var i = 0; i < inputs.length; i++) { - var input = inputs[i]; - if ((typeName && input.type != typeName) || - (name && input.name != name)) - continue; - matchingInputs.push(input); - } - - return matchingInputs; - }, - - disable: function(form) { - var elements = Form.getElements(form); - for (var i = 0; i < elements.length; i++) { - var element = elements[i]; - element.blur(); - element.disabled = 'true'; - } - }, - - enable: function(form) { - var elements = Form.getElements(form); - for (var i = 0; i < elements.length; i++) { - var element = elements[i]; - element.disabled = ''; - } - }, - - findFirstElement: function(form) { - return Form.getElements(form).find(function(element) { - return element.type != 'hidden' && !element.disabled && - ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); - }); - }, - - focusFirstElement: function(form) { - Field.activate(Form.findFirstElement(form)); - }, - - reset: function(form) { - $(form).reset(); - } -} - -Form.Element = { - serialize: function(element) { - element = $(element); - var method = element.tagName.toLowerCase(); - var parameter = Form.Element.Serializers[method](element); - - if (parameter) { - var key = encodeURIComponent(parameter[0]); - if (key.length == 0) return; - - if (parameter[1].constructor != Array) - parameter[1] = [parameter[1]]; - - return parameter[1].map(function(value) { - return key + '=' + encodeURIComponent(value); - }).join('&'); - } - }, - - getValue: function(element) { - element = $(element); - var method = element.tagName.toLowerCase(); - var parameter = Form.Element.Serializers[method](element); - - if (parameter) - return parameter[1]; - } -} - -Form.Element.Serializers = { - input: function(element) { - switch (element.type.toLowerCase()) { - case 'submit': - case 'hidden': - case 'password': - case 'text': - return Form.Element.Serializers.textarea(element); - case 'checkbox': - case 'radio': - return Form.Element.Serializers.inputSelector(element); - } - return false; - }, - - inputSelector: function(element) { - if (element.checked) - return [element.name, element.value]; - }, - - textarea: function(element) { - return [element.name, element.value]; - }, - - select: function(element) { - return Form.Element.Serializers[element.type == 'select-one' ? - 'selectOne' : 'selectMany'](element); - }, - - selectOne: function(element) { - var value = '', opt, index = element.selectedIndex; - if (index >= 0) { - opt = element.options[index]; - value = opt.value || opt.text; - } - return [element.name, value]; - }, - - selectMany: function(element) { - var value = []; - for (var i = 0; i < element.length; i++) { - var opt = element.options[i]; - if (opt.selected) - value.push(opt.value || opt.text); - } - return [element.name, value]; - } -} - -/*--------------------------------------------------------------------------*/ - -var $F = Form.Element.getValue; - -/*--------------------------------------------------------------------------*/ - -Abstract.TimedObserver = function() {} -Abstract.TimedObserver.prototype = { - initialize: function(element, frequency, callback) { - this.frequency = frequency; - this.element = $(element); - this.callback = callback; - - this.lastValue = this.getValue(); - this.registerCallback(); - }, - - registerCallback: function() { - setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); - }, - - onTimerEvent: function() { - var value = this.getValue(); - if (this.lastValue != value) { - this.callback(this.element, value); - this.lastValue = value; - } - } -} - -Form.Element.Observer = Class.create(); -Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { - getValue: function() { - return Form.Element.getValue(this.element); - } -}); - -Form.Observer = Class.create(); -Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), { - getValue: function() { - return Form.serialize(this.element); - } -}); - -/*--------------------------------------------------------------------------*/ - -Abstract.EventObserver = function() {} -Abstract.EventObserver.prototype = { - initialize: function(element, callback) { - this.element = $(element); - this.callback = callback; - - this.lastValue = this.getValue(); - if (this.element.tagName.toLowerCase() == 'form') - this.registerFormCallbacks(); - else - this.registerCallback(this.element); - }, - - onElementEvent: function() { - var value = this.getValue(); - if (this.lastValue != value) { - this.callback(this.element, value); - this.lastValue = value; - } - }, - - registerFormCallbacks: function() { - var elements = Form.getElements(this.element); - for (var i = 0; i < elements.length; i++) - this.registerCallback(elements[i]); - }, - - registerCallback: function(element) { - if (element.type) { - switch (element.type.toLowerCase()) { - case 'checkbox': - case 'radio': - Event.observe(element, 'click', this.onElementEvent.bind(this)); - break; - case 'password': - case 'text': - case 'textarea': - case 'select-one': - case 'select-multiple': - Event.observe(element, 'change', this.onElementEvent.bind(this)); - break; - } - } - } -} - -Form.Element.EventObserver = Class.create(); -Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { - getValue: function() { - return Form.Element.getValue(this.element); - } -}); - -Form.EventObserver = Class.create(); -Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), { - getValue: function() { - return Form.serialize(this.element); - } -}); -if (!window.Event) { - var Event = new Object(); -} - -Object.extend(Event, { - KEY_BACKSPACE: 8, - KEY_TAB: 9, - KEY_RETURN: 13, - KEY_ESC: 27, - KEY_LEFT: 37, - KEY_UP: 38, - KEY_RIGHT: 39, - KEY_DOWN: 40, - KEY_DELETE: 46, - - element: function(event) { - return event.target || event.srcElement; - }, - - isLeftClick: function(event) { - return (((event.which) && (event.which == 1)) || - ((event.button) && (event.button == 1))); - }, - - pointerX: function(event) { - return event.pageX || (event.clientX + - (document.documentElement.scrollLeft || document.body.scrollLeft)); - }, - - pointerY: function(event) { - return event.pageY || (event.clientY + - (document.documentElement.scrollTop || document.body.scrollTop)); - }, - - stop: function(event) { - if (event.preventDefault) { - event.preventDefault(); - event.stopPropagation(); - } else { - event.returnValue = false; - event.cancelBubble = true; - } - }, - - // find the first node with the given tagName, starting from the - // node the event was triggered on; traverses the DOM upwards - findElement: function(event, tagName) { - var element = Event.element(event); - while (element.parentNode && (!element.tagName || - (element.tagName.toUpperCase() != tagName.toUpperCase()))) - element = element.parentNode; - return element; - }, - - observers: false, - - _observeAndCache: function(element, name, observer, useCapture) { - if (!this.observers) this.observers = []; - if (element.addEventListener) { - this.observers.push([element, name, observer, useCapture]); - element.addEventListener(name, observer, useCapture); - } else if (element.attachEvent) { - this.observers.push([element, name, observer, useCapture]); - element.attachEvent('on' + name, observer); - } - }, - - unloadCache: function() { - if (!Event.observers) return; - for (var i = 0; i < Event.observers.length; i++) { - Event.stopObserving.apply(this, Event.observers[i]); - Event.observers[i][0] = null; - } - Event.observers = false; - }, - - observe: function(element, name, observer, useCapture) { - var element = $(element); - useCapture = useCapture || false; - - if (name == 'keypress' && - (navigator.appVersion.match(/Konqueror|Safari|KHTML/) - || element.attachEvent)) - name = 'keydown'; - - this._observeAndCache(element, name, observer, useCapture); - }, - - stopObserving: function(element, name, observer, useCapture) { - var element = $(element); - useCapture = useCapture || false; - - if (name == 'keypress' && - (navigator.appVersion.match(/Konqueror|Safari|KHTML/) - || element.detachEvent)) - name = 'keydown'; - - if (element.removeEventListener) { - element.removeEventListener(name, observer, useCapture); - } else if (element.detachEvent) { - element.detachEvent('on' + name, observer); - } - } -}); - -/* prevent memory leaks in IE */ -if (navigator.appVersion.match(/\bMSIE\b/)) - Event.observe(window, 'unload', Event.unloadCache, false); -var Position = { - // set to true if needed, warning: firefox performance problems - // NOT neeeded for page scrolling, only if draggable contained in - // scrollable elements - includeScrollOffsets: false, - - // must be called before calling withinIncludingScrolloffset, every time the - // page is scrolled - prepare: function() { - this.deltaX = window.pageXOffset - || document.documentElement.scrollLeft - || document.body.scrollLeft - || 0; - this.deltaY = window.pageYOffset - || document.documentElement.scrollTop - || document.body.scrollTop - || 0; - }, - - realOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.scrollTop || 0; - valueL += element.scrollLeft || 0; - element = element.parentNode; - } while (element); - return [valueL, valueT]; - }, - - cumulativeOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - } while (element); - return [valueL, valueT]; - }, - - positionedOffset: function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - element = element.offsetParent; - if (element) { - p = Element.getStyle(element, 'position'); - if (p == 'relative' || p == 'absolute') break; - } - } while (element); - return [valueL, valueT]; - }, - - offsetParent: function(element) { - if (element.offsetParent) return element.offsetParent; - if (element == document.body) return element; - - while ((element = element.parentNode) && element != document.body) - if (Element.getStyle(element, 'position') != 'static') - return element; - - return document.body; - }, - - // caches x/y coordinate pair to use with overlap - within: function(element, x, y) { - if (this.includeScrollOffsets) - return this.withinIncludingScrolloffsets(element, x, y); - this.xcomp = x; - this.ycomp = y; - this.offset = this.cumulativeOffset(element); - - return (y >= this.offset[1] && - y < this.offset[1] + element.offsetHeight && - x >= this.offset[0] && - x < this.offset[0] + element.offsetWidth); - }, - - withinIncludingScrolloffsets: function(element, x, y) { - var offsetcache = this.realOffset(element); - - this.xcomp = x + offsetcache[0] - this.deltaX; - this.ycomp = y + offsetcache[1] - this.deltaY; - this.offset = this.cumulativeOffset(element); - - return (this.ycomp >= this.offset[1] && - this.ycomp < this.offset[1] + element.offsetHeight && - this.xcomp >= this.offset[0] && - this.xcomp < this.offset[0] + element.offsetWidth); - }, - - // within must be called directly before - overlap: function(mode, element) { - if (!mode) return 0; - if (mode == 'vertical') - return ((this.offset[1] + element.offsetHeight) - this.ycomp) / - element.offsetHeight; - if (mode == 'horizontal') - return ((this.offset[0] + element.offsetWidth) - this.xcomp) / - element.offsetWidth; - }, - - clone: function(source, target) { - source = $(source); - target = $(target); - target.style.position = 'absolute'; - var offsets = this.cumulativeOffset(source); - target.style.top = offsets[1] + 'px'; - target.style.left = offsets[0] + 'px'; - target.style.width = source.offsetWidth + 'px'; - target.style.height = source.offsetHeight + 'px'; - }, - - page: function(forElement) { - var valueT = 0, valueL = 0; - - var element = forElement; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - - // Safari fix - if (element.offsetParent==document.body) - if (Element.getStyle(element,'position')=='absolute') break; - - } while (element = element.offsetParent); - - element = forElement; - do { - valueT -= element.scrollTop || 0; - valueL -= element.scrollLeft || 0; - } while (element = element.parentNode); - - return [valueL, valueT]; - }, - - clone: function(source, target) { - var options = Object.extend({ - setLeft: true, - setTop: true, - setWidth: true, - setHeight: true, - offsetTop: 0, - offsetLeft: 0 - }, arguments[2] || {}) - - // find page position of source - source = $(source); - var p = Position.page(source); - - // find coordinate system to use - target = $(target); - var delta = [0, 0]; - var parent = null; - // delta [0,0] will do fine with position: fixed elements, - // position:absolute needs offsetParent deltas - if (Element.getStyle(target,'position') == 'absolute') { - parent = Position.offsetParent(target); - delta = Position.page(parent); - } - - // correct by body offsets (fixes Safari) - if (parent == document.body) { - delta[0] -= document.body.offsetLeft; - delta[1] -= document.body.offsetTop; - } - - // set position - if(options.setLeft) target.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; - if(options.setTop) target.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; - if(options.setWidth) target.style.width = source.offsetWidth + 'px'; - if(options.setHeight) target.style.height = source.offsetHeight + 'px'; - }, - - absolutize: function(element) { - element = $(element); - if (element.style.position == 'absolute') return; - Position.prepare(); - - var offsets = Position.positionedOffset(element); - var top = offsets[1]; - var left = offsets[0]; - var width = element.clientWidth; - var height = element.clientHeight; - - element._originalLeft = left - parseFloat(element.style.left || 0); - element._originalTop = top - parseFloat(element.style.top || 0); - element._originalWidth = element.style.width; - element._originalHeight = element.style.height; - - element.style.position = 'absolute'; - element.style.top = top + 'px';; - element.style.left = left + 'px';; - element.style.width = width + 'px';; - element.style.height = height + 'px';; - }, - - relativize: function(element) { - element = $(element); - if (element.style.position == 'relative') return; - Position.prepare(); - - element.style.position = 'relative'; - var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); - var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); - - element.style.top = top + 'px'; - element.style.left = left + 'px'; - element.style.height = element._originalHeight; - element.style.width = element._originalWidth; - } -} - -// Safari returns margins on body which is incorrect if the child is absolutely -// positioned. For performance reasons, redefine Position.cumulativeOffset for -// KHTML/WebKit only. -if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) { - Position.cumulativeOffset = function(element) { - var valueT = 0, valueL = 0; - do { - valueT += element.offsetTop || 0; - valueL += element.offsetLeft || 0; - if (element.offsetParent == document.body) - if (Element.getStyle(element, 'position') == 'absolute') break; - - element = element.offsetParent; - } while (element); - - return [valueL, valueT]; - } -} \ No newline at end of file diff --git a/tests/test_tools/selenium/core/lib/scriptaculous/builder.js b/tests/test_tools/selenium/core/lib/scriptaculous/builder.js deleted file mode 100644 index 5b15ba93..00000000 --- a/tests/test_tools/selenium/core/lib/scriptaculous/builder.js +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// -// See scriptaculous.js for full license. - -var Builder = { - NODEMAP: { - AREA: 'map', - CAPTION: 'table', - COL: 'table', - COLGROUP: 'table', - LEGEND: 'fieldset', - OPTGROUP: 'select', - OPTION: 'select', - PARAM: 'object', - TBODY: 'table', - TD: 'table', - TFOOT: 'table', - TH: 'table', - THEAD: 'table', - TR: 'table' - }, - // note: For Firefox < 1.5, OPTION and OPTGROUP tags are currently broken, - // due to a Firefox bug - node: function(elementName) { - elementName = elementName.toUpperCase(); - - // try innerHTML approach - var parentTag = this.NODEMAP[elementName] || 'div'; - var parentElement = document.createElement(parentTag); - try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707 - parentElement.innerHTML = "<" + elementName + ">"; - } catch(e) {} - var element = parentElement.firstChild || null; - - // see if browser added wrapping tags - if(element && (element.tagName != elementName)) - element = element.getElementsByTagName(elementName)[0]; - - // fallback to createElement approach - if(!element) element = document.createElement(elementName); - - // abort if nothing could be created - if(!element) return; - - // attributes (or text) - if(arguments[1]) - if(this._isStringOrNumber(arguments[1]) || - (arguments[1] instanceof Array)) { - this._children(element, arguments[1]); - } else { - var attrs = this._attributes(arguments[1]); - if(attrs.length) { - try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707 - parentElement.innerHTML = "<" +elementName + " " + - attrs + ">"; - } catch(e) {} - element = parentElement.firstChild || null; - // workaround firefox 1.0.X bug - if(!element) { - element = document.createElement(elementName); - for(attr in arguments[1]) - element[attr == 'class' ? 'className' : attr] = arguments[1][attr]; - } - if(element.tagName != elementName) - element = parentElement.getElementsByTagName(elementName)[0]; - } - } - - // text, or array of children - if(arguments[2]) - this._children(element, arguments[2]); - - return element; - }, - _text: function(text) { - return document.createTextNode(text); - }, - _attributes: function(attributes) { - var attrs = []; - for(attribute in attributes) - attrs.push((attribute=='className' ? 'class' : attribute) + - '="' + attributes[attribute].toString().escapeHTML() + '"'); - return attrs.join(" "); - }, - _children: function(element, children) { - if(typeof children=='object') { // array can hold nodes and text - children.flatten().each( function(e) { - if(typeof e=='object') - element.appendChild(e) - else - if(Builder._isStringOrNumber(e)) - element.appendChild(Builder._text(e)); - }); - } else - if(Builder._isStringOrNumber(children)) - element.appendChild(Builder._text(children)); - }, - _isStringOrNumber: function(param) { - return(typeof param=='string' || typeof param=='number'); - } -} \ No newline at end of file diff --git a/tests/test_tools/selenium/core/lib/scriptaculous/controls.js b/tests/test_tools/selenium/core/lib/scriptaculous/controls.js deleted file mode 100644 index de0261ed..00000000 --- a/tests/test_tools/selenium/core/lib/scriptaculous/controls.js +++ /dev/null @@ -1,815 +0,0 @@ -// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// (c) 2005 Ivan Krstic (http://blogs.law.harvard.edu/ivan) -// (c) 2005 Jon Tirsen (http://www.tirsen.com) -// Contributors: -// Richard Livsey -// Rahul Bhargava -// Rob Wills -// -// See scriptaculous.js for full license. - -// Autocompleter.Base handles all the autocompletion functionality -// that's independent of the data source for autocompletion. This -// includes drawing the autocompletion menu, observing keyboard -// and mouse events, and similar. -// -// Specific autocompleters need to provide, at the very least, -// a getUpdatedChoices function that will be invoked every time -// the text inside the monitored textbox changes. This method -// should get the text for which to provide autocompletion by -// invoking this.getToken(), NOT by directly accessing -// this.element.value. This is to allow incremental tokenized -// autocompletion. Specific auto-completion logic (AJAX, etc) -// belongs in getUpdatedChoices. -// -// Tokenized incremental autocompletion is enabled automatically -// when an autocompleter is instantiated with the 'tokens' option -// in the options parameter, e.g.: -// new Ajax.Autocompleter('id','upd', '/url/', { tokens: ',' }); -// will incrementally autocomplete with a comma as the token. -// Additionally, ',' in the above example can be replaced with -// a token array, e.g. { tokens: [',', '\n'] } which -// enables autocompletion on multiple tokens. This is most -// useful when one of the tokens is \n (a newline), as it -// allows smart autocompletion after linebreaks. - -var Autocompleter = {} -Autocompleter.Base = function() {}; -Autocompleter.Base.prototype = { - baseInitialize: function(element, update, options) { - this.element = $(element); - this.update = $(update); - this.hasFocus = false; - this.changed = false; - this.active = false; - this.index = 0; - this.entryCount = 0; - - if (this.setOptions) - this.setOptions(options); - else - this.options = options || {}; - - this.options.paramName = this.options.paramName || this.element.name; - this.options.tokens = this.options.tokens || []; - this.options.frequency = this.options.frequency || 0.4; - this.options.minChars = this.options.minChars || 1; - this.options.onShow = this.options.onShow || - function(element, update){ - if(!update.style.position || update.style.position=='absolute') { - update.style.position = 'absolute'; - Position.clone(element, update, {setHeight: false, offsetTop: element.offsetHeight}); - } - Effect.Appear(update,{duration:0.15}); - }; - this.options.onHide = this.options.onHide || - function(element, update){ new Effect.Fade(update,{duration:0.15}) }; - - if (typeof(this.options.tokens) == 'string') - this.options.tokens = new Array(this.options.tokens); - - this.observer = null; - - this.element.setAttribute('autocomplete','off'); - - Element.hide(this.update); - - Event.observe(this.element, "blur", this.onBlur.bindAsEventListener(this)); - Event.observe(this.element, "keypress", this.onKeyPress.bindAsEventListener(this)); - }, - - show: function() { - if(Element.getStyle(this.update, 'display')=='none') this.options.onShow(this.element, this.update); - if(!this.iefix && - (navigator.appVersion.indexOf('MSIE')>0) && - (navigator.userAgent.indexOf('Opera')<0) && - (Element.getStyle(this.update, 'position')=='absolute')) { - new Insertion.After(this.update, - ''); - this.iefix = $(this.update.id+'_iefix'); - } - if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50); - }, - - fixIEOverlapping: function() { - Position.clone(this.update, this.iefix); - this.iefix.style.zIndex = 1; - this.update.style.zIndex = 2; - Element.show(this.iefix); - }, - - hide: function() { - this.stopIndicator(); - if(Element.getStyle(this.update, 'display')!='none') this.options.onHide(this.element, this.update); - if(this.iefix) Element.hide(this.iefix); - }, - - startIndicator: function() { - if(this.options.indicator) Element.show(this.options.indicator); - }, - - stopIndicator: function() { - if(this.options.indicator) Element.hide(this.options.indicator); - }, - - onKeyPress: function(event) { - if(this.active) - switch(event.keyCode) { - case Event.KEY_TAB: - case Event.KEY_RETURN: - this.selectEntry(); - Event.stop(event); - case Event.KEY_ESC: - this.hide(); - this.active = false; - Event.stop(event); - return; - case Event.KEY_LEFT: - case Event.KEY_RIGHT: - return; - case Event.KEY_UP: - this.markPrevious(); - this.render(); - if(navigator.appVersion.indexOf('AppleWebKit')>0) Event.stop(event); - return; - case Event.KEY_DOWN: - this.markNext(); - this.render(); - if(navigator.appVersion.indexOf('AppleWebKit')>0) Event.stop(event); - return; - } - else - if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN || - (navigator.appVersion.indexOf('AppleWebKit') > 0 && event.keyCode == 0)) return; - - this.changed = true; - this.hasFocus = true; - - if(this.observer) clearTimeout(this.observer); - this.observer = - setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000); - }, - - activate: function() { - this.changed = false; - this.hasFocus = true; - this.getUpdatedChoices(); - }, - - onHover: function(event) { - var element = Event.findElement(event, 'LI'); - if(this.index != element.autocompleteIndex) - { - this.index = element.autocompleteIndex; - this.render(); - } - Event.stop(event); - }, - - onClick: function(event) { - var element = Event.findElement(event, 'LI'); - this.index = element.autocompleteIndex; - this.selectEntry(); - this.hide(); - }, - - onBlur: function(event) { - // needed to make click events working - setTimeout(this.hide.bind(this), 250); - this.hasFocus = false; - this.active = false; - }, - - render: function() { - if(this.entryCount > 0) { - for (var i = 0; i < this.entryCount; i++) - this.index==i ? - Element.addClassName(this.getEntry(i),"selected") : - Element.removeClassName(this.getEntry(i),"selected"); - - if(this.hasFocus) { - this.show(); - this.active = true; - } - } else { - this.active = false; - this.hide(); - } - }, - - markPrevious: function() { - if(this.index > 0) this.index-- - else this.index = this.entryCount-1; - }, - - markNext: function() { - if(this.index < this.entryCount-1) this.index++ - else this.index = 0; - }, - - getEntry: function(index) { - return this.update.firstChild.childNodes[index]; - }, - - getCurrentEntry: function() { - return this.getEntry(this.index); - }, - - selectEntry: function() { - this.active = false; - this.updateElement(this.getCurrentEntry()); - }, - - updateElement: function(selectedElement) { - if (this.options.updateElement) { - this.options.updateElement(selectedElement); - return; - } - var value = ''; - if (this.options.select) { - var nodes = document.getElementsByClassName(this.options.select, selectedElement) || []; - if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select); - } else - value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal'); - - var lastTokenPos = this.findLastToken(); - if (lastTokenPos != -1) { - var newValue = this.element.value.substr(0, lastTokenPos + 1); - var whitespace = this.element.value.substr(lastTokenPos + 1).match(/^\s+/); - if (whitespace) - newValue += whitespace[0]; - this.element.value = newValue + value; - } else { - this.element.value = value; - } - this.element.focus(); - - if (this.options.afterUpdateElement) - this.options.afterUpdateElement(this.element, selectedElement); - }, - - updateChoices: function(choices) { - if(!this.changed && this.hasFocus) { - this.update.innerHTML = choices; - Element.cleanWhitespace(this.update); - Element.cleanWhitespace(this.update.firstChild); - - if(this.update.firstChild && this.update.firstChild.childNodes) { - this.entryCount = - this.update.firstChild.childNodes.length; - for (var i = 0; i < this.entryCount; i++) { - var entry = this.getEntry(i); - entry.autocompleteIndex = i; - this.addObservers(entry); - } - } else { - this.entryCount = 0; - } - - this.stopIndicator(); - - this.index = 0; - this.render(); - } - }, - - addObservers: function(element) { - Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this)); - Event.observe(element, "click", this.onClick.bindAsEventListener(this)); - }, - - onObserverEvent: function() { - this.changed = false; - if(this.getToken().length>=this.options.minChars) { - this.startIndicator(); - this.getUpdatedChoices(); - } else { - this.active = false; - this.hide(); - } - }, - - getToken: function() { - var tokenPos = this.findLastToken(); - if (tokenPos != -1) - var ret = this.element.value.substr(tokenPos + 1).replace(/^\s+/,'').replace(/\s+$/,''); - else - var ret = this.element.value; - - return /\n/.test(ret) ? '' : ret; - }, - - findLastToken: function() { - var lastTokenPos = -1; - - for (var i=0; i lastTokenPos) - lastTokenPos = thisTokenPos; - } - return lastTokenPos; - } -} - -Ajax.Autocompleter = Class.create(); -Object.extend(Object.extend(Ajax.Autocompleter.prototype, Autocompleter.Base.prototype), { - initialize: function(element, update, url, options) { - this.baseInitialize(element, update, options); - this.options.asynchronous = true; - this.options.onComplete = this.onComplete.bind(this); - this.options.defaultParams = this.options.parameters || null; - this.url = url; - }, - - getUpdatedChoices: function() { - entry = encodeURIComponent(this.options.paramName) + '=' + - encodeURIComponent(this.getToken()); - - this.options.parameters = this.options.callback ? - this.options.callback(this.element, entry) : entry; - - if(this.options.defaultParams) - this.options.parameters += '&' + this.options.defaultParams; - - new Ajax.Request(this.url, this.options); - }, - - onComplete: function(request) { - this.updateChoices(request.responseText); - } - -}); - -// The local array autocompleter. Used when you'd prefer to -// inject an array of autocompletion options into the page, rather -// than sending out Ajax queries, which can be quite slow sometimes. -// -// The constructor takes four parameters. The first two are, as usual, -// the id of the monitored textbox, and id of the autocompletion menu. -// The third is the array you want to autocomplete from, and the fourth -// is the options block. -// -// Extra local autocompletion options: -// - choices - How many autocompletion choices to offer -// -// - partialSearch - If false, the autocompleter will match entered -// text only at the beginning of strings in the -// autocomplete array. Defaults to true, which will -// match text at the beginning of any *word* in the -// strings in the autocomplete array. If you want to -// search anywhere in the string, additionally set -// the option fullSearch to true (default: off). -// -// - fullSsearch - Search anywhere in autocomplete array strings. -// -// - partialChars - How many characters to enter before triggering -// a partial match (unlike minChars, which defines -// how many characters are required to do any match -// at all). Defaults to 2. -// -// - ignoreCase - Whether to ignore case when autocompleting. -// Defaults to true. -// -// It's possible to pass in a custom function as the 'selector' -// option, if you prefer to write your own autocompletion logic. -// In that case, the other options above will not apply unless -// you support them. - -Autocompleter.Local = Class.create(); -Autocompleter.Local.prototype = Object.extend(new Autocompleter.Base(), { - initialize: function(element, update, array, options) { - this.baseInitialize(element, update, options); - this.options.array = array; - }, - - getUpdatedChoices: function() { - this.updateChoices(this.options.selector(this)); - }, - - setOptions: function(options) { - this.options = Object.extend({ - choices: 10, - partialSearch: true, - partialChars: 2, - ignoreCase: true, - fullSearch: false, - selector: function(instance) { - var ret = []; // Beginning matches - var partial = []; // Inside matches - var entry = instance.getToken(); - var count = 0; - - for (var i = 0; i < instance.options.array.length && - ret.length < instance.options.choices ; i++) { - - var elem = instance.options.array[i]; - var foundPos = instance.options.ignoreCase ? - elem.toLowerCase().indexOf(entry.toLowerCase()) : - elem.indexOf(entry); - - while (foundPos != -1) { - if (foundPos == 0 && elem.length != entry.length) { - ret.push("
  • " + elem.substr(0, entry.length) + "" + - elem.substr(entry.length) + "
  • "); - break; - } else if (entry.length >= instance.options.partialChars && - instance.options.partialSearch && foundPos != -1) { - if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) { - partial.push("
  • " + elem.substr(0, foundPos) + "" + - elem.substr(foundPos, entry.length) + "" + elem.substr( - foundPos + entry.length) + "
  • "); - break; - } - } - - foundPos = instance.options.ignoreCase ? - elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) : - elem.indexOf(entry, foundPos + 1); - - } - } - if (partial.length) - ret = ret.concat(partial.slice(0, instance.options.choices - ret.length)) - return "
      " + ret.join('') + "
    "; - } - }, options || {}); - } -}); - -// AJAX in-place editor -// -// see documentation on http://wiki.script.aculo.us/scriptaculous/show/Ajax.InPlaceEditor - -// Use this if you notice weird scrolling problems on some browsers, -// the DOM might be a bit confused when this gets called so do this -// waits 1 ms (with setTimeout) until it does the activation -Field.scrollFreeActivate = function(field) { - setTimeout(function() { - Field.activate(field); - }, 1); -} - -Ajax.InPlaceEditor = Class.create(); -Ajax.InPlaceEditor.defaultHighlightColor = "#FFFF99"; -Ajax.InPlaceEditor.prototype = { - initialize: function(element, url, options) { - this.url = url; - this.element = $(element); - - this.options = Object.extend({ - okButton: true, - okText: "ok", - cancelLink: true, - cancelText: "cancel", - savingText: "Saving...", - clickToEditText: "Click to edit", - okText: "ok", - rows: 1, - onComplete: function(transport, element) { - new Effect.Highlight(element, {startcolor: this.options.highlightcolor}); - }, - onFailure: function(transport) { - alert("Error communicating with the server: " + transport.responseText.stripTags()); - }, - callback: function(form) { - return Form.serialize(form); - }, - handleLineBreaks: true, - loadingText: 'Loading...', - savingClassName: 'inplaceeditor-saving', - loadingClassName: 'inplaceeditor-loading', - formClassName: 'inplaceeditor-form', - highlightcolor: Ajax.InPlaceEditor.defaultHighlightColor, - highlightendcolor: "#FFFFFF", - externalControl: null, - submitOnBlur: false, - ajaxOptions: {}, - evalScripts: false - }, options || {}); - - if(!this.options.formId && this.element.id) { - this.options.formId = this.element.id + "-inplaceeditor"; - if ($(this.options.formId)) { - // there's already a form with that name, don't specify an id - this.options.formId = null; - } - } - - if (this.options.externalControl) { - this.options.externalControl = $(this.options.externalControl); - } - - this.originalBackground = Element.getStyle(this.element, 'background-color'); - if (!this.originalBackground) { - this.originalBackground = "transparent"; - } - - this.element.title = this.options.clickToEditText; - - this.onclickListener = this.enterEditMode.bindAsEventListener(this); - this.mouseoverListener = this.enterHover.bindAsEventListener(this); - this.mouseoutListener = this.leaveHover.bindAsEventListener(this); - Event.observe(this.element, 'click', this.onclickListener); - Event.observe(this.element, 'mouseover', this.mouseoverListener); - Event.observe(this.element, 'mouseout', this.mouseoutListener); - if (this.options.externalControl) { - Event.observe(this.options.externalControl, 'click', this.onclickListener); - Event.observe(this.options.externalControl, 'mouseover', this.mouseoverListener); - Event.observe(this.options.externalControl, 'mouseout', this.mouseoutListener); - } - }, - enterEditMode: function(evt) { - if (this.saving) return; - if (this.editing) return; - this.editing = true; - this.onEnterEditMode(); - if (this.options.externalControl) { - Element.hide(this.options.externalControl); - } - Element.hide(this.element); - this.createForm(); - this.element.parentNode.insertBefore(this.form, this.element); - Field.scrollFreeActivate(this.editField); - // stop the event to avoid a page refresh in Safari - if (evt) { - Event.stop(evt); - } - return false; - }, - createForm: function() { - this.form = document.createElement("form"); - this.form.id = this.options.formId; - Element.addClassName(this.form, this.options.formClassName) - this.form.onsubmit = this.onSubmit.bind(this); - - this.createEditField(); - - if (this.options.textarea) { - var br = document.createElement("br"); - this.form.appendChild(br); - } - - if (this.options.okButton) { - okButton = document.createElement("input"); - okButton.type = "submit"; - okButton.value = this.options.okText; - okButton.className = 'editor_ok_button'; - this.form.appendChild(okButton); - } - - if (this.options.cancelLink) { - cancelLink = document.createElement("a"); - cancelLink.href = "#"; - cancelLink.appendChild(document.createTextNode(this.options.cancelText)); - cancelLink.onclick = this.onclickCancel.bind(this); - cancelLink.className = 'editor_cancel'; - this.form.appendChild(cancelLink); - } - }, - hasHTMLLineBreaks: function(string) { - if (!this.options.handleLineBreaks) return false; - return string.match(/
    /i); - }, - convertHTMLLineBreaks: function(string) { - return string.replace(/
    /gi, "\n").replace(//gi, "\n").replace(/<\/p>/gi, "\n").replace(/

    /gi, ""); - }, - createEditField: function() { - var text; - if(this.options.loadTextURL) { - text = this.options.loadingText; - } else { - text = this.getText(); - } - - var obj = this; - - if (this.options.rows == 1 && !this.hasHTMLLineBreaks(text)) { - this.options.textarea = false; - var textField = document.createElement("input"); - textField.obj = this; - textField.type = "text"; - textField.name = "value"; - textField.value = text; - textField.style.backgroundColor = this.options.highlightcolor; - textField.className = 'editor_field'; - var size = this.options.size || this.options.cols || 0; - if (size != 0) textField.size = size; - if (this.options.submitOnBlur) - textField.onblur = this.onSubmit.bind(this); - this.editField = textField; - } else { - this.options.textarea = true; - var textArea = document.createElement("textarea"); - textArea.obj = this; - textArea.name = "value"; - textArea.value = this.convertHTMLLineBreaks(text); - textArea.rows = this.options.rows; - textArea.cols = this.options.cols || 40; - textArea.className = 'editor_field'; - if (this.options.submitOnBlur) - textArea.onblur = this.onSubmit.bind(this); - this.editField = textArea; - } - - if(this.options.loadTextURL) { - this.loadExternalText(); - } - this.form.appendChild(this.editField); - }, - getText: function() { - return this.element.innerHTML; - }, - loadExternalText: function() { - Element.addClassName(this.form, this.options.loadingClassName); - this.editField.disabled = true; - new Ajax.Request( - this.options.loadTextURL, - Object.extend({ - asynchronous: true, - onComplete: this.onLoadedExternalText.bind(this) - }, this.options.ajaxOptions) - ); - }, - onLoadedExternalText: function(transport) { - Element.removeClassName(this.form, this.options.loadingClassName); - this.editField.disabled = false; - this.editField.value = transport.responseText.stripTags(); - }, - onclickCancel: function() { - this.onComplete(); - this.leaveEditMode(); - return false; - }, - onFailure: function(transport) { - this.options.onFailure(transport); - if (this.oldInnerHTML) { - this.element.innerHTML = this.oldInnerHTML; - this.oldInnerHTML = null; - } - return false; - }, - onSubmit: function() { - // onLoading resets these so we need to save them away for the Ajax call - var form = this.form; - var value = this.editField.value; - - // do this first, sometimes the ajax call returns before we get a chance to switch on Saving... - // which means this will actually switch on Saving... *after* we've left edit mode causing Saving... - // to be displayed indefinitely - this.onLoading(); - - if (this.options.evalScripts) { - new Ajax.Request( - this.url, Object.extend({ - parameters: this.options.callback(form, value), - onComplete: this.onComplete.bind(this), - onFailure: this.onFailure.bind(this), - asynchronous:true, - evalScripts:true - }, this.options.ajaxOptions)); - } else { - new Ajax.Updater( - { success: this.element, - // don't update on failure (this could be an option) - failure: null }, - this.url, Object.extend({ - parameters: this.options.callback(form, value), - onComplete: this.onComplete.bind(this), - onFailure: this.onFailure.bind(this) - }, this.options.ajaxOptions)); - } - // stop the event to avoid a page refresh in Safari - if (arguments.length > 1) { - Event.stop(arguments[0]); - } - return false; - }, - onLoading: function() { - this.saving = true; - this.removeForm(); - this.leaveHover(); - this.showSaving(); - }, - showSaving: function() { - this.oldInnerHTML = this.element.innerHTML; - this.element.innerHTML = this.options.savingText; - Element.addClassName(this.element, this.options.savingClassName); - this.element.style.backgroundColor = this.originalBackground; - Element.show(this.element); - }, - removeForm: function() { - if(this.form) { - if (this.form.parentNode) Element.remove(this.form); - this.form = null; - } - }, - enterHover: function() { - if (this.saving) return; - this.element.style.backgroundColor = this.options.highlightcolor; - if (this.effect) { - this.effect.cancel(); - } - Element.addClassName(this.element, this.options.hoverClassName) - }, - leaveHover: function() { - if (this.options.backgroundColor) { - this.element.style.backgroundColor = this.oldBackground; - } - Element.removeClassName(this.element, this.options.hoverClassName) - if (this.saving) return; - this.effect = new Effect.Highlight(this.element, { - startcolor: this.options.highlightcolor, - endcolor: this.options.highlightendcolor, - restorecolor: this.originalBackground - }); - }, - leaveEditMode: function() { - Element.removeClassName(this.element, this.options.savingClassName); - this.removeForm(); - this.leaveHover(); - this.element.style.backgroundColor = this.originalBackground; - Element.show(this.element); - if (this.options.externalControl) { - Element.show(this.options.externalControl); - } - this.editing = false; - this.saving = false; - this.oldInnerHTML = null; - this.onLeaveEditMode(); - }, - onComplete: function(transport) { - this.leaveEditMode(); - this.options.onComplete.bind(this)(transport, this.element); - }, - onEnterEditMode: function() {}, - onLeaveEditMode: function() {}, - dispose: function() { - if (this.oldInnerHTML) { - this.element.innerHTML = this.oldInnerHTML; - } - this.leaveEditMode(); - Event.stopObserving(this.element, 'click', this.onclickListener); - Event.stopObserving(this.element, 'mouseover', this.mouseoverListener); - Event.stopObserving(this.element, 'mouseout', this.mouseoutListener); - if (this.options.externalControl) { - Event.stopObserving(this.options.externalControl, 'click', this.onclickListener); - Event.stopObserving(this.options.externalControl, 'mouseover', this.mouseoverListener); - Event.stopObserving(this.options.externalControl, 'mouseout', this.mouseoutListener); - } - } -}; - -Ajax.InPlaceCollectionEditor = Class.create(); -Object.extend(Ajax.InPlaceCollectionEditor.prototype, Ajax.InPlaceEditor.prototype); -Object.extend(Ajax.InPlaceCollectionEditor.prototype, { - createEditField: function() { - if (!this.cached_selectTag) { - var selectTag = document.createElement("select"); - var collection = this.options.collection || []; - var optionTag; - collection.each(function(e,i) { - optionTag = document.createElement("option"); - optionTag.value = (e instanceof Array) ? e[0] : e; - if(this.options.value==optionTag.value) optionTag.selected = true; - optionTag.appendChild(document.createTextNode((e instanceof Array) ? e[1] : e)); - selectTag.appendChild(optionTag); - }.bind(this)); - this.cached_selectTag = selectTag; - } - - this.editField = this.cached_selectTag; - if(this.options.loadTextURL) this.loadExternalText(); - this.form.appendChild(this.editField); - this.options.callback = function(form, value) { - return "value=" + encodeURIComponent(value); - } - } -}); - -// Delayed observer, like Form.Element.Observer, -// but waits for delay after last key input -// Ideal for live-search fields - -Form.Element.DelayedObserver = Class.create(); -Form.Element.DelayedObserver.prototype = { - initialize: function(element, delay, callback) { - this.delay = delay || 0.5; - this.element = $(element); - this.callback = callback; - this.timer = null; - this.lastValue = $F(this.element); - Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this)); - }, - delayedListener: function(event) { - if(this.lastValue == $F(this.element)) return; - if(this.timer) clearTimeout(this.timer); - this.timer = setTimeout(this.onTimerEvent.bind(this), this.delay * 1000); - this.lastValue = $F(this.element); - }, - onTimerEvent: function() { - this.timer = null; - this.callback(this.element, $F(this.element)); - } -}; diff --git a/tests/test_tools/selenium/core/lib/scriptaculous/dragdrop.js b/tests/test_tools/selenium/core/lib/scriptaculous/dragdrop.js deleted file mode 100644 index be2a30f5..00000000 --- a/tests/test_tools/selenium/core/lib/scriptaculous/dragdrop.js +++ /dev/null @@ -1,915 +0,0 @@ -// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// (c) 2005 Sammi Williams (http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz) -// -// See scriptaculous.js for full license. - -/*--------------------------------------------------------------------------*/ - -var Droppables = { - drops: [], - - remove: function(element) { - this.drops = this.drops.reject(function(d) { return d.element==$(element) }); - }, - - add: function(element) { - element = $(element); - var options = Object.extend({ - greedy: true, - hoverclass: null, - tree: false - }, arguments[1] || {}); - - // cache containers - if(options.containment) { - options._containers = []; - var containment = options.containment; - if((typeof containment == 'object') && - (containment.constructor == Array)) { - containment.each( function(c) { options._containers.push($(c)) }); - } else { - options._containers.push($(containment)); - } - } - - if(options.accept) options.accept = [options.accept].flatten(); - - Element.makePositioned(element); // fix IE - options.element = element; - - this.drops.push(options); - }, - - findDeepestChild: function(drops) { - deepest = drops[0]; - - for (i = 1; i < drops.length; ++i) - if (Element.isParent(drops[i].element, deepest.element)) - deepest = drops[i]; - - return deepest; - }, - - isContained: function(element, drop) { - var containmentNode; - if(drop.tree) { - containmentNode = element.treeNode; - } else { - containmentNode = element.parentNode; - } - return drop._containers.detect(function(c) { return containmentNode == c }); - }, - - isAffected: function(point, element, drop) { - return ( - (drop.element!=element) && - ((!drop._containers) || - this.isContained(element, drop)) && - ((!drop.accept) || - (Element.classNames(element).detect( - function(v) { return drop.accept.include(v) } ) )) && - Position.within(drop.element, point[0], point[1]) ); - }, - - deactivate: function(drop) { - if(drop.hoverclass) - Element.removeClassName(drop.element, drop.hoverclass); - this.last_active = null; - }, - - activate: function(drop) { - if(drop.hoverclass) - Element.addClassName(drop.element, drop.hoverclass); - this.last_active = drop; - }, - - show: function(point, element) { - if(!this.drops.length) return; - var affected = []; - - if(this.last_active) this.deactivate(this.last_active); - this.drops.each( function(drop) { - if(Droppables.isAffected(point, element, drop)) - affected.push(drop); - }); - - if(affected.length>0) { - drop = Droppables.findDeepestChild(affected); - Position.within(drop.element, point[0], point[1]); - if(drop.onHover) - drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element)); - - Droppables.activate(drop); - } - }, - - fire: function(event, element) { - if(!this.last_active) return; - Position.prepare(); - - if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active)) - if (this.last_active.onDrop) - this.last_active.onDrop(element, this.last_active.element, event); - }, - - reset: function() { - if(this.last_active) - this.deactivate(this.last_active); - } -} - -var Draggables = { - drags: [], - observers: [], - - register: function(draggable) { - if(this.drags.length == 0) { - this.eventMouseUp = this.endDrag.bindAsEventListener(this); - this.eventMouseMove = this.updateDrag.bindAsEventListener(this); - this.eventKeypress = this.keyPress.bindAsEventListener(this); - - Event.observe(document, "mouseup", this.eventMouseUp); - Event.observe(document, "mousemove", this.eventMouseMove); - Event.observe(document, "keypress", this.eventKeypress); - } - this.drags.push(draggable); - }, - - unregister: function(draggable) { - this.drags = this.drags.reject(function(d) { return d==draggable }); - if(this.drags.length == 0) { - Event.stopObserving(document, "mouseup", this.eventMouseUp); - Event.stopObserving(document, "mousemove", this.eventMouseMove); - Event.stopObserving(document, "keypress", this.eventKeypress); - } - }, - - activate: function(draggable) { - window.focus(); // allows keypress events if window isn't currently focused, fails for Safari - this.activeDraggable = draggable; - }, - - deactivate: function() { - this.activeDraggable = null; - }, - - updateDrag: function(event) { - if(!this.activeDraggable) return; - var pointer = [Event.pointerX(event), Event.pointerY(event)]; - // Mozilla-based browsers fire successive mousemove events with - // the same coordinates, prevent needless redrawing (moz bug?) - if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return; - this._lastPointer = pointer; - this.activeDraggable.updateDrag(event, pointer); - }, - - endDrag: function(event) { - if(!this.activeDraggable) return; - this._lastPointer = null; - this.activeDraggable.endDrag(event); - this.activeDraggable = null; - }, - - keyPress: function(event) { - if(this.activeDraggable) - this.activeDraggable.keyPress(event); - }, - - addObserver: function(observer) { - this.observers.push(observer); - this._cacheObserverCallbacks(); - }, - - removeObserver: function(element) { // element instead of observer fixes mem leaks - this.observers = this.observers.reject( function(o) { return o.element==element }); - this._cacheObserverCallbacks(); - }, - - notify: function(eventName, draggable, event) { // 'onStart', 'onEnd', 'onDrag' - if(this[eventName+'Count'] > 0) - this.observers.each( function(o) { - if(o[eventName]) o[eventName](eventName, draggable, event); - }); - }, - - _cacheObserverCallbacks: function() { - ['onStart','onEnd','onDrag'].each( function(eventName) { - Draggables[eventName+'Count'] = Draggables.observers.select( - function(o) { return o[eventName]; } - ).length; - }); - } -} - -/*--------------------------------------------------------------------------*/ - -var Draggable = Class.create(); -Draggable.prototype = { - initialize: function(element) { - var options = Object.extend({ - handle: false, - starteffect: function(element) { - element._opacity = Element.getOpacity(element); - new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7}); - }, - reverteffect: function(element, top_offset, left_offset) { - var dur = Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02; - element._revert = new Effect.Move(element, { x: -left_offset, y: -top_offset, duration: dur}); - }, - endeffect: function(element) { - var toOpacity = typeof element._opacity == 'number' ? element._opacity : 1.0 - new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity}); - }, - zindex: 1000, - revert: false, - scroll: false, - scrollSensitivity: 20, - scrollSpeed: 15, - snap: false // false, or xy or [x,y] or function(x,y){ return [x,y] } - }, arguments[1] || {}); - - this.element = $(element); - - if(options.handle && (typeof options.handle == 'string')) { - var h = Element.childrenWithClassName(this.element, options.handle, true); - if(h.length>0) this.handle = h[0]; - } - if(!this.handle) this.handle = $(options.handle); - if(!this.handle) this.handle = this.element; - - if(options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) - options.scroll = $(options.scroll); - - Element.makePositioned(this.element); // fix IE - - this.delta = this.currentDelta(); - this.options = options; - this.dragging = false; - - this.eventMouseDown = this.initDrag.bindAsEventListener(this); - Event.observe(this.handle, "mousedown", this.eventMouseDown); - - Draggables.register(this); - }, - - destroy: function() { - Event.stopObserving(this.handle, "mousedown", this.eventMouseDown); - Draggables.unregister(this); - }, - - currentDelta: function() { - return([ - parseInt(Element.getStyle(this.element,'left') || '0'), - parseInt(Element.getStyle(this.element,'top') || '0')]); - }, - - initDrag: function(event) { - if(Event.isLeftClick(event)) { - // abort on form elements, fixes a Firefox issue - var src = Event.element(event); - if(src.tagName && ( - src.tagName=='INPUT' || - src.tagName=='SELECT' || - src.tagName=='OPTION' || - src.tagName=='BUTTON' || - src.tagName=='TEXTAREA')) return; - - if(this.element._revert) { - this.element._revert.cancel(); - this.element._revert = null; - } - - var pointer = [Event.pointerX(event), Event.pointerY(event)]; - var pos = Position.cumulativeOffset(this.element); - this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) }); - - Draggables.activate(this); - Event.stop(event); - } - }, - - startDrag: function(event) { - this.dragging = true; - - if(this.options.zindex) { - this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0); - this.element.style.zIndex = this.options.zindex; - } - - if(this.options.ghosting) { - this._clone = this.element.cloneNode(true); - Position.absolutize(this.element); - this.element.parentNode.insertBefore(this._clone, this.element); - } - - if(this.options.scroll) { - if (this.options.scroll == window) { - var where = this._getWindowScroll(this.options.scroll); - this.originalScrollLeft = where.left; - this.originalScrollTop = where.top; - } else { - this.originalScrollLeft = this.options.scroll.scrollLeft; - this.originalScrollTop = this.options.scroll.scrollTop; - } - } - - Draggables.notify('onStart', this, event); - if(this.options.starteffect) this.options.starteffect(this.element); - }, - - updateDrag: function(event, pointer) { - if(!this.dragging) this.startDrag(event); - Position.prepare(); - Droppables.show(pointer, this.element); - Draggables.notify('onDrag', this, event); - this.draw(pointer); - if(this.options.change) this.options.change(this); - - if(this.options.scroll) { - this.stopScrolling(); - - var p; - if (this.options.scroll == window) { - with(this._getWindowScroll(this.options.scroll)) { p = [ left, top, left+width, top+height ]; } - } else { - p = Position.page(this.options.scroll); - p[0] += this.options.scroll.scrollLeft; - p[1] += this.options.scroll.scrollTop; - p.push(p[0]+this.options.scroll.offsetWidth); - p.push(p[1]+this.options.scroll.offsetHeight); - } - var speed = [0,0]; - if(pointer[0] < (p[0]+this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[0]+this.options.scrollSensitivity); - if(pointer[1] < (p[1]+this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[1]+this.options.scrollSensitivity); - if(pointer[0] > (p[2]-this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[2]-this.options.scrollSensitivity); - if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[3]-this.options.scrollSensitivity); - this.startScrolling(speed); - } - - // fix AppleWebKit rendering - if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0); - - Event.stop(event); - }, - - finishDrag: function(event, success) { - this.dragging = false; - - if(this.options.ghosting) { - Position.relativize(this.element); - Element.remove(this._clone); - this._clone = null; - } - - if(success) Droppables.fire(event, this.element); - Draggables.notify('onEnd', this, event); - - var revert = this.options.revert; - if(revert && typeof revert == 'function') revert = revert(this.element); - - var d = this.currentDelta(); - if(revert && this.options.reverteffect) { - this.options.reverteffect(this.element, - d[1]-this.delta[1], d[0]-this.delta[0]); - } else { - this.delta = d; - } - - if(this.options.zindex) - this.element.style.zIndex = this.originalZ; - - if(this.options.endeffect) - this.options.endeffect(this.element); - - Draggables.deactivate(this); - Droppables.reset(); - }, - - keyPress: function(event) { - if(event.keyCode!=Event.KEY_ESC) return; - this.finishDrag(event, false); - Event.stop(event); - }, - - endDrag: function(event) { - if(!this.dragging) return; - this.stopScrolling(); - this.finishDrag(event, true); - Event.stop(event); - }, - - draw: function(point) { - var pos = Position.cumulativeOffset(this.element); - var d = this.currentDelta(); - pos[0] -= d[0]; pos[1] -= d[1]; - - if(this.options.scroll && (this.options.scroll != window)) { - pos[0] -= this.options.scroll.scrollLeft-this.originalScrollLeft; - pos[1] -= this.options.scroll.scrollTop-this.originalScrollTop; - } - - var p = [0,1].map(function(i){ - return (point[i]-pos[i]-this.offset[i]) - }.bind(this)); - - if(this.options.snap) { - if(typeof this.options.snap == 'function') { - p = this.options.snap(p[0],p[1],this); - } else { - if(this.options.snap instanceof Array) { - p = p.map( function(v, i) { - return Math.round(v/this.options.snap[i])*this.options.snap[i] }.bind(this)) - } else { - p = p.map( function(v) { - return Math.round(v/this.options.snap)*this.options.snap }.bind(this)) - } - }} - - var style = this.element.style; - if((!this.options.constraint) || (this.options.constraint=='horizontal')) - style.left = p[0] + "px"; - if((!this.options.constraint) || (this.options.constraint=='vertical')) - style.top = p[1] + "px"; - if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering - }, - - stopScrolling: function() { - if(this.scrollInterval) { - clearInterval(this.scrollInterval); - this.scrollInterval = null; - Draggables._lastScrollPointer = null; - } - }, - - startScrolling: function(speed) { - this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed]; - this.lastScrolled = new Date(); - this.scrollInterval = setInterval(this.scroll.bind(this), 10); - }, - - scroll: function() { - var current = new Date(); - var delta = current - this.lastScrolled; - this.lastScrolled = current; - if(this.options.scroll == window) { - with (this._getWindowScroll(this.options.scroll)) { - if (this.scrollSpeed[0] || this.scrollSpeed[1]) { - var d = delta / 1000; - this.options.scroll.scrollTo( left + d*this.scrollSpeed[0], top + d*this.scrollSpeed[1] ); - } - } - } else { - this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000; - this.options.scroll.scrollTop += this.scrollSpeed[1] * delta / 1000; - } - - Position.prepare(); - Droppables.show(Draggables._lastPointer, this.element); - Draggables.notify('onDrag', this); - Draggables._lastScrollPointer = Draggables._lastScrollPointer || $A(Draggables._lastPointer); - Draggables._lastScrollPointer[0] += this.scrollSpeed[0] * delta / 1000; - Draggables._lastScrollPointer[1] += this.scrollSpeed[1] * delta / 1000; - if (Draggables._lastScrollPointer[0] < 0) - Draggables._lastScrollPointer[0] = 0; - if (Draggables._lastScrollPointer[1] < 0) - Draggables._lastScrollPointer[1] = 0; - this.draw(Draggables._lastScrollPointer); - - if(this.options.change) this.options.change(this); - }, - - _getWindowScroll: function(w) { - var T, L, W, H; - with (w.document) { - if (w.document.documentElement && documentElement.scrollTop) { - T = documentElement.scrollTop; - L = documentElement.scrollLeft; - } else if (w.document.body) { - T = body.scrollTop; - L = body.scrollLeft; - } - if (w.innerWidth) { - W = w.innerWidth; - H = w.innerHeight; - } else if (w.document.documentElement && documentElement.clientWidth) { - W = documentElement.clientWidth; - H = documentElement.clientHeight; - } else { - W = body.offsetWidth; - H = body.offsetHeight - } - } - return { top: T, left: L, width: W, height: H }; - } -} - -/*--------------------------------------------------------------------------*/ - -var SortableObserver = Class.create(); -SortableObserver.prototype = { - initialize: function(element, observer) { - this.element = $(element); - this.observer = observer; - this.lastValue = Sortable.serialize(this.element); - }, - - onStart: function() { - this.lastValue = Sortable.serialize(this.element); - }, - - onEnd: function() { - Sortable.unmark(); - if(this.lastValue != Sortable.serialize(this.element)) - this.observer(this.element) - } -} - -var Sortable = { - sortables: {}, - - _findRootElement: function(element) { - while (element.tagName != "BODY") { - if(element.id && Sortable.sortables[element.id]) return element; - element = element.parentNode; - } - }, - - options: function(element) { - element = Sortable._findRootElement($(element)); - if(!element) return; - return Sortable.sortables[element.id]; - }, - - destroy: function(element){ - var s = Sortable.options(element); - - if(s) { - Draggables.removeObserver(s.element); - s.droppables.each(function(d){ Droppables.remove(d) }); - s.draggables.invoke('destroy'); - - delete Sortable.sortables[s.element.id]; - } - }, - - create: function(element) { - element = $(element); - var options = Object.extend({ - element: element, - tag: 'li', // assumes li children, override with tag: 'tagname' - dropOnEmpty: false, - tree: false, - treeTag: 'ul', - overlap: 'vertical', // one of 'vertical', 'horizontal' - constraint: 'vertical', // one of 'vertical', 'horizontal', false - containment: element, // also takes array of elements (or id's); or false - handle: false, // or a CSS class - only: false, - hoverclass: null, - ghosting: false, - scroll: false, - scrollSensitivity: 20, - scrollSpeed: 15, - format: /^[^_]*_(.*)$/, - onChange: Prototype.emptyFunction, - onUpdate: Prototype.emptyFunction - }, arguments[1] || {}); - - // clear any old sortable with same element - this.destroy(element); - - // build options for the draggables - var options_for_draggable = { - revert: true, - scroll: options.scroll, - scrollSpeed: options.scrollSpeed, - scrollSensitivity: options.scrollSensitivity, - ghosting: options.ghosting, - constraint: options.constraint, - handle: options.handle }; - - if(options.starteffect) - options_for_draggable.starteffect = options.starteffect; - - if(options.reverteffect) - options_for_draggable.reverteffect = options.reverteffect; - else - if(options.ghosting) options_for_draggable.reverteffect = function(element) { - element.style.top = 0; - element.style.left = 0; - }; - - if(options.endeffect) - options_for_draggable.endeffect = options.endeffect; - - if(options.zindex) - options_for_draggable.zindex = options.zindex; - - // build options for the droppables - var options_for_droppable = { - overlap: options.overlap, - containment: options.containment, - tree: options.tree, - hoverclass: options.hoverclass, - onHover: Sortable.onHover - //greedy: !options.dropOnEmpty - } - - var options_for_tree = { - onHover: Sortable.onEmptyHover, - overlap: options.overlap, - containment: options.containment, - hoverclass: options.hoverclass - } - - // fix for gecko engine - Element.cleanWhitespace(element); - - options.draggables = []; - options.droppables = []; - - // drop on empty handling - if(options.dropOnEmpty || options.tree) { - Droppables.add(element, options_for_tree); - options.droppables.push(element); - } - - (this.findElements(element, options) || []).each( function(e) { - // handles are per-draggable - var handle = options.handle ? - Element.childrenWithClassName(e, options.handle)[0] : e; - options.draggables.push( - new Draggable(e, Object.extend(options_for_draggable, { handle: handle }))); - Droppables.add(e, options_for_droppable); - if(options.tree) e.treeNode = element; - options.droppables.push(e); - }); - - if(options.tree) { - (Sortable.findTreeElements(element, options) || []).each( function(e) { - Droppables.add(e, options_for_tree); - e.treeNode = element; - options.droppables.push(e); - }); - } - - // keep reference - this.sortables[element.id] = options; - - // for onupdate - Draggables.addObserver(new SortableObserver(element, options.onUpdate)); - - }, - - // return all suitable-for-sortable elements in a guaranteed order - findElements: function(element, options) { - return Element.findChildren( - element, options.only, options.tree ? true : false, options.tag); - }, - - findTreeElements: function(element, options) { - return Element.findChildren( - element, options.only, options.tree ? true : false, options.treeTag); - }, - - onHover: function(element, dropon, overlap) { - if(Element.isParent(dropon, element)) return; - - if(overlap > .33 && overlap < .66 && Sortable.options(dropon).tree) { - return; - } else if(overlap>0.5) { - Sortable.mark(dropon, 'before'); - if(dropon.previousSibling != element) { - var oldParentNode = element.parentNode; - element.style.visibility = "hidden"; // fix gecko rendering - dropon.parentNode.insertBefore(element, dropon); - if(dropon.parentNode!=oldParentNode) - Sortable.options(oldParentNode).onChange(element); - Sortable.options(dropon.parentNode).onChange(element); - } - } else { - Sortable.mark(dropon, 'after'); - var nextElement = dropon.nextSibling || null; - if(nextElement != element) { - var oldParentNode = element.parentNode; - element.style.visibility = "hidden"; // fix gecko rendering - dropon.parentNode.insertBefore(element, nextElement); - if(dropon.parentNode!=oldParentNode) - Sortable.options(oldParentNode).onChange(element); - Sortable.options(dropon.parentNode).onChange(element); - } - } - }, - - onEmptyHover: function(element, dropon, overlap) { - var oldParentNode = element.parentNode; - var droponOptions = Sortable.options(dropon); - - if(!Element.isParent(dropon, element)) { - var index; - - var children = Sortable.findElements(dropon, {tag: droponOptions.tag}); - var child = null; - - if(children) { - var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap); - - for (index = 0; index < children.length; index += 1) { - if (offset - Element.offsetSize (children[index], droponOptions.overlap) >= 0) { - offset -= Element.offsetSize (children[index], droponOptions.overlap); - } else if (offset - (Element.offsetSize (children[index], droponOptions.overlap) / 2) >= 0) { - child = index + 1 < children.length ? children[index + 1] : null; - break; - } else { - child = children[index]; - break; - } - } - } - - dropon.insertBefore(element, child); - - Sortable.options(oldParentNode).onChange(element); - droponOptions.onChange(element); - } - }, - - unmark: function() { - if(Sortable._marker) Element.hide(Sortable._marker); - }, - - mark: function(dropon, position) { - // mark on ghosting only - var sortable = Sortable.options(dropon.parentNode); - if(sortable && !sortable.ghosting) return; - - if(!Sortable._marker) { - Sortable._marker = $('dropmarker') || document.createElement('DIV'); - Element.hide(Sortable._marker); - Element.addClassName(Sortable._marker, 'dropmarker'); - Sortable._marker.style.position = 'absolute'; - document.getElementsByTagName("body").item(0).appendChild(Sortable._marker); - } - var offsets = Position.cumulativeOffset(dropon); - Sortable._marker.style.left = offsets[0] + 'px'; - Sortable._marker.style.top = offsets[1] + 'px'; - - if(position=='after') - if(sortable.overlap == 'horizontal') - Sortable._marker.style.left = (offsets[0]+dropon.clientWidth) + 'px'; - else - Sortable._marker.style.top = (offsets[1]+dropon.clientHeight) + 'px'; - - Element.show(Sortable._marker); - }, - - _tree: function(element, options, parent) { - var children = Sortable.findElements(element, options) || []; - - for (var i = 0; i < children.length; ++i) { - var match = children[i].id.match(options.format); - - if (!match) continue; - - var child = { - id: encodeURIComponent(match ? match[1] : null), - element: element, - parent: parent, - children: new Array, - position: parent.children.length, - container: Sortable._findChildrenElement(children[i], options.treeTag.toUpperCase()) - } - - /* Get the element containing the children and recurse over it */ - if (child.container) - this._tree(child.container, options, child) - - parent.children.push (child); - } - - return parent; - }, - - /* Finds the first element of the given tag type within a parent element. - Used for finding the first LI[ST] within a L[IST]I[TEM].*/ - _findChildrenElement: function (element, containerTag) { - if (element && element.hasChildNodes) - for (var i = 0; i < element.childNodes.length; ++i) - if (element.childNodes[i].tagName == containerTag) - return element.childNodes[i]; - - return null; - }, - - tree: function(element) { - element = $(element); - var sortableOptions = this.options(element); - var options = Object.extend({ - tag: sortableOptions.tag, - treeTag: sortableOptions.treeTag, - only: sortableOptions.only, - name: element.id, - format: sortableOptions.format - }, arguments[1] || {}); - - var root = { - id: null, - parent: null, - children: new Array, - container: element, - position: 0 - } - - return Sortable._tree (element, options, root); - }, - - /* Construct a [i] index for a particular node */ - _constructIndex: function(node) { - var index = ''; - do { - if (node.id) index = '[' + node.position + ']' + index; - } while ((node = node.parent) != null); - return index; - }, - - sequence: function(element) { - element = $(element); - var options = Object.extend(this.options(element), arguments[1] || {}); - - return $(this.findElements(element, options) || []).map( function(item) { - return item.id.match(options.format) ? item.id.match(options.format)[1] : ''; - }); - }, - - setSequence: function(element, new_sequence) { - element = $(element); - var options = Object.extend(this.options(element), arguments[2] || {}); - - var nodeMap = {}; - this.findElements(element, options).each( function(n) { - if (n.id.match(options.format)) - nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode]; - n.parentNode.removeChild(n); - }); - - new_sequence.each(function(ident) { - var n = nodeMap[ident]; - if (n) { - n[1].appendChild(n[0]); - delete nodeMap[ident]; - } - }); - }, - - serialize: function(element) { - element = $(element); - var options = Object.extend(Sortable.options(element), arguments[1] || {}); - var name = encodeURIComponent( - (arguments[1] && arguments[1].name) ? arguments[1].name : element.id); - - if (options.tree) { - return Sortable.tree(element, arguments[1]).children.map( function (item) { - return [name + Sortable._constructIndex(item) + "=" + - encodeURIComponent(item.id)].concat(item.children.map(arguments.callee)); - }).flatten().join('&'); - } else { - return Sortable.sequence(element, arguments[1]).map( function(item) { - return name + "[]=" + encodeURIComponent(item); - }).join('&'); - } - } -} - -/* Returns true if child is contained within element */ -Element.isParent = function(child, element) { - if (!child.parentNode || child == element) return false; - - if (child.parentNode == element) return true; - - return Element.isParent(child.parentNode, element); -} - -Element.findChildren = function(element, only, recursive, tagName) { - if(!element.hasChildNodes()) return null; - tagName = tagName.toUpperCase(); - if(only) only = [only].flatten(); - var elements = []; - $A(element.childNodes).each( function(e) { - if(e.tagName && e.tagName.toUpperCase()==tagName && - (!only || (Element.classNames(e).detect(function(v) { return only.include(v) })))) - elements.push(e); - if(recursive) { - var grandchildren = Element.findChildren(e, only, recursive, tagName); - if(grandchildren) elements.push(grandchildren); - } - }); - - return (elements.length>0 ? elements.flatten() : []); -} - -Element.offsetSize = function (element, type) { - if (type == 'vertical' || type == 'height') - return element.offsetHeight; - else - return element.offsetWidth; -} \ No newline at end of file diff --git a/tests/test_tools/selenium/core/lib/scriptaculous/effects.js b/tests/test_tools/selenium/core/lib/scriptaculous/effects.js deleted file mode 100644 index 0864323e..00000000 --- a/tests/test_tools/selenium/core/lib/scriptaculous/effects.js +++ /dev/null @@ -1,958 +0,0 @@ -// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// Contributors: -// Justin Palmer (http://encytemedia.com/) -// Mark Pilgrim (http://diveintomark.org/) -// Martin Bialasinki -// -// See scriptaculous.js for full license. - -// converts rgb() and #xxx to #xxxxxx format, -// returns self (or first argument) if not convertable -String.prototype.parseColor = function() { - var color = '#'; - if(this.slice(0,4) == 'rgb(') { - var cols = this.slice(4,this.length-1).split(','); - var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3); - } else { - if(this.slice(0,1) == '#') { - if(this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase(); - if(this.length==7) color = this.toLowerCase(); - } - } - return(color.length==7 ? color : (arguments[0] || this)); -} - -/*--------------------------------------------------------------------------*/ - -Element.collectTextNodes = function(element) { - return $A($(element).childNodes).collect( function(node) { - return (node.nodeType==3 ? node.nodeValue : - (node.hasChildNodes() ? Element.collectTextNodes(node) : '')); - }).flatten().join(''); -} - -Element.collectTextNodesIgnoreClass = function(element, className) { - return $A($(element).childNodes).collect( function(node) { - return (node.nodeType==3 ? node.nodeValue : - ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? - Element.collectTextNodesIgnoreClass(node, className) : '')); - }).flatten().join(''); -} - -Element.setContentZoom = function(element, percent) { - element = $(element); - Element.setStyle(element, {fontSize: (percent/100) + 'em'}); - if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0); -} - -Element.getOpacity = function(element){ - var opacity; - if (opacity = Element.getStyle(element, 'opacity')) - return parseFloat(opacity); - if (opacity = (Element.getStyle(element, 'filter') || '').match(/alpha\(opacity=(.*)\)/)) - if(opacity[1]) return parseFloat(opacity[1]) / 100; - return 1.0; -} - -Element.setOpacity = function(element, value){ - element= $(element); - if (value == 1){ - Element.setStyle(element, { opacity: - (/Gecko/.test(navigator.userAgent) && !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? - 0.999999 : null }); - if(/MSIE/.test(navigator.userAgent)) - Element.setStyle(element, {filter: Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')}); - } else { - if(value < 0.00001) value = 0; - Element.setStyle(element, {opacity: value}); - if(/MSIE/.test(navigator.userAgent)) - Element.setStyle(element, - { filter: Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'') + - 'alpha(opacity='+value*100+')' }); - } -} - -Element.getInlineOpacity = function(element){ - return $(element).style.opacity || ''; -} - -Element.childrenWithClassName = function(element, className, findFirst) { - var classNameRegExp = new RegExp("(^|\\s)" + className + "(\\s|$)"); - var results = $A($(element).getElementsByTagName('*'))[findFirst ? 'detect' : 'select']( function(c) { - return (c.className && c.className.match(classNameRegExp)); - }); - if(!results) results = []; - return results; -} - -Element.forceRerendering = function(element) { - try { - element = $(element); - var n = document.createTextNode(' '); - element.appendChild(n); - element.removeChild(n); - } catch(e) { } -}; - -/*--------------------------------------------------------------------------*/ - -Array.prototype.call = function() { - var args = arguments; - this.each(function(f){ f.apply(this, args) }); -} - -/*--------------------------------------------------------------------------*/ - -var Effect = { - tagifyText: function(element) { - var tagifyStyle = 'position:relative'; - if(/MSIE/.test(navigator.userAgent)) tagifyStyle += ';zoom:1'; - element = $(element); - $A(element.childNodes).each( function(child) { - if(child.nodeType==3) { - child.nodeValue.toArray().each( function(character) { - element.insertBefore( - Builder.node('span',{style: tagifyStyle}, - character == ' ' ? String.fromCharCode(160) : character), - child); - }); - Element.remove(child); - } - }); - }, - multiple: function(element, effect) { - var elements; - if(((typeof element == 'object') || - (typeof element == 'function')) && - (element.length)) - elements = element; - else - elements = $(element).childNodes; - - var options = Object.extend({ - speed: 0.1, - delay: 0.0 - }, arguments[2] || {}); - var masterDelay = options.delay; - - $A(elements).each( function(element, index) { - new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay })); - }); - }, - PAIRS: { - 'slide': ['SlideDown','SlideUp'], - 'blind': ['BlindDown','BlindUp'], - 'appear': ['Appear','Fade'] - }, - toggle: function(element, effect) { - element = $(element); - effect = (effect || 'appear').toLowerCase(); - var options = Object.extend({ - queue: { position:'end', scope:(element.id || 'global'), limit: 1 } - }, arguments[2] || {}); - Effect[element.visible() ? - Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options); - } -}; - -var Effect2 = Effect; // deprecated - -/* ------------- transitions ------------- */ - -Effect.Transitions = {} - -Effect.Transitions.linear = function(pos) { - return pos; -} -Effect.Transitions.sinoidal = function(pos) { - return (-Math.cos(pos*Math.PI)/2) + 0.5; -} -Effect.Transitions.reverse = function(pos) { - return 1-pos; -} -Effect.Transitions.flicker = function(pos) { - return ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4; -} -Effect.Transitions.wobble = function(pos) { - return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5; -} -Effect.Transitions.pulse = function(pos) { - return (Math.floor(pos*10) % 2 == 0 ? - (pos*10-Math.floor(pos*10)) : 1-(pos*10-Math.floor(pos*10))); -} -Effect.Transitions.none = function(pos) { - return 0; -} -Effect.Transitions.full = function(pos) { - return 1; -} - -/* ------------- core effects ------------- */ - -Effect.ScopedQueue = Class.create(); -Object.extend(Object.extend(Effect.ScopedQueue.prototype, Enumerable), { - initialize: function() { - this.effects = []; - this.interval = null; - }, - _each: function(iterator) { - this.effects._each(iterator); - }, - add: function(effect) { - var timestamp = new Date().getTime(); - - var position = (typeof effect.options.queue == 'string') ? - effect.options.queue : effect.options.queue.position; - - switch(position) { - case 'front': - // move unstarted effects after this effect - this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) { - e.startOn += effect.finishOn; - e.finishOn += effect.finishOn; - }); - break; - case 'end': - // start effect after last queued effect has finished - timestamp = this.effects.pluck('finishOn').max() || timestamp; - break; - } - - effect.startOn += timestamp; - effect.finishOn += timestamp; - - if(!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit)) - this.effects.push(effect); - - if(!this.interval) - this.interval = setInterval(this.loop.bind(this), 40); - }, - remove: function(effect) { - this.effects = this.effects.reject(function(e) { return e==effect }); - if(this.effects.length == 0) { - clearInterval(this.interval); - this.interval = null; - } - }, - loop: function() { - var timePos = new Date().getTime(); - this.effects.invoke('loop', timePos); - } -}); - -Effect.Queues = { - instances: $H(), - get: function(queueName) { - if(typeof queueName != 'string') return queueName; - - if(!this.instances[queueName]) - this.instances[queueName] = new Effect.ScopedQueue(); - - return this.instances[queueName]; - } -} -Effect.Queue = Effect.Queues.get('global'); - -Effect.DefaultOptions = { - transition: Effect.Transitions.sinoidal, - duration: 1.0, // seconds - fps: 25.0, // max. 25fps due to Effect.Queue implementation - sync: false, // true for combining - from: 0.0, - to: 1.0, - delay: 0.0, - queue: 'parallel' -} - -Effect.Base = function() {}; -Effect.Base.prototype = { - position: null, - start: function(options) { - this.options = Object.extend(Object.extend({},Effect.DefaultOptions), options || {}); - this.currentFrame = 0; - this.state = 'idle'; - this.startOn = this.options.delay*1000; - this.finishOn = this.startOn + (this.options.duration*1000); - this.event('beforeStart'); - if(!this.options.sync) - Effect.Queues.get(typeof this.options.queue == 'string' ? - 'global' : this.options.queue.scope).add(this); - }, - loop: function(timePos) { - if(timePos >= this.startOn) { - if(timePos >= this.finishOn) { - this.render(1.0); - this.cancel(); - this.event('beforeFinish'); - if(this.finish) this.finish(); - this.event('afterFinish'); - return; - } - var pos = (timePos - this.startOn) / (this.finishOn - this.startOn); - var frame = Math.round(pos * this.options.fps * this.options.duration); - if(frame > this.currentFrame) { - this.render(pos); - this.currentFrame = frame; - } - } - }, - render: function(pos) { - if(this.state == 'idle') { - this.state = 'running'; - this.event('beforeSetup'); - if(this.setup) this.setup(); - this.event('afterSetup'); - } - if(this.state == 'running') { - if(this.options.transition) pos = this.options.transition(pos); - pos *= (this.options.to-this.options.from); - pos += this.options.from; - this.position = pos; - this.event('beforeUpdate'); - if(this.update) this.update(pos); - this.event('afterUpdate'); - } - }, - cancel: function() { - if(!this.options.sync) - Effect.Queues.get(typeof this.options.queue == 'string' ? - 'global' : this.options.queue.scope).remove(this); - this.state = 'finished'; - }, - event: function(eventName) { - if(this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this); - if(this.options[eventName]) this.options[eventName](this); - }, - inspect: function() { - return '#'; - } -} - -Effect.Parallel = Class.create(); -Object.extend(Object.extend(Effect.Parallel.prototype, Effect.Base.prototype), { - initialize: function(effects) { - this.effects = effects || []; - this.start(arguments[1]); - }, - update: function(position) { - this.effects.invoke('render', position); - }, - finish: function(position) { - this.effects.each( function(effect) { - effect.render(1.0); - effect.cancel(); - effect.event('beforeFinish'); - if(effect.finish) effect.finish(position); - effect.event('afterFinish'); - }); - } -}); - -Effect.Opacity = Class.create(); -Object.extend(Object.extend(Effect.Opacity.prototype, Effect.Base.prototype), { - initialize: function(element) { - this.element = $(element); - // make this work on IE on elements without 'layout' - if(/MSIE/.test(navigator.userAgent) && (!this.element.hasLayout)) - this.element.setStyle({zoom: 1}); - var options = Object.extend({ - from: this.element.getOpacity() || 0.0, - to: 1.0 - }, arguments[1] || {}); - this.start(options); - }, - update: function(position) { - this.element.setOpacity(position); - } -}); - -Effect.Move = Class.create(); -Object.extend(Object.extend(Effect.Move.prototype, Effect.Base.prototype), { - initialize: function(element) { - this.element = $(element); - var options = Object.extend({ - x: 0, - y: 0, - mode: 'relative' - }, arguments[1] || {}); - this.start(options); - }, - setup: function() { - // Bug in Opera: Opera returns the "real" position of a static element or - // relative element that does not have top/left explicitly set. - // ==> Always set top and left for position relative elements in your stylesheets - // (to 0 if you do not need them) - this.element.makePositioned(); - this.originalLeft = parseFloat(this.element.getStyle('left') || '0'); - this.originalTop = parseFloat(this.element.getStyle('top') || '0'); - if(this.options.mode == 'absolute') { - // absolute movement, so we need to calc deltaX and deltaY - this.options.x = this.options.x - this.originalLeft; - this.options.y = this.options.y - this.originalTop; - } - }, - update: function(position) { - this.element.setStyle({ - left: this.options.x * position + this.originalLeft + 'px', - top: this.options.y * position + this.originalTop + 'px' - }); - } -}); - -// for backwards compatibility -Effect.MoveBy = function(element, toTop, toLeft) { - return new Effect.Move(element, - Object.extend({ x: toLeft, y: toTop }, arguments[3] || {})); -}; - -Effect.Scale = Class.create(); -Object.extend(Object.extend(Effect.Scale.prototype, Effect.Base.prototype), { - initialize: function(element, percent) { - this.element = $(element) - var options = Object.extend({ - scaleX: true, - scaleY: true, - scaleContent: true, - scaleFromCenter: false, - scaleMode: 'box', // 'box' or 'contents' or {} with provided values - scaleFrom: 100.0, - scaleTo: percent - }, arguments[2] || {}); - this.start(options); - }, - setup: function() { - this.restoreAfterFinish = this.options.restoreAfterFinish || false; - this.elementPositioning = this.element.getStyle('position'); - - this.originalStyle = {}; - ['top','left','width','height','fontSize'].each( function(k) { - this.originalStyle[k] = this.element.style[k]; - }.bind(this)); - - this.originalTop = this.element.offsetTop; - this.originalLeft = this.element.offsetLeft; - - var fontSize = this.element.getStyle('font-size') || '100%'; - ['em','px','%'].each( function(fontSizeType) { - if(fontSize.indexOf(fontSizeType)>0) { - this.fontSize = parseFloat(fontSize); - this.fontSizeType = fontSizeType; - } - }.bind(this)); - - this.factor = (this.options.scaleTo - this.options.scaleFrom)/100; - - this.dims = null; - if(this.options.scaleMode=='box') - this.dims = [this.element.offsetHeight, this.element.offsetWidth]; - if(/^content/.test(this.options.scaleMode)) - this.dims = [this.element.scrollHeight, this.element.scrollWidth]; - if(!this.dims) - this.dims = [this.options.scaleMode.originalHeight, - this.options.scaleMode.originalWidth]; - }, - update: function(position) { - var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position); - if(this.options.scaleContent && this.fontSize) - this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType }); - this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale); - }, - finish: function(position) { - if (this.restoreAfterFinish) this.element.setStyle(this.originalStyle); - }, - setDimensions: function(height, width) { - var d = {}; - if(this.options.scaleX) d.width = width + 'px'; - if(this.options.scaleY) d.height = height + 'px'; - if(this.options.scaleFromCenter) { - var topd = (height - this.dims[0])/2; - var leftd = (width - this.dims[1])/2; - if(this.elementPositioning == 'absolute') { - if(this.options.scaleY) d.top = this.originalTop-topd + 'px'; - if(this.options.scaleX) d.left = this.originalLeft-leftd + 'px'; - } else { - if(this.options.scaleY) d.top = -topd + 'px'; - if(this.options.scaleX) d.left = -leftd + 'px'; - } - } - this.element.setStyle(d); - } -}); - -Effect.Highlight = Class.create(); -Object.extend(Object.extend(Effect.Highlight.prototype, Effect.Base.prototype), { - initialize: function(element) { - this.element = $(element); - var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || {}); - this.start(options); - }, - setup: function() { - // Prevent executing on elements not in the layout flow - if(this.element.getStyle('display')=='none') { this.cancel(); return; } - // Disable background image during the effect - this.oldStyle = { - backgroundImage: this.element.getStyle('background-image') }; - this.element.setStyle({backgroundImage: 'none'}); - if(!this.options.endcolor) - this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff'); - if(!this.options.restorecolor) - this.options.restorecolor = this.element.getStyle('background-color'); - // init color calculations - this._base = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this)); - this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this)); - }, - update: function(position) { - this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){ - return m+(Math.round(this._base[i]+(this._delta[i]*position)).toColorPart()); }.bind(this)) }); - }, - finish: function() { - this.element.setStyle(Object.extend(this.oldStyle, { - backgroundColor: this.options.restorecolor - })); - } -}); - -Effect.ScrollTo = Class.create(); -Object.extend(Object.extend(Effect.ScrollTo.prototype, Effect.Base.prototype), { - initialize: function(element) { - this.element = $(element); - this.start(arguments[1] || {}); - }, - setup: function() { - Position.prepare(); - var offsets = Position.cumulativeOffset(this.element); - if(this.options.offset) offsets[1] += this.options.offset; - var max = window.innerHeight ? - window.height - window.innerHeight : - document.body.scrollHeight - - (document.documentElement.clientHeight ? - document.documentElement.clientHeight : document.body.clientHeight); - this.scrollStart = Position.deltaY; - this.delta = (offsets[1] > max ? max : offsets[1]) - this.scrollStart; - }, - update: function(position) { - Position.prepare(); - window.scrollTo(Position.deltaX, - this.scrollStart + (position*this.delta)); - } -}); - -/* ------------- combination effects ------------- */ - -Effect.Fade = function(element) { - element = $(element); - var oldOpacity = element.getInlineOpacity(); - var options = Object.extend({ - from: element.getOpacity() || 1.0, - to: 0.0, - afterFinishInternal: function(effect) { - if(effect.options.to!=0) return; - effect.element.hide(); - effect.element.setStyle({opacity: oldOpacity}); - }}, arguments[1] || {}); - return new Effect.Opacity(element,options); -} - -Effect.Appear = function(element) { - element = $(element); - var options = Object.extend({ - from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0), - to: 1.0, - // force Safari to render floated elements properly - afterFinishInternal: function(effect) { - effect.element.forceRerendering(); - }, - beforeSetup: function(effect) { - effect.element.setOpacity(effect.options.from); - effect.element.show(); - }}, arguments[1] || {}); - return new Effect.Opacity(element,options); -} - -Effect.Puff = function(element) { - element = $(element); - var oldStyle = { opacity: element.getInlineOpacity(), position: element.getStyle('position') }; - return new Effect.Parallel( - [ new Effect.Scale(element, 200, - { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), - new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], - Object.extend({ duration: 1.0, - beforeSetupInternal: function(effect) { - effect.effects[0].element.setStyle({position: 'absolute'}); }, - afterFinishInternal: function(effect) { - effect.effects[0].element.hide(); - effect.effects[0].element.setStyle(oldStyle); } - }, arguments[1] || {}) - ); -} - -Effect.BlindUp = function(element) { - element = $(element); - element.makeClipping(); - return new Effect.Scale(element, 0, - Object.extend({ scaleContent: false, - scaleX: false, - restoreAfterFinish: true, - afterFinishInternal: function(effect) { - effect.element.hide(); - effect.element.undoClipping(); - } - }, arguments[1] || {}) - ); -} - -Effect.BlindDown = function(element) { - element = $(element); - var elementDimensions = element.getDimensions(); - return new Effect.Scale(element, 100, - Object.extend({ scaleContent: false, - scaleX: false, - scaleFrom: 0, - scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, - restoreAfterFinish: true, - afterSetup: function(effect) { - effect.element.makeClipping(); - effect.element.setStyle({height: '0px'}); - effect.element.show(); - }, - afterFinishInternal: function(effect) { - effect.element.undoClipping(); - } - }, arguments[1] || {}) - ); -} - -Effect.SwitchOff = function(element) { - element = $(element); - var oldOpacity = element.getInlineOpacity(); - return new Effect.Appear(element, { - duration: 0.4, - from: 0, - transition: Effect.Transitions.flicker, - afterFinishInternal: function(effect) { - new Effect.Scale(effect.element, 1, { - duration: 0.3, scaleFromCenter: true, - scaleX: false, scaleContent: false, restoreAfterFinish: true, - beforeSetup: function(effect) { - effect.element.makePositioned(); - effect.element.makeClipping(); - }, - afterFinishInternal: function(effect) { - effect.element.hide(); - effect.element.undoClipping(); - effect.element.undoPositioned(); - effect.element.setStyle({opacity: oldOpacity}); - } - }) - } - }); -} - -Effect.DropOut = function(element) { - element = $(element); - var oldStyle = { - top: element.getStyle('top'), - left: element.getStyle('left'), - opacity: element.getInlineOpacity() }; - return new Effect.Parallel( - [ new Effect.Move(element, {x: 0, y: 100, sync: true }), - new Effect.Opacity(element, { sync: true, to: 0.0 }) ], - Object.extend( - { duration: 0.5, - beforeSetup: function(effect) { - effect.effects[0].element.makePositioned(); - }, - afterFinishInternal: function(effect) { - effect.effects[0].element.hide(); - effect.effects[0].element.undoPositioned(); - effect.effects[0].element.setStyle(oldStyle); - } - }, arguments[1] || {})); -} - -Effect.Shake = function(element) { - element = $(element); - var oldStyle = { - top: element.getStyle('top'), - left: element.getStyle('left') }; - return new Effect.Move(element, - { x: 20, y: 0, duration: 0.05, afterFinishInternal: function(effect) { - new Effect.Move(effect.element, - { x: -40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { - new Effect.Move(effect.element, - { x: 40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { - new Effect.Move(effect.element, - { x: -40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { - new Effect.Move(effect.element, - { x: 40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { - new Effect.Move(effect.element, - { x: -20, y: 0, duration: 0.05, afterFinishInternal: function(effect) { - effect.element.undoPositioned(); - effect.element.setStyle(oldStyle); - }}) }}) }}) }}) }}) }}); -} - -Effect.SlideDown = function(element) { - element = $(element); - element.cleanWhitespace(); - // SlideDown need to have the content of the element wrapped in a container element with fixed height! - var oldInnerBottom = $(element.firstChild).getStyle('bottom'); - var elementDimensions = element.getDimensions(); - return new Effect.Scale(element, 100, Object.extend({ - scaleContent: false, - scaleX: false, - scaleFrom: window.opera ? 0 : 1, - scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, - restoreAfterFinish: true, - afterSetup: function(effect) { - effect.element.makePositioned(); - effect.element.firstChild.makePositioned(); - if(window.opera) effect.element.setStyle({top: ''}); - effect.element.makeClipping(); - effect.element.setStyle({height: '0px'}); - effect.element.show(); }, - afterUpdateInternal: function(effect) { - effect.element.firstChild.setStyle({bottom: - (effect.dims[0] - effect.element.clientHeight) + 'px' }); - }, - afterFinishInternal: function(effect) { - effect.element.undoClipping(); - // IE will crash if child is undoPositioned first - if(/MSIE/.test(navigator.userAgent)){ - effect.element.undoPositioned(); - effect.element.firstChild.undoPositioned(); - }else{ - effect.element.firstChild.undoPositioned(); - effect.element.undoPositioned(); - } - effect.element.firstChild.setStyle({bottom: oldInnerBottom}); } - }, arguments[1] || {}) - ); -} - -Effect.SlideUp = function(element) { - element = $(element); - element.cleanWhitespace(); - var oldInnerBottom = $(element.firstChild).getStyle('bottom'); - return new Effect.Scale(element, window.opera ? 0 : 1, - Object.extend({ scaleContent: false, - scaleX: false, - scaleMode: 'box', - scaleFrom: 100, - restoreAfterFinish: true, - beforeStartInternal: function(effect) { - effect.element.makePositioned(); - effect.element.firstChild.makePositioned(); - if(window.opera) effect.element.setStyle({top: ''}); - effect.element.makeClipping(); - effect.element.show(); }, - afterUpdateInternal: function(effect) { - effect.element.firstChild.setStyle({bottom: - (effect.dims[0] - effect.element.clientHeight) + 'px' }); }, - afterFinishInternal: function(effect) { - effect.element.hide(); - effect.element.undoClipping(); - effect.element.firstChild.undoPositioned(); - effect.element.undoPositioned(); - effect.element.setStyle({bottom: oldInnerBottom}); } - }, arguments[1] || {}) - ); -} - -// Bug in opera makes the TD containing this element expand for a instance after finish -Effect.Squish = function(element) { - return new Effect.Scale(element, window.opera ? 1 : 0, - { restoreAfterFinish: true, - beforeSetup: function(effect) { - effect.element.makeClipping(effect.element); }, - afterFinishInternal: function(effect) { - effect.element.hide(effect.element); - effect.element.undoClipping(effect.element); } - }); -} - -Effect.Grow = function(element) { - element = $(element); - var options = Object.extend({ - direction: 'center', - moveTransition: Effect.Transitions.sinoidal, - scaleTransition: Effect.Transitions.sinoidal, - opacityTransition: Effect.Transitions.full - }, arguments[1] || {}); - var oldStyle = { - top: element.style.top, - left: element.style.left, - height: element.style.height, - width: element.style.width, - opacity: element.getInlineOpacity() }; - - var dims = element.getDimensions(); - var initialMoveX, initialMoveY; - var moveX, moveY; - - switch (options.direction) { - case 'top-left': - initialMoveX = initialMoveY = moveX = moveY = 0; - break; - case 'top-right': - initialMoveX = dims.width; - initialMoveY = moveY = 0; - moveX = -dims.width; - break; - case 'bottom-left': - initialMoveX = moveX = 0; - initialMoveY = dims.height; - moveY = -dims.height; - break; - case 'bottom-right': - initialMoveX = dims.width; - initialMoveY = dims.height; - moveX = -dims.width; - moveY = -dims.height; - break; - case 'center': - initialMoveX = dims.width / 2; - initialMoveY = dims.height / 2; - moveX = -dims.width / 2; - moveY = -dims.height / 2; - break; - } - - return new Effect.Move(element, { - x: initialMoveX, - y: initialMoveY, - duration: 0.01, - beforeSetup: function(effect) { - effect.element.hide(); - effect.element.makeClipping(); - effect.element.makePositioned(); - }, - afterFinishInternal: function(effect) { - new Effect.Parallel( - [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }), - new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }), - new Effect.Scale(effect.element, 100, { - scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, - sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true}) - ], Object.extend({ - beforeSetup: function(effect) { - effect.effects[0].element.setStyle({height: '0px'}); - effect.effects[0].element.show(); - }, - afterFinishInternal: function(effect) { - effect.effects[0].element.undoClipping(); - effect.effects[0].element.undoPositioned(); - effect.effects[0].element.setStyle(oldStyle); - } - }, options) - ) - } - }); -} - -Effect.Shrink = function(element) { - element = $(element); - var options = Object.extend({ - direction: 'center', - moveTransition: Effect.Transitions.sinoidal, - scaleTransition: Effect.Transitions.sinoidal, - opacityTransition: Effect.Transitions.none - }, arguments[1] || {}); - var oldStyle = { - top: element.style.top, - left: element.style.left, - height: element.style.height, - width: element.style.width, - opacity: element.getInlineOpacity() }; - - var dims = element.getDimensions(); - var moveX, moveY; - - switch (options.direction) { - case 'top-left': - moveX = moveY = 0; - break; - case 'top-right': - moveX = dims.width; - moveY = 0; - break; - case 'bottom-left': - moveX = 0; - moveY = dims.height; - break; - case 'bottom-right': - moveX = dims.width; - moveY = dims.height; - break; - case 'center': - moveX = dims.width / 2; - moveY = dims.height / 2; - break; - } - - return new Effect.Parallel( - [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }), - new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}), - new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }) - ], Object.extend({ - beforeStartInternal: function(effect) { - effect.effects[0].element.makePositioned(); - effect.effects[0].element.makeClipping(); }, - afterFinishInternal: function(effect) { - effect.effects[0].element.hide(); - effect.effects[0].element.undoClipping(); - effect.effects[0].element.undoPositioned(); - effect.effects[0].element.setStyle(oldStyle); } - }, options) - ); -} - -Effect.Pulsate = function(element) { - element = $(element); - var options = arguments[1] || {}; - var oldOpacity = element.getInlineOpacity(); - var transition = options.transition || Effect.Transitions.sinoidal; - var reverser = function(pos){ return transition(1-Effect.Transitions.pulse(pos)) }; - reverser.bind(transition); - return new Effect.Opacity(element, - Object.extend(Object.extend({ duration: 3.0, from: 0, - afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); } - }, options), {transition: reverser})); -} - -Effect.Fold = function(element) { - element = $(element); - var oldStyle = { - top: element.style.top, - left: element.style.left, - width: element.style.width, - height: element.style.height }; - Element.makeClipping(element); - return new Effect.Scale(element, 5, Object.extend({ - scaleContent: false, - scaleX: false, - afterFinishInternal: function(effect) { - new Effect.Scale(element, 1, { - scaleContent: false, - scaleY: false, - afterFinishInternal: function(effect) { - effect.element.hide(); - effect.element.undoClipping(); - effect.element.setStyle(oldStyle); - } }); - }}, arguments[1] || {})); -}; - -['setOpacity','getOpacity','getInlineOpacity','forceRerendering','setContentZoom', - 'collectTextNodes','collectTextNodesIgnoreClass','childrenWithClassName'].each( - function(f) { Element.Methods[f] = Element[f]; } -); - -Element.Methods.visualEffect = function(element, effect, options) { - s = effect.gsub(/_/, '-').camelize(); - effect_class = s.charAt(0).toUpperCase() + s.substring(1); - new Effect[effect_class](element, options); - return $(element); -}; - -Element.addMethods(); \ No newline at end of file diff --git a/tests/test_tools/selenium/core/lib/scriptaculous/scriptaculous.js b/tests/test_tools/selenium/core/lib/scriptaculous/scriptaculous.js deleted file mode 100644 index f61fc57f..00000000 --- a/tests/test_tools/selenium/core/lib/scriptaculous/scriptaculous.js +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -var Scriptaculous = { - Version: '1.6.1', - require: function(libraryName) { - // inserting via DOM fails in Safari 2.0, so brute force approach - document.write(''); - }, - load: function() { - if((typeof Prototype=='undefined') || - (typeof Element == 'undefined') || - (typeof Element.Methods=='undefined') || - parseFloat(Prototype.Version.split(".")[0] + "." + - Prototype.Version.split(".")[1]) < 1.5) - throw("script.aculo.us requires the Prototype JavaScript framework >= 1.5.0"); - - $A(document.getElementsByTagName("script")).findAll( function(s) { - return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/)) - }).each( function(s) { - var path = s.src.replace(/scriptaculous\.js(\?.*)?$/,''); - var includes = s.src.match(/\?.*load=([a-z,]*)/); - (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider').split(',').each( - function(include) { Scriptaculous.require(path+include+'.js') }); - }); - } -} - -Scriptaculous.load(); \ No newline at end of file diff --git a/tests/test_tools/selenium/core/lib/scriptaculous/slider.js b/tests/test_tools/selenium/core/lib/scriptaculous/slider.js deleted file mode 100644 index c0f1fc01..00000000 --- a/tests/test_tools/selenium/core/lib/scriptaculous/slider.js +++ /dev/null @@ -1,283 +0,0 @@ -// Copyright (c) 2005 Marty Haught, Thomas Fuchs -// -// See http://script.aculo.us for more info -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -if(!Control) var Control = {}; -Control.Slider = Class.create(); - -// options: -// axis: 'vertical', or 'horizontal' (default) -// -// callbacks: -// onChange(value) -// onSlide(value) -Control.Slider.prototype = { - initialize: function(handle, track, options) { - var slider = this; - - if(handle instanceof Array) { - this.handles = handle.collect( function(e) { return $(e) }); - } else { - this.handles = [$(handle)]; - } - - this.track = $(track); - this.options = options || {}; - - this.axis = this.options.axis || 'horizontal'; - this.increment = this.options.increment || 1; - this.step = parseInt(this.options.step || '1'); - this.range = this.options.range || $R(0,1); - - this.value = 0; // assure backwards compat - this.values = this.handles.map( function() { return 0 }); - this.spans = this.options.spans ? this.options.spans.map(function(s){ return $(s) }) : false; - this.options.startSpan = $(this.options.startSpan || null); - this.options.endSpan = $(this.options.endSpan || null); - - this.restricted = this.options.restricted || false; - - this.maximum = this.options.maximum || this.range.end; - this.minimum = this.options.minimum || this.range.start; - - // Will be used to align the handle onto the track, if necessary - this.alignX = parseInt(this.options.alignX || '0'); - this.alignY = parseInt(this.options.alignY || '0'); - - this.trackLength = this.maximumOffset() - this.minimumOffset(); - this.handleLength = this.isVertical() ? this.handles[0].offsetHeight : this.handles[0].offsetWidth; - - this.active = false; - this.dragging = false; - this.disabled = false; - - if(this.options.disabled) this.setDisabled(); - - // Allowed values array - this.allowedValues = this.options.values ? this.options.values.sortBy(Prototype.K) : false; - if(this.allowedValues) { - this.minimum = this.allowedValues.min(); - this.maximum = this.allowedValues.max(); - } - - this.eventMouseDown = this.startDrag.bindAsEventListener(this); - this.eventMouseUp = this.endDrag.bindAsEventListener(this); - this.eventMouseMove = this.update.bindAsEventListener(this); - - // Initialize handles in reverse (make sure first handle is active) - this.handles.each( function(h,i) { - i = slider.handles.length-1-i; - slider.setValue(parseFloat( - (slider.options.sliderValue instanceof Array ? - slider.options.sliderValue[i] : slider.options.sliderValue) || - slider.range.start), i); - Element.makePositioned(h); // fix IE - Event.observe(h, "mousedown", slider.eventMouseDown); - }); - - Event.observe(this.track, "mousedown", this.eventMouseDown); - Event.observe(document, "mouseup", this.eventMouseUp); - Event.observe(document, "mousemove", this.eventMouseMove); - - this.initialized = true; - }, - dispose: function() { - var slider = this; - Event.stopObserving(this.track, "mousedown", this.eventMouseDown); - Event.stopObserving(document, "mouseup", this.eventMouseUp); - Event.stopObserving(document, "mousemove", this.eventMouseMove); - this.handles.each( function(h) { - Event.stopObserving(h, "mousedown", slider.eventMouseDown); - }); - }, - setDisabled: function(){ - this.disabled = true; - }, - setEnabled: function(){ - this.disabled = false; - }, - getNearestValue: function(value){ - if(this.allowedValues){ - if(value >= this.allowedValues.max()) return(this.allowedValues.max()); - if(value <= this.allowedValues.min()) return(this.allowedValues.min()); - - var offset = Math.abs(this.allowedValues[0] - value); - var newValue = this.allowedValues[0]; - this.allowedValues.each( function(v) { - var currentOffset = Math.abs(v - value); - if(currentOffset <= offset){ - newValue = v; - offset = currentOffset; - } - }); - return newValue; - } - if(value > this.range.end) return this.range.end; - if(value < this.range.start) return this.range.start; - return value; - }, - setValue: function(sliderValue, handleIdx){ - if(!this.active) { - this.activeHandle = this.handles[handleIdx]; - this.activeHandleIdx = handleIdx; - this.updateStyles(); - } - handleIdx = handleIdx || this.activeHandleIdx || 0; - if(this.initialized && this.restricted) { - if((handleIdx>0) && (sliderValuethis.values[handleIdx+1])) - sliderValue = this.values[handleIdx+1]; - } - sliderValue = this.getNearestValue(sliderValue); - this.values[handleIdx] = sliderValue; - this.value = this.values[0]; // assure backwards compat - - this.handles[handleIdx].style[this.isVertical() ? 'top' : 'left'] = - this.translateToPx(sliderValue); - - this.drawSpans(); - if(!this.dragging || !this.event) this.updateFinished(); - }, - setValueBy: function(delta, handleIdx) { - this.setValue(this.values[handleIdx || this.activeHandleIdx || 0] + delta, - handleIdx || this.activeHandleIdx || 0); - }, - translateToPx: function(value) { - return Math.round( - ((this.trackLength-this.handleLength)/(this.range.end-this.range.start)) * - (value - this.range.start)) + "px"; - }, - translateToValue: function(offset) { - return ((offset/(this.trackLength-this.handleLength) * - (this.range.end-this.range.start)) + this.range.start); - }, - getRange: function(range) { - var v = this.values.sortBy(Prototype.K); - range = range || 0; - return $R(v[range],v[range+1]); - }, - minimumOffset: function(){ - return(this.isVertical() ? this.alignY : this.alignX); - }, - maximumOffset: function(){ - return(this.isVertical() ? - this.track.offsetHeight - this.alignY : this.track.offsetWidth - this.alignX); - }, - isVertical: function(){ - return (this.axis == 'vertical'); - }, - drawSpans: function() { - var slider = this; - if(this.spans) - $R(0, this.spans.length-1).each(function(r) { slider.setSpan(slider.spans[r], slider.getRange(r)) }); - if(this.options.startSpan) - this.setSpan(this.options.startSpan, - $R(0, this.values.length>1 ? this.getRange(0).min() : this.value )); - if(this.options.endSpan) - this.setSpan(this.options.endSpan, - $R(this.values.length>1 ? this.getRange(this.spans.length-1).max() : this.value, this.maximum)); - }, - setSpan: function(span, range) { - if(this.isVertical()) { - span.style.top = this.translateToPx(range.start); - span.style.height = this.translateToPx(range.end - range.start + this.range.start); - } else { - span.style.left = this.translateToPx(range.start); - span.style.width = this.translateToPx(range.end - range.start + this.range.start); - } - }, - updateStyles: function() { - this.handles.each( function(h){ Element.removeClassName(h, 'selected') }); - Element.addClassName(this.activeHandle, 'selected'); - }, - startDrag: function(event) { - if(Event.isLeftClick(event)) { - if(!this.disabled){ - this.active = true; - - var handle = Event.element(event); - var pointer = [Event.pointerX(event), Event.pointerY(event)]; - if(handle==this.track) { - var offsets = Position.cumulativeOffset(this.track); - this.event = event; - this.setValue(this.translateToValue( - (this.isVertical() ? pointer[1]-offsets[1] : pointer[0]-offsets[0])-(this.handleLength/2) - )); - var offsets = Position.cumulativeOffset(this.activeHandle); - this.offsetX = (pointer[0] - offsets[0]); - this.offsetY = (pointer[1] - offsets[1]); - } else { - // find the handle (prevents issues with Safari) - while((this.handles.indexOf(handle) == -1) && handle.parentNode) - handle = handle.parentNode; - - this.activeHandle = handle; - this.activeHandleIdx = this.handles.indexOf(this.activeHandle); - this.updateStyles(); - - var offsets = Position.cumulativeOffset(this.activeHandle); - this.offsetX = (pointer[0] - offsets[0]); - this.offsetY = (pointer[1] - offsets[1]); - } - } - Event.stop(event); - } - }, - update: function(event) { - if(this.active) { - if(!this.dragging) this.dragging = true; - this.draw(event); - // fix AppleWebKit rendering - if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0); - Event.stop(event); - } - }, - draw: function(event) { - var pointer = [Event.pointerX(event), Event.pointerY(event)]; - var offsets = Position.cumulativeOffset(this.track); - pointer[0] -= this.offsetX + offsets[0]; - pointer[1] -= this.offsetY + offsets[1]; - this.event = event; - this.setValue(this.translateToValue( this.isVertical() ? pointer[1] : pointer[0] )); - if(this.initialized && this.options.onSlide) - this.options.onSlide(this.values.length>1 ? this.values : this.value, this); - }, - endDrag: function(event) { - if(this.active && this.dragging) { - this.finishDrag(event, true); - Event.stop(event); - } - this.active = false; - this.dragging = false; - }, - finishDrag: function(event, success) { - this.active = false; - this.dragging = false; - this.updateFinished(); - }, - updateFinished: function() { - if(this.initialized && this.options.onChange) - this.options.onChange(this.values.length>1 ? this.values : this.value, this); - this.event = null; - } -} \ No newline at end of file diff --git a/tests/test_tools/selenium/core/lib/scriptaculous/unittest.js b/tests/test_tools/selenium/core/lib/scriptaculous/unittest.js deleted file mode 100644 index d2c2d817..00000000 --- a/tests/test_tools/selenium/core/lib/scriptaculous/unittest.js +++ /dev/null @@ -1,383 +0,0 @@ -// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// (c) 2005 Jon Tirsen (http://www.tirsen.com) -// (c) 2005 Michael Schuerig (http://www.schuerig.de/michael/) -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -// experimental, Firefox-only -Event.simulateMouse = function(element, eventName) { - var options = Object.extend({ - pointerX: 0, - pointerY: 0, - buttons: 0 - }, arguments[2] || {}); - var oEvent = document.createEvent("MouseEvents"); - oEvent.initMouseEvent(eventName, true, true, document.defaultView, - options.buttons, options.pointerX, options.pointerY, options.pointerX, options.pointerY, - false, false, false, false, 0, $(element)); - - if(this.mark) Element.remove(this.mark); - this.mark = document.createElement('div'); - this.mark.appendChild(document.createTextNode(" ")); - document.body.appendChild(this.mark); - this.mark.style.position = 'absolute'; - this.mark.style.top = options.pointerY + "px"; - this.mark.style.left = options.pointerX + "px"; - this.mark.style.width = "5px"; - this.mark.style.height = "5px;"; - this.mark.style.borderTop = "1px solid red;" - this.mark.style.borderLeft = "1px solid red;" - - if(this.step) - alert('['+new Date().getTime().toString()+'] '+eventName+'/'+Test.Unit.inspect(options)); - - $(element).dispatchEvent(oEvent); -}; - -// Note: Due to a fix in Firefox 1.0.5/6 that probably fixed "too much", this doesn't work in 1.0.6 or DP2. -// You need to downgrade to 1.0.4 for now to get this working -// See https://bugzilla.mozilla.org/show_bug.cgi?id=289940 for the fix that fixed too much -Event.simulateKey = function(element, eventName) { - var options = Object.extend({ - ctrlKey: false, - altKey: false, - shiftKey: false, - metaKey: false, - keyCode: 0, - charCode: 0 - }, arguments[2] || {}); - - var oEvent = document.createEvent("KeyEvents"); - oEvent.initKeyEvent(eventName, true, true, window, - options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, - options.keyCode, options.charCode ); - $(element).dispatchEvent(oEvent); -}; - -Event.simulateKeys = function(element, command) { - for(var i=0; i' + - '' + - '' + - '' + - '
    StatusTestMessage
    '; - this.logsummary = $('logsummary') - this.loglines = $('loglines'); - }, - _toHTML: function(txt) { - return txt.escapeHTML().replace(/\n/g,"
    "); - } -} - -Test.Unit.Runner = Class.create(); -Test.Unit.Runner.prototype = { - initialize: function(testcases) { - this.options = Object.extend({ - testLog: 'testlog' - }, arguments[1] || {}); - this.options.resultsURL = this.parseResultsURLQueryParameter(); - if (this.options.testLog) { - this.options.testLog = $(this.options.testLog) || null; - } - if(this.options.tests) { - this.tests = []; - for(var i = 0; i < this.options.tests.length; i++) { - if(/^test/.test(this.options.tests[i])) { - this.tests.push(new Test.Unit.Testcase(this.options.tests[i], testcases[this.options.tests[i]], testcases["setup"], testcases["teardown"])); - } - } - } else { - if (this.options.test) { - this.tests = [new Test.Unit.Testcase(this.options.test, testcases[this.options.test], testcases["setup"], testcases["teardown"])]; - } else { - this.tests = []; - for(var testcase in testcases) { - if(/^test/.test(testcase)) { - this.tests.push(new Test.Unit.Testcase(testcase, testcases[testcase], testcases["setup"], testcases["teardown"])); - } - } - } - } - this.currentTest = 0; - this.logger = new Test.Unit.Logger(this.options.testLog); - setTimeout(this.runTests.bind(this), 1000); - }, - parseResultsURLQueryParameter: function() { - return window.location.search.parseQuery()["resultsURL"]; - }, - // Returns: - // "ERROR" if there was an error, - // "FAILURE" if there was a failure, or - // "SUCCESS" if there was neither - getResult: function() { - var hasFailure = false; - for(var i=0;i 0) { - return "ERROR"; - } - if (this.tests[i].failures > 0) { - hasFailure = true; - } - } - if (hasFailure) { - return "FAILURE"; - } else { - return "SUCCESS"; - } - }, - postResults: function() { - if (this.options.resultsURL) { - new Ajax.Request(this.options.resultsURL, - { method: 'get', parameters: 'result=' + this.getResult(), asynchronous: false }); - } - }, - runTests: function() { - var test = this.tests[this.currentTest]; - if (!test) { - // finished! - this.postResults(); - this.logger.summary(this.summary()); - return; - } - if(!test.isWaiting) { - this.logger.start(test.name); - } - test.run(); - if(test.isWaiting) { - this.logger.message("Waiting for " + test.timeToWait + "ms"); - setTimeout(this.runTests.bind(this), test.timeToWait || 1000); - } else { - this.logger.finish(test.status(), test.summary()); - this.currentTest++; - // tail recursive, hopefully the browser will skip the stackframe - this.runTests(); - } - }, - summary: function() { - var assertions = 0; - var failures = 0; - var errors = 0; - var messages = []; - for(var i=0;i 0) return 'failed'; - if (this.errors > 0) return 'error'; - return 'passed'; - }, - assert: function(expression) { - var message = arguments[1] || 'assert: got "' + Test.Unit.inspect(expression) + '"'; - try { expression ? this.pass() : - this.fail(message); } - catch(e) { this.error(e); } - }, - assertEqual: function(expected, actual) { - var message = arguments[2] || "assertEqual"; - try { (expected == actual) ? this.pass() : - this.fail(message + ': expected "' + Test.Unit.inspect(expected) + - '", actual "' + Test.Unit.inspect(actual) + '"'); } - catch(e) { this.error(e); } - }, - assertEnumEqual: function(expected, actual) { - var message = arguments[2] || "assertEnumEqual"; - try { $A(expected).length == $A(actual).length && - expected.zip(actual).all(function(pair) { return pair[0] == pair[1] }) ? - this.pass() : this.fail(message + ': expected ' + Test.Unit.inspect(expected) + - ', actual ' + Test.Unit.inspect(actual)); } - catch(e) { this.error(e); } - }, - assertNotEqual: function(expected, actual) { - var message = arguments[2] || "assertNotEqual"; - try { (expected != actual) ? this.pass() : - this.fail(message + ': got "' + Test.Unit.inspect(actual) + '"'); } - catch(e) { this.error(e); } - }, - assertNull: function(obj) { - var message = arguments[1] || 'assertNull' - try { (obj==null) ? this.pass() : - this.fail(message + ': got "' + Test.Unit.inspect(obj) + '"'); } - catch(e) { this.error(e); } - }, - assertHidden: function(element) { - var message = arguments[1] || 'assertHidden'; - this.assertEqual("none", element.style.display, message); - }, - assertNotNull: function(object) { - var message = arguments[1] || 'assertNotNull'; - this.assert(object != null, message); - }, - assertInstanceOf: function(expected, actual) { - var message = arguments[2] || 'assertInstanceOf'; - try { - (actual instanceof expected) ? this.pass() : - this.fail(message + ": object was not an instance of the expected type"); } - catch(e) { this.error(e); } - }, - assertNotInstanceOf: function(expected, actual) { - var message = arguments[2] || 'assertNotInstanceOf'; - try { - !(actual instanceof expected) ? this.pass() : - this.fail(message + ": object was an instance of the not expected type"); } - catch(e) { this.error(e); } - }, - _isVisible: function(element) { - element = $(element); - if(!element.parentNode) return true; - this.assertNotNull(element); - if(element.style && Element.getStyle(element, 'display') == 'none') - return false; - - return this._isVisible(element.parentNode); - }, - assertNotVisible: function(element) { - this.assert(!this._isVisible(element), Test.Unit.inspect(element) + " was not hidden and didn't have a hidden parent either. " + ("" || arguments[1])); - }, - assertVisible: function(element) { - this.assert(this._isVisible(element), Test.Unit.inspect(element) + " was not visible. " + ("" || arguments[1])); - }, - benchmark: function(operation, iterations) { - var startAt = new Date(); - (iterations || 1).times(operation); - var timeTaken = ((new Date())-startAt); - this.info((arguments[2] || 'Operation') + ' finished ' + - iterations + ' iterations in ' + (timeTaken/1000)+'s' ); - return timeTaken; - } -} - -Test.Unit.Testcase = Class.create(); -Object.extend(Object.extend(Test.Unit.Testcase.prototype, Test.Unit.Assertions.prototype), { - initialize: function(name, test, setup, teardown) { - Test.Unit.Assertions.prototype.initialize.bind(this)(); - this.name = name; - this.test = test || function() {}; - this.setup = setup || function() {}; - this.teardown = teardown || function() {}; - this.isWaiting = false; - this.timeToWait = 1000; - }, - wait: function(time, nextPart) { - this.isWaiting = true; - this.test = nextPart; - this.timeToWait = time; - }, - run: function() { - try { - try { - if (!this.isWaiting) this.setup.bind(this)(); - this.isWaiting = false; - this.test.bind(this)(); - } finally { - if(!this.isWaiting) { - this.teardown.bind(this)(); - } - } - } - catch(e) { this.error(e); } - } -}); diff --git a/tests/test_tools/selenium/core/scripts/find_matching_child.js b/tests/test_tools/selenium/core/scripts/find_matching_child.js deleted file mode 100644 index fbf35b75..00000000 --- a/tests/test_tools/selenium/core/scripts/find_matching_child.js +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2004 ThoughtWorks, Inc - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -elementFindMatchingChildren = function(element, selector) { - var matches = []; - - var childCount = element.childNodes.length; - for (var i=0; i= "1.5"); - if (isRecentFirefox || browserVersion.isKonqueror || browserVersion.isSafari || browserVersion.isOpera) { - text = getTextContent(element); - } else if (element.textContent) { - text = element.textContent; - } else if (element.innerText) { - text = element.innerText; - } - - text = normalizeNewlines(text); - text = normalizeSpaces(text); - - return text.trim(); -} - -function getTextContent(element, preformatted) { - if (element.nodeType == 3 /*Node.TEXT_NODE*/) { - var text = element.data; - if (!preformatted) { - text = text.replace(/\n|\r|\t/g, " "); - } - return text; - } - if (element.nodeType == 1 /*Node.ELEMENT_NODE*/) { - var childrenPreformatted = preformatted || (element.tagName == "PRE"); - var text = ""; - for (var i = 0; i < element.childNodes.length; i++) { - var child = element.childNodes.item(i); - text += getTextContent(child, childrenPreformatted); - } - // Handle block elements that introduce newlines - // -- From HTML spec: - // - // - // TODO: should potentially introduce multiple newlines to separate blocks - if (element.tagName == "P" || element.tagName == "BR" || element.tagName == "HR" || element.tagName == "DIV") { - text += "\n"; - } - return text; - } - return ''; -} - -/** - * Convert all newlines to \m - */ -function normalizeNewlines(text) -{ - return text.replace(/\r\n|\r/g, "\n"); -} - -/** - * Replace multiple sequential spaces with a single space, and then convert   to space. - */ -function normalizeSpaces(text) -{ - // IE has already done this conversion, so doing it again will remove multiple nbsp - if (browserVersion.isIE) - { - return text; - } - - // Replace multiple spaces with a single space - // TODO - this shouldn't occur inside PRE elements - text = text.replace(/\ +/g, " "); - - // Replace   with a space - var nbspPattern = new RegExp(String.fromCharCode(160), "g"); - if (browserVersion.isSafari) { - return replaceAll(text, String.fromCharCode(160), " "); - } else { - return text.replace(nbspPattern, " "); - } -} - -function replaceAll(text, oldText, newText) { - while (text.indexOf(oldText) != -1) { - text = text.replace(oldText, newText); - } - return text; -} - - -function xmlDecode(text) { - text = text.replace(/"/g, '"'); - text = text.replace(/'/g, "'"); - text = text.replace(/</g, "<"); - text = text.replace(/>/g, ">"); - text = text.replace(/&/g, "&"); - return text; -} - -// Sets the text in this element -function setText(element, text) { - if (element.textContent != null) { - element.textContent = text; - } else if (element.innerText != null) { - element.innerText = text; - } -} - -// Get the value of an element -function getInputValue(inputElement) { - if (inputElement.type) { - if (inputElement.type.toUpperCase() == 'CHECKBOX' || - inputElement.type.toUpperCase() == 'RADIO') - { - return (inputElement.checked ? 'on' : 'off'); - } - } - if (inputElement.value == null) { - throw new SeleniumError("This element has no value; is it really a form field?"); - } - return inputElement.value; -} - -/* Fire an event in a browser-compatible manner */ -function triggerEvent(element, eventType, canBubble, controlKeyDown, altKeyDown, shiftKeyDown, metaKeyDown) { - canBubble = (typeof(canBubble) == undefined) ? true : canBubble; - if (element.fireEvent) { - var evt = createEventObject(element, controlKeyDown, altKeyDown, shiftKeyDown, metaKeyDown); - element.fireEvent('on' + eventType, evt); - } - else { - var evt = document.createEvent('HTMLEvents'); - - try { - evt.shiftKey = shiftKeyDown; - evt.metaKey = metaKeyDown; - evt.altKey = altKeyDown; - evt.ctrlKey = controlKeyDown; - } catch (e) { - // On Firefox 1.0, you can only set these during initMouseEvent or initKeyEvent - // we'll have to ignore them here - LOG.exception(e); - } - - evt.initEvent(eventType, canBubble, true); - element.dispatchEvent(evt); - } -} - -function getKeyCodeFromKeySequence(keySequence) { - var match = /^\\(\d{1,3})$/.exec(keySequence); - if (match != null) { - return match[1]; - } - match = /^.$/.exec(keySequence); - if (match != null) { - return match[0].charCodeAt(0); - } - // this is for backward compatibility with existing tests - // 1 digit ascii codes will break however because they are used for the digit chars - match = /^\d{2,3}$/.exec(keySequence); - if (match != null) { - return match[0]; - } - throw new SeleniumError("invalid keySequence"); -} - -function createEventObject(element, controlKeyDown, altKeyDown, shiftKeyDown, metaKeyDown) { - var evt = element.ownerDocument.createEventObject(); - evt.shiftKey = shiftKeyDown; - evt.metaKey = metaKeyDown; - evt.altKey = altKeyDown; - evt.ctrlKey = controlKeyDown; - return evt; -} - -function triggerKeyEvent(element, eventType, keySequence, canBubble, controlKeyDown, altKeyDown, shiftKeyDown, metaKeyDown) { - var keycode = getKeyCodeFromKeySequence(keySequence); - canBubble = (typeof(canBubble) == undefined) ? true : canBubble; - if (element.fireEvent) { - var keyEvent = createEventObject(element, controlKeyDown, altKeyDown, shiftKeyDown, metaKeyDown); - keyEvent.keyCode = keycode; - element.fireEvent('on' + eventType, keyEvent); - } - else { - var evt; - if (window.KeyEvent) { - evt = document.createEvent('KeyEvents'); - evt.initKeyEvent(eventType, true, true, window, controlKeyDown, altKeyDown, shiftKeyDown, metaKeyDown, keycode, keycode); - } else { - evt = document.createEvent('UIEvents'); - - evt.shiftKey = shiftKeyDown; - evt.metaKey = metaKeyDown; - evt.altKey = altKeyDown; - evt.ctrlKey = controlKeyDown; - - evt.initUIEvent(eventType, true, true, window, 1); - evt.keyCode = keycode; - evt.which = keycode; - } - - element.dispatchEvent(evt); - } -} - -function removeLoadListener(element, command) { - LOG.info('Removing loadListenter for ' + element + ', ' + command); - if (window.removeEventListener) - element.removeEventListener("load", command, true); - else if (window.detachEvent) - element.detachEvent("onload", command); -} - -function addLoadListener(element, command) { - LOG.info('Adding loadListenter for ' + element + ', ' + command); - var augmentedCommand = function() { - command.call(this, element); - } - if (window.addEventListener && !browserVersion.isOpera) - element.addEventListener("load", augmentedCommand, true); - else if (window.attachEvent) - element.attachEvent("onload", augmentedCommand); -} - -/** - * Override the broken getFunctionName() method from JsUnit - * This file must be loaded _after_ the jsunitCore.js - */ -function getFunctionName(aFunction) { - var regexpResult = aFunction.toString().match(/function (\w*)/); - if (regexpResult && regexpResult[1]) { - return regexpResult[1]; - } - return 'anonymous'; -} - -function getDocumentBase(doc) { - var bases = document.getElementsByTagName("base"); - if (bases && bases.length && bases[0].href) { - return bases[0].href; - } - return ""; -} - -function getTagName(element) { - var tagName; - if (element && element.tagName && element.tagName.toLowerCase) { - tagName = element.tagName.toLowerCase(); - } - return tagName; -} - -function absolutify(url, baseUrl) { - /** returns a relative url in its absolute form, given by baseUrl. - * - * This function is a little odd, because it can take baseUrls that - * aren't necessarily directories. It uses the same rules as the HTML - * <base> tag; if the baseUrl doesn't end with "/", we'll assume - * that it points to a file, and strip the filename off to find its - * base directory. - * - * So absolutify("foo", "http://x/bar") will return "http://x/foo" (stripping off bar), - * whereas absolutify("foo", "http://x/bar/") will return "http://x/bar/foo" (preserving bar). - * Naturally absolutify("foo", "http://x") will return "http://x/foo", appropriately. - * - * @param url the url to make absolute; if this url is already absolute, we'll just return that, unchanged - * @param baseUrl the baseUrl from which we'll absolutify, following the rules above. - * @return 'url' if it was already absolute, or the absolutized version of url if it was not absolute. - */ - - // DGF isn't there some library we could use for this? - - if (/^\w+:/.test(url)) { - // it's already absolute - return url; - } - - var loc; - try { - loc = parseUrl(baseUrl); - } catch (e) { - // is it an absolute windows file path? let's play the hero in that case - if (/^\w:\\/.test(baseUrl)) { - baseUrl = "file:///" + baseUrl.replace(/\\/g, "/"); - loc = parseUrl(baseUrl); - } else { - throw new SeleniumError("baseUrl wasn't absolute: " + baseUrl); - } - } - loc.search = null; - loc.hash = null; - - // if url begins with /, then that's the whole pathname - if (/^\//.test(url)) { - loc.pathname = url; - var result = reassembleLocation(loc); - return result; - } - - // if pathname is null, then we'll just append "/" + the url - if (!loc.pathname) { - loc.pathname = "/" + url; - var result = reassembleLocation(loc); - return result; - } - - // if pathname ends with /, just append url - if (/\/$/.test(loc.pathname)) { - loc.pathname += url; - var result = reassembleLocation(loc); - return result; - } - - // if we're here, then the baseUrl has a pathname, but it doesn't end with / - // in that case, we replace everything after the final / with the relative url - loc.pathname = loc.pathname.replace(/[^\/\\]+$/, url); - var result = reassembleLocation(loc); - return result; - -} - -var URL_REGEX = /^((\w+):\/\/)(([^:]+):?([^@]+)?@)?([^\/\?:]*):?(\d+)?(\/?[^\?#]+)?\??([^#]+)?#?(.+)?/; - -function parseUrl(url) { - var fields = ['url', null, 'protocol', null, 'username', 'password', 'host', 'port', 'pathname', 'search', 'hash']; - var result = URL_REGEX.exec(url); - if (!result) { - throw new SeleniumError("Invalid URL: " + url); - } - var loc = new Object(); - for (var i = 0; i < fields.length; i++) { - var field = fields[i]; - if (field == null) { - continue; - } - loc[field] = result[i]; - } - return loc; -} - -function reassembleLocation(loc) { - if (!loc.protocol) { - throw new Error("Not a valid location object: " + o2s(loc)); - } - var protocol = loc.protocol; - protocol = protocol.replace(/:$/, ""); - var url = protocol + "://"; - if (loc.username) { - url += loc.username; - if (loc.password) { - url += ":" + loc.password; - } - url += "@"; - } - if (loc.host) { - url += loc.host; - } - - if (loc.port) { - url += ":" + loc.port; - } - - if (loc.pathname) { - url += loc.pathname; - } - - if (loc.search) { - url += "?" + loc.search; - } - if (loc.hash) { - var hash = loc.hash; - hash = loc.hash.replace(/^#/, ""); - url += "#" + hash; - } - return url; -} - -function canonicalize(url) { - var tempLink = window.document.createElement("link"); - tempLink.href = url; // this will canonicalize the href - return tempLink.href; -} - -function extractExceptionMessage(ex) { - if (ex == null) return "null exception"; - if (ex.message != null) return ex.message; - if (ex.toString && ex.toString() != null) return ex.toString(); -} - - -function describe(object, delimiter) { - var props = new Array(); - for (var prop in object) { - try { - props.push(prop + " -> " + object[prop]); - } catch (e) { - props.push(prop + " -> [htmlutils: ack! couldn't read this property! (Permission Denied?)]"); - } - } - return props.join(delimiter || '\n'); -} - -var PatternMatcher = function(pattern) { - this.selectStrategy(pattern); -}; -PatternMatcher.prototype = { - - selectStrategy: function(pattern) { - this.pattern = pattern; - var strategyName = 'glob'; - // by default - if (/^([a-z-]+):(.*)/.test(pattern)) { - var possibleNewStrategyName = RegExp.$1; - var possibleNewPattern = RegExp.$2; - if (PatternMatcher.strategies[possibleNewStrategyName]) { - strategyName = possibleNewStrategyName; - pattern = possibleNewPattern; - } - } - var matchStrategy = PatternMatcher.strategies[strategyName]; - if (!matchStrategy) { - throw new SeleniumError("cannot find PatternMatcher.strategies." + strategyName); - } - this.strategy = matchStrategy; - this.matcher = new matchStrategy(pattern); - }, - - matches: function(actual) { - return this.matcher.matches(actual + ''); - // Note: appending an empty string avoids a Konqueror bug - } - -}; - -/** - * A "static" convenience method for easy matching - */ -PatternMatcher.matches = function(pattern, actual) { - return new PatternMatcher(pattern).matches(actual); -}; - -PatternMatcher.strategies = { - -/** - * Exact matching, e.g. "exact:***" - */ - exact: function(expected) { - this.expected = expected; - this.matches = function(actual) { - return actual == this.expected; - }; - }, - -/** - * Match by regular expression, e.g. "regexp:^[0-9]+$" - */ - regexp: function(regexpString) { - this.regexp = new RegExp(regexpString); - this.matches = function(actual) { - return this.regexp.test(actual); - }; - }, - - regex: function(regexpString) { - this.regexp = new RegExp(regexpString); - this.matches = function(actual) { - return this.regexp.test(actual); - }; - }, - -/** - * "globContains" (aka "wildmat") patterns, e.g. "glob:one,two,*", - * but don't require a perfect match; instead succeed if actual - * contains something that matches globString. - * Making this distinction is motivated by a bug in IE6 which - * leads to the browser hanging if we implement *TextPresent tests - * by just matching against a regular expression beginning and - * ending with ".*". The globcontains strategy allows us to satisfy - * the functional needs of the *TextPresent ops more efficiently - * and so avoid running into this IE6 freeze. - */ - globContains: function(globString) { - this.regexp = new RegExp(PatternMatcher.regexpFromGlobContains(globString)); - this.matches = function(actual) { - return this.regexp.test(actual); - }; - }, - - -/** - * "glob" (aka "wildmat") patterns, e.g. "glob:one,two,*" - */ - glob: function(globString) { - this.regexp = new RegExp(PatternMatcher.regexpFromGlob(globString)); - this.matches = function(actual) { - return this.regexp.test(actual); - }; - } - -}; - -PatternMatcher.convertGlobMetaCharsToRegexpMetaChars = function(glob) { - var re = glob; - re = re.replace(/([.^$+(){}\[\]\\|])/g, "\\$1"); - re = re.replace(/\?/g, "(.|[\r\n])"); - re = re.replace(/\*/g, "(.|[\r\n])*"); - return re; -}; - -PatternMatcher.regexpFromGlobContains = function(globContains) { - return PatternMatcher.convertGlobMetaCharsToRegexpMetaChars(globContains); -}; - -PatternMatcher.regexpFromGlob = function(glob) { - return "^" + PatternMatcher.convertGlobMetaCharsToRegexpMetaChars(glob) + "$"; -}; - -var Assert = { - - fail: function(message) { - throw new AssertionFailedError(message); - }, - -/* -* Assert.equals(comment?, expected, actual) -*/ - equals: function() { - var args = new AssertionArguments(arguments); - if (args.expected === args.actual) { - return; - } - Assert.fail(args.comment + - "Expected '" + args.expected + - "' but was '" + args.actual + "'"); - }, - -/* -* Assert.matches(comment?, pattern, actual) -*/ - matches: function() { - var args = new AssertionArguments(arguments); - if (PatternMatcher.matches(args.expected, args.actual)) { - return; - } - Assert.fail(args.comment + - "Actual value '" + args.actual + - "' did not match '" + args.expected + "'"); - }, - -/* -* Assert.notMtches(comment?, pattern, actual) -*/ - notMatches: function() { - var args = new AssertionArguments(arguments); - if (!PatternMatcher.matches(args.expected, args.actual)) { - return; - } - Assert.fail(args.comment + - "Actual value '" + args.actual + - "' did match '" + args.expected + "'"); - } - -}; - -// Preprocess the arguments to allow for an optional comment. -function AssertionArguments(args) { - if (args.length == 2) { - this.comment = ""; - this.expected = args[0]; - this.actual = args[1]; - } else { - this.comment = args[0] + "; "; - this.expected = args[1]; - this.actual = args[2]; - } -} - -function AssertionFailedError(message) { - this.isAssertionFailedError = true; - this.isSeleniumError = true; - this.message = message; - this.failureMessage = message; -} - -function SeleniumError(message) { - var error = new Error(message); - error.isSeleniumError = true; - return error; -} - -function highlight(element) { - var highLightColor = "yellow"; - if (element.originalColor == undefined) { // avoid picking up highlight - element.originalColor = elementGetStyle(element, "background-color"); - } - elementSetStyle(element, {"backgroundColor" : highLightColor}); - window.setTimeout(function() { - try { - //if element is orphan, probably page of it has already gone, so ignore - if (!element.parentNode) { - return; - } - elementSetStyle(element, {"backgroundColor" : element.originalColor}); - } catch (e) {} // DGF unhighlighting is very dangerous and low priority - }, 200); -} - - - -// for use from vs.2003 debugger -function o2s(obj) { - var s = ""; - for (key in obj) { - var line = key + "->" + obj[key]; - line.replace("\n", " "); - s += line + "\n"; - } - return s; -} - -var seenReadyStateWarning = false; - -function openSeparateApplicationWindow(url, suppressMozillaWarning) { - // resize the Selenium window itself - window.resizeTo(1200, 500); - window.moveTo(window.screenX, 0); - - var appWindow = window.open(url + '?start=true', 'main'); - try { - var windowHeight = 500; - if (window.outerHeight) { - windowHeight = window.outerHeight; - } else if (document.documentElement && document.documentElement.offsetHeight) { - windowHeight = document.documentElement.offsetHeight; - } - - if (window.screenLeft && !window.screenX) window.screenX = window.screenLeft; - if (window.screenTop && !window.screenY) window.screenY = window.screenTop; - - appWindow.resizeTo(1200, screen.availHeight - windowHeight - 60); - appWindow.moveTo(window.screenX, window.screenY + windowHeight + 25); - } catch (e) { - LOG.error("Couldn't resize app window"); - LOG.exception(e); - } - - - if (!suppressMozillaWarning && window.document.readyState == null && !seenReadyStateWarning) { - alert("Beware! Mozilla bug 300992 means that we can't always reliably detect when a new page has loaded. Install the Selenium IDE extension or the readyState extension available from selenium.openqa.org to make page load detection more reliable."); - seenReadyStateWarning = true; - } - - return appWindow; -} - -var URLConfiguration = classCreate(); -objectExtend(URLConfiguration.prototype, { - initialize: function() { - }, - _isQueryParameterTrue: function (name) { - var parameterValue = this._getQueryParameter(name); - if (parameterValue == null) return false; - if (parameterValue.toLowerCase() == "true") return true; - if (parameterValue.toLowerCase() == "on") return true; - return false; - }, - - _getQueryParameter: function(searchKey) { - var str = this.queryString - if (str == null) return null; - var clauses = str.split('&'); - for (var i = 0; i < clauses.length; i++) { - var keyValuePair = clauses[i].split('=', 2); - var key = unescape(keyValuePair[0]); - if (key == searchKey) { - return unescape(keyValuePair[1]); - } - } - return null; - }, - - _extractArgs: function() { - var str = SeleniumHTARunner.commandLine; - if (str == null || str == "") return new Array(); - var matches = str.match(/(?:\"([^\"]+)\"|(?!\"([^\"]+)\")(\S+))/g); - // We either want non quote stuff ([^"]+) surrounded by quotes - // or we want to look-ahead, see that the next character isn't - // a quoted argument, and then grab all the non-space stuff - // this will return for the line: "foo" bar - // the results "\"foo\"" and "bar" - - // So, let's unquote the quoted arguments: - var args = new Array; - for (var i = 0; i < matches.length; i++) { - args[i] = matches[i]; - args[i] = args[i].replace(/^"(.*)"$/, "$1"); - } - return args; - }, - - isMultiWindowMode:function() { - return this._isQueryParameterTrue('multiWindow'); - }, - - getBaseUrl:function() { - return this._getQueryParameter('baseUrl'); - - } -}); - - -function safeScrollIntoView(element) { - if (element.scrollIntoView) { - element.scrollIntoView(false); - return; - } - // TODO: work out how to scroll browsers that don't support - // scrollIntoView (like Konqueror) -} diff --git a/tests/test_tools/selenium/core/scripts/injection.html b/tests/test_tools/selenium/core/scripts/injection.html deleted file mode 100644 index a75c7211..00000000 --- a/tests/test_tools/selenium/core/scripts/injection.html +++ /dev/null @@ -1,79 +0,0 @@ - diff --git a/tests/test_tools/selenium/core/scripts/injection_iframe.html b/tests/test_tools/selenium/core/scripts/injection_iframe.html deleted file mode 100644 index bc26e859..00000000 --- a/tests/test_tools/selenium/core/scripts/injection_iframe.html +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/tests/test_tools/selenium/core/scripts/js2html.js b/tests/test_tools/selenium/core/scripts/js2html.js deleted file mode 100644 index 407709df..00000000 --- a/tests/test_tools/selenium/core/scripts/js2html.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - -This is an experiment in using the Narcissus JavaScript engine -to allow Selenium scripts to be written in plain JavaScript. - -The 'jsparse' function will compile each high level block into a Selenium table script. - - -TODO: -1) Test! (More browsers, more sample scripts) -2) Stepping and walking lower levels of the parse tree -3) Calling Selenium commands directly from JavaScript -4) Do we want comments to appear in the TestRunner? -5) Fix context so variables don't have to be global - For now, variables defined with "var" won't be found - if used later on in a script. -6) Fix formatting -*/ - - -function jsparse() { - var script = document.getElementById('sejs') - var fname = 'javascript script'; - parse_result = parse(script.text, fname, 0); - - var x2 = new ExecutionContext(GLOBAL_CODE); - ExecutionContext.current = x2; - - - var new_test_source = ''; - var new_line = ''; - - for (i=0;icurrentTest.doNextCommand()' + - '' + script_fragment + '' + - '\n'; - new_test_source += new_line; - //eval(script_fragment); - - - }; - - - - execute(parse_result,x2) - - // Create HTML Table - body = document.body - body.innerHTML += ""+ - "" + - "" + - new_test_source + - ""; - - //body.innerHTML = "
    " + parse_result + "
    " -} - - diff --git a/tests/test_tools/selenium/core/scripts/narcissus-defs.js b/tests/test_tools/selenium/core/scripts/narcissus-defs.js deleted file mode 100644 index 5869397d..00000000 --- a/tests/test_tools/selenium/core/scripts/narcissus-defs.js +++ /dev/null @@ -1,175 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the Narcissus JavaScript engine. - * - * The Initial Developer of the Original Code is - * Brendan Eich . - * Portions created by the Initial Developer are Copyright (C) 2004 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Narcissus - JS implemented in JS. - * - * Well-known constants and lookup tables. Many consts are generated from the - * tokens table via eval to minimize redundancy, so consumers must be compiled - * separately to take advantage of the simple switch-case constant propagation - * done by SpiderMonkey. - */ - -// jrh -//module('JS.Defs'); - -GLOBAL = this; - -var tokens = [ - // End of source. - "END", - - // Operators and punctuators. Some pair-wise order matters, e.g. (+, -) - // and (UNARY_PLUS, UNARY_MINUS). - "\n", ";", - ",", - "=", - "?", ":", "CONDITIONAL", - "||", - "&&", - "|", - "^", - "&", - "==", "!=", "===", "!==", - "<", "<=", ">=", ">", - "<<", ">>", ">>>", - "+", "-", - "*", "/", "%", - "!", "~", "UNARY_PLUS", "UNARY_MINUS", - "++", "--", - ".", - "[", "]", - "{", "}", - "(", ")", - - // Nonterminal tree node type codes. - "SCRIPT", "BLOCK", "LABEL", "FOR_IN", "CALL", "NEW_WITH_ARGS", "INDEX", - "ARRAY_INIT", "OBJECT_INIT", "PROPERTY_INIT", "GETTER", "SETTER", - "GROUP", "LIST", - - // Terminals. - "IDENTIFIER", "NUMBER", "STRING", "REGEXP", - - // Keywords. - "break", - "case", "catch", "const", "continue", - "debugger", "default", "delete", "do", - "else", "enum", - "false", "finally", "for", "function", - "if", "in", "instanceof", - "new", "null", - "return", - "switch", - "this", "throw", "true", "try", "typeof", - "var", "void", - "while", "with", - // Extensions - "require", "bless", "mixin", "import" -]; - -// Operator and punctuator mapping from token to tree node type name. -// NB: superstring tokens (e.g., ++) must come before their substring token -// counterparts (+ in the example), so that the opRegExp regular expression -// synthesized from this list makes the longest possible match. -var opTypeNames = { - '\n': "NEWLINE", - ';': "SEMICOLON", - ',': "COMMA", - '?': "HOOK", - ':': "COLON", - '||': "OR", - '&&': "AND", - '|': "BITWISE_OR", - '^': "BITWISE_XOR", - '&': "BITWISE_AND", - '===': "STRICT_EQ", - '==': "EQ", - '=': "ASSIGN", - '!==': "STRICT_NE", - '!=': "NE", - '<<': "LSH", - '<=': "LE", - '<': "LT", - '>>>': "URSH", - '>>': "RSH", - '>=': "GE", - '>': "GT", - '++': "INCREMENT", - '--': "DECREMENT", - '+': "PLUS", - '-': "MINUS", - '*': "MUL", - '/': "DIV", - '%': "MOD", - '!': "NOT", - '~': "BITWISE_NOT", - '.': "DOT", - '[': "LEFT_BRACKET", - ']': "RIGHT_BRACKET", - '{': "LEFT_CURLY", - '}': "RIGHT_CURLY", - '(': "LEFT_PAREN", - ')': "RIGHT_PAREN" -}; - -// Hash of keyword identifier to tokens index. NB: we must null __proto__ to -// avoid toString, etc. namespace pollution. -var keywords = {__proto__: null}; - -// Define const END, etc., based on the token names. Also map name to index. -var consts = " "; -for (var i = 0, j = tokens.length; i < j; i++) { - if (i > 0) - consts += "; "; - var t = tokens[i]; - if (/^[a-z]/.test(t)) { - consts += t.toUpperCase(); - keywords[t] = i; - } else { - consts += (/^\W/.test(t) ? opTypeNames[t] : t); - } - consts += " = " + i; - tokens[t] = i; -} -eval(consts + ";"); - -// Map assignment operators to their indexes in the tokens array. -var assignOps = ['|', '^', '&', '<<', '>>', '>>>', '+', '-', '*', '/', '%']; - -for (i = 0, j = assignOps.length; i < j; i++) { - t = assignOps[i]; - assignOps[t] = tokens[t]; -} diff --git a/tests/test_tools/selenium/core/scripts/narcissus-exec.js b/tests/test_tools/selenium/core/scripts/narcissus-exec.js deleted file mode 100644 index e2c88f81..00000000 --- a/tests/test_tools/selenium/core/scripts/narcissus-exec.js +++ /dev/null @@ -1,1054 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * vim: set ts=4 sw=4 et tw=80: - * - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the Narcissus JavaScript engine. - * - * The Initial Developer of the Original Code is - * Brendan Eich . - * Portions created by the Initial Developer are Copyright (C) 2004 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Narcissus - JS implemented in JS. - * - * Execution of parse trees. - * - * Standard classes except for eval, Function, Array, and String are borrowed - * from the host JS environment. Function is metacircular. Array and String - * are reflected via wrapping the corresponding native constructor and adding - * an extra level of prototype-based delegation. - */ - -// jrh -//module('JS.Exec'); -// end jrh - -GLOBAL_CODE = 0; EVAL_CODE = 1; FUNCTION_CODE = 2; - -function ExecutionContext(type) { - this.type = type; -} - -// jrh -var agenda = new Array(); -var skip_setup = 0; -// end jrh - -var global = { - // Value properties. - NaN: NaN, Infinity: Infinity, undefined: undefined, - alert : function(msg) { alert(msg) }, - confirm : function(msg) { return confirm(msg) }, - document : document, - window : window, - // jrh - //debug: window.open('','debugwindow','width=600,height=400,scrollbars=yes,resizable=yes'), - // end jrh - navigator : navigator, - XMLHttpRequest : function() { return new XMLHttpRequest() }, - // Function properties. - eval: function(s) { - if (typeof s != "string") { - return s; - } - - var x = ExecutionContext.current; - var x2 = new ExecutionContext(EVAL_CODE); - x2.thisObject = x.thisObject; - x2.caller = x.caller; - x2.callee = x.callee; - x2.scope = x.scope; - ExecutionContext.current = x2; - try { - execute(parse(s), x2); - } catch (e) { - x.result = x2.result; - throw e; - } finally { - ExecutionContext.current = x; - } - return x2.result; - }, - parseInt: parseInt, parseFloat: parseFloat, - isNaN: isNaN, isFinite: isFinite, - decodeURI: decodeURI, encodeURI: encodeURI, - decodeURIComponent: decodeURIComponent, - encodeURIComponent: encodeURIComponent, - - // Class constructors. Where ECMA-262 requires C.length == 1, we declare - // a dummy formal parameter. - Object: Object, - Function: function(dummy) { - var p = "", b = "", n = arguments.length; - if (n) { - var m = n - 1; - if (m) { - p += arguments[0]; - for (var k = 1; k < m; k++) - p += "," + arguments[k]; - } - b += arguments[m]; - } - - // XXX We want to pass a good file and line to the tokenizer. - // Note the anonymous name to maintain parity with Spidermonkey. - var t = new Tokenizer("anonymous(" + p + ") {" + b + "}"); - - // NB: Use the STATEMENT_FORM constant since we don't want to push this - // function onto the null compilation context. - var f = FunctionDefinition(t, null, false, STATEMENT_FORM); - var s = {object: global, parent: null}; - return new FunctionObject(f, s); - }, - Array: function(dummy) { - // Array when called as a function acts as a constructor. - return GLOBAL.Array.apply(this, arguments); - }, - String: function(s) { - // Called as function or constructor: convert argument to string type. - s = arguments.length ? "" + s : ""; - if (this instanceof String) { - // Called as constructor: save the argument as the string value - // of this String object and return this object. - this.value = s; - return this; - } - return s; - }, - Boolean: Boolean, Number: Number, Date: Date, RegExp: RegExp, - Error: Error, EvalError: EvalError, RangeError: RangeError, - ReferenceError: ReferenceError, SyntaxError: SyntaxError, - TypeError: TypeError, URIError: URIError, - - // Other properties. - Math: Math, - - // Extensions to ECMA. - //snarf: snarf, - evaluate: evaluate, - load: function(s) { - if (typeof s != "string") - return s; - var req = new XMLHttpRequest(); - req.open('GET', s, false); - req.send(null); - - evaluate(req.responseText, s, 1) - }, - print: print, version: null -}; - -// jrh -//global.debug.document.body.innerHTML = '' -// end jrh - -// Helper to avoid Object.prototype.hasOwnProperty polluting scope objects. -function hasDirectProperty(o, p) { - return Object.prototype.hasOwnProperty.call(o, p); -} - -// Reflect a host class into the target global environment by delegation. -function reflectClass(name, proto) { - var gctor = global[name]; - gctor.prototype = proto; - proto.constructor = gctor; - return proto; -} - -// Reflect Array -- note that all Array methods are generic. -reflectClass('Array', new Array); - -// Reflect String, overriding non-generic methods. -var gSp = reflectClass('String', new String); -gSp.toSource = function () { return this.value.toSource(); }; -gSp.toString = function () { return this.value; }; -gSp.valueOf = function () { return this.value; }; -global.String.fromCharCode = String.fromCharCode; - -var XCp = ExecutionContext.prototype; -ExecutionContext.current = XCp.caller = XCp.callee = null; -XCp.scope = {object: global, parent: null}; -XCp.thisObject = global; -XCp.result = undefined; -XCp.target = null; -XCp.ecmaStrictMode = false; - -function Reference(base, propertyName, node) { - this.base = base; - this.propertyName = propertyName; - this.node = node; -} - -Reference.prototype.toString = function () { return this.node.getSource(); } - -function getValue(v) { - if (v instanceof Reference) { - if (!v.base) { - throw new ReferenceError(v.propertyName + " is not defined", - v.node.filename(), v.node.lineno); - } - return v.base[v.propertyName]; - } - return v; -} - -function putValue(v, w, vn) { - if (v instanceof Reference) - return (v.base || global)[v.propertyName] = w; - throw new ReferenceError("Invalid assignment left-hand side", - vn.filename(), vn.lineno); -} - -function isPrimitive(v) { - var t = typeof v; - return (t == "object") ? v === null : t != "function"; -} - -function isObject(v) { - var t = typeof v; - return (t == "object") ? v !== null : t == "function"; -} - -// If r instanceof Reference, v == getValue(r); else v === r. If passed, rn -// is the node whose execute result was r. -function toObject(v, r, rn) { - switch (typeof v) { - case "boolean": - return new global.Boolean(v); - case "number": - return new global.Number(v); - case "string": - return new global.String(v); - case "function": - return v; - case "object": - if (v !== null) - return v; - } - var message = r + " (type " + (typeof v) + ") has no properties"; - throw rn ? new TypeError(message, rn.filename(), rn.lineno) - : new TypeError(message); -} - -function execute(n, x) { - if (!this.new_block) - new_block = new Array(); - //alert (n) - var a, f, i, j, r, s, t, u, v; - switch (n.type) { - case FUNCTION: - if (n.functionForm != DECLARED_FORM) { - if (!n.name || n.functionForm == STATEMENT_FORM) { - v = new FunctionObject(n, x.scope); - if (n.functionForm == STATEMENT_FORM) - x.scope.object[n.name] = v; - } else { - t = new Object; - x.scope = {object: t, parent: x.scope}; - try { - v = new FunctionObject(n, x.scope); - t[n.name] = v; - } finally { - x.scope = x.scope.parent; - } - } - } - break; - - case SCRIPT: - t = x.scope.object; - a = n.funDecls; - for (i = 0, j = a.length; i < j; i++) { - s = a[i].name; - f = new FunctionObject(a[i], x.scope); - t[s] = f; - } - a = n.varDecls; - for (i = 0, j = a.length; i < j; i++) { - u = a[i]; - s = u.name; - if (u.readOnly && hasDirectProperty(t, s)) { - throw new TypeError("Redeclaration of const " + s, - u.filename(), u.lineno); - } - if (u.readOnly || !hasDirectProperty(t, s)) { - t[s] = null; - } - } - // FALL THROUGH - - case BLOCK: - for (i = 0, j = n.$length; i < j; i++) { - //jrh - //execute(n[i], x); - //new_block.unshift([n[i], x]); - new_block.push([n[i], x]); - } - new_block.reverse(); - agenda = agenda.concat(new_block); - //agenda = new_block.concat(agenda) - // end jrh - break; - - case IF: - if (getValue(execute(n.condition, x))) - execute(n.thenPart, x); - else if (n.elsePart) - execute(n.elsePart, x); - break; - - case SWITCH: - s = getValue(execute(n.discriminant, x)); - a = n.cases; - var matchDefault = false; - switch_loop: - for (i = 0, j = a.length; ; i++) { - if (i == j) { - if (n.defaultIndex >= 0) { - i = n.defaultIndex - 1; // no case matched, do default - matchDefault = true; - continue; - } - break; // no default, exit switch_loop - } - t = a[i]; // next case (might be default!) - if (t.type == CASE) { - u = getValue(execute(t.caseLabel, x)); - } else { - if (!matchDefault) // not defaulting, skip for now - continue; - u = s; // force match to do default - } - if (u === s) { - for (;;) { // this loop exits switch_loop - if (t.statements.length) { - try { - execute(t.statements, x); - } catch (e) { - if (!(e == BREAK && x.target == n)) { throw e } - break switch_loop; - } - } - if (++i == j) - break switch_loop; - t = a[i]; - } - // NOT REACHED - } - } - break; - - case FOR: - // jrh - // added "skip_setup" so initialization doesn't get called - // on every call.. - if (!skip_setup) - n.setup && getValue(execute(n.setup, x)); - // FALL THROUGH - case WHILE: - // jrh - //while (!n.condition || getValue(execute(n.condition, x))) { - if (!n.condition || getValue(execute(n.condition, x))) { - try { - // jrh - //execute(n.body, x); - new_block.push([n.body, x]); - agenda.push([n.body, x]) - //agenda.unshift([n.body, x]) - // end jrh - } catch (e) { - if (e == BREAK && x.target == n) { - break; - } else if (e == CONTINUE && x.target == n) { - // jrh - // 'continue' is invalid inside an 'if' clause - // I don't know what commenting this out will break! - //continue; - // end jrh - - } else { - throw e; - } - } - n.update && getValue(execute(n.update, x)); - // jrh - new_block.unshift([n, x]) - agenda.splice(agenda.length-1,0,[n, x]) - //agenda.splice(1,0,[n, x]) - skip_setup = 1 - // end jrh - } else { - skip_setup = 0 - } - - break; - - case FOR_IN: - u = n.varDecl; - if (u) - execute(u, x); - r = n.iterator; - s = execute(n.object, x); - v = getValue(s); - - // ECMA deviation to track extant browser JS implementation behavior. - t = (v == null && !x.ecmaStrictMode) ? v : toObject(v, s, n.object); - a = []; - for (i in t) - a.push(i); - for (i = 0, j = a.length; i < j; i++) { - putValue(execute(r, x), a[i], r); - try { - execute(n.body, x); - } catch (e) { - if (e == BREAK && x.target == n) { - break; - } else if (e == CONTINUE && x.target == n) { - continue; - } else { - throw e; - } - } - } - break; - - case DO: - do { - try { - execute(n.body, x); - } catch (e) { - if (e == BREAK && x.target == n) { - break; - } else if (e == CONTINUE && x.target == n) { - continue; - } else { - throw e; - } - } - } while (getValue(execute(n.condition, x))); - break; - - case BREAK: - case CONTINUE: - x.target = n.target; - throw n.type; - - case TRY: - try { - execute(n.tryBlock, x); - } catch (e) { - if (!(e == THROW && (j = n.catchClauses.length))) { - throw e; - } - e = x.result; - x.result = undefined; - for (i = 0; ; i++) { - if (i == j) { - x.result = e; - throw THROW; - } - t = n.catchClauses[i]; - x.scope = {object: {}, parent: x.scope}; - x.scope.object[t.varName] = e; - try { - if (t.guard && !getValue(execute(t.guard, x))) - continue; - execute(t.block, x); - break; - } finally { - x.scope = x.scope.parent; - } - } - } finally { - if (n.finallyBlock) - execute(n.finallyBlock, x); - } - break; - - case THROW: - x.result = getValue(execute(n.exception, x)); - throw THROW; - - case RETURN: - x.result = getValue(execute(n.value, x)); - throw RETURN; - - case WITH: - r = execute(n.object, x); - t = toObject(getValue(r), r, n.object); - x.scope = {object: t, parent: x.scope}; - try { - execute(n.body, x); - } finally { - x.scope = x.scope.parent; - } - break; - - case VAR: - case CONST: - for (i = 0, j = n.$length; i < j; i++) { - u = n[i].initializer; - if (!u) - continue; - t = n[i].name; - for (s = x.scope; s; s = s.parent) { - if (hasDirectProperty(s.object, t)) - break; - } - u = getValue(execute(u, x)); - if (n.type == CONST) - s.object[t] = u; - else - s.object[t] = u; - } - break; - - case DEBUGGER: - throw "NYI: " + tokens[n.type]; - - case REQUIRE: - var req = new XMLHttpRequest(); - req.open('GET', n.filename, 'false'); - - case SEMICOLON: - if (n.expression) - // print debugging statements - - var the_start = n.start - var the_end = n.end - var the_statement = parse_result.tokenizer.source.slice(the_start,the_end) - //global.debug.document.body.innerHTML += ('
    >>> ' + the_statement + '
    ') - LOG.info('>>>' + the_statement) - x.result = getValue(execute(n.expression, x)); - //if (x.result) - //global.debug.document.body.innerHTML += ( '
    >>> ' + x.result + '
    ') - - break; - - case LABEL: - try { - execute(n.statement, x); - } catch (e) { - if (!(e == BREAK && x.target == n)) { throw e } - } - break; - - case COMMA: - for (i = 0, j = n.$length; i < j; i++) - v = getValue(execute(n[i], x)); - break; - - case ASSIGN: - r = execute(n[0], x); - t = n[0].assignOp; - if (t) - u = getValue(r); - v = getValue(execute(n[1], x)); - if (t) { - switch (t) { - case BITWISE_OR: v = u | v; break; - case BITWISE_XOR: v = u ^ v; break; - case BITWISE_AND: v = u & v; break; - case LSH: v = u << v; break; - case RSH: v = u >> v; break; - case URSH: v = u >>> v; break; - case PLUS: v = u + v; break; - case MINUS: v = u - v; break; - case MUL: v = u * v; break; - case DIV: v = u / v; break; - case MOD: v = u % v; break; - } - } - putValue(r, v, n[0]); - break; - - case CONDITIONAL: - v = getValue(execute(n[0], x)) ? getValue(execute(n[1], x)) - : getValue(execute(n[2], x)); - break; - - case OR: - v = getValue(execute(n[0], x)) || getValue(execute(n[1], x)); - break; - - case AND: - v = getValue(execute(n[0], x)) && getValue(execute(n[1], x)); - break; - - case BITWISE_OR: - v = getValue(execute(n[0], x)) | getValue(execute(n[1], x)); - break; - - case BITWISE_XOR: - v = getValue(execute(n[0], x)) ^ getValue(execute(n[1], x)); - break; - - case BITWISE_AND: - v = getValue(execute(n[0], x)) & getValue(execute(n[1], x)); - break; - - case EQ: - v = getValue(execute(n[0], x)) == getValue(execute(n[1], x)); - break; - - case NE: - v = getValue(execute(n[0], x)) != getValue(execute(n[1], x)); - break; - - case STRICT_EQ: - v = getValue(execute(n[0], x)) === getValue(execute(n[1], x)); - break; - - case STRICT_NE: - v = getValue(execute(n[0], x)) !== getValue(execute(n[1], x)); - break; - - case LT: - v = getValue(execute(n[0], x)) < getValue(execute(n[1], x)); - break; - - case LE: - v = getValue(execute(n[0], x)) <= getValue(execute(n[1], x)); - break; - - case GE: - v = getValue(execute(n[0], x)) >= getValue(execute(n[1], x)); - break; - - case GT: - v = getValue(execute(n[0], x)) > getValue(execute(n[1], x)); - break; - - case IN: - v = getValue(execute(n[0], x)) in getValue(execute(n[1], x)); - break; - - case INSTANCEOF: - t = getValue(execute(n[0], x)); - u = getValue(execute(n[1], x)); - if (isObject(u) && typeof u.__hasInstance__ == "function") - v = u.__hasInstance__(t); - else - v = t instanceof u; - break; - - case LSH: - v = getValue(execute(n[0], x)) << getValue(execute(n[1], x)); - break; - - case RSH: - v = getValue(execute(n[0], x)) >> getValue(execute(n[1], x)); - break; - - case URSH: - v = getValue(execute(n[0], x)) >>> getValue(execute(n[1], x)); - break; - - case PLUS: - v = getValue(execute(n[0], x)) + getValue(execute(n[1], x)); - break; - - case MINUS: - v = getValue(execute(n[0], x)) - getValue(execute(n[1], x)); - break; - - case MUL: - v = getValue(execute(n[0], x)) * getValue(execute(n[1], x)); - break; - - case DIV: - v = getValue(execute(n[0], x)) / getValue(execute(n[1], x)); - break; - - case MOD: - v = getValue(execute(n[0], x)) % getValue(execute(n[1], x)); - break; - - case DELETE: - t = execute(n[0], x); - v = !(t instanceof Reference) || delete t.base[t.propertyName]; - break; - - case VOID: - getValue(execute(n[0], x)); - break; - - case TYPEOF: - t = execute(n[0], x); - if (t instanceof Reference) - t = t.base ? t.base[t.propertyName] : undefined; - v = typeof t; - break; - - case NOT: - v = !getValue(execute(n[0], x)); - break; - - case BITWISE_NOT: - v = ~getValue(execute(n[0], x)); - break; - - case UNARY_PLUS: - v = +getValue(execute(n[0], x)); - break; - - case UNARY_MINUS: - v = -getValue(execute(n[0], x)); - break; - - case INCREMENT: - case DECREMENT: - t = execute(n[0], x); - u = Number(getValue(t)); - if (n.postfix) - v = u; - putValue(t, (n.type == INCREMENT) ? ++u : --u, n[0]); - if (!n.postfix) - v = u; - break; - - case DOT: - r = execute(n[0], x); - t = getValue(r); - u = n[1].value; - v = new Reference(toObject(t, r, n[0]), u, n); - break; - - case INDEX: - r = execute(n[0], x); - t = getValue(r); - u = getValue(execute(n[1], x)); - v = new Reference(toObject(t, r, n[0]), String(u), n); - break; - - case LIST: - // Curse ECMA for specifying that arguments is not an Array object! - v = {}; - for (i = 0, j = n.$length; i < j; i++) { - u = getValue(execute(n[i], x)); - v[i] = u; - } - v.length = i; - break; - - case CALL: - r = execute(n[0], x); - a = execute(n[1], x); - f = getValue(r); - if (isPrimitive(f) || typeof f.__call__ != "function") { - throw new TypeError(r + " is not callable", - n[0].filename(), n[0].lineno); - } - t = (r instanceof Reference) ? r.base : null; - if (t instanceof Activation) - t = null; - v = f.__call__(t, a, x); - break; - - case NEW: - case NEW_WITH_ARGS: - r = execute(n[0], x); - f = getValue(r); - if (n.type == NEW) { - a = {}; - a.length = 0; - } else { - a = execute(n[1], x); - } - if (isPrimitive(f) || typeof f.__construct__ != "function") { - throw new TypeError(r + " is not a constructor", - n[0].filename(), n[0].lineno); - } - v = f.__construct__(a, x); - break; - - case ARRAY_INIT: - v = []; - for (i = 0, j = n.$length; i < j; i++) { - if (n[i]) - v[i] = getValue(execute(n[i], x)); - } - v.length = j; - break; - - case OBJECT_INIT: - v = {}; - for (i = 0, j = n.$length; i < j; i++) { - t = n[i]; - if (t.type == PROPERTY_INIT) { - v[t[0].value] = getValue(execute(t[1], x)); - } else { - f = new FunctionObject(t, x.scope); - /* - u = (t.type == GETTER) ? '__defineGetter__' - : '__defineSetter__'; - v[u](t.name, thunk(f, x)); - */ - } - } - break; - - case NULL: - v = null; - break; - - case THIS: - v = x.thisObject; - break; - - case TRUE: - v = true; - break; - - case FALSE: - v = false; - break; - - case IDENTIFIER: - for (s = x.scope; s; s = s.parent) { - if (n.value in s.object) - break; - } - v = new Reference(s && s.object, n.value, n); - break; - - case NUMBER: - case STRING: - case REGEXP: - v = n.value; - break; - - case GROUP: - v = execute(n[0], x); - break; - - default: - throw "PANIC: unknown operation " + n.type + ": " + uneval(n); - } - return v; -} - -function Activation(f, a) { - for (var i = 0, j = f.params.length; i < j; i++) - this[f.params[i]] = a[i]; - this.arguments = a; -} - -// Null Activation.prototype's proto slot so that Object.prototype.* does not -// pollute the scope of heavyweight functions. Also delete its 'constructor' -// property so that it doesn't pollute function scopes. - -Activation.prototype.__proto__ = null; -delete Activation.prototype.constructor; - -function FunctionObject(node, scope) { - this.node = node; - this.scope = scope; - this.length = node.params.length; - var proto = {}; - this.prototype = proto; - proto.constructor = this; -} - -var FOp = FunctionObject.prototype = { - // Internal methods. - __call__: function (t, a, x) { - var x2 = new ExecutionContext(FUNCTION_CODE); - x2.thisObject = t || global; - x2.caller = x; - x2.callee = this; - a.callee = this; - var f = this.node; - x2.scope = {object: new Activation(f, a), parent: this.scope}; - - ExecutionContext.current = x2; - try { - execute(f.body, x2); - } catch (e) { - if (!(e == RETURN)) { throw e } else if (e == RETURN) { - return x2.result; - } - if (e != THROW) { throw e } - x.result = x2.result; - throw THROW; - } finally { - ExecutionContext.current = x; - } - return undefined; - }, - - __construct__: function (a, x) { - var o = new Object; - var p = this.prototype; - if (isObject(p)) - o.__proto__ = p; - // else o.__proto__ defaulted to Object.prototype - - var v = this.__call__(o, a, x); - if (isObject(v)) - return v; - return o; - }, - - __hasInstance__: function (v) { - if (isPrimitive(v)) - return false; - var p = this.prototype; - if (isPrimitive(p)) { - throw new TypeError("'prototype' property is not an object", - this.node.filename(), this.node.lineno); - } - var o; - while ((o = v.__proto__)) { - if (o == p) - return true; - v = o; - } - return false; - }, - - // Standard methods. - toString: function () { - return this.node.getSource(); - }, - - apply: function (t, a) { - // Curse ECMA again! - if (typeof this.__call__ != "function") { - throw new TypeError("Function.prototype.apply called on" + - " uncallable object"); - } - - if (t === undefined || t === null) - t = global; - else if (typeof t != "object") - t = toObject(t, t); - - if (a === undefined || a === null) { - a = {}; - a.length = 0; - } else if (a instanceof Array) { - var v = {}; - for (var i = 0, j = a.length; i < j; i++) - v[i] = a[i]; - v.length = i; - a = v; - } else if (!(a instanceof Object)) { - // XXX check for a non-arguments object - throw new TypeError("Second argument to Function.prototype.apply" + - " must be an array or arguments object", - this.node.filename(), this.node.lineno); - } - - return this.__call__(t, a, ExecutionContext.current); - }, - - call: function (t) { - // Curse ECMA a third time! - var a = Array.prototype.splice.call(arguments, 1); - return this.apply(t, a); - } -}; - -// Connect Function.prototype and Function.prototype.constructor in global. -reflectClass('Function', FOp); - -// Help native and host-scripted functions be like FunctionObjects. -var Fp = Function.prototype; -var REp = RegExp.prototype; - -if (!('__call__' in Fp)) { - Fp.__call__ = function (t, a, x) { - // Curse ECMA yet again! - a = Array.prototype.splice.call(a, 0, a.length); - return this.apply(t, a); - }; - - REp.__call__ = function (t, a, x) { - a = Array.prototype.splice.call(a, 0, a.length); - return this.exec.apply(this, a); - }; - - Fp.__construct__ = function (a, x) { - switch (a.length) { - case 0: - return new this(); - case 1: - return new this(a[0]); - case 2: - return new this(a[0], a[1]); - case 3: - return new this(a[0], a[1], a[2]); - case 4: - return new this(a[0], a[1], a[2], a[3]); - case 5: - return new this(a[0], a[1], a[2], a[3], a[4]); - case 6: - return new this(a[0], a[1], a[2], a[3], a[4], a[5]); - case 7: - return new this(a[0], a[1], a[2], a[3], a[4], a[5], a[6]); - } - throw "PANIC: too many arguments to constructor"; - } - - // Since we use native functions such as Date along with host ones such - // as global.eval, we want both to be considered instances of the native - // Function constructor. - Fp.__hasInstance__ = function (v) { - return v instanceof Function || v instanceof global.Function; - }; -} - -function thunk(f, x) { - return function () { return f.__call__(this, arguments, x); }; -} - -function evaluate(s, f, l) { - if (typeof s != "string") - return s; - - var x = ExecutionContext.current; - var x2 = new ExecutionContext(GLOBAL_CODE); - ExecutionContext.current = x2; - try { - execute(parse(s, f, l), x2); - } catch (e) { - if (e != THROW) { throw e } - if (x) { - x.result = x2.result; - throw(THROW); - } - throw x2.result; - } finally { - ExecutionContext.current = x; - } - return x2.result; -} diff --git a/tests/test_tools/selenium/core/scripts/narcissus-parse.js b/tests/test_tools/selenium/core/scripts/narcissus-parse.js deleted file mode 100644 index d6acb836..00000000 --- a/tests/test_tools/selenium/core/scripts/narcissus-parse.js +++ /dev/null @@ -1,1003 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the Narcissus JavaScript engine. - * - * The Initial Developer of the Original Code is - * Brendan Eich . - * Portions created by the Initial Developer are Copyright (C) 2004 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): Richard Hundt - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -/* - * Narcissus - JS implemented in JS. - * - * Lexical scanner and parser. - */ - -// jrh -//module('JS.Parse'); - -// Build a regexp that recognizes operators and punctuators (except newline). -var opRegExp = -/^;|^,|^\?|^:|^\|\||^\&\&|^\||^\^|^\&|^===|^==|^=|^!==|^!=|^<<|^<=|^<|^>>>|^>>|^>=|^>|^\+\+|^\-\-|^\+|^\-|^\*|^\/|^%|^!|^~|^\.|^\[|^\]|^\{|^\}|^\(|^\)/; - -// A regexp to match floating point literals (but not integer literals). -var fpRegExp = /^\d+\.\d*(?:[eE][-+]?\d+)?|^\d+(?:\.\d*)?[eE][-+]?\d+|^\.\d+(?:[eE][-+]?\d+)?/; - -function Tokenizer(s, f, l) { - this.cursor = 0; - this.source = String(s); - this.tokens = []; - this.tokenIndex = 0; - this.lookahead = 0; - this.scanNewlines = false; - this.scanOperand = true; - this.filename = f || ""; - this.lineno = l || 1; -} - -Tokenizer.prototype = { - input : function() { - return this.source.substring(this.cursor); - }, - - done : function() { - return this.peek() == END; - }, - - token : function() { - return this.tokens[this.tokenIndex]; - }, - - match: function (tt) { - return this.get() == tt || this.unget(); - }, - - mustMatch: function (tt) { - if (!this.match(tt)) - throw this.newSyntaxError("Missing " + this.tokens[tt].toLowerCase()); - return this.token(); - }, - - peek: function () { - var tt; - if (this.lookahead) { - tt = this.tokens[(this.tokenIndex + this.lookahead) & 3].type; - } else { - tt = this.get(); - this.unget(); - } - return tt; - }, - - peekOnSameLine: function () { - this.scanNewlines = true; - var tt = this.peek(); - this.scanNewlines = false; - return tt; - }, - - get: function () { - var token; - while (this.lookahead) { - --this.lookahead; - this.tokenIndex = (this.tokenIndex + 1) & 3; - token = this.tokens[this.tokenIndex]; - if (token.type != NEWLINE || this.scanNewlines) - return token.type; - } - - for (;;) { - var input = this.input(); - var rx = this.scanNewlines ? /^[ \t]+/ : /^\s+/; - var match = input.match(rx); - if (match) { - var spaces = match[0]; - this.cursor += spaces.length; - var newlines = spaces.match(/\n/g); - if (newlines) - this.lineno += newlines.length; - input = this.input(); - } - - if (!(match = input.match(/^\/(?:\*(?:.|\n)*?\*\/|\/.*)/))) - break; - var comment = match[0]; - this.cursor += comment.length; - newlines = comment.match(/\n/g); - if (newlines) - this.lineno += newlines.length - } - - this.tokenIndex = (this.tokenIndex + 1) & 3; - token = this.tokens[this.tokenIndex]; - if (!token) - this.tokens[this.tokenIndex] = token = {}; - if (!input) - return token.type = END; - if ((match = input.match(fpRegExp))) { - token.type = NUMBER; - token.value = parseFloat(match[0]); - } else if ((match = input.match(/^0[xX][\da-fA-F]+|^0[0-7]*|^\d+/))) { - token.type = NUMBER; - token.value = parseInt(match[0]); - } else if ((match = input.match(/^((\$\w*)|(\w+))/))) { - var id = match[0]; - token.type = keywords[id] || IDENTIFIER; - token.value = id; - } else if ((match = input.match(/^"(?:\\.|[^"])*"|^'(?:[^']|\\.)*'/))) { - token.type = STRING; - token.value = eval(match[0]); - } else if (this.scanOperand && - (match = input.match(/^\/((?:\\.|[^\/])+)\/([gi]*)/))) { - token.type = REGEXP; - token.value = new RegExp(match[1], match[2]); - } else if ((match = input.match(opRegExp))) { - var op = match[0]; - if (assignOps[op] && input[op.length] == '=') { - token.type = ASSIGN; - token.assignOp = GLOBAL[opTypeNames[op]]; - match[0] += '='; - } else { - token.type = GLOBAL[opTypeNames[op]]; - if (this.scanOperand && - (token.type == PLUS || token.type == MINUS)) { - token.type += UNARY_PLUS - PLUS; - } - token.assignOp = null; - } - //debug('token.value => '+op+', token.type => '+token.type); - token.value = op; - } else { - throw this.newSyntaxError("Illegal token"); - } - - token.start = this.cursor; - this.cursor += match[0].length; - token.end = this.cursor; - token.lineno = this.lineno; - return token.type; - }, - - unget: function () { - if (++this.lookahead == 4) throw "PANIC: too much lookahead!"; - this.tokenIndex = (this.tokenIndex - 1) & 3; - }, - - newSyntaxError: function (m) { - var e = new SyntaxError(m, this.filename, this.lineno); - e.source = this.source; - e.cursor = this.cursor; - return e; - } -}; - -function CompilerContext(inFunction) { - this.inFunction = inFunction; - this.stmtStack = []; - this.funDecls = []; - this.varDecls = []; -} - -var CCp = CompilerContext.prototype; -CCp.bracketLevel = CCp.curlyLevel = CCp.parenLevel = CCp.hookLevel = 0; -CCp.ecmaStrictMode = CCp.inForLoopInit = false; - -function Script(t, x) { - var n = Statements(t, x); - n.type = SCRIPT; - n.funDecls = x.funDecls; - n.varDecls = x.varDecls; - return n; -} - -// Node extends Array, which we extend slightly with a top-of-stack method. -Array.prototype.top = function() { - return this.length && this[this.length-1]; -} - -function NarcNode(t, type) { - var token = t.token(); - if (token) { - this.type = type || token.type; - this.value = token.value; - this.lineno = token.lineno; - this.start = token.start; - this.end = token.end; - } else { - this.type = type; - this.lineno = t.lineno; - } - this.tokenizer = t; - for (var i = 2; i < arguments.length; i++) - this.push(arguments[i]); -} - -var Np = NarcNode.prototype = new Array(); -Np.constructor = NarcNode; -Np.$length = 0; -Np.toSource = Object.prototype.toSource; - -// Always use push to add operands to an expression, to update start and end. -Np.push = function (kid) { - if (kid.start < this.start) - this.start = kid.start; - if (this.end < kid.end) - this.end = kid.end; - //debug('length before => '+this.$length); - this[this.$length] = kid; - this.$length++; - //debug('length after => '+this.$length); -} - -NarcNode.indentLevel = 0; - -function tokenstr(tt) { - var t = tokens[tt]; - return /^\W/.test(t) ? opTypeNames[t] : t.toUpperCase(); -} - -Np.toString = function () { - var a = []; - for (var i in this) { - if (this.hasOwnProperty(i) && i != 'type') - a.push({id: i, value: this[i]}); - } - a.sort(function (a,b) { return (a.id < b.id) ? -1 : 1; }); - INDENTATION = " "; - var n = ++NarcNode.indentLevel; - var s = "{\n" + INDENTATION.repeat(n) + "type: " + tokenstr(this.type); - for (i = 0; i < a.length; i++) - s += ",\n" + INDENTATION.repeat(n) + a[i].id + ": " + a[i].value; - n = --NarcNode.indentLevel; - s += "\n" + INDENTATION.repeat(n) + "}"; - return s; -} - -Np.getSource = function () { - return this.tokenizer.source.slice(this.start, this.end); -}; - -Np.filename = function () { return this.tokenizer.filename; }; - -String.prototype.repeat = function (n) { - var s = "", t = this + s; - while (--n >= 0) - s += t; - return s; -} - -// Statement stack and nested statement handler. -function nest(t, x, node, func, end) { - x.stmtStack.push(node); - var n = func(t, x); - x.stmtStack.pop(); - end && t.mustMatch(end); - return n; -} - -function Statements(t, x) { - var n = new NarcNode(t, BLOCK); - x.stmtStack.push(n); - while (!t.done() && t.peek() != RIGHT_CURLY) - n.push(Statement(t, x)); - x.stmtStack.pop(); - return n; -} - -function Block(t, x) { - t.mustMatch(LEFT_CURLY); - var n = Statements(t, x); - t.mustMatch(RIGHT_CURLY); - return n; -} - -DECLARED_FORM = 0; EXPRESSED_FORM = 1; STATEMENT_FORM = 2; - -function Statement(t, x) { - var i, label, n, n2, ss, tt = t.get(); - - // Cases for statements ending in a right curly return early, avoiding the - // common semicolon insertion magic after this switch. - switch (tt) { - case FUNCTION: - return FunctionDefinition(t, x, true, - (x.stmtStack.length > 1) - ? STATEMENT_FORM - : DECLARED_FORM); - - case LEFT_CURLY: - n = Statements(t, x); - t.mustMatch(RIGHT_CURLY); - return n; - - case IF: - n = new NarcNode(t); - n.condition = ParenExpression(t, x); - x.stmtStack.push(n); - n.thenPart = Statement(t, x); - n.elsePart = t.match(ELSE) ? Statement(t, x) : null; - x.stmtStack.pop(); - return n; - - case SWITCH: - n = new NarcNode(t); - t.mustMatch(LEFT_PAREN); - n.discriminant = Expression(t, x); - t.mustMatch(RIGHT_PAREN); - n.cases = []; - n.defaultIndex = -1; - x.stmtStack.push(n); - t.mustMatch(LEFT_CURLY); - while ((tt = t.get()) != RIGHT_CURLY) { - switch (tt) { - case DEFAULT: - if (n.defaultIndex >= 0) - throw t.newSyntaxError("More than one switch default"); - // FALL THROUGH - case CASE: - n2 = new NarcNode(t); - if (tt == DEFAULT) - n.defaultIndex = n.cases.length; - else - n2.caseLabel = Expression(t, x, COLON); - break; - default: - throw t.newSyntaxError("Invalid switch case"); - } - t.mustMatch(COLON); - n2.statements = new NarcNode(t, BLOCK); - while ((tt=t.peek()) != CASE && tt != DEFAULT && tt != RIGHT_CURLY) - n2.statements.push(Statement(t, x)); - n.cases.push(n2); - } - x.stmtStack.pop(); - return n; - - case FOR: - n = new NarcNode(t); - n.isLoop = true; - t.mustMatch(LEFT_PAREN); - if ((tt = t.peek()) != SEMICOLON) { - x.inForLoopInit = true; - if (tt == VAR || tt == CONST) { - t.get(); - n2 = Variables(t, x); - } else { - n2 = Expression(t, x); - } - x.inForLoopInit = false; - } - if (n2 && t.match(IN)) { - n.type = FOR_IN; - if (n2.type == VAR) { - if (n2.$length != 1) { - throw new SyntaxError("Invalid for..in left-hand side", - t.filename, n2.lineno); - } - - // NB: n2[0].type == IDENTIFIER and n2[0].value == n2[0].name. - n.iterator = n2[0]; - n.varDecl = n2; - } else { - n.iterator = n2; - n.varDecl = null; - } - n.object = Expression(t, x); - } else { - n.setup = n2 || null; - t.mustMatch(SEMICOLON); - n.condition = (t.peek() == SEMICOLON) ? null : Expression(t, x); - t.mustMatch(SEMICOLON); - n.update = (t.peek() == RIGHT_PAREN) ? null : Expression(t, x); - } - t.mustMatch(RIGHT_PAREN); - n.body = nest(t, x, n, Statement); - return n; - - case WHILE: - n = new NarcNode(t); - n.isLoop = true; - n.condition = ParenExpression(t, x); - n.body = nest(t, x, n, Statement); - return n; - - case DO: - n = new NarcNode(t); - n.isLoop = true; - n.body = nest(t, x, n, Statement, WHILE); - n.condition = ParenExpression(t, x); - if (!x.ecmaStrictMode) { - // - - - - - - - - - - - - - - - - - - - - - - - - -
    // " + document.title + "
    - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - -
    -

    Selenium TestRunner -

    -
    -
    - Execute Tests - -
    Fast
    -
    Slow
    -
    -
    -
     
    -
     
    -
    - -
    - - - - -
    - -
    - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Elapsed:00.00
    TestsCommands
    0run0passed
    0failed0failed
    0incomplete
    -
    -
    - -
    - - - diff --git a/tests/test_tools/selenium/php/TestSuiteHeader.php b/tests/test_tools/selenium/php/TestSuiteHeader.php deleted file mode 100644 index d253740c..00000000 --- a/tests/test_tools/selenium/php/TestSuiteHeader.php +++ /dev/null @@ -1,54 +0,0 @@ - - - - -Test Suite - - - - - - - - - diff --git a/tests/test_tools/selenium/php/results.php b/tests/test_tools/selenium/php/results.php deleted file mode 100644 index 77dab43b..00000000 --- a/tests/test_tools/selenium/php/results.php +++ /dev/null @@ -1,160 +0,0 @@ -parse_data(); - $this->browser = $_SERVER['HTTP_USER_AGENT']; - $this->date = time(); - } - - protected function parse_data() - { - $this->result = $_POST['result']; // failed || passed - $this->totalTime = $_POST['totalTime']; - $this->numTestPasses = $_POST['numTestPasses']; - $this->numTestFailures = $_POST['numTestFailures']; - $this->numCommandPasses = $_POST['numCommandPasses']; - $this->numCommandFailures = $_POST['numCommandFailures']; - $this->numCommandErrors = $_POST['numCommandErrors']; - - foreach($_POST['tests'] as $test) - { - $case = new SeleniumTestCaseResult(); - $case->name = $test['testcase']; - $case->commands = $test['commands']; - for($i = 0; $i < count($case->commands); $i++) - { - //$trace = $case->commands[$i]['trace']; - //$trace = html_entity_decode($trace); - //$case->commands[$i]['trace'] = @unserialize($trace); - if($case->commands[$i]['result'] == 'failed') - { - $case->result = 'failed'; - array_push($case->failures, $case->commands[$i]); - } - } - - $this->suites[$case->name] = $case; - } - - } -} - -class SeleniumHtmlReporter -{ - protected $test; - - public function __construct($result) - { - $this->test = $result; - } - - protected function renderHeader() - { - $contents = << - -Functional Test Results - - - - -EOD; - return $contents; - } - - public function render() - { - echo $this->renderHeader(); - echo $this->renderBody(); - echo $this->renderFooter(); - } - - protected function renderBody() - { - /* SeleniumTestResult */ - $test = $this->test; - $total = count($test->suites); - $date = @strftime('%Y-%m-%d %H:%M',$test->date); -$contents = <<Functional Test Results -
    - {$total} test cases completed, - {$test->numTestPasses} passes - ({$test->numCommandPasses} commands), and - {$test->numTestFailures} fails - ({$test->numCommandErrors} commands). -
    -
    - {$date}, {$test->browser} -
    -EOD; - $count = 1; - foreach($test->suites as $suite) - { - foreach($suite->failures as $error) - $contents .= $this->getErrorMsg($suite, $error, $count++); - } - - return $contents; - } - - - protected function getErrorMsg($suite, $info, $count) - { - $parity = $count%2==0 ? 'even' : 'odd'; - $command = explode("|",$info['command']); -$msg = << - #{$count}. - "{$info['msg']}" in - - {$suite->name}::{$command[1]}('{$command[2]}'); - - -EOD; - - return $msg; - } - - protected function renderFooter() - { - return ""; - } -} - - -?> \ No newline at end of file diff --git a/tests/test_tools/selenium/php/selenium.php b/tests/test_tools/selenium/php/selenium.php deleted file mode 100644 index 8eddd6cb..00000000 --- a/tests/test_tools/selenium/php/selenium.php +++ /dev/null @@ -1,555 +0,0 @@ - - * @version $Id: selenium.php 1771 2007-03-26 00:27:59Z xue $ - * @package Prado.tests - */ - -/** - * Selenium automatic client runner, - * - * @author Wei Zhuo - * @version $Id: selenium.php 1771 2007-03-26 00:27:59Z xue $ - * @package Prado.tests - */ - -require_once(dirname(__FILE__).'/results.php'); - -class SeleniumTestRunner -{ - protected $driver; - protected $base_dir = ''; - - public function __construct($driver=null, $base_dir='../javascript/') - { - if(is_null($driver) && !(php_sapi_name() == 'cli')) - $driver = $_SERVER['SCRIPT_NAME']; - $this->driver = $driver; - $this->base_dir = $base_dir; - } - - public function render() - { - 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); - } - - public function getDriver() - { - return $this->driver; - } -} - -class SeleniumTestStorage -{ - protected $outputs = array(); - protected $tests = array(); - protected $options=array(); - - public function getTests() - { - return $this->tests; - } - - public function getOptions() - { - return $this->options; - } - - public function addOption($test_name, $option) - { - $this->options[$test_name] = $option; - } - - public function addCommand($test_case_id, $command) - { - $data = array($test_case_id, $command); - array_push($this->outputs, $data); - } - - public function getCommand() - { - return array_shift($this->outputs); - } - - public function addTestCase($command, $trace_details, $test_name, $test_suite) - { - $data = array(0, 0, $command, "", $trace_details, $test_name, $test_suite); - array_push($this->tests, $data); - } -} - -class SeleneseInterpreter -{ - protected $storage; - protected $tracer; - - public function __construct($storage, $tracer) - { - $this->storage = $storage; - $this->tracer = $tracer; - } - - public function getTests() - { - return $this->storage->getTests(); - } - - public function getOptions() - { - return $this->storage->getOptions(); - } - - public function getCommand() - { - $command = $this->storage->getCommand(); - return empty($command) ? "|testComplete|||" : "{$command[1]}<{$command[0]}>"; - } - - 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','250',''),$trace); - - return $this->addCommand($command, $trace); - } - - protected function isTestOptionFunction($func,$args,$trace) - { - if(strtolower($func)==='skipcondition') - { - list($trace, $test, $suite) = $this->tracer->getTrace($trace); - $this->storage->addOption($test,$args[0]); - return true; - } - return false; - } - - protected function addCommand($command, $trace) - { - list($trace, $test, $suite) = $this->tracer->getTrace($trace); - $test_id = $this->storage->addTestCase($command, $trace, $test, $suite); - $this->storage->addCommand($test_id, $command); - } -} - -class SeleniumTestTrace -{ - protected $root; - - public function __construct($root) - { - $this->root = $root; - } - - public function getTrace($trace) - { - $group = array_pop($trace); - $info = $trace[3]; - $test = $group['args'][0]->getTestList(); - $i = count($test); - $name = $test[$i-2].'::'.$test[$i-1]; - $suite = $test[0]; - unset($info['object']); - /* - for($i = 0; $i < count($info['args']); $i++) - { - if($info['args'][$i] instanceof TControl) - $info['args'][$i] = $info['args'][$i]->ClientID; - }*/ - $file = str_replace($this->root, '', $info['file']); - $info['file'] = substr($file, 1); - return array($info, $name, $suite); - } -} - -class SimpleSeleniumProxyServer -{ - protected $runner; - protected $int; - protected $result_file; - - public function __construct($runner, $int, $result_file) - { - $this->int = $int; - $this->runner = $runner; - $this->result_file = $result_file; - } - - public function proxy() - { - return $this->int; - } - - - public static function getInstance($root='/', $result_file='results.dat', $base_dir='selenium/') - { - static $instance; - if(!isset($instance)) - { - $storage = new SeleniumTestStorage(); - $tracer = new SeleniumTestTrace($root); - $interpreter = new SeleneseInterpreter($storage, $tracer); - $runner = new SeleniumTestRunner(null, $base_dir); - $instance = new SimpleSeleniumProxyServer($runner, $interpreter, $result_file); - } - $instance->serveResults(); - return $instance; - } - - public function handleRequest() - { - $client = new SeleniumTestRunnerServer($this->int, $this->runner); - $client->serve(); - return true; - } - - public function serveResults() - { - if(isset($_POST['result'])) - { - $result = new SeleniumTestResult(); - $reporter = new SeleniumHtmlReporter($result); - $reporter->render(); - exit(); - } - } - -} - -class SeleniumTestSuiteWriter -{ - protected $suites; - protected $name; - protected $runner; - - function __construct($suites, $name, $runner) - { - $this->suites = $suites; - $this->name = $name; - $this->runner = $runner; - - } - - protected function renderHeader() - { - $base_dir = $this->runner->getDriver().'?sr='; - - include(dirname(__FILE__).'/TestSuiteHeader.php'); - - $contents = <<
    -EOD; - echo $contents; - } - - public function render() - { - $this->renderHeader(); - foreach($this->suites as $name => $suite) - { - $file = $suite[0]['trace']['file']; - $file = strtr($file,'\\','/'); - $option = $suite[0]['option']===null?'':' unless="'.$suite[0]['option'].'" '; - $url = $this->runner->getDriver()."?case={$name}&file={$file}"; - echo "\n"; - echo "\n"; - echo "\n"; - } - echo $this->renderFooter(); - } - - protected function getJsTraceInfo() - { - $contents = "var prado_trace = {};\n"; - foreach($this->suites as $name => $suite) - { - $name = $name; - $contents .= "prado_trace['{$name}'] = ["; - $cases = array(); - foreach($suite as $testcase) - $cases[] = "'".addslashes(htmlspecialchars(serialize($testcase['trace'])))."'"; - $contents .= implode(",\n", $cases)."];\n\n"; - } - return $contents; - } - - protected function renderFooter() - { - $trace = '';//$this->getJsTraceInfo(); - $contents = << -
    {$this->name}
    {$name}
    - -
    - Not supported in this browser - - - - -
    Skipped Tests
    - - - -EOD; - return $contents; - } -} - -class SeleniumTestCaseWriter -{ - protected $case; - protected $tests; - - function __construct($case, $tests) - { - $this->case = $case; - $this->tests = $tests; - } - - protected function renderHeader() - { - $contents = << - - -{$this->case} - - - - - - - - -EOD; - return $contents; - } - - public function render() - { - echo $this->renderHeader(); - foreach($this->tests as $test) - { - $t = $test['test']; - if($t[0] == "open") - $t[1] = "{$t[1]}"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - } - echo $this->renderFooter(); - } - - protected function renderFooter() - { - $contents = << -
    {$this->case}
    {$t[0]}{$t[1]}{$t[2]}
    - - -EOD; - return $contents; - } -} - -class SeleniumTestRunnerServer -{ - protected $cases = array(); - protected $trace = array(); - protected $name; - protected $runner; - - public function __construct($int, $runner) - { - $this->runner = $runner; - $this->initialize($int); - } - - protected function initialize($int) - { - $options = $int->getOptions(); - foreach($int->getTests() as $command) - { - $case = $command[5]; - $option=isset($options[$case])?$options[$case]:null; - $this->cases[$case][] = - array('test' => $command[2], - 'trace' => $command[4], 'option'=>$option); - if(is_null($this->name)) - $this->name = $command[6]; - } - } - - function serve() - { - if($this->isTestSuiteRequest()) - { - $testSuite = new SeleniumTestSuiteWriter($this->cases, - $this->name, $this->runner); - $testSuite->render(); - } - else if($this->isTestCaseRequest()) - { - if(($case = $this->getTestCaseRequest()) !== false) - { - - $testCase = new SeleniumTestCaseWriter($case, $this->getTestCase()); - $testCase->render(); - } - } - else - { - $this->runner->render(); - } - } - - protected function isTestSuiteRequest() - { - return isset($_GET['testSuites']); - } - - protected function isTestCaseRequest() - { - return isset($_GET['case']); - } - - public function isClientRequest() - { - return !$this->isTestSuiteRequest() && !$this->isTestCaseRequest(); - } - - protected function getTestCaseRequest() - { - $case = $_GET['case']; - if(isset($this->cases[$case])) - return $case; - else return false; - } - - protected function getTestCase() - { - $case = $_GET['case']; - if(isset($this->cases[$case])) - return $this->cases[$case]; - else - return array(); - } -} - - -class SeleniumTestCase extends UnitTestCase -{ - protected $selenium; - protected $Page; - - const KONQUEROR='browserVersion.isKonqueror'; - const OPERA='browserVersion.isOpera'; - const CHROME='browserVersion.isChrome'; - const INTERNET_EXPLORER='browserVersion.isIE'; - const SAFARI='browserVersion.isSafari'; - const KHTML='browserVersion.khtml'; - const FIREFOX='browserVersion.isFirefox'; - const MOZILLA='browserVersion.isMozilla'; - const GECKO='browserVersion.isGecko'; - - protected $options=array(); - - function __construct() - { - $server = SimpleSeleniumProxyServer::getInstance(); - if(!is_null($server)) - $this->selenium = $server->proxy(); - parent::__construct(); - } - - function getPage($class) - { - $info = new ReflectionClass($class); - return Prado::getApplication()->getTestPage($info->getFileName()); - } - - function __call($func, $args) - { - if(count($args) == 0) - return $this->selenium->{$func}(); - else if (count($args) == 1) - return $this->selenium->{$func}($args[0]); - else if (count($args) == 2) - return $this->selenium->{$func}($args[0], $args[1]); - } - - function disabled() - { - $this->selenium->skipCondition('DISABLED'); - } - - function skipBrowsers() - { - $conditions = $this->getBrowserOptions(func_get_args()); - $this->selenium->skipCondition($conditions); - } - - protected function getBrowserOptions($arg_list) - { - $browsers=array(); - foreach($arg_list as $arg) - { - if(is_array($arg)) - $browsers[] = '('.implode(' && ', $arg).')'; - else - $browsers[] = $arg; - } - return implode(' || ', $browsers); - } - - function targetBrowsers() - { - $conditions = $this->getBrowserOptions(func_get_args()); - $this->selenium->skipCondition("!(".$conditions.")"); - } -} - -?> \ No newline at end of file diff --git a/tests/test_tools/selenium/prado-functional-test.js b/tests/test_tools/selenium/prado-functional-test.js deleted file mode 100644 index 9d4446f0..00000000 --- a/tests/test_tools/selenium/prado-functional-test.js +++ /dev/null @@ -1,259 +0,0 @@ - -objectExtend(HtmlTestRunnerControlPanel.prototype, { - getTestSuiteName: function() { - return document.location+'?testSuites'; //this._getQueryParameter("test"); - } -}); - -SeleniumFrame.prototype._setLocation = function(location) { - /* var isChrome = browserVersion.isChrome || false; - var isHTA = browserVersion.isHTA || false; - // DGF TODO multiWindow - location += "?thisIsChrome=" + isChrome + "&thisIsHTA=" + isHTA;*/ - if (browserVersion.isSafari) { - // safari doesn't reload the page when the location equals to current location. - // hence, set the location to blank so that the page will reload automatically. - this.frame.src = "about:blank"; - this.frame.src = location; - } else { - this.frame.contentWindow.location.replace(location); - } - }; - -SeleniumFrame.prototype._attachStylesheet = function() -{ - var base_url = script_base_url; - var d = this.getDocument(); - var head = d.getElementsByTagName('head').item(0); - var styleLink = d.createElement("link"); - styleLink.rel = "stylesheet"; - styleLink.type = "text/css"; - styleLink.href = base_url + "core/selenium-test.css"; - head.appendChild(styleLink); -}; - -HtmlTestFrame.prototype._setLocation = SeleniumFrame.prototype._setLocation; -HtmlTestSuiteFrame.prototype._setLocation = SeleniumFrame.prototype._setLocation; - -HtmlTestFrame.prototype._attachStylesheet = SeleniumFrame.prototype._attachStylesheet; -HtmlTestSuiteFrame.prototype._attachStylesheet = SeleniumFrame.prototype._attachStylesheet; - - -objectExtend(HtmlTestRunnerControlPanel.prototype, { - _parseQueryParameter: function() { - var tempRunInterval = this._getQueryParameter("runInterval"); - if (tempRunInterval) { - this.setRunInterval(tempRunInterval); - } - } -}); - - - -/** - * Override selenium implementation. - */ -Selenium.prototype.getAttribute = function(target) { - return this.page().findAttribute(target); -}; - - -/** - * Override selenium implementation. - */ -Selenium.prototype.isVisible = function(locator) { - var element; - element = this.page().findElement(locator); - - if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)) - var visibility = element.style["visibility"]; - else - var visibility = this.findEffectiveStyleProperty(element, "visibility"); - - var _isDisplayed = this._isDisplayed(element); - return (visibility != "hidden" && _isDisplayed); -}; - - -/** - * Override selenium implementation. - */ -Selenium.prototype._isDisplayed = function(element) { - if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)) - var display = element.style["display"]; - else - var display = this.findEffectiveStyleProperty(element, "display"); - if (display == "none") return false; - if (element.parentNode.style) { - return this._isDisplayed(element.parentNode); - } - 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; -} - - -objectExtend(HtmlTestSuite.prototype, { - _onTestSuiteComplete: function() { - this.markDone(); - var result = new TestResult(this.failed, this.getTestTable()); - postTestResults(this.failed, this.getTestTable(), result); - } -}); - - - - -// Post the results to a servlet, CGI-script, etc. The URL of the -// results-handler defaults to "/postResults", but an alternative location -// can be specified by providing a "resultsUrl" query parameter. -// -// Parameters passed to the results-handler are: -// result: passed/failed depending on whether the suite passed or failed -// totalTime: the total running time in seconds for the suite. -// -// numTestPasses: the total number of tests which passed. -// numTestFailures: the total number of tests which failed. -// -// numCommandPasses: the total number of commands which passed. -// numCommandFailures: the total number of commands which failed. -// numCommandErrors: the total number of commands which errored. -// -// suite: the suite table, including the hidden column of test results -// testTable.1 to testTable.N: the individual test tables -// -function postTestResults(suiteFailed, suiteTable, result) { - - form = document.createElement("form"); - document.body.appendChild(form); - - form.id = "resultsForm"; - form.method="post"; - form.target="myiframe"; - - var resultsUrl = post_results_to; - if (!resultsUrl) { - resultsUrl = "./results.php"; - } - - var actionAndParameters = resultsUrl.split('?',2); - form.action = actionAndParameters[0]; - LOG.warn(form.action) - var resultsUrlQueryString = actionAndParameters[1]; - - form.createHiddenField = function(name, value) { - input = document.createElement("input"); - input.type = "hidden"; - input.name = name; - input.value = value; - this.appendChild(input); - }; - - if (resultsUrlQueryString) { - var clauses = resultsUrlQueryString.split('&'); - for (var i = 0; i < clauses.length; i++) { - var keyValuePair = clauses[i].split('=',2); - var key = unescape(keyValuePair[0]); - var value = unescape(keyValuePair[1]); - form.createHiddenField(key, value); - } - } - - form.createHiddenField("result", suiteFailed == true ? "failed" : "passed"); - form.createHiddenField("totalTime", Math.floor((result.metrics.currentTime - result.metrics.startTime) / 1000)); - form.createHiddenField("numTestPasses", result.metrics.numTestPasses); - form.createHiddenField("numTestFailures", result.metrics.numTestFailures); - form.createHiddenField("numCommandPasses", result.metrics.numCommandPasses); - form.createHiddenField("numCommandFailures", result.metrics.numCommandFailures); - form.createHiddenField("numCommandErrors", result.metrics.numCommandErrors); - - // Create an input for each test table. The inputs are named - // testTable.1, testTable.2, etc. - for (rowNum = 1; rowNum < suiteTable.rows.length;rowNum++) { - // If there is a second column, then add a new input - if (suiteTable.rows[rowNum].cells.length > 1) { - var resultCell = suiteTable.rows[rowNum].cells[1]; - parse_resultCell(resultCell,rowNum,form); - //form.createHiddenField("tests[]", resultCell.innerHTML); - // remove the resultCell, so it's not included in the suite HTML - //resultCell.parentNode.removeChild(resultCell); - } - } - - // Add HTML for the suite itself - //form.createHiddenField("suite", suiteTable.parentNode.innerHTML); - - form.submit(); - document.body.removeChild(form); -} - -function parse_resultCell(resultCell,rowNum,form) -{ - var div = resultCell.childNodes[0]; - var table; - for(var i = 0; i= 0) - return; - Assert.fail("Unable to find '"+(expectedValue.replace(//g, ">").replace(/"/g, "\""))+"' in document.body"); -}; - -Selenium.prototype.assertHTMLNotPresent = function(expectedValue) { - var actualValue = this.page().currentDocument.body.innerHTML; - if(actualValue.indexOf(expectedValue) < 0) - return; - Assert.fail("'"+(expectedValue.replace(//g, ">").replace(/"/g, "\""))+"' was found in document.body"); -}; \ No newline at end of file diff --git a/tests/test_tools/selenium/reference.html b/tests/test_tools/selenium/reference.html deleted file mode 100644 index 5533764a..00000000 --- a/tests/test_tools/selenium/reference.html +++ /dev/null @@ -1,3858 +0,0 @@ - - - -Selenium Reference - - -

    Selenium Reference

    -

    Concepts

    -

    A command is what tells Selenium what to do. Selenium commands come in three 'flavors': Actions, Accessors and Assertions. - Each command call is one line in the test table of the form:

    -
    - ----- - - - - - -
    commandtargetvalue
    -
    -

    -Actions are commands that generally manipulate the state of the application. They do things like "click this link" and "select that option". If an Action fails, or has an error, the execution of the current test is stopped.

    -

    Many Actions can be called with the "AndWait" suffix, e.g. "clickAndWait". - This suffix tells Selenium that the action will cause the browser to make a call to the server, - and that Selenium should wait for a new page to load.

    -

    -Accessors examine the state of the application and store the results in variables, e.g. "storeTitle". They are also used to automatically generate Assertions.

    -

    -Assertions are like Accessors, but they verify that the state of the application conforms to what is expected. Examples include "make sure the page title is X" and "verify that this checkbox is checked".

    -

    All Selenium Assertions can be used in 3 modes: "assert", "verify", and "waitFor". For example, you can "assertText", "verifyText" and "waitForText". When an "assert" fails, the test is aborted. When a "verify" fails, the test will continue execution, logging the failure. This allows a single "assert" to ensure that the application is on the correct page, followed by a bunch of "verify" assertions to test form field values, labels, etc.

    -

    "waitFor" commands wait for some condition to become true (which can be useful for testing Ajax applications). - They will succeed immediately if the condition is already true. - However, they will fail and halt the test if the condition does not become true within the current timeout setting - (see the setTimeout action below). -

    -

    -Element Locators tell Selenium which HTML element a command refers to. Many commands require an Element Locator as the "target" attribute. Examples of Element Locators include "elementId" and "document.forms[0].element". These are described more clearly in the next section.

    -

    -Patterns are used for various reasons, e.g. to specify the expected value of an input field, or identify a select option. Selenium supports various types of pattern, including regular-expressions, all of which are described in more detail below.

    Defines an object that runs Selenium commands. - -

    -Element Locators

    -

    -Element Locators tell Selenium which HTML element a command refers to. -The format of a locator is:

    -
    -locatorType=argument -
    -

    -We support the following strategies for locating elements: -

    -
    -
    -
    -identifier=id -
    -
    Select the element with the specified @id attribute. If no match is -found, select the first element whose @name attribute is id. -(This is normally the default; see below.)
    -
    -id=id -
    -
    Select the element with the specified @id attribute.
    -
    -name=name -
    -
    Select the first element with the specified @name attribute.
    -
    -
      -
    • username
    • -
    • name=username
    • -
    -
    -
    The name may optionally be followed by one or more element-filters, separated from the name by whitespace. If the filterType is not specified, value is assumed.
    -
    -
      -
    • name=flavour value=chocolate
    • -
    -
    -
    -dom=javascriptExpression -
    -
    -
    Find an element using JavaScript traversal of the HTML Document Object -Model. DOM locators must begin with "document.". -
      -
    • dom=document.forms['myForm'].myDropdown
    • -
    • dom=document.images[56]
    • -
    -
    - -
    -xpath=xpathExpression -
    -
    Locate an element using an XPath expression. -
      -
    • xpath=//img[@alt='The image alt text']
    • -
    • xpath=//table[@id='table1']//tr[4]/td[2]
    • -
    -
    -
    -link=textPattern -
    -
    Select the link (anchor) element which contains text matching the -specified pattern. -
      -
    • link=The link text
    • -
    -
    -
    -css=cssSelectorSyntax -
    -
    Select the element using css selectors. Please refer to CSS2 selectors, CSS3 selectors for more information. You can also check the TestCssLocators test in the selenium test suite for an example of usage, which is included in the downloaded selenium core package. -
      -
    • css=a[href="#id3"]
    • -
    • css=span#firstChild + span
    • -
    -
    -
    Currently the css selector locator supports all css1, css2 and css3 selectors except namespace in css3, some pseudo classes(:nth-of-type, :nth-last-of-type, :first-of-type, :last-of-type, :only-of-type, :visited, :hover, :active, :focus, :indeterminate) and pseudo elements(::first-line, ::first-letter, ::selection, ::before, ::after).
    -
    -
    -

    -Without an explicit locator prefix, Selenium uses the following default -strategies: -

    -
      -
    • -dom, for locators starting with "document."
    • -
    • -xpath, for locators starting with "//"
    • -
    • -identifier, otherwise
    • -
    -

    -Element Filters -

    -
    -

    Element filters can be used with a locator to refine a list of candidate elements. They are currently used only in the 'name' element-locator.

    -

    Filters look much like locators, ie.

    -
    -filterType=argument -
    -

    Supported element-filters are:

    -

    -value=valuePattern -

    -
    -Matches elements based on their values. This is particularly useful for refining a list of similarly-named toggle-buttons.
    -

    -index=index -

    -
    -Selects a single element based on its position in the list (offset from zero).
    -
    -

    -String-match Patterns

    -

    -Various Pattern syntaxes are available for matching string values: -

    -
    -
    -
    -glob:pattern -
    -
    Match a string against a "glob" (aka "wildmat") pattern. "Glob" is a -kind of limited regular-expression syntax typically used in command-line -shells. In a glob pattern, "*" represents any sequence of characters, and "?" -represents any single character. Glob patterns match against the entire -string.
    -
    -regexp:regexp -
    -
    Match a string using a regular-expression. The full power of JavaScript -regular-expressions is available.
    -
    -exact:string -
    -
    Match a string exactly, verbatim, without any of that fancy wildcard -stuff.
    -
    -
    -

    -If no pattern prefix is specified, Selenium assumes that it's a "glob" -pattern. -

    -

    Selenium Actions

    -
    -
    -addSelection - ( - locator,optionLocator - ) - -
    -
    Add a selection to the set of selected options in a multi-select element using an option locator. - -@see #doSelect for details of option locators

    Arguments:

    -
      -
    • locator - an element locator identifying a multi-select box
    • -
    • optionLocator - an option locator (a label by default)
    • -
    -
    -
    -
    -answerOnNextPrompt - ( - answer - ) - -
    -
    Instructs Selenium to return the specified answer string in response to -the next JavaScript prompt [window.prompt()].

    Arguments:

    -
      -
    • answer - the answer to give in response to the prompt pop-up
    • -
    -
    -
    -
    -check - ( - locator - ) - -
    -
    Check a toggle-button (checkbox/radio)

    Arguments:

    - -
    -
    -
    -chooseCancelOnNextConfirmation - ( - - ) - -
    -
    By default, Selenium's overridden window.confirm() function will -return true, as if the user had manually clicked OK. After running -this command, the next call to confirm() will return false, as if -the user had clicked Cancel.
    -
    -
    -click - ( - locator - ) - -
    -
    Clicks on a link, button, checkbox or radio button. If the click action -causes a new page to load (like a link usually does), call -waitForPageToLoad.

    Arguments:

    -
      -
    • locator - an element locator
    • -
    -
    -
    -
    -clickAt - ( - locator,coordString - ) - -
    -
    Clicks on a link, button, checkbox or radio button. If the click action -causes a new page to load (like a link usually does), call -waitForPageToLoad. - -Beware of http://jira.openqa.org/browse/SEL-280, which will lead some event handlers to -get null event arguments. Read the bug for more details, including a workaround.

    Arguments:

    -
      -
    • locator - an element locator
    • -
    • coordString - specifies the x,y position (i.e. - 10,20) of the mouse event relative to the element returned by the locator.
    • -
    -
    -
    -
    -close - ( - - ) - -
    -
    Simulates the user clicking the "close" button in the titlebar of a popup -window or tab.
    -
    -
    -createCookie - ( - nameValuePair,optionsString - ) - -
    -
    Create a new cookie whose path and domain are same with those of current page -under test, unless you specified a path for this cookie explicitly.

    Arguments:

    -
      -
    • nameValuePair - name and value of the cookie in a format "name=value"
    • -
    • optionsString - options for the cookie. Currently supported options include 'path' and 'max_age'. the optionsString's format is "path=/path/, max_age=60". The order of options are irrelevant, the unit of the value of 'max_age' is second.
    • -
    -
    -
    -
    -deleteCookie - ( - name,path - ) - -
    -
    Delete a named cookie with specified path.

    Arguments:

    -
      -
    • name - the name of the cookie to be deleted
    • -
    • path - the path property of the cookie to be deleted
    • -
    -
    -
    -
    -dragdrop - ( - locator,movementsString - ) - -
    -
    Drags an element a certain distance and then drops it -Beware of http://jira.openqa.org/browse/SEL-280, which will lead some event handlers to -get null event arguments. Read the bug for more details, including a workaround.

    Arguments:

    -
      -
    • locator - an element locator
    • -
    • movementsString - offset in pixels from the current location to which the element should be moved, e.g., "+70,-300"
    • -
    -
    -
    -
    -fireEvent - ( - locator,eventName - ) - -
    -
    Explicitly simulate an event, to trigger the corresponding "onevent" -handler.

    Arguments:

    -
      -
    • locator - an element locator -
    • -
    • eventName - the event name, e.g. "focus" or "blur"
    • -
    -
    -
    -
    -goBack - ( - - ) - -
    -
    Simulates the user clicking the "back" button on their browser.
    -
    -
    -keyDown - ( - locator,keySequence - ) - -
    -
    Simulates a user pressing a key (without releasing it yet).

    Arguments:

    -
      -
    • locator - an element locator -
    • -
    • keySequence - Either be a string("\" followed by the numeric keycode of the key to be pressed, normally the ASCII value of that key), or a single character. For example: "w", "\119".
    • -
    -
    -
    -
    -keyPress - ( - locator,keySequence - ) - -
    -
    Simulates a user pressing and releasing a key.

    Arguments:

    -
      -
    • locator - an element locator -
    • -
    • keySequence - Either be a string("\" followed by the numeric keycode of the key to be pressed, normally the ASCII value of that key), or a single character. For example: "w", "\119".
    • -
    -
    -
    -
    -keyUp - ( - locator,keySequence - ) - -
    -
    Simulates a user releasing a key.

    Arguments:

    -
      -
    • locator - an element locator -
    • -
    • keySequence - Either be a string("\" followed by the numeric keycode of the key to be pressed, normally the ASCII value of that key), or a single character. For example: "w", "\119".
    • -
    -
    -
    -
    -mouseDown - ( - locator - ) - -
    -
    Simulates a user pressing the mouse button (without releasing it yet) on -the specified element.

    Arguments:

    - -
    -
    -
    -mouseDownAt - ( - locator,coordString - ) - -
    -
    Simulates a user pressing the mouse button (without releasing it yet) on -the specified element. - -Beware of http://jira.openqa.org/browse/SEL-280, which will lead some event handlers to -get null event arguments. Read the bug for more details, including a workaround.

    Arguments:

    -
      -
    • locator - an element locator -
    • -
    • coordString - specifies the x,y position (i.e. - 10,20) of the mouse event relative to the element returned by the locator.
    • -
    -
    -
    -
    -mouseMove - ( - locator - ) - -
    -
    Simulates a user pressing the mouse button (without releasing it yet) on -the specified element.

    Arguments:

    - -
    -
    -
    -mouseMoveAt - ( - locator,coordString - ) - -
    -
    Simulates a user pressing the mouse button (without releasing it yet) on -the specified element. - -Beware of http://jira.openqa.org/browse/SEL-280, which will lead some event handlers to -get null event arguments. Read the bug for more details, including a workaround.

    Arguments:

    -
      -
    • locator - an element locator -
    • -
    • coordString - specifies the x,y position (i.e. - 10,20) of the mouse event relative to the element returned by the locator.
    • -
    -
    -
    -
    -mouseOut - ( - locator - ) - -
    -
    Simulates a user moving the mouse pointer away from the specified element.

    Arguments:

    - -
    -
    -
    -mouseOver - ( - locator - ) - -
    -
    Simulates a user hovering a mouse over the specified element.

    Arguments:

    - -
    -
    -
    -mouseUp - ( - locator - ) - -
    -
    Simulates a user pressing the mouse button (without releasing it yet) on -the specified element.

    Arguments:

    - -
    -
    -
    -mouseUpAt - ( - locator,coordString - ) - -
    -
    Simulates a user pressing the mouse button (without releasing it yet) on -the specified element. - -Beware of http://jira.openqa.org/browse/SEL-280, which will lead some event handlers to -get null event arguments. Read the bug for more details, including a workaround.

    Arguments:

    -
      -
    • locator - an element locator -
    • -
    • coordString - specifies the x,y position (i.e. - 10,20) of the mouse event relative to the element returned by the locator.
    • -
    -
    -
    -
    -open - ( - url - ) - -
    -
    Opens an URL in the test frame. This accepts both relative and absolute -URLs. - -The "open" command waits for the page to load before proceeding, -ie. the "AndWait" suffix is implicit. - -Note: The URL must be on the same domain as the runner HTML -due to security restrictions in the browser (Same Origin Policy). If you -need to open an URL on another domain, use the Selenium Server to start a -new browser session on that domain.

    Arguments:

    -
      -
    • url - the URL to open; may be relative or absolute
    • -
    -
    -
    -
    -refresh - ( - - ) - -
    -
    Simulates the user clicking the "Refresh" button on their browser.
    -
    -
    -removeSelection - ( - locator,optionLocator - ) - -
    -
    Remove a selection from the set of selected options in a multi-select element using an option locator. - -@see #doSelect for details of option locators

    Arguments:

    -
      -
    • locator - an element locator identifying a multi-select box
    • -
    • optionLocator - an option locator (a label by default)
    • -
    -
    -
    -
    -select - ( - selectLocator,optionLocator - ) - -
    -
    Select an option from a drop-down using an option locator. - -

    -Option locators provide different ways of specifying options of an HTML -Select element (e.g. for selecting a specific option, or for asserting -that the selected option satisfies a specification). There are several -forms of Select Option Locator. -

    -
    -
    -label=labelPattern -
    -
    matches options based on their labels, i.e. the visible text. (This -is the default.) -
      -
    • label=regexp:^[Oo]ther
    • -
    -
    -
    -value=valuePattern -
    -
    matches options based on their values. -
      -
    • value=other
    • -
    -
    -
    -id=id -
    -
    matches options based on their ids. -
      -
    • id=option1
    • -
    -
    -
    -index=index -
    -
    matches an option based on its index (offset from zero). -
      -
    • index=2
    • -
    -
    -
    -

    -If no option locator prefix is provided, the default behaviour is to match on label. -

    -

    Arguments:

    -
      -
    • selectLocator - an element locator identifying a drop-down menu
    • -
    • optionLocator - an option locator (a label by default)
    • -
    -
    -
    -
    -selectFrame - ( - locator - ) - -
    -
    Selects a frame within the current window. (You may invoke this command -multiple times to select nested frames.) To select the parent frame, use -"relative=parent" as a locator; to select the top frame, use "relative=top". - -

    You may also use a DOM expression to identify the frame you want directly, -like this: dom=frames["main"].frames["subframe"] -

    -

    Arguments:

    - -
    -
    -
    -selectWindow - ( - windowID - ) - -
    -
    Selects a popup window; once a popup window has been selected, all -commands go to that window. To select the main window again, use "null" -as the target.

    Arguments:

    -
      -
    • windowID - the JavaScript window ID of the window to select
    • -
    -
    -
    -
    -setContext - ( - context,logLevelThreshold - ) - -
    -
    Writes a message to the status bar and adds a note to the browser-side -log. - -

    If logLevelThreshold is specified, set the threshold for logging -to that level (debug, info, warn, error).

    -

    (Note that the browser-side logs will not be sent back to the -server, and are invisible to the Client Driver.)

    -

    Arguments:

    -
      -
    • context - the message to be sent to the browser
    • -
    • logLevelThreshold - one of "debug", "info", "warn", "error", sets the threshold for browser-side logging
    • -
    -
    -
    -
    -setCursorPosition - ( - locator,position - ) - -
    -
    Moves the text cursor to the specified position in the given input element or textarea. -This method will fail if the specified element isn't an input element or textarea.

    Arguments:

    -
      -
    • locator - an element locator pointing to an input element or textarea
    • -
    • position - the numerical position of the cursor in the field; position should be 0 to move the position to the beginning of the field. You can also set the cursor to -1 to move it to the end of the field.
    • -
    -
    -
    -
    -setTimeout - ( - timeout - ) - -
    -
    Specifies the amount of time that Selenium will wait for actions to complete. - -

    Actions that require waiting include "open" and the "waitFor*" actions.

    -The default timeout is 30 seconds.

    Arguments:

    -
      -
    • timeout - a timeout in milliseconds, after which the action will return with an error
    • -
    -
    -
    -
    -submit - ( - formLocator - ) - -
    -
    Submit the specified form. This is particularly useful for forms without -submit buttons, e.g. single-input "Search" forms.

    Arguments:

    - -
    -
    -
    -type - ( - locator,value - ) - -
    -
    Sets the value of an input field, as though you typed it in. - -

    Can also be used to set the value of combo boxes, check boxes, etc. In these cases, -value should be the value of the option selected, not the visible text.

    -

    Arguments:

    - -
    -
    -
    -uncheck - ( - locator - ) - -
    -
    Uncheck a toggle-button (checkbox/radio)

    Arguments:

    - -
    -
    -
    -waitForCondition - ( - script,timeout - ) - -
    -
    Runs the specified JavaScript snippet repeatedly until it evaluates to "true". -The snippet may have multiple lines, but only the result of the last line -will be considered. - -

    Note that, by default, the snippet will be run in the runner's test window, not in the window -of your application. To get the window of your application, you can use -the JavaScript snippet selenium.browserbot.getCurrentWindow(), and then -run your JavaScript in there

    -

    Arguments:

    -
      -
    • script - the JavaScript snippet to run
    • -
    • timeout - a timeout in milliseconds, after which this command will return with an error
    • -
    -
    -
    -
    -waitForPageToLoad - ( - timeout - ) - -
    -
    Waits for a new page to load. - -

    You can use this command instead of the "AndWait" suffixes, "clickAndWait", "selectAndWait", "typeAndWait" etc. -(which are only available in the JS API).

    -

    Selenium constantly keeps track of new pages loading, and sets a "newPageLoaded" -flag when it first notices a page load. Running any other Selenium command after -turns the flag to false. Hence, if you want to wait for a page to load, you must -wait immediately after a Selenium command that caused a page-load.

    -

    Arguments:

    -
      -
    • timeout - a timeout in milliseconds, after which this command will return with an error
    • -
    -
    -
    -
    -waitForPopUp - ( - windowID,timeout - ) - -
    -
    Waits for a popup window to appear and load up.

    Arguments:

    -
      -
    • windowID - the JavaScript window ID of the window that will appear
    • -
    • timeout - a timeout in milliseconds, after which the action will return with an error
    • -
    -
    -
    -
    -windowFocus - ( - windowName - ) - -
    -
    Gives focus to a window

    Arguments:

    -
      -
    • windowName - name of the window to be given focus
    • -
    -
    -
    -
    -windowMaximize - ( - windowName - ) - -
    -
    Resize window to take up the entire screen

    Arguments:

    -
      -
    • windowName - name of the window to be enlarged
    • -
    -
    -
    -
    -

    Selenium Accessors

    -
    -
    -storeAlert - - ( - - variableName - ) - - -
    -
    Retrieves the message of a JavaScript alert generated during the previous action, or fail if there were no alerts. - -

    Getting an alert has the same effect as manually clicking OK. If an -alert is generated but you do not get/verify it, the next Selenium action -will fail.

    -

    NOTE: under Selenium, JavaScript alerts will NOT pop up a visible alert -dialog.

    -

    NOTE: Selenium does NOT support JavaScript alerts that are generated in a -page's onload() event handler. In this case a visible dialog WILL be -generated and Selenium will hang until someone manually clicks OK.

    -

    -

    -
    Returns:
    -
    The message of the most recent JavaScript alert
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertAlert - ( - pattern - ) -
    • -
    • assertNotAlert - ( - pattern - ) -
    • -
    • verifyAlert - ( - pattern - ) -
    • -
    • verifyNotAlert - ( - pattern - ) -
    • -
    • waitForAlert - ( - pattern - ) -
    • -
    • waitForNotAlert - ( - pattern - ) -
    • -
    -
    -
    -
    -storeAllButtons - - ( - - variableName - ) - - -
    -
    Returns the IDs of all buttons on the page. - -

    If a given button has no ID, it will appear as "" in this array.

    -

    -

    -
    Returns:
    -
    the IDs of all buttons on the page
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertAllButtons - ( - pattern - ) -
    • -
    • assertNotAllButtons - ( - pattern - ) -
    • -
    • verifyAllButtons - ( - pattern - ) -
    • -
    • verifyNotAllButtons - ( - pattern - ) -
    • -
    • waitForAllButtons - ( - pattern - ) -
    • -
    • waitForNotAllButtons - ( - pattern - ) -
    • -
    -
    -
    -
    -storeAllFields - - ( - - variableName - ) - - -
    -
    Returns the IDs of all input fields on the page. - -

    If a given field has no ID, it will appear as "" in this array.

    -

    -

    -
    Returns:
    -
    the IDs of all field on the page
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertAllFields - ( - pattern - ) -
    • -
    • assertNotAllFields - ( - pattern - ) -
    • -
    • verifyAllFields - ( - pattern - ) -
    • -
    • verifyNotAllFields - ( - pattern - ) -
    • -
    • waitForAllFields - ( - pattern - ) -
    • -
    • waitForNotAllFields - ( - pattern - ) -
    • -
    -
    -
    -
    -storeAllLinks - - ( - - variableName - ) - - -
    -
    Returns the IDs of all links on the page. - -

    If a given link has no ID, it will appear as "" in this array.

    -

    -

    -
    Returns:
    -
    the IDs of all links on the page
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertAllLinks - ( - pattern - ) -
    • -
    • assertNotAllLinks - ( - pattern - ) -
    • -
    • verifyAllLinks - ( - pattern - ) -
    • -
    • verifyNotAllLinks - ( - pattern - ) -
    • -
    • waitForAllLinks - ( - pattern - ) -
    • -
    • waitForNotAllLinks - ( - pattern - ) -
    • -
    -
    -
    -
    -storeAllWindowIds - - ( - - variableName - ) - - -
    -
    Returns the IDs of all windows that the browser knows about.

    -

    -
    Returns:
    -
    the IDs of all windows that the browser knows about.
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertAllWindowIds - ( - pattern - ) -
    • -
    • assertNotAllWindowIds - ( - pattern - ) -
    • -
    • verifyAllWindowIds - ( - pattern - ) -
    • -
    • verifyNotAllWindowIds - ( - pattern - ) -
    • -
    • waitForAllWindowIds - ( - pattern - ) -
    • -
    • waitForNotAllWindowIds - ( - pattern - ) -
    • -
    -
    -
    -
    -storeAllWindowNames - - ( - - variableName - ) - - -
    -
    Returns the names of all windows that the browser knows about.

    -

    -
    Returns:
    -
    the names of all windows that the browser knows about.
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertAllWindowNames - ( - pattern - ) -
    • -
    • assertNotAllWindowNames - ( - pattern - ) -
    • -
    • verifyAllWindowNames - ( - pattern - ) -
    • -
    • verifyNotAllWindowNames - ( - pattern - ) -
    • -
    • waitForAllWindowNames - ( - pattern - ) -
    • -
    • waitForNotAllWindowNames - ( - pattern - ) -
    • -
    -
    -
    -
    -storeAllWindowTitles - - ( - - variableName - ) - - -
    -
    Returns the titles of all windows that the browser knows about.

    -

    -
    Returns:
    -
    the titles of all windows that the browser knows about.
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertAllWindowTitles - ( - pattern - ) -
    • -
    • assertNotAllWindowTitles - ( - pattern - ) -
    • -
    • verifyAllWindowTitles - ( - pattern - ) -
    • -
    • verifyNotAllWindowTitles - ( - pattern - ) -
    • -
    • waitForAllWindowTitles - ( - pattern - ) -
    • -
    • waitForNotAllWindowTitles - ( - pattern - ) -
    • -
    -
    -
    -
    -storeAttribute - - ( - attributeLocator, - - variableName - ) - - -
    -
    Gets the value of an element attribute. - -Beware of http://jira.openqa.org/browse/SEL-280, which will lead some event handlers to -get null event arguments. Read the bug for more details, including a workaround.

    Arguments:

    -
      -
    • attributeLocator - an element locator followed by an
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    the value of the specified attribute
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertAttribute - ( - attributeLocator, pattern - ) -
    • -
    • assertNotAttribute - ( - attributeLocator, pattern - ) -
    • -
    • verifyAttribute - ( - attributeLocator, pattern - ) -
    • -
    • verifyNotAttribute - ( - attributeLocator, pattern - ) -
    • -
    • waitForAttribute - ( - attributeLocator, pattern - ) -
    • -
    • waitForNotAttribute - ( - attributeLocator, pattern - ) -
    • -
    -
    -
    -
    -storeAttributeFromAllWindows - - ( - attributeName, - - variableName - ) - - -
    -
    Returns every instance of some attribute from all known windows.

    Arguments:

    -
      -
    • attributeName - name of an attribute on the windows
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    the set of values of this attribute from all known windows.
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertAttributeFromAllWindows - ( - attributeName, pattern - ) -
    • -
    • assertNotAttributeFromAllWindows - ( - attributeName, pattern - ) -
    • -
    • verifyAttributeFromAllWindows - ( - attributeName, pattern - ) -
    • -
    • verifyNotAttributeFromAllWindows - ( - attributeName, pattern - ) -
    • -
    • waitForAttributeFromAllWindows - ( - attributeName, pattern - ) -
    • -
    • waitForNotAttributeFromAllWindows - ( - attributeName, pattern - ) -
    • -
    -
    -
    -
    -storeBodyText - - ( - - variableName - ) - - -
    -
    Gets the entire text of the page.

    -

    -
    Returns:
    -
    the entire text of the page
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertBodyText - ( - pattern - ) -
    • -
    • assertNotBodyText - ( - pattern - ) -
    • -
    • verifyBodyText - ( - pattern - ) -
    • -
    • verifyNotBodyText - ( - pattern - ) -
    • -
    • waitForBodyText - ( - pattern - ) -
    • -
    • waitForNotBodyText - ( - pattern - ) -
    • -
    -
    -
    -
    -storeConfirmation - - ( - - variableName - ) - - -
    -
    Retrieves the message of a JavaScript confirmation dialog generated during -the previous action. - -

    -By default, the confirm function will return true, having the same effect -as manually clicking OK. This can be changed by prior execution of the -chooseCancelOnNextConfirmation command. If an confirmation is generated -but you do not get/verify it, the next Selenium action will fail. -

    -

    -NOTE: under Selenium, JavaScript confirmations will NOT pop up a visible -dialog. -

    -

    -NOTE: Selenium does NOT support JavaScript confirmations that are -generated in a page's onload() event handler. In this case a visible -dialog WILL be generated and Selenium will hang until you manually click -OK. -

    -

    -

    -
    Returns:
    -
    the message of the most recent JavaScript confirmation dialog
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertConfirmation - ( - pattern - ) -
    • -
    • assertNotConfirmation - ( - pattern - ) -
    • -
    • verifyConfirmation - ( - pattern - ) -
    • -
    • verifyNotConfirmation - ( - pattern - ) -
    • -
    • waitForConfirmation - ( - pattern - ) -
    • -
    • waitForNotConfirmation - ( - pattern - ) -
    • -
    -
    -
    -
    -storeCookie - - ( - - variableName - ) - - -
    -
    Return all cookies of the current page under test.

    -

    -
    Returns:
    -
    all cookies of the current page under test
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertCookie - ( - pattern - ) -
    • -
    • assertNotCookie - ( - pattern - ) -
    • -
    • verifyCookie - ( - pattern - ) -
    • -
    • verifyNotCookie - ( - pattern - ) -
    • -
    • waitForCookie - ( - pattern - ) -
    • -
    • waitForNotCookie - ( - pattern - ) -
    • -
    -
    -
    -
    -storeCursorPosition - - ( - locator, - - variableName - ) - - -
    -
    Retrieves the text cursor position in the given input element or textarea; beware, this may not work perfectly on all browsers. - -

    Specifically, if the cursor/selection has been cleared by JavaScript, this command will tend to -return the position of the last location of the cursor, even though the cursor is now gone from the page. This is filed as SEL-243.

    -This method will fail if the specified element isn't an input element or textarea, or there is no cursor in the element.

    Arguments:

    -
      -
    • locator - an element locator pointing to an input element or textarea
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    the numerical position of the cursor in the field
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertCursorPosition - ( - locator, pattern - ) -
    • -
    • assertNotCursorPosition - ( - locator, pattern - ) -
    • -
    • verifyCursorPosition - ( - locator, pattern - ) -
    • -
    • verifyNotCursorPosition - ( - locator, pattern - ) -
    • -
    • waitForCursorPosition - ( - locator, pattern - ) -
    • -
    • waitForNotCursorPosition - ( - locator, pattern - ) -
    • -
    -
    -
    -
    -storeElementHeight - - ( - locator, - - variableName - ) - - -
    -
    Retrieves the height of an element

    Arguments:

    -
      -
    • locator - an element locator pointing to an element
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    height of an element in pixels
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertElementHeight - ( - locator, pattern - ) -
    • -
    • assertNotElementHeight - ( - locator, pattern - ) -
    • -
    • verifyElementHeight - ( - locator, pattern - ) -
    • -
    • verifyNotElementHeight - ( - locator, pattern - ) -
    • -
    • waitForElementHeight - ( - locator, pattern - ) -
    • -
    • waitForNotElementHeight - ( - locator, pattern - ) -
    • -
    -
    -
    -
    -storeElementIndex - - ( - locator, - - variableName - ) - - -
    -
    Get the relative index of an element to its parent (starting from 0). The comment node and empty text node -will be ignored.

    Arguments:

    -
      -
    • locator - an element locator pointing to an element
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    of relative index of the element to its parent (starting from 0)
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertElementIndex - ( - locator, pattern - ) -
    • -
    • assertNotElementIndex - ( - locator, pattern - ) -
    • -
    • verifyElementIndex - ( - locator, pattern - ) -
    • -
    • verifyNotElementIndex - ( - locator, pattern - ) -
    • -
    • waitForElementIndex - ( - locator, pattern - ) -
    • -
    • waitForNotElementIndex - ( - locator, pattern - ) -
    • -
    -
    -
    -
    -storeElementPositionLeft - - ( - locator, - - variableName - ) - - -
    -
    Retrieves the horizontal position of an element

    Arguments:

    -
      -
    • locator - an element locator pointing to an element OR an element itself
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    of pixels from the edge of the frame.
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertElementPositionLeft - ( - locator, pattern - ) -
    • -
    • assertNotElementPositionLeft - ( - locator, pattern - ) -
    • -
    • verifyElementPositionLeft - ( - locator, pattern - ) -
    • -
    • verifyNotElementPositionLeft - ( - locator, pattern - ) -
    • -
    • waitForElementPositionLeft - ( - locator, pattern - ) -
    • -
    • waitForNotElementPositionLeft - ( - locator, pattern - ) -
    • -
    -
    -
    -
    -storeElementPositionTop - - ( - locator, - - variableName - ) - - -
    -
    Retrieves the vertical position of an element

    Arguments:

    -
      -
    • locator - an element locator pointing to an element OR an element itself
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    of pixels from the edge of the frame.
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertElementPositionTop - ( - locator, pattern - ) -
    • -
    • assertNotElementPositionTop - ( - locator, pattern - ) -
    • -
    • verifyElementPositionTop - ( - locator, pattern - ) -
    • -
    • verifyNotElementPositionTop - ( - locator, pattern - ) -
    • -
    • waitForElementPositionTop - ( - locator, pattern - ) -
    • -
    • waitForNotElementPositionTop - ( - locator, pattern - ) -
    • -
    -
    -
    -
    -storeElementWidth - - ( - locator, - - variableName - ) - - -
    -
    Retrieves the width of an element

    Arguments:

    -
      -
    • locator - an element locator pointing to an element
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    width of an element in pixels
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertElementWidth - ( - locator, pattern - ) -
    • -
    • assertNotElementWidth - ( - locator, pattern - ) -
    • -
    • verifyElementWidth - ( - locator, pattern - ) -
    • -
    • verifyNotElementWidth - ( - locator, pattern - ) -
    • -
    • waitForElementWidth - ( - locator, pattern - ) -
    • -
    • waitForNotElementWidth - ( - locator, pattern - ) -
    • -
    -
    -
    -
    -storeEval - - ( - script, - - variableName - ) - - -
    -
    Gets the result of evaluating the specified JavaScript snippet. The snippet may -have multiple lines, but only the result of the last line will be returned. - -

    Note that, by default, the snippet will run in the context of the "selenium" -object itself, so this will refer to the Selenium object, and window will -refer to the top-level runner test window, not the window of your application.

    -

    If you need a reference to the window of your application, you can refer -to this.browserbot.getCurrentWindow() and if you need to use -a locator to refer to a single element in your application page, you can -use this.page().findElement("foo") where "foo" is your locator.

    -

    Arguments:

    -
      -
    • script - the JavaScript snippet to run
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    the results of evaluating the snippet
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertEval - ( - script, pattern - ) -
    • -
    • assertNotEval - ( - script, pattern - ) -
    • -
    • verifyEval - ( - script, pattern - ) -
    • -
    • verifyNotEval - ( - script, pattern - ) -
    • -
    • waitForEval - ( - script, pattern - ) -
    • -
    • waitForNotEval - ( - script, pattern - ) -
    • -
    -
    -
    -
    -storeExpression - - ( - expression, - - variableName - ) - - -
    -
    Returns the specified expression. - -

    This is useful because of JavaScript preprocessing. -It is used to generate commands like assertExpression and waitForExpression.

    -

    Arguments:

    -
      -
    • expression - the value to return
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    the value passed in
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertExpression - ( - expression, pattern - ) -
    • -
    • assertNotExpression - ( - expression, pattern - ) -
    • -
    • verifyExpression - ( - expression, pattern - ) -
    • -
    • verifyNotExpression - ( - expression, pattern - ) -
    • -
    • waitForExpression - ( - expression, pattern - ) -
    • -
    • waitForNotExpression - ( - expression, pattern - ) -
    • -
    -
    -
    -
    -storeHtmlSource - - ( - - variableName - ) - - -
    -
    Returns the entire HTML source between the opening and -closing "html" tags.

    -

    -
    Returns:
    -
    the entire HTML source
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertHtmlSource - ( - pattern - ) -
    • -
    • assertNotHtmlSource - ( - pattern - ) -
    • -
    • verifyHtmlSource - ( - pattern - ) -
    • -
    • verifyNotHtmlSource - ( - pattern - ) -
    • -
    • waitForHtmlSource - ( - pattern - ) -
    • -
    • waitForNotHtmlSource - ( - pattern - ) -
    • -
    -
    -
    -
    -storeLocation - - ( - - variableName - ) - - -
    -
    Gets the absolute URL of the current page.

    -

    -
    Returns:
    -
    the absolute URL of the current page
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertLocation - ( - pattern - ) -
    • -
    • assertNotLocation - ( - pattern - ) -
    • -
    • verifyLocation - ( - pattern - ) -
    • -
    • verifyNotLocation - ( - pattern - ) -
    • -
    • waitForLocation - ( - pattern - ) -
    • -
    • waitForNotLocation - ( - pattern - ) -
    • -
    -
    -
    -
    -storeLogMessages - - ( - - variableName - ) - - -
    -
    Return the contents of the log. - -

    This is a placeholder intended to make the code generator make this API -available to clients. The selenium server will intercept this call, however, -and return its recordkeeping of log messages since the last call to this API. -Thus this code in JavaScript will never be called.

    -

    The reason I opted for a servercentric solution is to be able to support -multiple frames served from different domains, which would break a -centralized JavaScript logging mechanism under some conditions.

    -

    -

    -
    Returns:
    -
    all log messages seen since the last call to this API
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertLogMessages - ( - pattern - ) -
    • -
    • assertNotLogMessages - ( - pattern - ) -
    • -
    • verifyLogMessages - ( - pattern - ) -
    • -
    • verifyNotLogMessages - ( - pattern - ) -
    • -
    • waitForLogMessages - ( - pattern - ) -
    • -
    • waitForNotLogMessages - ( - pattern - ) -
    • -
    -
    -
    -
    -storePrompt - - ( - - variableName - ) - - -
    -
    Retrieves the message of a JavaScript question prompt dialog generated during -the previous action. - -

    Successful handling of the prompt requires prior execution of the -answerOnNextPrompt command. If a prompt is generated but you -do not get/verify it, the next Selenium action will fail.

    -

    NOTE: under Selenium, JavaScript prompts will NOT pop up a visible -dialog.

    -

    NOTE: Selenium does NOT support JavaScript prompts that are generated in a -page's onload() event handler. In this case a visible dialog WILL be -generated and Selenium will hang until someone manually clicks OK.

    -

    -

    -
    Returns:
    -
    the message of the most recent JavaScript question prompt
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertPrompt - ( - pattern - ) -
    • -
    • assertNotPrompt - ( - pattern - ) -
    • -
    • verifyPrompt - ( - pattern - ) -
    • -
    • verifyNotPrompt - ( - pattern - ) -
    • -
    • waitForPrompt - ( - pattern - ) -
    • -
    • waitForNotPrompt - ( - pattern - ) -
    • -
    -
    -
    -
    -storeSelectedId - - ( - selectLocator, - - variableName - ) - - -
    -
    Gets option element ID for selected option in the specified select element.

    Arguments:

    -
      -
    • selectLocator - an element locator identifying a drop-down menu
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    the selected option ID in the specified select drop-down
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertSelectedId - ( - selectLocator, pattern - ) -
    • -
    • assertNotSelectedId - ( - selectLocator, pattern - ) -
    • -
    • verifySelectedId - ( - selectLocator, pattern - ) -
    • -
    • verifyNotSelectedId - ( - selectLocator, pattern - ) -
    • -
    • waitForSelectedId - ( - selectLocator, pattern - ) -
    • -
    • waitForNotSelectedId - ( - selectLocator, pattern - ) -
    • -
    -
    -
    -
    -storeSelectedIds - - ( - selectLocator, - - variableName - ) - - -
    -
    Gets all option element IDs for selected options in the specified select or multi-select element.

    Arguments:

    -
      -
    • selectLocator - an element locator identifying a drop-down menu
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    an array of all selected option IDs in the specified select drop-down
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertSelectedIds - ( - selectLocator, pattern - ) -
    • -
    • assertNotSelectedIds - ( - selectLocator, pattern - ) -
    • -
    • verifySelectedIds - ( - selectLocator, pattern - ) -
    • -
    • verifyNotSelectedIds - ( - selectLocator, pattern - ) -
    • -
    • waitForSelectedIds - ( - selectLocator, pattern - ) -
    • -
    • waitForNotSelectedIds - ( - selectLocator, pattern - ) -
    • -
    -
    -
    -
    -storeSelectedIndex - - ( - selectLocator, - - variableName - ) - - -
    -
    Gets option index (option number, starting at 0) for selected option in the specified select element.

    Arguments:

    -
      -
    • selectLocator - an element locator identifying a drop-down menu
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    the selected option index in the specified select drop-down
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertSelectedIndex - ( - selectLocator, pattern - ) -
    • -
    • assertNotSelectedIndex - ( - selectLocator, pattern - ) -
    • -
    • verifySelectedIndex - ( - selectLocator, pattern - ) -
    • -
    • verifyNotSelectedIndex - ( - selectLocator, pattern - ) -
    • -
    • waitForSelectedIndex - ( - selectLocator, pattern - ) -
    • -
    • waitForNotSelectedIndex - ( - selectLocator, pattern - ) -
    • -
    -
    -
    -
    -storeSelectedIndexes - - ( - selectLocator, - - variableName - ) - - -
    -
    Gets all option indexes (option number, starting at 0) for selected options in the specified select or multi-select element.

    Arguments:

    -
      -
    • selectLocator - an element locator identifying a drop-down menu
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    an array of all selected option indexes in the specified select drop-down
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertSelectedIndexes - ( - selectLocator, pattern - ) -
    • -
    • assertNotSelectedIndexes - ( - selectLocator, pattern - ) -
    • -
    • verifySelectedIndexes - ( - selectLocator, pattern - ) -
    • -
    • verifyNotSelectedIndexes - ( - selectLocator, pattern - ) -
    • -
    • waitForSelectedIndexes - ( - selectLocator, pattern - ) -
    • -
    • waitForNotSelectedIndexes - ( - selectLocator, pattern - ) -
    • -
    -
    -
    -
    -storeSelectedLabel - - ( - selectLocator, - - variableName - ) - - -
    -
    Gets option label (visible text) for selected option in the specified select element.

    Arguments:

    -
      -
    • selectLocator - an element locator identifying a drop-down menu
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    the selected option label in the specified select drop-down
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertSelectedLabel - ( - selectLocator, pattern - ) -
    • -
    • assertNotSelectedLabel - ( - selectLocator, pattern - ) -
    • -
    • verifySelectedLabel - ( - selectLocator, pattern - ) -
    • -
    • verifyNotSelectedLabel - ( - selectLocator, pattern - ) -
    • -
    • waitForSelectedLabel - ( - selectLocator, pattern - ) -
    • -
    • waitForNotSelectedLabel - ( - selectLocator, pattern - ) -
    • -
    -
    -
    -
    -storeSelectedLabels - - ( - selectLocator, - - variableName - ) - - -
    -
    Gets all option labels (visible text) for selected options in the specified select or multi-select element.

    Arguments:

    -
      -
    • selectLocator - an element locator identifying a drop-down menu
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    an array of all selected option labels in the specified select drop-down
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertSelectedLabels - ( - selectLocator, pattern - ) -
    • -
    • assertNotSelectedLabels - ( - selectLocator, pattern - ) -
    • -
    • verifySelectedLabels - ( - selectLocator, pattern - ) -
    • -
    • verifyNotSelectedLabels - ( - selectLocator, pattern - ) -
    • -
    • waitForSelectedLabels - ( - selectLocator, pattern - ) -
    • -
    • waitForNotSelectedLabels - ( - selectLocator, pattern - ) -
    • -
    -
    -
    -
    -storeSelectedValue - - ( - selectLocator, - - variableName - ) - - -
    -
    Gets option value (value attribute) for selected option in the specified select element.

    Arguments:

    -
      -
    • selectLocator - an element locator identifying a drop-down menu
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    the selected option value in the specified select drop-down
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertSelectedValue - ( - selectLocator, pattern - ) -
    • -
    • assertNotSelectedValue - ( - selectLocator, pattern - ) -
    • -
    • verifySelectedValue - ( - selectLocator, pattern - ) -
    • -
    • verifyNotSelectedValue - ( - selectLocator, pattern - ) -
    • -
    • waitForSelectedValue - ( - selectLocator, pattern - ) -
    • -
    • waitForNotSelectedValue - ( - selectLocator, pattern - ) -
    • -
    -
    -
    -
    -storeSelectedValues - - ( - selectLocator, - - variableName - ) - - -
    -
    Gets all option values (value attributes) for selected options in the specified select or multi-select element.

    Arguments:

    -
      -
    • selectLocator - an element locator identifying a drop-down menu
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    an array of all selected option values in the specified select drop-down
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertSelectedValues - ( - selectLocator, pattern - ) -
    • -
    • assertNotSelectedValues - ( - selectLocator, pattern - ) -
    • -
    • verifySelectedValues - ( - selectLocator, pattern - ) -
    • -
    • verifyNotSelectedValues - ( - selectLocator, pattern - ) -
    • -
    • waitForSelectedValues - ( - selectLocator, pattern - ) -
    • -
    • waitForNotSelectedValues - ( - selectLocator, pattern - ) -
    • -
    -
    -
    -
    -storeSelectOptions - - ( - selectLocator, - - variableName - ) - - -
    -
    Gets all option labels in the specified select drop-down.

    Arguments:

    -
      -
    • selectLocator - an element locator identifying a drop-down menu
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    an array of all option labels in the specified select drop-down
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertSelectOptions - ( - selectLocator, pattern - ) -
    • -
    • assertNotSelectOptions - ( - selectLocator, pattern - ) -
    • -
    • verifySelectOptions - ( - selectLocator, pattern - ) -
    • -
    • verifyNotSelectOptions - ( - selectLocator, pattern - ) -
    • -
    • waitForSelectOptions - ( - selectLocator, pattern - ) -
    • -
    • waitForNotSelectOptions - ( - selectLocator, pattern - ) -
    • -
    -
    -
    -
    -storeTable - - ( - tableCellAddress, - - variableName - ) - - -
    -
    Gets the text from a cell of a table. The cellAddress syntax -tableLocator.row.column, where row and column start at 0.

    Arguments:

    -
      -
    • tableCellAddress - a cell address, e.g. "foo.1.4"
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    the text from the specified cell
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertTable - ( - tableCellAddress, pattern - ) -
    • -
    • assertNotTable - ( - tableCellAddress, pattern - ) -
    • -
    • verifyTable - ( - tableCellAddress, pattern - ) -
    • -
    • verifyNotTable - ( - tableCellAddress, pattern - ) -
    • -
    • waitForTable - ( - tableCellAddress, pattern - ) -
    • -
    • waitForNotTable - ( - tableCellAddress, pattern - ) -
    • -
    -
    -
    -
    -storeText - - ( - locator, - - variableName - ) - - -
    -
    Gets the text of an element. This works for any element that contains -text. This command uses either the textContent (Mozilla-like browsers) or -the innerText (IE-like browsers) of the element, which is the rendered -text shown to the user.

    Arguments:

    - -

    -

    -
    Returns:
    -
    the text of the element
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertText - ( - locator, pattern - ) -
    • -
    • assertNotText - ( - locator, pattern - ) -
    • -
    • verifyText - ( - locator, pattern - ) -
    • -
    • verifyNotText - ( - locator, pattern - ) -
    • -
    • waitForText - ( - locator, pattern - ) -
    • -
    • waitForNotText - ( - locator, pattern - ) -
    • -
    -
    -
    -
    -storeTitle - - ( - - variableName - ) - - -
    -
    Gets the title of the current page.

    -

    -
    Returns:
    -
    the title of the current page
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertTitle - ( - pattern - ) -
    • -
    • assertNotTitle - ( - pattern - ) -
    • -
    • verifyTitle - ( - pattern - ) -
    • -
    • verifyNotTitle - ( - pattern - ) -
    • -
    • waitForTitle - ( - pattern - ) -
    • -
    • waitForNotTitle - ( - pattern - ) -
    • -
    -
    -
    -
    -storeValue - - ( - locator, - - variableName - ) - - -
    -
    Gets the (whitespace-trimmed) value of an input field (or anything else with a value parameter). -For checkbox/radio elements, the value will be "on" or "off" depending on -whether the element is checked or not.

    Arguments:

    - -

    -

    -
    Returns:
    -
    the element value, or "on/off" for checkbox/radio elements
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertValue - ( - locator, pattern - ) -
    • -
    • assertNotValue - ( - locator, pattern - ) -
    • -
    • verifyValue - ( - locator, pattern - ) -
    • -
    • verifyNotValue - ( - locator, pattern - ) -
    • -
    • waitForValue - ( - locator, pattern - ) -
    • -
    • waitForNotValue - ( - locator, pattern - ) -
    • -
    -
    -
    -
    -storeWhetherThisFrameMatchFrameExpression - - ( - currentFrameString, -target, - - variableName - ) - - -
    -
    Determine whether current/locator identify the frame containing this running code. - -

    This is useful in proxy injection mode, where this code runs in every -browser frame and window, and sometimes the selenium server needs to identify -the "current" frame. In this case, when the test calls selectFrame, this -routine is called for each frame to figure out which one has been selected. -The selected frame will return true, while all others will return false.

    -

    Arguments:

    -
      -
    • currentFrameString - starting frame
    • -
    • target - new frame (which might be relative to the current one)
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    true if the new frame is this code's window
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertWhetherThisFrameMatchFrameExpression - ( - currentFrameString, target - ) -
    • -
    • assertNotWhetherThisFrameMatchFrameExpression - ( - currentFrameString, target - ) -
    • -
    • verifyWhetherThisFrameMatchFrameExpression - ( - currentFrameString, target - ) -
    • -
    • verifyNotWhetherThisFrameMatchFrameExpression - ( - currentFrameString, target - ) -
    • -
    • waitForWhetherThisFrameMatchFrameExpression - ( - currentFrameString, target - ) -
    • -
    • waitForNotWhetherThisFrameMatchFrameExpression - ( - currentFrameString, target - ) -
    • -
    -
    -
    -
    -storeAlertPresent - - ( - - variableName - ) - - -
    -
    Has an alert occurred? - -

    -This function never throws an exception -

    -

    -

    -
    Returns:
    -
    true if there is an alert
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertAlertPresent - ( - - ) -
    • -
    • assertAlertNotPresent - ( - - ) -
    • -
    • verifyAlertPresent - ( - - ) -
    • -
    • verifyAlertNotPresent - ( - - ) -
    • -
    • waitForAlertPresent - ( - - ) -
    • -
    • waitForAlertNotPresent - ( - - ) -
    • -
    -
    -
    -
    -storeChecked - - ( - locator, - - variableName - ) - - -
    -
    Gets whether a toggle-button (checkbox/radio) is checked. Fails if the specified element doesn't exist or isn't a toggle-button.

    Arguments:

    -
      -
    • locator - an element locator pointing to a checkbox or radio button
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    true if the checkbox is checked, false otherwise
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertChecked - ( - locator - ) -
    • -
    • assertNotChecked - ( - locator - ) -
    • -
    • verifyChecked - ( - locator - ) -
    • -
    • verifyNotChecked - ( - locator - ) -
    • -
    • waitForChecked - ( - locator - ) -
    • -
    • waitForNotChecked - ( - locator - ) -
    • -
    -
    -
    -
    -storeConfirmationPresent - - ( - - variableName - ) - - -
    -
    Has confirm() been called? - -

    -This function never throws an exception -

    -

    -

    -
    Returns:
    -
    true if there is a pending confirmation
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertConfirmationPresent - ( - - ) -
    • -
    • assertConfirmationNotPresent - ( - - ) -
    • -
    • verifyConfirmationPresent - ( - - ) -
    • -
    • verifyConfirmationNotPresent - ( - - ) -
    • -
    • waitForConfirmationPresent - ( - - ) -
    • -
    • waitForConfirmationNotPresent - ( - - ) -
    • -
    -
    -
    -
    -storeEditable - - ( - locator, - - variableName - ) - - -
    -
    Determines whether the specified input element is editable, ie hasn't been disabled. -This method will fail if the specified element isn't an input element.

    Arguments:

    - -

    -

    -
    Returns:
    -
    true if the input element is editable, false otherwise
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertEditable - ( - locator - ) -
    • -
    • assertNotEditable - ( - locator - ) -
    • -
    • verifyEditable - ( - locator - ) -
    • -
    • verifyNotEditable - ( - locator - ) -
    • -
    • waitForEditable - ( - locator - ) -
    • -
    • waitForNotEditable - ( - locator - ) -
    • -
    -
    -
    -
    -storeElementPresent - - ( - locator, - - variableName - ) - - -
    -
    Verifies that the specified element is somewhere on the page.

    Arguments:

    - -

    -

    -
    Returns:
    -
    true if the element is present, false otherwise
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertElementPresent - ( - locator - ) -
    • -
    • assertElementNotPresent - ( - locator - ) -
    • -
    • verifyElementPresent - ( - locator - ) -
    • -
    • verifyElementNotPresent - ( - locator - ) -
    • -
    • waitForElementPresent - ( - locator - ) -
    • -
    • waitForElementNotPresent - ( - locator - ) -
    • -
    -
    -
    -
    -storeOrdered - - ( - locator1, -locator2, - - variableName - ) - - -
    -
    Check if these two elements have same parent and are ordered. Two same elements will -not be considered ordered.

    Arguments:

    -
      -
    • locator1 - an element locator pointing to the first element
    • -
    • locator2 - an element locator pointing to the second element
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    true if two elements are ordered and have same parent, false otherwise
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertOrdered - ( - locator1, locator2 - ) -
    • -
    • assertNotOrdered - ( - locator1, locator2 - ) -
    • -
    • verifyOrdered - ( - locator1, locator2 - ) -
    • -
    • verifyNotOrdered - ( - locator1, locator2 - ) -
    • -
    • waitForOrdered - ( - locator1, locator2 - ) -
    • -
    • waitForNotOrdered - ( - locator1, locator2 - ) -
    • -
    -
    -
    -
    -storePromptPresent - - ( - - variableName - ) - - -
    -
    Has a prompt occurred? - -

    -This function never throws an exception -

    -

    -

    -
    Returns:
    -
    true if there is a pending prompt
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertPromptPresent - ( - - ) -
    • -
    • assertPromptNotPresent - ( - - ) -
    • -
    • verifyPromptPresent - ( - - ) -
    • -
    • verifyPromptNotPresent - ( - - ) -
    • -
    • waitForPromptPresent - ( - - ) -
    • -
    • waitForPromptNotPresent - ( - - ) -
    • -
    -
    -
    -
    -storeSomethingSelected - - ( - selectLocator, - - variableName - ) - - -
    -
    Determines whether some option in a drop-down menu is selected.

    Arguments:

    -
      -
    • selectLocator - an element locator identifying a drop-down menu
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    true if some option has been selected, false otherwise
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertSomethingSelected - ( - selectLocator - ) -
    • -
    • assertNotSomethingSelected - ( - selectLocator - ) -
    • -
    • verifySomethingSelected - ( - selectLocator - ) -
    • -
    • verifyNotSomethingSelected - ( - selectLocator - ) -
    • -
    • waitForSomethingSelected - ( - selectLocator - ) -
    • -
    • waitForNotSomethingSelected - ( - selectLocator - ) -
    • -
    -
    -
    -
    -storeTextPresent - - ( - pattern, - - variableName - ) - - -
    -
    Verifies that the specified text pattern appears somewhere on the rendered page shown to the user.

    Arguments:

    -
      -
    • pattern - a pattern to match with the text of the page
    • -
    • variableName - - the name of a variable in which the result is to be stored. -
    • -
    -

    -

    -
    Returns:
    -
    true if the pattern matches the text, false otherwise
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertTextPresent - ( - pattern - ) -
    • -
    • assertTextNotPresent - ( - pattern - ) -
    • -
    • verifyTextPresent - ( - pattern - ) -
    • -
    • verifyTextNotPresent - ( - pattern - ) -
    • -
    • waitForTextPresent - ( - pattern - ) -
    • -
    • waitForTextNotPresent - ( - pattern - ) -
    • -
    -
    -
    -
    -storeVisible - - ( - locator, - - variableName - ) - - -
    -
    Determines if the specified element is visible. An -element can be rendered invisible by setting the CSS "visibility" -property to "hidden", or the "display" property to "none", either for the -element itself or one if its ancestors. This method will fail if -the element is not present.

    Arguments:

    - -

    -

    -
    Returns:
    -
    true if the specified element is visible, false otherwise
    -
    -

    -

    Related Assertions, automatically generated:

    -
      -
    • assertVisible - ( - locator - ) -
    • -
    • assertNotVisible - ( - locator - ) -
    • -
    • verifyVisible - ( - locator - ) -
    • -
    • verifyNotVisible - ( - locator - ) -
    • -
    • waitForVisible - ( - locator - ) -
    • -
    • waitForNotVisible - ( - locator - ) -
    • -
    -
    -
    -
    -

    -Parameter construction and Variables -

    -
    -

    All Selenium command parameters can be constructed using both simple - variable substitution as well as full javascript. Both of these - mechanisms can access previously stored variables, but do so using - different syntax.

    -

    -Stored Variables -

    -

    The commands store, storeValue and storeText can be used to store a variable - value for later access. Internally, these variables are stored in a map called "storedVars", - with values keyed by the variable name. These commands are documented in the command reference.

    -

    -Variable substitution -

    -

    Variable substitution provides a simple way to include a previously stored variable in a - command parameter. This is a simple mechanism, by which the variable to substitute is indicated - by ${variableName}. Multiple variables can be substituted, and intermixed with static text.

    -

    Example:

    -
    - ----- - - - - - - - - - - - - - - -
    storeMrtitle
    storeValuenameFieldsurname
    store${title} ${surname}fullname
    typetextElementFull name is: ${fullname}
    -
    -

    -Javascript evaluation -

    -

    Javascript evaluation provides the full power of javascript in constructing a command parameter. - To use this mechanism, the entire parameter value must be prefixed by - 'javascript{' with a trailing '}'. The text inside the braces is evaluated as a javascript expression, - and can access previously stored variables using the storedVars map detailed above. - Note that variable substitution cannot be combined with javascript evaluation.

    -

    Example:

    -
    - ----- - - - - - - - - -
    storejavascript{'merchant' + (new Date()).getTime()}merchantId
    typetextElementjavascript{storedVars['merchantId'].toUpperCase()}
    -
    -
    -
    -

    -Extending Selenium -

    -
    -

    It can be quite simple to extend Selenium, adding your own actions, assertions and locator-strategies. - This is done with javascript by adding methods to the Selenium object prototype, and the PageBot - object prototype. On startup, Selenium will automatically look through methods on these prototypes, - using name patterns to recognise which ones are actions, assertions and locators.

    -

    The following examples try to give an indication of how Selenium can be extended with javascript.

    -
    -

    -Actions -

    -
    -

    All doFoo methods on the Selenium prototype are added as actions. For each action foo there - is also an action fooAndWait registered. An action method can take up to 2 parameters, which - will be passed the second and third column values in the test.

    -

    Example: Add a "typeRepeated" action to Selenium, which types the text twice into a text box.

    -
    -	Selenium.prototype.doTypeRepeated = function(locator, text) {
    -	    // All locator-strategies are automatically handled by "findElement"
    -	    var element = this.page().findElement(locator);
    -	
    -	    // Create the text to type
    -	    var valueToType = text + text;
    -	
    -	    // Replace the element text with the new text
    -	    this.page().replaceText(element, valueToType);
    -	};
    -	
    -
    -

    -Accessors/Assertions -

    -
    -

    All getFoo and isFoo methods on the Selenium prototype are added as accessors (storeFoo). For each accessor there - is an assertFoo, verifyFoo and waitForFoo registered. An assert method can take up to 2 parameters, which - will be passed the second and third column values in the test. You can also define your own assertions literally - as simple "assert" methods, which will also auto-generate "verify" and "waitFor" commands.

    -

    Example: Add a valueRepeated assertion, that makes sure that the element value - consists of the supplied text repeated. The 2 commands that would be available in tests would be - assertValueRepeated and verifyValueRepeated.

    -
    -	Selenium.prototype.assertValueRepeated = function(locator, text) {
    -	    // All locator-strategies are automatically handled by "findElement"
    -	    var element = this.page().findElement(locator);
    -	
    -	    // Create the text to verify
    -	    var expectedValue = text + text;
    -	
    -	    // Get the actual element value
    -	    var actualValue = element.value;
    -	
    -	    // Make sure the actual value matches the expected
    -	    Assert.matches(expectedValue, actualValue);
    -	};
    -	
    -
    -

    -Automatic availability of storeFoo, assertFoo, assertNotFoo, waitForFoo and waitForNotFoo for every getFoo -

    -
    -

    All getFoo and isFoo methods on the Selenium prototype automatically result in the availability - of storeFoo, assertFoo, assertNotFoo, verifyFoo, verifyNotFoo, waitForFoo, and waitForNotFoo commands.

    -

    Example, if you add a getTextLength() method, the following commands will automatically be available: - storeTextLength, assertTextLength, assertNotTextLength, verifyTextLength, verifyNotTextLength, waitForTextLength, and waitForNotTextLength commands.

    -
    -	Selenium.prototype.getTextLength = function(locator, text) {
    -	    return this.getText(locator).length;
    -	};
    -	
    -

    Also note that the assertValueRepeated method described above could have been implemented using - isValueRepeated, with the added benefit of also automatically getting assertNotValueRepeated, storeValueRepeated, - waitForValueRepeated and waitForNotValueRepeated.

    -
    -

    -Locator Strategies -

    -
    -

    All locateElementByFoo methods on the PageBot prototype are added as locator-strategies. A locator strategy takes 2 parameters, the first being the locator string (minus the prefix), and the second being the document in which to search.

    -

    Example: Add a "valuerepeated=" locator, that finds the first element a value attribute equal to the the supplied value repeated.

    -
    -	// The "inDocument" is a the document you are searching.
    -	PageBot.prototype.locateElementByValueRepeated = function(text, inDocument) {
    -	    // Create the text to search for
    -	    var expectedValue = text + text;
    -	
    -	    // Loop through all elements, looking for ones that have 
    -	    // a value === our expected value
    -	    var allElements = inDocument.getElementsByTagName("*");
    -	    for (var i = 0; i < allElements.length; i++) {
    -	        var testElement = allElements[i];
    -	        if (testElement.value && testElement.value === expectedValue) {
    -	            return testElement;
    -	        }
    -	    }
    -	    return null;
    -	};
    -	
    -
    -

    -user-extensions.js -

    -
    -

    By default, Selenium looks for a file called "user-extensions.js", and loads the javascript code found in that file. This file provides a convenient location for adding features to Selenium, without needing to modify the core Selenium sources.

    -

    In the standard distibution, this file does not exist. Users can create this file and place their extension code in this common location, removing the need to modify the Selenium sources, and hopefully assisting with the upgrade process.

    -
    -
    - - diff --git a/tests/test_tools/unit_tests.php b/tests/test_tools/unit_tests.php deleted file mode 100644 index 42faf37a..00000000 --- a/tests/test_tools/unit_tests.php +++ /dev/null @@ -1,128 +0,0 @@ -url="$rootUri/$script?target=".strtr(substr($path,strlen($rootPath)+1),"\\",'/'); - $this->name=basename($path); - $dir=opendir($path); - while(($entry=readdir($dir))!==false) - { - $fullpath="$path/$entry"; - if($entry!=='.' && $entry!=='..' && $entry!=='.svn' && is_dir($fullpath)) - { - $folder=new TestFolder($fullpath,$rootPath,$rootUri); - if(!empty($folder->subFolders) || !empty($folder->testFiles)) - $this->subFolders[]=$folder; - } - else if(is_file($fullpath) && (strncmp($entry,'ut',2)===0 - || preg_match('/test.*\.php$/i', $entry))) - { - $this->testFiles[$entry]="$rootUri/$script?target=".strtr(substr($fullpath,strlen($rootPath)+1),"\\",'/'); - } - } - closedir($dir); - } - - public function getHtml($level=0) - { - $str=str_repeat(' ',$level*4)."[ url}\">{$this->name} ]
    \n"; - foreach($this->subFolders as $folder) - $str.=$folder->getHtml($level+1); - foreach($this->testFiles as $name=>$url) - $str.=str_repeat(' ',($level+1)*4)."$name
    \n"; - return $str; - } -} - -class PradoUnitTester -{ - private $_root; - - function __construct($root, $app_dir='.') - { - $this->_root = $root; - Prado::setPathOfAlias('Tests', $root); - if($app_dir===null) $app_dir='.'; - $app = new TShellApplication($app_dir); - $app->run(); - } - - function addTests($test,$path,$recursive) - { - $dir=opendir($path); - while(($entry=readdir($dir))!==false) - { - if(is_file($path.'/'.$entry) && (strncmp($entry,'ut',2)===0||preg_match('/test.*\.php$/i', $entry))) - $test->addTestFile($path.'/'.$entry); - else if($entry!=='.' && $entry!=='..' && $entry!=='.svn' && is_dir($path.'/'.$entry) && $recursive) - $this->addTests($test,$path.'/'.$entry,$recursive); - } - closedir($dir); - } - - function run($reporter) - { - $rootPath=realpath($this->_root); - $rootUri=dirname($_SERVER['PHP_SELF']); - if(isset($_GET['target'])) - { - $target=$_GET['target']; - $recursive=true; - $fullpath=realpath("$rootPath/$target"); - if($fullpath===false || strpos($fullpath,$rootPath)!==0) - die('invalid test target'); - - if(is_dir($fullpath)) - { - - $test=new GroupTest(basename($rootPath)."/$target"); - $this->addTests($test,$fullpath,$recursive); - $test->run($reporter); - //$test->run(new HtmlReporterWithCoverage('index.php',$rootPath)); - } - else - { - $testClass=basename($fullpath,'.php'); - include_once($fullpath); - $test=new $testClass(basename($rootPath)."/$target"); - $test->run($reporter); - } - } - else - { - echo " - - Prado Unit Tests - - - -

    Prado Unit Tests

    - "; - $root=new TestFolder($rootPath,$rootPath,$rootUri); - echo $root->getHtml(); - echo "\n"; - } - } -} - -?> \ No newline at end of file diff --git a/tests/unit/bootstrap.php b/tests/unit/bootstrap.php deleted file mode 100644 index 97836012..00000000 --- a/tests/unit/bootstrap.php +++ /dev/null @@ -1,20 +0,0 @@ -