Commit eb990fda authored by Tomáš Peterka's avatar Tomáš Peterka Committed by Eteri

[renderjs_ui_test] Add test for ListBox Field columns sort (and improve testDefaultSort)

parent f271c7b8
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>expand</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>testSortColumn</string> </value>
</item>
<item>
<key> <string>output_encoding</string> </key>
<value> <string>utf-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <unicode></unicode> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<!-- Test whether listbox correctly sorts when clicking on column names in the table head.
- clicking at column name will cycle between DESC and ASC sorting
- clicking at column name will influence sort in sort editor
- clicking at column name will remove any other filters
- clicking at column name will preserve search query if specified
-->
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test RenderJS UI</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">Test RenderJS UI</td></tr>
</thead><tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
<!-- make the listbox to sort by ID DESC -->
<tr>
<td>open</td>
<td>${base_url}/foo_module/ListBoxZuite_reset?field_sort=</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>Reset Successfully.</td>
<td></td>
</tr>
<!-- Create Foo objects with IDs 0-9 -->
<tr>
<td>open</td>
<td>${base_url}/foo_module/FooModule_createObjects</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>Created Successfully.</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/wait_for_activities" />
<tr>
<td>open</td>
<td>${base_url}/web_site_module/renderjs_runner/#/foo_module</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//th/a[@data-i18n='ID']</td>
<td></td>
</tr>
<!-- Issue sorting - should cycle from DESC to ASC -->
<tr>
<td>click</td>
<td>//th/a[@data-i18n='ID']</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tr>
<td>verifyElementPresent</td>
<td>//th[@class='ui-icon ui-icon-arrow-down']/a[@data-i18n='ID']</td>
<td></td>
</tr>
<!-- The default sort should cycle back on the next click -->
<tr>
<td>click</td>
<td>//th[@class='ui-icon ui-icon-arrow-down']/a[@data-i18n='ID']</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<tr>
<td>verifyElementPresent</td>
<td>//th[@class='ui-icon ui-icon-arrow-up']/a[@data-i18n='ID']</td>
<td></td>
</tr>
<!-- Ensure sort editor changed as well -->
<tr>
<td>waitForElementPresent</td>
<td>//button[@data-i18n='Sort']</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@data-i18n='Sort']</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]</td>
<td></td>
</tr>
<tr>
<td>verifyValue</td>
<td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]</td>
<td>id</td>
</tr>
<tr>
<td>verifyValue</td>
<td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[2]</td>
<td>ascending</td>
</tr>
<!-- Click to a different column should reset the default (and any other sort) -->
<tr>
<td>click</td>
<td>//th/a[@data-i18n='Title']</td>
<td></td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<!-- Test that the first sort is DESC -->
<tr>
<td>verifyElementPresent</td>
<td>//th[@class='ui-icon ui-icon-arrow-down']/a[@data-i18n='Title']</td>
<td></td>
</tr>
<tr>
<td>verifyElementNotPresent</td>
<td>//th[@class='ui-icon ui-icon-arrow-up']/a[@data-i18n='ID']</td>
<td></td>
</tr>
<tr>
<td>verifyElementNotPresent</td>
<td>//th[@class='ui-icon ui-icon-arrow-up']/a[@data-i18n='ID']</td>
<td></td>
</tr>
<!-- Ensure sort editor changed as well -->
<tr>
<td>waitForElementPresent</td>
<td>//button[@data-i18n='Sort']</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//button[@data-i18n='Sort']</td>
<td></td>
</tr>
<tr>
<td>waitForElementPresent</td>
<td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]</td>
<td></td>
</tr>
<tr>
<td>verifyValue</td>
<td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]</td>
<td>title</td>
</tr>
<tr>
<td>verifyValue</td>
<td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[2]</td>
<td>descending</td>
</tr>
<!-- Reset back to default sort
Test whether search query stays if we change the sort order
-->
<tr>
<td>type</td>
<td>//div[@role="main"]//div[@data-gadget-url="${base_url}/web_site_module/renderjs_runner/gadget_erp5_searchfield.html"]//input[@name="search"]</td>
<td>Title</td>
</tr>
<tr>
<td>click</td>
<td>//div[@role="main"]//div[@data-gadget-url="${base_url}/web_site_module/renderjs_runner/gadget_erp5_searchfield.html"]//button[@type="submit"]</td>
<td>Title</td>
</tr>
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<!-- That the last sort stayed -->
<tr>
<td>verifyElementPresent</td>
<td>//th[@class='ui-icon ui-icon-arrow-down']/a[@data-i18n='Title']</td>
<td></td>
</tr>
<tr>
<td>verifyValue</td>
<td>//div[@role="main"]//div[@data-gadget-url="${base_url}/web_site_module/renderjs_runner/gadget_erp5_searchfield.html"]//input[@name="search"]</td>
<td>Title</td>
</tr>
</tbody></table>
</body>
</html>
\ No newline at end of file
......@@ -11,10 +11,10 @@
</thead><tbody>
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
<!-- make the listbox to sort by ID DESC -->
<!-- make the listbox to sort by Title DESC which is not the default default now -->
<tr>
<td>open</td>
<td>${base_url}/bar_module/ListBoxZuite_reset?field_sort=id+%7C+DESC</td> <!-- ?field_sort="id | DESC" -->
<td>${base_url}/foo_module/ListBoxZuite_reset?field_sort=title+%7C+DESC</td> <!-- ?field_sort="title | DESC" -->
<td></td>
</tr>
......@@ -47,13 +47,13 @@
<tr>
<td>waitForElementPresent</td>
<td>//th[@data-i18n='ID']</td>
<td>//a[@data-i18n='Title']</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>//th[@data-i18n='ID' and @class='ui-icon ui-icon-arrow-down']</td>
<td>//th[@class='ui-icon ui-icon-arrow-down']/a[@data-i18n='Title']</td>
<td></td>
</tr>
......@@ -81,7 +81,7 @@
<tr>
<td>verifyValue</td>
<td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]</td>
<td>id</td>
<td>title</td>
</tr>
<tr>
......@@ -94,13 +94,7 @@
<tr>
<td>select</td>
<td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]</td>
<td>index=1</td> <!-- select title -->
</tr>
<tr>
<td>select</td>
<td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[2]</td>
<td>index=1</td> <!-- select descending -->
<td>index=0</td> <!-- select id -->
</tr>
<tr>
......@@ -109,35 +103,25 @@
<td></td>
</tr>
<!-- Wait for the Filters to be applied (maybe not the best way to do that ... but it works) -->
<tr>
<td>waitForElementPresent</td>
<td>//button[@data-i18n="Filter" and @class="responsive ui-btn ui-icon-spinner ui-btn-icon-left ui-first-child ui-last-child ui-disabled ui-icon-spin"]</td>
<td></td>
</tr>
<tr>
<td>waitForElementNotPresent</td>
<td>//button[@data-i18n="Filter" and @class="responsive ui-btn ui-icon-spinner ui-btn-icon-left ui-first-child ui-last-child ui-disabled ui-icon-spin"]</td>
<td></td>
</tr>
<!-- Wait for the Filters to be applied -->
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
<!-- Check that default sort arrow disappeared -->
<tr>
<td>verifyElementNotPresent</td>
<td>//th[@data-i18n='ID' and @class='ui-icon ui-icon-arrow-up']</td>
<td>//th[@class='ui-icon ui-icon-arrow-up']/a[@data-i18n='Title']</td>
<td></td>
</tr>
<tr>
<td>verifyElementNotPresent</td>
<td>//th[@data-i18n='ID' and @class='ui-icon ui-icon-arrow-down']</td>
<td>//th[@class='ui-icon ui-icon-arrow-up']/a[@data-i18n='ID']</td>
<td></td>
</tr>
<tr>
<td>verifyElementPresent</td>
<td>//th[@data-i18n='Title' and @class='ui-icon ui-icon-arrow-down']</td>
<td>//th[@class='ui-icon ui-icon-arrow-down']/a[@data-i18n='ID']</td>
<td></td>
</tr>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment