@@ -3,6 +3,7 @@ import fields from '../../../helpers/filterBuilderTestData.js';
33import { shouldSkipOnMobile } from '../../../helpers/device.js' ;
44
55import 'ui/filter_builder' ;
6+ import * as CLASSES from './constants.js' ;
67
78const FILTER_BUILDER_GROUP_CONTENT_CLASS = 'dx-filterbuilder-group-content' ;
89
@@ -12,16 +13,18 @@ QUnit.test('markup init', function(assert) {
1213 }
1314
1415 const element = $ ( '#container' ) . dxFilterBuilder ( ) ;
15- const guid = element . find ( '.dx-filterbuilder-group-item' ) . attr ( 'aria-owns' ) ;
16+ const groupId = element . find ( `.${ CLASSES . FILTER_BUILDER_GROUP_ITEM_CLASS } ` ) . attr ( 'aria-owns' ) ;
17+ const operationId = element . find ( `.${ CLASSES . FILTER_BUILDER_GROUP_OPERATION_CLASS } ` ) . attr ( 'aria-controls' ) ;
18+ const actionId = element . find ( `.${ CLASSES . FILTER_BUILDER_IMAGE_ADD_CLASS } ` ) . attr ( 'aria-controls' ) ;
1619
1720 const $etalon = $ (
1821 '<div id="container" class="dx-filterbuilder dx-widget">'
19- + '<div class="dx-filterbuilder-group">'
20- + '<div class="dx-filterbuilder-group-item" role="treeitem" aria-label="Group item" aria-level="1" aria-owns="' + guid + '">'
21- + '<div role="combobox" title="Operation" aria-haspopup="true" aria-expanded="false" class="dx-filterbuilder-text dx-filterbuilder-group-operation" tabindex="0">And</div>'
22- + '<div role="combobox" aria-label="Add" aria-haspopup="true" aria-expanded="false" class="dx-filterbuilder-action-icon dx-icon-plus dx-filterbuilder-action" tabindex="0"></div>'
22+ + '<div class="dx-filterbuilder-group" role="tree" >'
23+ + '<div class="dx-filterbuilder-group-item" role="treeitem" aria-label="Group item" aria-level="1" aria-owns="' + groupId + '">'
24+ + '<div aria-controls="' + operationId + '" role="combobox" title="Operation" aria-haspopup="true" aria-expanded="false" class="dx-filterbuilder-text dx-filterbuilder-group-operation" tabindex="0">And</div>'
25+ + '<div aria-controls="' + actionId + '" role="combobox" aria-label="Add" aria-haspopup="true" aria-expanded="false" class="dx-filterbuilder-action-icon dx-icon-plus dx-filterbuilder-action" tabindex="0"></div>'
2326 + '</div>'
24- + '<div class="dx-filterbuilder-group-content" id="' + guid + '" role="group "></div>'
27+ + '<div class="dx-filterbuilder-group-content" id="' + groupId + '"></div>'
2528 + '</div>'
2629 + '</div>'
2730 ) ;
@@ -59,28 +62,35 @@ QUnit.test('filter Content init by one condition', function(assert) {
5962 fields : fields ,
6063 value : [ [ [ 'CompanyName' , '=' , 'K&S Music' ] , 'Or' ] , 'And' ]
6164 } ) ;
62- const guid = element . find ( '.dx-filterbuilder-group-item[aria-level="2"]' ) . attr ( 'aria-owns' ) ;
65+
66+ const groupElement = element . find ( '.dx-filterbuilder-group-item[aria-level="1"]' ) . eq ( 1 ) ;
67+ const groupContent = element . find ( '.dx-filterbuilder-group-content' ) . eq ( 1 ) ;
68+ const groupId = groupElement . attr ( 'aria-owns' ) ;
69+ const operationId = groupElement . find ( `.${ CLASSES . FILTER_BUILDER_GROUP_OPERATION_CLASS } ` ) . attr ( 'aria-controls' ) ;
70+ const actionId = groupElement . find ( `.${ CLASSES . FILTER_BUILDER_IMAGE_ADD_CLASS } ` ) . attr ( 'aria-controls' ) ;
71+ const fieldId = groupContent . find ( `.${ CLASSES . FILTER_BUILDER_ITEM_FIELD_CLASS } ` ) . attr ( 'aria-controls' ) ;
72+ const itemOperationId = groupContent . find ( `.${ CLASSES . FILTER_BUILDER_ITEM_OPERATION_CLASS } ` ) . attr ( 'aria-controls' ) ;
6373
6474 const $etalon = $ ( '<div/>' ) . html (
6575 '<div class="dx-filterbuilder-group">'
66- + '<div class="dx-filterbuilder-group-item" role="treeitem" aria-label="Group item" aria-level="2" aria-owns="' + guid + '">'
67- + '<div class="dx-filterbuilder-action-icon dx-icon-remove dx-filterbuilder-action" tabindex="0" role="button" aria-label="Remove group"></div>'
68- + '<div role="combobox" title="Operation" aria-haspopup="true" aria-expanded="false" class="dx-filterbuilder-text dx-filterbuilder-group-operation" tabindex="0">Or</div>'
69- + '<div role="combobox" aria-label="Add" aria-haspopup="true" aria-expanded="false" class="dx-filterbuilder-action-icon dx-icon-plus dx-filterbuilder-action" tabindex="0"></div>'
70- + '</div>'
71- + '<div class="dx-filterbuilder-group-content" id="' + guid + '" role="group">'
72- + '<div class="dx-filterbuilder-group">'
73- + '<div class="dx-filterbuilder-group-item" role="treeitem" aria-level="2">'
74- + '<div class="dx-filterbuilder-action-icon dx-icon-remove dx-filterbuilder-action" tabindex="0" role="button" aria-label="Remove condition"></div>'
75- + '<div class="dx-filterbuilder-text dx-filterbuilder-item-field" tabindex="0" role="combobox" title="Item field" aria-haspopup="true" aria-expanded="false">Company Name</div>'
76- + '<div class="dx-filterbuilder-text dx-filterbuilder-item-operation" tabindex="0" role="combobox" title="Item operation" aria-haspopup="true" aria-expanded="false">Equals</div>'
77- + '<div class="dx-filterbuilder-text dx-filterbuilder-item-value">'
78- + '<div class="dx-filterbuilder-item-value-text" tabindex="0" role="button" title="Item value" aria-haspopup="true">K&S Music</div>'
79- + '</div>'
76+ + `<div class="dx-filterbuilder-group-item" role="treeitem" aria-label="Group item" aria-level="1" aria-owns="${ groupId } ">`
77+ + '<div class="dx-filterbuilder-action-icon dx-icon-remove dx-filterbuilder-action" tabindex="0" role="button" aria-label="Remove group"></div>'
78+ + `<div aria-controls="${ operationId } " role="combobox" title="Operation" aria-haspopup="true" aria-expanded="false" class="dx-filterbuilder-text dx-filterbuilder-group-operation" tabindex="0">Or</div>`
79+ + `<div aria-controls="${ actionId } " role="combobox" aria-label="Add" aria-haspopup="true" aria-expanded="false" class="dx-filterbuilder-action-icon dx-icon-plus dx-filterbuilder-action" tabindex="0"></div>`
80+ + '</div>'
81+ + `<div class="dx-filterbuilder-group-content" id="${ groupId } ">`
82+ + '<div class="dx-filterbuilder-group" role="group">'
83+ + '<div class="dx-filterbuilder-group-item" role="treeitem" aria-level="2">'
84+ + '<div class="dx-filterbuilder-action-icon dx-icon-remove dx-filterbuilder-action" tabindex="0" role="button" aria-label="Remove condition"></div>'
85+ + `<div aria-controls="${ fieldId } " class="dx-filterbuilder-text dx-filterbuilder-item-field" tabindex="0" role="combobox" title="Item field" aria-haspopup="true" aria-expanded="false">Company Name</div>`
86+ + `<div aria-controls="${ itemOperationId } " class="dx-filterbuilder-text dx-filterbuilder-item-operation" tabindex="0" role="combobox" title="Item operation" aria-haspopup="true" aria-expanded="false">Equals</div>`
87+ + '<div class="dx-filterbuilder-text dx-filterbuilder-item-value">'
88+ + '<div class="dx-filterbuilder-item-value-text" tabindex="0" role="button" title="Item value" aria-haspopup="true">K&S Music</div>'
8089 + '</div>'
8190 + '</div>'
8291 + '</div>'
8392 + '</div>'
93+ + '</div>'
8494 ) ;
8595
8696 assert . equal ( element . find ( '.' + FILTER_BUILDER_GROUP_CONTENT_CLASS ) . html ( ) , $etalon . html ( ) ) ;
@@ -91,33 +101,41 @@ QUnit.test('filter Content init by several conditions', function(assert) {
91101 return ;
92102 }
93103
104+ const element = $ ( '#container' ) . dxFilterBuilder ( {
105+ fields : fields ,
106+ value : [ [ 'CompanyName' , '=' , 'K&S Music' ] , 'or' , [ 'Zipcode' , '=' , '98027' ] ]
107+ } ) ;
108+
109+ const classLevel = 'dx-filterbuilder-group-item[aria-level="1"]' ;
110+ const groupItems = element . find ( `.${ FILTER_BUILDER_GROUP_CONTENT_CLASS } .${ classLevel } ` ) ;
111+ const fieldId1 = groupItems . eq ( 0 ) . find ( `.${ CLASSES . FILTER_BUILDER_ITEM_FIELD_CLASS } ` ) . attr ( 'aria-controls' ) ;
112+ const itemOperationId1 = groupItems . eq ( 0 ) . find ( `.${ CLASSES . FILTER_BUILDER_ITEM_OPERATION_CLASS } ` ) . attr ( 'aria-controls' ) ;
113+ const fieldId2 = groupItems . eq ( 1 ) . find ( `.${ CLASSES . FILTER_BUILDER_ITEM_FIELD_CLASS } ` ) . attr ( 'aria-controls' ) ;
114+ const itemOperationId2 = groupItems . eq ( 1 ) . find ( `.${ CLASSES . FILTER_BUILDER_ITEM_OPERATION_CLASS } ` ) . attr ( 'aria-controls' ) ;
115+
94116 const $etalon = $ ( '<div/>' ) . html (
95- '<div class="dx-filterbuilder-group">'
117+ '<div class="dx-filterbuilder-group" role="group" >'
96118 + '<div class="dx-filterbuilder-group-item" role="treeitem" aria-level="1">'
97119 + '<div class="dx-filterbuilder-action-icon dx-icon-remove dx-filterbuilder-action" tabindex="0" role="button" aria-label="Remove condition"></div>'
98- + ' <div class="dx-filterbuilder-text dx-filterbuilder-item-field" tabindex="0" role="combobox" title="Item field" aria-haspopup="true" aria-expanded="false">Company Name</div>'
99- + ' <div class="dx-filterbuilder-text dx-filterbuilder-item-operation" tabindex="0" role="combobox" title="Item operation" aria-haspopup="true" aria-expanded="false">Equals</div>'
120+ + ` <div aria-controls=" ${ fieldId1 } " class="dx-filterbuilder-text dx-filterbuilder-item-field" tabindex="0" role="combobox" title="Item field" aria-haspopup="true" aria-expanded="false">Company Name</div>`
121+ + ` <div aria-controls=" ${ itemOperationId1 } " class="dx-filterbuilder-text dx-filterbuilder-item-operation" tabindex="0" role="combobox" title="Item operation" aria-haspopup="true" aria-expanded="false">Equals</div>`
100122 + '<div class="dx-filterbuilder-text dx-filterbuilder-item-value">'
101123 + '<div class="dx-filterbuilder-item-value-text" tabindex="0" role="button" title="Item value" aria-haspopup="true">K&S Music</div>'
102124 + '</div>'
103125 + '</div>'
104126 + '</div>'
105- + '<div class="dx-filterbuilder-group">'
127+ + '<div class="dx-filterbuilder-group" role="group" >'
106128 + '<div class="dx-filterbuilder-group-item" role="treeitem" aria-level="1">'
107129 + '<div class="dx-filterbuilder-action-icon dx-icon-remove dx-filterbuilder-action" tabindex="0" role="button" aria-label="Remove condition"></div>'
108- + ' <div class="dx-filterbuilder-text dx-filterbuilder-item-field" tabindex="0" role="combobox" title="Item field" aria-haspopup="true" aria-expanded="false">Zipcode</div>'
109- + ' <div class="dx-filterbuilder-text dx-filterbuilder-item-operation" tabindex="0" role="combobox" title="Item operation" aria-haspopup="true" aria-expanded="false">Equals</div>'
130+ + ` <div aria-controls=" ${ fieldId2 } " class="dx-filterbuilder-text dx-filterbuilder-item-field" tabindex="0" role="combobox" title="Item field" aria-haspopup="true" aria-expanded="false">Zipcode</div>`
131+ + ` <div aria-controls=" ${ itemOperationId2 } " class="dx-filterbuilder-text dx-filterbuilder-item-operation" tabindex="0" role="combobox" title="Item operation" aria-haspopup="true" aria-expanded="false">Equals</div>`
110132 + '<div class="dx-filterbuilder-text dx-filterbuilder-item-value">'
111133 + '<div class="dx-filterbuilder-item-value-text" tabindex="0" role="button" title="Item value" aria-haspopup="true">98027</div>'
112134 + '</div>'
113135 + '</div>'
114136 + '</div>'
115137 ) ;
116138
117- const element = $ ( '#container' ) . dxFilterBuilder ( {
118- fields : fields ,
119- value : [ [ 'CompanyName' , '=' , 'K&S Music' ] , 'or' , [ 'Zipcode' , '=' , '98027' ] ]
120- } ) ;
121139 assert . equal ( element . find ( '.' + FILTER_BUILDER_GROUP_CONTENT_CLASS ) . html ( ) , $etalon . html ( ) ) ;
122140} ) ;
123141
0 commit comments