From e481097ec021984aca1048661cfa0e5cb593dce9 Mon Sep 17 00:00:00 2001 From: tsv2013 Date: Fri, 29 Mar 2024 11:14:51 +0300 Subject: [PATCH] Formatted f-tests (#419) Co-authored-by: tsv2013 --- testCafe/datatables/headeractions.testcafe | 2125 +++++++++++++++++++- testCafe/tabulator/headeractions.testcafe | 2013 +++++++++++++++++- 2 files changed, 4136 insertions(+), 2 deletions(-) diff --git a/testCafe/datatables/headeractions.testcafe b/testCafe/datatables/headeractions.testcafe index e2fd8a860..1101e00c5 100644 --- a/testCafe/datatables/headeractions.testcafe +++ b/testCafe/datatables/headeractions.testcafe @@ -1 +1,2124 @@ -{"fixtures":[{"name":"headeractions","pageUrl":"http://localhost:8080/examples/datatables.html","tests":[{"name":"Check pagination","commands":[{"type":"execute-expression","studio":{"expressionCommandType":"define-function"},"callsite":"0","resultVariableName":"getPaginationInState","expression":"ClientFunction(() => {\n return surveyAnalyticsDatatables.state.pageSize;\n})"},{"type":"execute-async-expression","studio":{},"callsite":"1","expression":"var json = {\r\n elements: [\r\n {\r\n type: \"boolean\",\r\n name: \"bool\",\r\n title: \"Question 1\",\r\n },\r\n {\r\n type: \"boolean\",\r\n name: \"bool2\",\r\n title: \"Question 2\",\r\n },\r\n {\r\n type: \"boolean\",\r\n name: \"bool3\",\r\n title: \"Question 3\",\r\n },\r\n ],\r\n};\r\n\r\nvar data = [\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n }, {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n }, {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n },\r\n];\r\n\r\nvar initDatatables = ClientFunction((json, data, options) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsDatatables = new SurveyAnalyticsDatatables.DataTables(\r\n survey,\r\n data,\r\n options\r\n );\r\n surveyAnalyticsDatatables.render(document.getElementById(\"dataTablesContainer\"));\r\n})\r\n\r\nawait initDatatables(json, data, {actionsColumnWidth: 100});"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody tbody').childElementCount"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('html').childElementCount"},"ruleType":"$tagName$"}],"selectorType":"CSS Selector","selectorPostfix":".childElementCount"},"callsite":"2","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody tbody').childElementCount"},"options":{},"expected":{"type":"js-expr","value":"5"}},{"selector":{"type":"js-expr","value":"Selector('.sa-table__entries select')"},"studio":{"selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('div select')"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__entries select')"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(1).find('div').nth(1).find('div select')"},"ruleType":"$dom$"}],"useOffsets":false,"offsetX":47,"offsetY":9},"options":{},"type":"click","callsite":"3"},{"selector":{"type":"js-expr","value":"Selector('#dataTablesContainer .sa-table__entries select option').withText('1')"},"studio":{"selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer .sa-table__entries select option').withText('1')"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer option').withText('1')"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('div select option')"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('option').withText('1')"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__entries option').withText('1')"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__entries select option')"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(1).find('div').nth(1).find('div select option')"},"ruleType":"$dom$"}],"useOffsets":false,"offsetX":null,"offsetY":null},"options":{},"type":"click","callsite":"4"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody tbody').childElementCount"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('html').childElementCount"},"ruleType":"$tagName$"}],"selectorType":"CSS Selector","selectorPostfix":".childElementCount"},"callsite":"5","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody tbody').childElementCount"},"options":{},"expected":{"type":"js-expr","value":"1"}},{"type":"assertion","studio":{"assertionMode":"checkFunction","selectorPostfix":"","selectors":[]},"callsite":"6","assertionType":"eql","actual":{"type":"js-expr","value":"getPaginationInState()"},"options":{},"expected":{"type":"js-expr","value":"1"}},{"selector":{"type":"js-expr","value":"Selector('#dataTablesContainer .sa-table__entries select')"},"studio":{"selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer .sa-table__entries select')"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('div select')"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__entries select')"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(1).find('div').nth(1).find('div select')"},"ruleType":"$dom$"}],"useOffsets":false,"offsetX":47,"offsetY":9},"options":{},"type":"click","callsite":"7"},{"selector":{"type":"js-expr","value":"Selector('#dataTablesContainer .sa-table__entries select option').withText('10')"},"studio":{"selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer .sa-table__entries select option').withText('10')"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer option').withText('1')"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('div select option')"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('option').withText('1')"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__entries option').withText('1')"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__entries select option')"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(1).find('div').nth(1).find('div select option')"},"ruleType":"$dom$"}],"useOffsets":false,"offsetX":null,"offsetY":null},"options":{},"type":"click","callsite":"8"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody tbody').childElementCount"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('html').childElementCount"},"ruleType":"$tagName$"}],"selectorType":"CSS Selector","selectorPostfix":".childElementCount"},"callsite":"9","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody tbody').childElementCount"},"options":{},"expected":{"type":"js-expr","value":"9"}},{"type":"assertion","studio":{"assertionMode":"checkFunction","selectorPostfix":"","selectors":[]},"callsite":"10","assertionType":"eql","actual":{"type":"js-expr","value":"getPaginationInState()"},"options":{},"expected":{"type":"js-expr","value":"10"}}]},{"name":"Check change locale","commands":[{"type":"execute-expression","studio":{"expressionCommandType":"define-function"},"callsite":"0","resultVariableName":"getLocaleInState","expression":"ClientFunction(() => {\n return window.surveyAnalyticsDatatables.state.locale;\n})"},{"type":"execute-async-expression","studio":{},"callsite":"1","expression":"\r\nvar json = {\r\n locale: \"ru\",\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"satisfaction\",\r\n title: {\r\n default: \"How satisfied are you with the Product?\",\r\n ru: \"Насколько Вас устраивает наш продукт?\",\r\n },\r\n choices: [\r\n {\r\n value: 0,\r\n text: {\r\n default: \"Not Satisfied\",\r\n ru: \"Coвсем не устраивает\",\r\n },\r\n },\r\n {\r\n value: 1,\r\n text: {\r\n default: \"Satisfied\",\r\n ru: \"Устраивает\",\r\n },\r\n },\r\n {\r\n value: 2,\r\n text: {\r\n default: \"Completely satisfied\",\r\n ru: \"Полностью устраивает\",\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [{ satisfaction: 0 }, { satisfaction: 1 }, { satisfaction: 2 }];\r\n\r\nvar initDatatables = ClientFunction((json, data, options) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsDatatables = new SurveyAnalyticsDatatables.DataTables(\r\n survey,\r\n data,\r\n options\r\n );\r\n surveyAnalyticsDatatables.render(document.getElementById(\"dataTablesContainer\"));\r\n})\r\n\r\nawait initDatatables(json, data, { actionsColumnWidth: 100 });\r\n\r\n"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollHead th').withText('Насколько Вас устраивает наш продукт?').innerText"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('Насколько Вас устраивает наш продукт?').innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div div div').nth(8).find('div div div div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('span').withText('Насколько Вас устраивает наш продукт?').innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-col-title').nth(1).find('span').withText('Насколько Вас устраивает наш продукт?').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-col-title').nth(1).nth(1).find('div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Насколько Вас устраивает наш продукт?\"] span').withText('Насколько Вас устраивает наш продукт?').innerText"},"ruleType":"$text$","ancestorRuleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Насколько Вас устраивает наш продукт?\"] div div div div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div div div').nth(8).find('div div div div span').innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"2","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollHead th').withText('Насколько Вас устраивает наш продукт?').innerText"},"options":{},"expected":{"type":"js-expr","value":"\"Насколько Вас устраивает наш продукт?\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Coвсем не устраивает').innerText"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Coвсем не устраивает').nth(4).innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Coвсем не устраивает\"]').innerText"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Coвсем не устраивает').nth(5).innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(1).innerText"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] div').withText('Coвсем не устраивает').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] .tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Coвсем не устраивает\"]').innerText"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"3","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Coвсем не устраивает').innerText"},"options":{},"expected":{"type":"js-expr","value":"\"Coвсем не устраивает\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Устраивает').innerText"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Устраивает').nth(4).innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(3).innerText"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Устраивает\"]').innerText"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Устраивает').nth(5).innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(3).innerText"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] div').withText('Устраивает').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] .tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Устраивает\"]').innerText"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"4","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Устраивает').innerText"},"options":{},"expected":{"type":"js-expr","value":"\"Устраивает\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Полностью устраивает').innerText"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Полностью устраивает').nth(4).innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(5).innerText"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Полностью устраивает\"]').innerText"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Полностью устраивает').nth(5).innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(5).innerText"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).find('div').withText('Полностью устраивает').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).nth(1).find('.tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Полностью устраивает\"]').innerText"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"5","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Полностью устраивает').innerText"},"options":{},"expected":{"type":"js-expr","value":"\"Полностью устраивает\""}},{"selector":{"type":"js-expr","value":"Selector('#dataTablesContainer .sa-table__header-extension ').withText('Сменить язык')"},"studio":{"selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer .sa-table__header-extension ').withText('Сменить язык')"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .sa-table__header-extension').nth(2)"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('select')"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__header-extension').nth(2)"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__header-extensions .sa-table__header-extension').nth(2)"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__header-extensions select')"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(1).find('div').nth(1).find('select')"},"ruleType":"$dom$"}],"useOffsets":false,"offsetX":105,"offsetY":24},"options":{},"type":"click","callsite":"6"},{"type":"click","studio":{},"callsite":"7","selector":{"type":"js-expr","value":"Selector('#dataTablesContainer .sa-table__header-extension option').withText('English')"},"options":{}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollHead th').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div div div').nth(8).find('div div div div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('span').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-col-title').nth(1).find('span').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-col-title').nth(1).nth(1).find('div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"How satisfied are you with the Product?\"] span').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$text$","ancestorRuleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"How satisfied are you with the Product?\"] div div div div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div div div').nth(8).find('div div div div span').innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"8","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollHead th').withText('How satisfied are you with the Product?').innerText"},"options":{},"expected":{"type":"js-expr","value":"\"How satisfied are you with the Product?\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Not Satisfied').innerText"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Not Satisfied').nth(4).innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Not Satisfied\"]').innerText"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Not Satisfied').nth(5).innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(1).innerText"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] div').withText('Not Satisfied').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] .tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Not Satisfied\"]').innerText"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"9","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Not Satisfied').innerText"},"options":{},"expected":{"type":"js-expr","value":"\"Not Satisfied\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody td').withExactText('Satisfied').innerText"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Satisfied').nth(6).innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(3).innerText"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Satisfied\"]').innerText"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Satisfied').nth(7).innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(3).innerText"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] div').withText('Satisfied').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] .tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Satisfied\"]').innerText"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"10","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody td').withExactText('Satisfied').innerText"},"options":{},"expected":{"type":"js-expr","value":"\"Satisfied\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Completely satisfied').innerText"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Completely satisfied').nth(4).innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(5).innerText"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Completely satisfied\"]').innerText"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Completely satisfied').nth(5).innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(5).innerText"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).find('div').withText('Completely satisfied').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).nth(1).find('.tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Completely satisfied\"]').innerText"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"11","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Completely satisfied').innerText"},"options":{},"expected":{"type":"js-expr","value":"\"Completely satisfied\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectorPostfix":".exists"},"callsite":"13","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer .sa-table__header-extension').withText('Change Locale').exists"},"options":{},"expected":{"type":"js-expr","value":"true"}},{"type":"assertion","studio":{"assertionMode":"checkFunction","selectorPostfix":"","selectors":[]},"callsite":"12","assertionType":"eql","actual":{"type":"js-expr","value":"getLocaleInState()"},"options":{},"expected":{"type":"js-expr","value":"\"\""}}]},{"name":"Check pagination from state","commands":[{"type":"execute-async-expression","studio":{},"callsite":"0","expression":"var json = {\r\n elements: [\r\n {\r\n type: \"boolean\",\r\n name: \"bool\",\r\n title: \"Question 1\",\r\n },\r\n {\r\n type: \"boolean\",\r\n name: \"bool2\",\r\n title: \"Question 2\",\r\n },\r\n {\r\n type: \"boolean\",\r\n name: \"bool3\",\r\n title: \"Question 3\",\r\n },\r\n ],\r\n};\r\n\r\nvar data = [\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n }, {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n }, {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n },\r\n];\r\n\r\nvar initDatatables = ClientFunction((json, data, options, state) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsDatatables = new SurveyAnalyticsDatatables.DataTables(\r\n survey,\r\n data,\r\n options\r\n );\r\n surveyAnalyticsDatatables.state = state;\r\n surveyAnalyticsDatatables.render(document.getElementById(\"dataTablesContainer\"));\r\n})\r\n\r\nawait initDatatables(json, data, { actionsColumnWidth: 100 }, { pageSize: 10 });"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody tbody').childElementCount"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('html').childElementCount"},"ruleType":"$tagName$"}],"selectorType":"CSS Selector","selectorPostfix":".childElementCount"},"callsite":"1","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer .dataTables_scrollBody tbody').childElementCount"},"options":{},"expected":{"type":"js-expr","value":"9"}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectorPostfix":".value"},"callsite":"2","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('.sa-table__entries select').value"},"options":{},"expected":{"type":"js-expr","value":"'10'"}}]},{"name":"Check locale from state","commands":[{"type":"execute-async-expression","studio":{},"callsite":"0","expression":"\r\nvar json = {\r\n locale: \"ru\",\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"satisfaction\",\r\n title: {\r\n default: \"How satisfied are you with the Product?\",\r\n ru: \"Насколько Вас устраивает наш продукт?\",\r\n },\r\n choices: [\r\n {\r\n value: 0,\r\n text: {\r\n default: \"Not Satisfied\",\r\n ru: \"Coвсем не устраивает\",\r\n },\r\n },\r\n {\r\n value: 1,\r\n text: {\r\n default: \"Satisfied\",\r\n ru: \"Устраивает\",\r\n },\r\n },\r\n {\r\n value: 2,\r\n text: {\r\n default: \"Completely satisfied\",\r\n ru: \"Полностью устраивает\",\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [{ satisfaction: 0 }, { satisfaction: 1 }, { satisfaction: 2 }];\r\n\r\nvar initDatatables = ClientFunction((json, data, options, state) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsDatatables = new SurveyAnalyticsDatatables.DataTables(\r\n survey,\r\n data,\r\n options\r\n );\r\n window.surveyAnalyticsDatatables.state = state;\r\n window.surveyAnalyticsDatatables.render(document.getElementById(\"dataTablesContainer\"));\r\n})\r\n\r\nawait initDatatables(json, data, { actionsColumnWidth: 100 }, { locale: \"en\" });\r\n\r\n"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer thead th').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div div div').nth(8).find('div div div div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('span').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-col-title').nth(1).find('span').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-col-title').nth(1).nth(1).find('div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"How satisfied are you with the Product?\"] span').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$text$","ancestorRuleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"How satisfied are you with the Product?\"] div div div div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div div div').nth(8).find('div div div div span').innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"1","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer thead th').withText('How satisfied are you with the Product?').innerText"},"options":{},"expected":{"type":"js-expr","value":"\"How satisfied are you with the Product?\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer td').withText('Not Satisfied').visible"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Not Satisfied').nth(4).visible"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(1).visible"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Not Satisfied\"]').visible"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div div').nth(3).visible"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Not Satisfied').nth(5).visible"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(1).visible"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] div').withText('Not Satisfied').visible"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] .tabulator-cell').nth(1).visible"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Not Satisfied\"]').visible"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div div').nth(3).visible"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".visible"},"callsite":"2","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer td').withText('Not Satisfied').visible"},"options":{},"expected":{"type":"js-expr","value":"true"}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer td').withExactText('Satisfied').visible"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Satisfied').nth(6).visible"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(3).visible"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Satisfied\"]').visible"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).visible"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Satisfied').nth(7).visible"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(3).visible"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] div').withText('Satisfied').visible"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] .tabulator-cell').nth(1).visible"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Satisfied\"]').visible"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).visible"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".visible"},"callsite":"3","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer td').withExactText('Satisfied').visible"},"options":{},"expected":{"type":"js-expr","value":"true"}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer td').withText('Completely satisfied').visible"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Completely satisfied').nth(4).visible"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(5).visible"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Completely satisfied\"]').visible"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).visible"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Completely satisfied').nth(5).visible"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(5).visible"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).find('div').withText('Completely satisfied').visible"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).nth(1).find('.tabulator-cell').nth(1).visible"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Completely satisfied\"]').visible"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).visible"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".visible"},"callsite":"4","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer td').withText('Completely satisfied').visible"},"options":{},"expected":{"type":"js-expr","value":"true"}}]},{"name":"Check commercial license caption","commands":[{"type":"execute-async-expression","studio":{},"callsite":"0","expression":"\r\nvar json = {\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"simplequestion\",\r\n choices: [\r\n 0,\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [];\r\n\r\nvar initDatatables = ClientFunction((json, data, options, state) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsDatatables = new SurveyAnalyticsDatatables.DataTables(\r\n survey,\r\n data,\r\n options\r\n );\r\n window.surveyAnalyticsDatatables.state = state;\r\n window.surveyAnalyticsDatatables.render(document.getElementById(\"dataTablesContainer\"));\r\n})\r\n\r\nawait initDatatables(json, data, {});\r\n\r\n"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .sa-commercial__product').exists"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div a span span').exists"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__product').exists"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text .sa-commercial__product').exists"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text span span').exists"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('div div a span span').exists"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".exists"},"callsite":"1","assertionType":"ok","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"options":{}},{"type":"execute-async-expression","studio":{},"callsite":"2","expression":"\r\nvar json = {\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"simplequestion\",\r\n choices: [\r\n 0,\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [];\r\n\r\nvar initDatatables = ClientFunction((json, data, options, state) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsDatatables = new SurveyAnalyticsDatatables.DataTables(\r\n survey,\r\n data,\r\n options\r\n );\r\n window.surveyAnalyticsDatatables.state = state;\r\n window.surveyAnalyticsDatatables.render(document.getElementById(\"dataTablesContainer\"));\r\n})\r\n\r\nawait initDatatables(json, data, {haveCommercialLicense: true});"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .sa-commercial__product').exists"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div a span span').exists"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__product').exists"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text .sa-commercial__product').exists"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text span span').exists"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('div div a span span').exists"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".exists"},"callsite":"3","assertionType":"notOk","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"options":{}},{"type":"execute-async-expression","studio":{},"callsite":"4","expression":"\r\nvar json = {\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"simplequestion\",\r\n choices: [\r\n 0,\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [];\r\n\r\nvar initDatatables = ClientFunction((json, data, options, state) => {\r\n SurveyAnalyticsDatatables.DataTables.haveCommercialLicense = true;\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsDatatables = new SurveyAnalyticsDatatables.DataTables(\r\n survey,\r\n data,\r\n options\r\n );\r\n window.surveyAnalyticsDatatables.state = state;\r\n window.surveyAnalyticsDatatables.render(document.getElementById(\"dataTablesContainer\"));\r\n})\r\n\r\nawait initDatatables(json, data, {});"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#dataTablesContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .sa-commercial__product').exists"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div a span span').exists"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__product').exists"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text .sa-commercial__product').exists"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text span span').exists"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('div div a span span').exists"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".exists"},"callsite":"5","assertionType":"notOk","actual":{"type":"js-expr","value":"Selector('#dataTablesContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"options":{}}]}],"beforeEachCommands":[{"type":"resize-window","studio":{},"callsite":"beforeEachHook_0","width":1920,"height":1080}]}]} \ No newline at end of file +{ + "fixtures": [ + { + "name": "headeractions", + "pageUrl": "http://localhost:8080/examples/datatables.html", + "tests": [ + { + "name": "Check pagination", + "commands": [ + { + "type": "execute-expression", + "studio": { + "expressionCommandType": "define-function" + }, + "callsite": "0", + "resultVariableName": "getPaginationInState", + "expression": "ClientFunction(() => {\n return surveyAnalyticsDatatables.state.pageSize;\n})" + }, + { + "type": "execute-async-expression", + "studio": {}, + "callsite": "1", + "expression": "var json = {\r\n elements: [\r\n {\r\n type: \"boolean\",\r\n name: \"bool\",\r\n title: \"Question 1\",\r\n },\r\n {\r\n type: \"boolean\",\r\n name: \"bool2\",\r\n title: \"Question 2\",\r\n },\r\n {\r\n type: \"boolean\",\r\n name: \"bool3\",\r\n title: \"Question 3\",\r\n },\r\n ],\r\n};\r\n\r\nvar data = [\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n }, {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n }, {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n },\r\n];\r\n\r\nvar initDatatables = ClientFunction((json, data, options) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsDatatables = new SurveyAnalyticsDatatables.DataTables(\r\n survey,\r\n data,\r\n options\r\n );\r\n surveyAnalyticsDatatables.render(document.getElementById(\"dataTablesContainer\"));\r\n})\r\n\r\nawait initDatatables(json, data, {actionsColumnWidth: 100});" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody tbody').childElementCount" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('html').childElementCount" + }, + "ruleType": "$tagName$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".childElementCount" + }, + "callsite": "2", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody tbody').childElementCount" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "5" + } + }, + { + "selector": { + "type": "js-expr", + "value": "Selector('.sa-table__entries select')" + }, + "studio": { + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('div select')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__entries select')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(1).find('div').nth(1).find('div select')" + }, + "ruleType": "$dom$" + } + ], + "useOffsets": false, + "offsetX": 47, + "offsetY": 9 + }, + "options": {}, + "type": "click", + "callsite": "3" + }, + { + "selector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .sa-table__entries select option').withText('1')" + }, + "studio": { + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .sa-table__entries select option').withText('1')" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer option').withText('1')" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('div select option')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('option').withText('1')" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__entries option').withText('1')" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__entries select option')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(1).find('div').nth(1).find('div select option')" + }, + "ruleType": "$dom$" + } + ], + "useOffsets": false, + "offsetX": null, + "offsetY": null + }, + "options": {}, + "type": "click", + "callsite": "4" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody tbody').childElementCount" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('html').childElementCount" + }, + "ruleType": "$tagName$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".childElementCount" + }, + "callsite": "5", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody tbody').childElementCount" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "1" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkFunction", + "selectorPostfix": "", + "selectors": [] + }, + "callsite": "6", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "getPaginationInState()" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "1" + } + }, + { + "selector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .sa-table__entries select')" + }, + "studio": { + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .sa-table__entries select')" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('div select')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__entries select')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(1).find('div').nth(1).find('div select')" + }, + "ruleType": "$dom$" + } + ], + "useOffsets": false, + "offsetX": 47, + "offsetY": 9 + }, + "options": {}, + "type": "click", + "callsite": "7" + }, + { + "selector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .sa-table__entries select option').withText('10')" + }, + "studio": { + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .sa-table__entries select option').withText('10')" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer option').withText('1')" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('div select option')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('option').withText('1')" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__entries option').withText('1')" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__entries select option')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(1).find('div').nth(1).find('div select option')" + }, + "ruleType": "$dom$" + } + ], + "useOffsets": false, + "offsetX": null, + "offsetY": null + }, + "options": {}, + "type": "click", + "callsite": "8" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody tbody').childElementCount" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('html').childElementCount" + }, + "ruleType": "$tagName$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".childElementCount" + }, + "callsite": "9", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody tbody').childElementCount" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "9" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkFunction", + "selectorPostfix": "", + "selectors": [] + }, + "callsite": "10", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "getPaginationInState()" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "10" + } + } + ] + }, + { + "name": "Check change locale", + "commands": [ + { + "type": "execute-expression", + "studio": { + "expressionCommandType": "define-function" + }, + "callsite": "0", + "resultVariableName": "getLocaleInState", + "expression": "ClientFunction(() => {\n return window.surveyAnalyticsDatatables.state.locale;\n})" + }, + { + "type": "execute-async-expression", + "studio": {}, + "callsite": "1", + "expression": "\r\nvar json = {\r\n locale: \"ru\",\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"satisfaction\",\r\n title: {\r\n default: \"How satisfied are you with the Product?\",\r\n ru: \"Насколько Вас устраивает наш продукт?\",\r\n },\r\n choices: [\r\n {\r\n value: 0,\r\n text: {\r\n default: \"Not Satisfied\",\r\n ru: \"Coвсем не устраивает\",\r\n },\r\n },\r\n {\r\n value: 1,\r\n text: {\r\n default: \"Satisfied\",\r\n ru: \"Устраивает\",\r\n },\r\n },\r\n {\r\n value: 2,\r\n text: {\r\n default: \"Completely satisfied\",\r\n ru: \"Полностью устраивает\",\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [{ satisfaction: 0 }, { satisfaction: 1 }, { satisfaction: 2 }];\r\n\r\nvar initDatatables = ClientFunction((json, data, options) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsDatatables = new SurveyAnalyticsDatatables.DataTables(\r\n survey,\r\n data,\r\n options\r\n );\r\n surveyAnalyticsDatatables.render(document.getElementById(\"dataTablesContainer\"));\r\n})\r\n\r\nawait initDatatables(json, data, { actionsColumnWidth: 100 });\r\n\r\n" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollHead th').withText('Насколько Вас устраивает наш продукт?').innerText" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('Насколько Вас устраивает наш продукт?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div div div').nth(8).find('div div div div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('span').withText('Насколько Вас устраивает наш продукт?').innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-col-title').nth(1).find('span').withText('Насколько Вас устраивает наш продукт?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-col-title').nth(1).nth(1).find('div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Насколько Вас устраивает наш продукт?\"] span').withText('Насколько Вас устраивает наш продукт?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Насколько Вас устраивает наш продукт?\"] div div div div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div div div').nth(8).find('div div div div span').innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "2", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollHead th').withText('Насколько Вас устраивает наш продукт?').innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"Насколько Вас устраивает наш продукт?\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Coвсем не устраивает').innerText" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Coвсем не устраивает').nth(4).innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Coвсем не устраивает\"]').innerText" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Coвсем не устраивает').nth(5).innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(1).innerText" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] div').withText('Coвсем не устраивает').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] .tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Coвсем не устраивает\"]').innerText" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "3", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Coвсем не устраивает').innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"Coвсем не устраивает\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Устраивает').innerText" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Устраивает').nth(4).innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(3).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Устраивает\"]').innerText" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Устраивает').nth(5).innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(3).innerText" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] div').withText('Устраивает').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] .tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Устраивает\"]').innerText" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "4", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Устраивает').innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"Устраивает\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Полностью устраивает').innerText" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Полностью устраивает').nth(4).innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(5).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Полностью устраивает\"]').innerText" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Полностью устраивает').nth(5).innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(5).innerText" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).find('div').withText('Полностью устраивает').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).nth(1).find('.tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Полностью устраивает\"]').innerText" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "5", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Полностью устраивает').innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"Полностью устраивает\"" + } + }, + { + "selector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .sa-table__header-extension ').withText('Сменить язык')" + }, + "studio": { + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .sa-table__header-extension ').withText('Сменить язык')" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .sa-table__header-extension').nth(2)" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('select')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__header-extension').nth(2)" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__header-extensions .sa-table__header-extension').nth(2)" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__header-extensions select')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(1).find('div').nth(1).find('select')" + }, + "ruleType": "$dom$" + } + ], + "useOffsets": false, + "offsetX": 105, + "offsetY": 24 + }, + "options": {}, + "type": "click", + "callsite": "6" + }, + { + "type": "click", + "studio": {}, + "callsite": "7", + "selector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .sa-table__header-extension option').withText('English')" + }, + "options": {} + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollHead th').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div div div').nth(8).find('div div div div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('span').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-col-title').nth(1).find('span').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-col-title').nth(1).nth(1).find('div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"How satisfied are you with the Product?\"] span').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"How satisfied are you with the Product?\"] div div div div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div div div').nth(8).find('div div div div span').innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "8", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollHead th').withText('How satisfied are you with the Product?').innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"How satisfied are you with the Product?\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Not Satisfied').innerText" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Not Satisfied').nth(4).innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Not Satisfied\"]').innerText" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Not Satisfied').nth(5).innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(1).innerText" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] div').withText('Not Satisfied').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] .tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Not Satisfied\"]').innerText" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "9", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Not Satisfied').innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"Not Satisfied\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody td').withExactText('Satisfied').innerText" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Satisfied').nth(6).innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(3).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Satisfied\"]').innerText" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Satisfied').nth(7).innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(3).innerText" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] div').withText('Satisfied').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] .tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Satisfied\"]').innerText" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "10", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody td').withExactText('Satisfied').innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"Satisfied\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Completely satisfied').innerText" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Completely satisfied').nth(4).innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(5).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Completely satisfied\"]').innerText" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Completely satisfied').nth(5).innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(5).innerText" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).find('div').withText('Completely satisfied').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).nth(1).find('.tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Completely satisfied\"]').innerText" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "11", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody td').withText('Completely satisfied').innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"Completely satisfied\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectorPostfix": ".exists" + }, + "callsite": "13", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .sa-table__header-extension').withText('Change Locale').exists" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "true" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkFunction", + "selectorPostfix": "", + "selectors": [] + }, + "callsite": "12", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "getLocaleInState()" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"\"" + } + } + ] + }, + { + "name": "Check pagination from state", + "commands": [ + { + "type": "execute-async-expression", + "studio": {}, + "callsite": "0", + "expression": "var json = {\r\n elements: [\r\n {\r\n type: \"boolean\",\r\n name: \"bool\",\r\n title: \"Question 1\",\r\n },\r\n {\r\n type: \"boolean\",\r\n name: \"bool2\",\r\n title: \"Question 2\",\r\n },\r\n {\r\n type: \"boolean\",\r\n name: \"bool3\",\r\n title: \"Question 3\",\r\n },\r\n ],\r\n};\r\n\r\nvar data = [\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n }, {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n }, {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n },\r\n];\r\n\r\nvar initDatatables = ClientFunction((json, data, options, state) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsDatatables = new SurveyAnalyticsDatatables.DataTables(\r\n survey,\r\n data,\r\n options\r\n );\r\n surveyAnalyticsDatatables.state = state;\r\n surveyAnalyticsDatatables.render(document.getElementById(\"dataTablesContainer\"));\r\n})\r\n\r\nawait initDatatables(json, data, { actionsColumnWidth: 100 }, { pageSize: 10 });" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody tbody').childElementCount" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('html').childElementCount" + }, + "ruleType": "$tagName$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".childElementCount" + }, + "callsite": "1", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer .dataTables_scrollBody tbody').childElementCount" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "9" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectorPostfix": ".value" + }, + "callsite": "2", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('.sa-table__entries select').value" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "'10'" + } + } + ] + }, + { + "name": "Check locale from state", + "commands": [ + { + "type": "execute-async-expression", + "studio": {}, + "callsite": "0", + "expression": "\r\nvar json = {\r\n locale: \"ru\",\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"satisfaction\",\r\n title: {\r\n default: \"How satisfied are you with the Product?\",\r\n ru: \"Насколько Вас устраивает наш продукт?\",\r\n },\r\n choices: [\r\n {\r\n value: 0,\r\n text: {\r\n default: \"Not Satisfied\",\r\n ru: \"Coвсем не устраивает\",\r\n },\r\n },\r\n {\r\n value: 1,\r\n text: {\r\n default: \"Satisfied\",\r\n ru: \"Устраивает\",\r\n },\r\n },\r\n {\r\n value: 2,\r\n text: {\r\n default: \"Completely satisfied\",\r\n ru: \"Полностью устраивает\",\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [{ satisfaction: 0 }, { satisfaction: 1 }, { satisfaction: 2 }];\r\n\r\nvar initDatatables = ClientFunction((json, data, options, state) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsDatatables = new SurveyAnalyticsDatatables.DataTables(\r\n survey,\r\n data,\r\n options\r\n );\r\n window.surveyAnalyticsDatatables.state = state;\r\n window.surveyAnalyticsDatatables.render(document.getElementById(\"dataTablesContainer\"));\r\n})\r\n\r\nawait initDatatables(json, data, { actionsColumnWidth: 100 }, { locale: \"en\" });\r\n\r\n" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer thead th').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div div div').nth(8).find('div div div div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('span').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-col-title').nth(1).find('span').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-col-title').nth(1).nth(1).find('div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"How satisfied are you with the Product?\"] span').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"How satisfied are you with the Product?\"] div div div div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div div div').nth(8).find('div div div div span').innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "1", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer thead th').withText('How satisfied are you with the Product?').innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"How satisfied are you with the Product?\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer td').withText('Not Satisfied').visible" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Not Satisfied').nth(4).visible" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(1).visible" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Not Satisfied\"]').visible" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div div').nth(3).visible" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Not Satisfied').nth(5).visible" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(1).visible" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] div').withText('Not Satisfied').visible" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] .tabulator-cell').nth(1).visible" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Not Satisfied\"]').visible" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div div').nth(3).visible" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".visible" + }, + "callsite": "2", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer td').withText('Not Satisfied').visible" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "true" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer td').withExactText('Satisfied').visible" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Satisfied').nth(6).visible" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(3).visible" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Satisfied\"]').visible" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).visible" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Satisfied').nth(7).visible" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(3).visible" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] div').withText('Satisfied').visible" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] .tabulator-cell').nth(1).visible" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Satisfied\"]').visible" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).visible" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".visible" + }, + "callsite": "3", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer td').withExactText('Satisfied').visible" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "true" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer td').withText('Completely satisfied').visible" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Completely satisfied').nth(4).visible" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(5).visible" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Completely satisfied\"]').visible" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).visible" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Completely satisfied').nth(5).visible" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(5).visible" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).find('div').withText('Completely satisfied').visible" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).nth(1).find('.tabulator-cell').nth(1).visible" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Completely satisfied\"]').visible" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).visible" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".visible" + }, + "callsite": "4", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer td').withText('Completely satisfied').visible" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "true" + } + } + ] + }, + { + "name": "Check commercial license caption", + "commands": [ + { + "type": "execute-async-expression", + "studio": {}, + "callsite": "0", + "expression": "\r\nvar json = {\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"simplequestion\",\r\n choices: [\r\n 0,\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [];\r\n\r\nvar initDatatables = ClientFunction((json, data, options, state) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsDatatables = new SurveyAnalyticsDatatables.DataTables(\r\n survey,\r\n data,\r\n options\r\n );\r\n window.surveyAnalyticsDatatables.state = state;\r\n window.surveyAnalyticsDatatables.render(document.getElementById(\"dataTablesContainer\"));\r\n})\r\n\r\nawait initDatatables(json, data, {});\r\n\r\n" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .sa-commercial__product').exists" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div a span span').exists" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__product').exists" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text .sa-commercial__product').exists" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text span span').exists" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div a span span').exists" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".exists" + }, + "callsite": "1", + "assertionType": "ok", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "options": {} + }, + { + "type": "execute-async-expression", + "studio": {}, + "callsite": "2", + "expression": "\r\nvar json = {\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"simplequestion\",\r\n choices: [\r\n 0,\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [];\r\n\r\nvar initDatatables = ClientFunction((json, data, options, state) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsDatatables = new SurveyAnalyticsDatatables.DataTables(\r\n survey,\r\n data,\r\n options\r\n );\r\n window.surveyAnalyticsDatatables.state = state;\r\n window.surveyAnalyticsDatatables.render(document.getElementById(\"dataTablesContainer\"));\r\n})\r\n\r\nawait initDatatables(json, data, {haveCommercialLicense: true});" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .sa-commercial__product').exists" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div a span span').exists" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__product').exists" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text .sa-commercial__product').exists" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text span span').exists" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div a span span').exists" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".exists" + }, + "callsite": "3", + "assertionType": "notOk", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "options": {} + }, + { + "type": "execute-async-expression", + "studio": {}, + "callsite": "4", + "expression": "\r\nvar json = {\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"simplequestion\",\r\n choices: [\r\n 0,\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [];\r\n\r\nvar initDatatables = ClientFunction((json, data, options, state) => {\r\n SurveyAnalyticsDatatables.DataTables.haveCommercialLicense = true;\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsDatatables = new SurveyAnalyticsDatatables.DataTables(\r\n survey,\r\n data,\r\n options\r\n );\r\n window.surveyAnalyticsDatatables.state = state;\r\n window.surveyAnalyticsDatatables.render(document.getElementById(\"dataTablesContainer\"));\r\n})\r\n\r\nawait initDatatables(json, data, {});" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .sa-commercial__product').exists" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div a span span').exists" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__product').exists" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text .sa-commercial__product').exists" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text span span').exists" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div a span span').exists" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".exists" + }, + "callsite": "5", + "assertionType": "notOk", + "actual": { + "type": "js-expr", + "value": "Selector('#dataTablesContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "options": {} + } + ] + } + ], + "beforeEachCommands": [ + { + "type": "resize-window", + "studio": {}, + "callsite": "beforeEachHook_0", + "width": 1920, + "height": 1080 + } + ] + } + ] +} \ No newline at end of file diff --git a/testCafe/tabulator/headeractions.testcafe b/testCafe/tabulator/headeractions.testcafe index 9e1a9de82..36ace96f6 100644 --- a/testCafe/tabulator/headeractions.testcafe +++ b/testCafe/tabulator/headeractions.testcafe @@ -1 +1,2012 @@ -{"fixtures":[{"name":"headeractions","pageUrl":"http://localhost:8080/examples/tabulator.html","tests":[{"name":"Check pagination","commands":[{"type":"execute-expression","studio":{"expressionCommandType":"define-function"},"callsite":"8","resultVariableName":"getPaginationInState","expression":"ClientFunction(() => {\n return surveyAnalyticsTabulator.state.pageSize;\n})"},{"type":"execute-async-expression","studio":{},"callsite":"5","expression":"var json = {\r\n elements: [\r\n {\r\n type: \"boolean\",\r\n name: \"bool\",\r\n title: \"Question 1\",\r\n },\r\n {\r\n type: \"boolean\",\r\n name: \"bool2\",\r\n title: \"Question 2\",\r\n },\r\n {\r\n type: \"boolean\",\r\n name: \"bool3\",\r\n title: \"Question 3\",\r\n },\r\n ],\r\n};\r\n\r\nvar data = [\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n }, {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n }, {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n },\r\n];\r\n\r\nvar initTabulator = ClientFunction((json, data, options) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsTabulator = new SurveyAnalyticsTabulator.Tabulator(\r\n survey,\r\n data,\r\n options\r\n );\r\n surveyAnalyticsTabulator.render(document.getElementById(\"tabulatorContainer\"));\r\n})\r\n\r\nawait initTabulator(json, data, {actionsColumnWidth: 100});"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-table').childElementCount"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('html').childElementCount"},"ruleType":"$tagName$"}],"selectorType":"CSS Selector","selectorPostfix":".childElementCount"},"callsite":"9","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-table').childElementCount"},"options":{},"expected":{"type":"js-expr","value":"5"}},{"selector":{"type":"js-expr","value":"Selector('.sa-table__entries select')"},"studio":{"selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('div select')"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__entries select')"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(1).find('div').nth(1).find('div select')"},"ruleType":"$dom$"}],"useOffsets":false,"offsetX":47,"offsetY":9},"options":{},"type":"click","callsite":"0"},{"selector":{"type":"js-expr","value":"Selector('#tabulatorContainer .sa-table__entries select option').withText('1')"},"studio":{"selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .sa-table__entries select option').withText('1')"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer option').withText('1')"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('div select option')"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('option').withText('1')"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__entries option').withText('1')"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__entries select option')"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(1).find('div').nth(1).find('div select option')"},"ruleType":"$dom$"}],"useOffsets":false,"offsetX":null,"offsetY":null},"options":{},"type":"click","callsite":"1"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-table').childElementCount"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('html').childElementCount"},"ruleType":"$tagName$"}],"selectorType":"CSS Selector","selectorPostfix":".childElementCount"},"callsite":"2","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-table').childElementCount"},"options":{},"expected":{"type":"js-expr","value":"1"}},{"type":"assertion","studio":{"assertionMode":"checkFunction","selectorPostfix":"","selectors":[]},"callsite":"10","assertionType":"eql","actual":{"type":"js-expr","value":"getPaginationInState()"},"options":{},"expected":{"type":"js-expr","value":"1"}},{"selector":{"type":"js-expr","value":"Selector('.sa-table__entries select')"},"studio":{"selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('div select')"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__entries select')"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(1).find('div').nth(1).find('div select')"},"ruleType":"$dom$"}],"useOffsets":false,"offsetX":47,"offsetY":9},"options":{},"type":"click","callsite":"6"},{"selector":{"type":"js-expr","value":"Selector('#tabulatorContainer .sa-table__entries select option').withText('10')"},"studio":{"selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .sa-table__entries select option').withText('10')"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer option').withText('1')"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('div select option')"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('option').withText('1')"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__entries option').withText('1')"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__entries select option')"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(1).find('div').nth(1).find('div select option')"},"ruleType":"$dom$"}],"useOffsets":false,"offsetX":null,"offsetY":null},"options":{},"type":"click","callsite":"7"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-table').childElementCount"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('html').childElementCount"},"ruleType":"$tagName$"}],"selectorType":"CSS Selector","selectorPostfix":".childElementCount"},"callsite":"14","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-table').childElementCount"},"options":{},"expected":{"type":"js-expr","value":"9"}},{"type":"assertion","studio":{"assertionMode":"checkFunction","selectorPostfix":"","selectors":[]},"callsite":"15","assertionType":"eql","actual":{"type":"js-expr","value":"getPaginationInState()"},"options":{},"expected":{"type":"js-expr","value":"10"}}]},{"name":"Check change locale","commands":[{"type":"execute-expression","studio":{"expressionCommandType":"define-function"},"callsite":"11","resultVariableName":"getLocaleInState","expression":"ClientFunction(() => {\n return window.surveyAnalyticsTabulator.state.locale;\n})"},{"type":"execute-async-expression","studio":{},"callsite":"0","expression":"\r\nvar json = {\r\n locale: \"ru\",\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"satisfaction\",\r\n title: {\r\n default: \"How satisfied are you with the Product?\",\r\n ru: \"Насколько Вас устраивает наш продукт?\",\r\n },\r\n choices: [\r\n {\r\n value: 0,\r\n text: {\r\n default: \"Not Satisfied\",\r\n ru: \"Coвсем не устраивает\",\r\n },\r\n },\r\n {\r\n value: 1,\r\n text: {\r\n default: \"Satisfied\",\r\n ru: \"Устраивает\",\r\n },\r\n },\r\n {\r\n value: 2,\r\n text: {\r\n default: \"Completely satisfied\",\r\n ru: \"Полностью устраивает\",\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [{ satisfaction: 0 }, { satisfaction: 1 }, { satisfaction: 2 }];\r\n\r\nvar initTabulator = ClientFunction((json, data, options) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsTabulator = new SurveyAnalyticsTabulator.Tabulator(\r\n survey,\r\n data,\r\n options\r\n );\r\n surveyAnalyticsTabulator.render(document.getElementById(\"tabulatorContainer\"));\r\n})\r\n\r\nawait initTabulator(json, data, { actionsColumnWidth: 100 });\r\n\r\n"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('Насколько Вас устраивает наш продукт?').innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div div div').nth(8).find('div div div div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('span').withText('Насколько Вас устраивает наш продукт?').innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-col-title').nth(1).find('span').withText('Насколько Вас устраивает наш продукт?').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-col-title').nth(1).nth(1).find('div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Насколько Вас устраивает наш продукт?\"] span').withText('Насколько Вас устраивает наш продукт?').innerText"},"ruleType":"$text$","ancestorRuleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Насколько Вас устраивает наш продукт?\"] div div div div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div div div').nth(8).find('div div div div span').innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"1","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('Насколько Вас устраивает наш продукт?').innerText"},"options":{},"expected":{"type":"js-expr","value":"\"Насколько Вас устраивает наш продукт?\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Coвсем не устраивает').nth(4).innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Coвсем не устраивает\"]').innerText"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Coвсем не устраивает').nth(5).innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(1).innerText"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] div').withText('Coвсем не устраивает').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] .tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Coвсем не устраивает\"]').innerText"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"2","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Coвсем не устраивает').nth(4).innerText"},"options":{},"expected":{"type":"js-expr","value":"\"Coвсем не устраивает\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Устраивает').nth(4).innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(3).innerText"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Устраивает\"]').innerText"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Устраивает').nth(5).innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(3).innerText"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] div').withText('Устраивает').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] .tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Устраивает\"]').innerText"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"3","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Устраивает').nth(4).innerText"},"options":{},"expected":{"type":"js-expr","value":"\"Устраивает\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Полностью устраивает').nth(4).innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(5).innerText"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Полностью устраивает\"]').innerText"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Полностью устраивает').nth(5).innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(5).innerText"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).find('div').withText('Полностью устраивает').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).nth(1).find('.tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Полностью устраивает\"]').innerText"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"4","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Полностью устраивает').nth(4).innerText"},"options":{},"expected":{"type":"js-expr","value":"\"Полностью устраивает\""}},{"selector":{"type":"js-expr","value":"Selector('#tabulatorContainer .sa-table__header-extension ').withText('Сменить язык')"},"studio":{"selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .sa-table__header-extension ').withText('Сменить язык')"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .sa-table__header-extension').nth(2)"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('select')"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__header-extension').nth(2)"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__header-extensions .sa-table__header-extension').nth(2)"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-table__header-extensions select')"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(1).find('div').nth(1).find('select')"},"ruleType":"$dom$"}],"useOffsets":false,"offsetX":105,"offsetY":24},"options":{},"type":"click","callsite":"5"},{"type":"click","studio":{},"callsite":"10","selector":{"type":"js-expr","value":"Selector('#tabulatorContainer .sa-table__header-extension option').withText('English')"},"options":{}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div div div').nth(8).find('div div div div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('span').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-col-title').nth(1).find('span').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-col-title').nth(1).nth(1).find('div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"How satisfied are you with the Product?\"] span').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$text$","ancestorRuleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"How satisfied are you with the Product?\"] div div div div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div div div').nth(8).find('div div div div span').innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"6","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('How satisfied are you with the Product?').innerText"},"options":{},"expected":{"type":"js-expr","value":"\"How satisfied are you with the Product?\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Not Satisfied').nth(4).innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Not Satisfied\"]').innerText"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Not Satisfied').nth(5).innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(1).innerText"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] div').withText('Not Satisfied').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] .tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Not Satisfied\"]').innerText"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"7","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Not Satisfied').nth(4).innerText"},"options":{},"expected":{"type":"js-expr","value":"\"Not Satisfied\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Satisfied').nth(6).innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(3).innerText"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Satisfied\"]').innerText"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Satisfied').nth(7).innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(3).innerText"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] div').withText('Satisfied').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] .tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Satisfied\"]').innerText"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"8","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Satisfied').nth(6).innerText"},"options":{},"expected":{"type":"js-expr","value":"\"Satisfied\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Completely satisfied').nth(4).innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(5).innerText"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Completely satisfied\"]').innerText"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Completely satisfied').nth(5).innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(5).innerText"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).find('div').withText('Completely satisfied').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).nth(1).find('.tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Completely satisfied\"]').innerText"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"9","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Completely satisfied').nth(4).innerText"},"options":{},"expected":{"type":"js-expr","value":"\"Completely satisfied\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectorPostfix":".exists"},"callsite":"13","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer .sa-table__header-extension').withText('Change Locale').exists"},"options":{},"expected":{"type":"js-expr","value":"true"}},{"type":"assertion","studio":{"assertionMode":"checkFunction","selectorPostfix":"","selectors":[]},"callsite":"12","assertionType":"eql","actual":{"type":"js-expr","value":"getLocaleInState()"},"options":{},"expected":{"type":"js-expr","value":"\"\""}}]},{"name":"Check pagination from state","commands":[{"type":"execute-async-expression","studio":{},"callsite":"0","expression":"var json = {\r\n elements: [\r\n {\r\n type: \"boolean\",\r\n name: \"bool\",\r\n title: \"Question 1\",\r\n },\r\n {\r\n type: \"boolean\",\r\n name: \"bool2\",\r\n title: \"Question 2\",\r\n },\r\n {\r\n type: \"boolean\",\r\n name: \"bool3\",\r\n title: \"Question 3\",\r\n },\r\n ],\r\n};\r\n\r\nvar data = [\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n }, {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n }, {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n },\r\n];\r\n\r\nvar initTabulator = ClientFunction((json, data, options, state) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsTabulator = new SurveyAnalyticsTabulator.Tabulator(\r\n survey,\r\n data,\r\n options\r\n );\r\n surveyAnalyticsTabulator.state = state;\r\n surveyAnalyticsTabulator.render(document.getElementById(\"tabulatorContainer\"));\r\n})\r\n\r\nawait initTabulator(json, data, { actionsColumnWidth: 100 }, { pageSize: 10 });"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-table').childElementCount"},"ruleType":"$edited$"},{"rawSelector":{"type":"js-expr","value":"Selector('html').childElementCount"},"ruleType":"$tagName$"}],"selectorType":"CSS Selector","selectorPostfix":".childElementCount"},"callsite":"1","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-table').childElementCount"},"options":{},"expected":{"type":"js-expr","value":"9"}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectorPostfix":".value"},"callsite":"2","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('.sa-table__entries select').value"},"options":{},"expected":{"type":"js-expr","value":"'10'"}}]},{"name":"Check locale from state","commands":[{"type":"execute-async-expression","studio":{},"callsite":"0","expression":"\r\nvar json = {\r\n locale: \"ru\",\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"satisfaction\",\r\n title: {\r\n default: \"How satisfied are you with the Product?\",\r\n ru: \"Насколько Вас устраивает наш продукт?\",\r\n },\r\n choices: [\r\n {\r\n value: 0,\r\n text: {\r\n default: \"Not Satisfied\",\r\n ru: \"Coвсем не устраивает\",\r\n },\r\n },\r\n {\r\n value: 1,\r\n text: {\r\n default: \"Satisfied\",\r\n ru: \"Устраивает\",\r\n },\r\n },\r\n {\r\n value: 2,\r\n text: {\r\n default: \"Completely satisfied\",\r\n ru: \"Полностью устраивает\",\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [{ satisfaction: 0 }, { satisfaction: 1 }, { satisfaction: 2 }];\r\n\r\nvar initTabulator = ClientFunction((json, data, options, state) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsTabulator = new SurveyAnalyticsTabulator.Tabulator(\r\n survey,\r\n data,\r\n options\r\n );\r\n window.surveyAnalyticsTabulator.state = state;\r\n window.surveyAnalyticsTabulator.render(document.getElementById(\"tabulatorContainer\"));\r\n})\r\n\r\nawait initTabulator(json, data, { actionsColumnWidth: 100 }, { locale: \"en\" });\r\n\r\n"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div div div').nth(8).find('div div div div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('span').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-col-title').nth(1).find('span').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-col-title').nth(1).nth(1).find('div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"How satisfied are you with the Product?\"] span').withText('How satisfied are you with the Product?').innerText"},"ruleType":"$text$","ancestorRuleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"How satisfied are you with the Product?\"] div div div div span').innerText"},"ruleType":"$dom$","ancestorRuleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div div div').nth(8).find('div div div div span').innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"6","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('How satisfied are you with the Product?').innerText"},"options":{},"expected":{"type":"js-expr","value":"\"How satisfied are you with the Product?\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Not Satisfied').nth(4).innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Not Satisfied\"]').innerText"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Not Satisfied').nth(5).innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(1).innerText"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] div').withText('Not Satisfied').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] .tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Not Satisfied\"]').innerText"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"7","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Not Satisfied').nth(4).innerText"},"options":{},"expected":{"type":"js-expr","value":"\"Not Satisfied\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Satisfied').nth(6).innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(3).innerText"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Satisfied\"]').innerText"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Satisfied').nth(7).innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(3).innerText"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] div').withText('Satisfied').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] .tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Satisfied\"]').innerText"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"8","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Satisfied').nth(6).innerText"},"options":{},"expected":{"type":"js-expr","value":"\"Satisfied\""}},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Completely satisfied').nth(4).innerText"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .tabulator-cell').nth(5).innerText"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer [title=\"Completely satisfied\"]').innerText"},"ruleType":"$attr$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('div').withText('Completely satisfied').nth(5).innerText"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.tabulator-cell').nth(5).innerText"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).find('div').withText('Completely satisfied').innerText"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).nth(1).find('.tabulator-cell').nth(1).innerText"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('[title=\"Completely satisfied\"]').innerText"},"ruleType":"$attr$"},{"rawSelector":{"type":"js-expr","value":"Selector('div div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".innerText"},"callsite":"9","assertionType":"eql","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer div').withText('Completely satisfied').nth(4).innerText"},"options":{},"expected":{"type":"js-expr","value":"\"Completely satisfied\""}}]},{"name":"Check commercial license caption","commands":[{"type":"execute-async-expression","studio":{},"callsite":"3","expression":"\r\nvar json = {\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"simplequestion\",\r\n choices: [\r\n 0,\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [];\r\n\r\nvar initTabulator = ClientFunction((json, data, options, state) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsTabulator = new SurveyAnalyticsTabulator.Tabulator(\r\n survey,\r\n data,\r\n options\r\n );\r\n window.surveyAnalyticsTabulator.state = state;\r\n window.surveyAnalyticsTabulator.render(document.getElementById(\"tabulatorContainer\"));\r\n})\r\n\r\nawait initTabulator(json, data, {});\r\n\r\n"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .sa-commercial__product').exists"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div a span span').exists"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__product').exists"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text .sa-commercial__product').exists"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text span span').exists"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('div div a span span').exists"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".exists"},"callsite":"1","assertionType":"ok","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"options":{}},{"type":"execute-async-expression","studio":{},"callsite":"2","expression":"var json = {\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"simplequestion\",\r\n choices: [\r\n 0,\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [];\r\n\r\nvar initTabulator = ClientFunction((json, data, options, state) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsTabulator = new SurveyAnalyticsTabulator.Tabulator(\r\n survey,\r\n data,\r\n options\r\n );\r\n window.surveyAnalyticsTabulator.state = state;\r\n window.surveyAnalyticsTabulator.render(document.getElementById(\"tabulatorContainer\"));\r\n})\r\n\r\nawait initTabulator(json, data, {haveCommercialLicense: true});"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .sa-commercial__product').exists"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div a span span').exists"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__product').exists"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text .sa-commercial__product').exists"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text span span').exists"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('div div a span span').exists"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".exists"},"callsite":"5","assertionType":"notOk","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"options":{}},{"type":"execute-async-expression","studio":{},"callsite":"6","expression":"var json = {\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"simplequestion\",\r\n choices: [\r\n 0,\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [];\r\n\r\nvar initTabulator = ClientFunction((json, data, options, state) => {\r\n SurveyAnalyticsTabulator.Tabulator.haveCommercialLicense = true;\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsTabulator = new SurveyAnalyticsTabulator.Tabulator(\r\n survey,\r\n data,\r\n options\r\n );\r\n window.surveyAnalyticsTabulator.state = state;\r\n window.surveyAnalyticsTabulator.render(document.getElementById(\"tabulatorContainer\"));\r\n})\r\n\r\nawait initTabulator(json, data, {haveCommercialLicense: true});"},{"type":"assertion","studio":{"assertionMode":"checkElement","selectors":[{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer .sa-commercial__product').exists"},"ruleType":"class","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('#tabulatorContainer div a span span').exists"},"ruleType":"$dom$","ancestorRuleType":"id"},{"rawSelector":{"type":"js-expr","value":"Selector('span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__product').exists"},"ruleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"ruleType":"$text$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text .sa-commercial__product').exists"},"ruleType":"class","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('.sa-commercial__text span span').exists"},"ruleType":"$dom$","ancestorRuleType":"class"},{"rawSelector":{"type":"js-expr","value":"Selector('div div a span span').exists"},"ruleType":"$dom$"}],"selectorType":"CSS Selector","selectorPostfix":".exists"},"callsite":"7","assertionType":"notOk","actual":{"type":"js-expr","value":"Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists"},"options":{}}]}],"beforeEachCommands":[{"type":"resize-window","studio":{},"callsite":"beforeEachHook_1","width":1920,"height":1080}]}]} \ No newline at end of file +{ + "fixtures": [ + { + "name": "headeractions", + "pageUrl": "http://localhost:8080/examples/tabulator.html", + "tests": [ + { + "name": "Check pagination", + "commands": [ + { + "type": "execute-expression", + "studio": { + "expressionCommandType": "define-function" + }, + "callsite": "8", + "resultVariableName": "getPaginationInState", + "expression": "ClientFunction(() => {\n return surveyAnalyticsTabulator.state.pageSize;\n})" + }, + { + "type": "execute-async-expression", + "studio": {}, + "callsite": "5", + "expression": "var json = {\r\n elements: [\r\n {\r\n type: \"boolean\",\r\n name: \"bool\",\r\n title: \"Question 1\",\r\n },\r\n {\r\n type: \"boolean\",\r\n name: \"bool2\",\r\n title: \"Question 2\",\r\n },\r\n {\r\n type: \"boolean\",\r\n name: \"bool3\",\r\n title: \"Question 3\",\r\n },\r\n ],\r\n};\r\n\r\nvar data = [\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n }, {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n }, {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n },\r\n];\r\n\r\nvar initTabulator = ClientFunction((json, data, options) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsTabulator = new SurveyAnalyticsTabulator.Tabulator(\r\n survey,\r\n data,\r\n options\r\n );\r\n surveyAnalyticsTabulator.render(document.getElementById(\"tabulatorContainer\"));\r\n})\r\n\r\nawait initTabulator(json, data, {actionsColumnWidth: 100});" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-table').childElementCount" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('html').childElementCount" + }, + "ruleType": "$tagName$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".childElementCount" + }, + "callsite": "9", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-table').childElementCount" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "5" + } + }, + { + "selector": { + "type": "js-expr", + "value": "Selector('.sa-table__entries select')" + }, + "studio": { + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('div select')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__entries select')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(1).find('div').nth(1).find('div select')" + }, + "ruleType": "$dom$" + } + ], + "useOffsets": false, + "offsetX": 47, + "offsetY": 9 + }, + "options": {}, + "type": "click", + "callsite": "0" + }, + { + "selector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .sa-table__entries select option').withText('1')" + }, + "studio": { + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .sa-table__entries select option').withText('1')" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer option').withText('1')" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('div select option')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('option').withText('1')" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__entries option').withText('1')" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__entries select option')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(1).find('div').nth(1).find('div select option')" + }, + "ruleType": "$dom$" + } + ], + "useOffsets": false, + "offsetX": null, + "offsetY": null + }, + "options": {}, + "type": "click", + "callsite": "1" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-table').childElementCount" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('html').childElementCount" + }, + "ruleType": "$tagName$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".childElementCount" + }, + "callsite": "2", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-table').childElementCount" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "1" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkFunction", + "selectorPostfix": "", + "selectors": [] + }, + "callsite": "10", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "getPaginationInState()" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "1" + } + }, + { + "selector": { + "type": "js-expr", + "value": "Selector('.sa-table__entries select')" + }, + "studio": { + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('div select')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__entries select')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(1).find('div').nth(1).find('div select')" + }, + "ruleType": "$dom$" + } + ], + "useOffsets": false, + "offsetX": 47, + "offsetY": 9 + }, + "options": {}, + "type": "click", + "callsite": "6" + }, + { + "selector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .sa-table__entries select option').withText('10')" + }, + "studio": { + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .sa-table__entries select option').withText('10')" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer option').withText('1')" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('div select option')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('option').withText('1')" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__entries option').withText('1')" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__entries select option')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(1).find('div').nth(1).find('div select option')" + }, + "ruleType": "$dom$" + } + ], + "useOffsets": false, + "offsetX": null, + "offsetY": null + }, + "options": {}, + "type": "click", + "callsite": "7" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-table').childElementCount" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('html').childElementCount" + }, + "ruleType": "$tagName$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".childElementCount" + }, + "callsite": "14", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-table').childElementCount" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "9" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkFunction", + "selectorPostfix": "", + "selectors": [] + }, + "callsite": "15", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "getPaginationInState()" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "10" + } + } + ] + }, + { + "name": "Check change locale", + "commands": [ + { + "type": "execute-expression", + "studio": { + "expressionCommandType": "define-function" + }, + "callsite": "11", + "resultVariableName": "getLocaleInState", + "expression": "ClientFunction(() => {\n return window.surveyAnalyticsTabulator.state.locale;\n})" + }, + { + "type": "execute-async-expression", + "studio": {}, + "callsite": "0", + "expression": "\r\nvar json = {\r\n locale: \"ru\",\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"satisfaction\",\r\n title: {\r\n default: \"How satisfied are you with the Product?\",\r\n ru: \"Насколько Вас устраивает наш продукт?\",\r\n },\r\n choices: [\r\n {\r\n value: 0,\r\n text: {\r\n default: \"Not Satisfied\",\r\n ru: \"Coвсем не устраивает\",\r\n },\r\n },\r\n {\r\n value: 1,\r\n text: {\r\n default: \"Satisfied\",\r\n ru: \"Устраивает\",\r\n },\r\n },\r\n {\r\n value: 2,\r\n text: {\r\n default: \"Completely satisfied\",\r\n ru: \"Полностью устраивает\",\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [{ satisfaction: 0 }, { satisfaction: 1 }, { satisfaction: 2 }];\r\n\r\nvar initTabulator = ClientFunction((json, data, options) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsTabulator = new SurveyAnalyticsTabulator.Tabulator(\r\n survey,\r\n data,\r\n options\r\n );\r\n surveyAnalyticsTabulator.render(document.getElementById(\"tabulatorContainer\"));\r\n})\r\n\r\nawait initTabulator(json, data, { actionsColumnWidth: 100 });\r\n\r\n" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('Насколько Вас устраивает наш продукт?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div div div').nth(8).find('div div div div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('span').withText('Насколько Вас устраивает наш продукт?').innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-col-title').nth(1).find('span').withText('Насколько Вас устраивает наш продукт?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-col-title').nth(1).nth(1).find('div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Насколько Вас устраивает наш продукт?\"] span').withText('Насколько Вас устраивает наш продукт?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Насколько Вас устраивает наш продукт?\"] div div div div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div div div').nth(8).find('div div div div span').innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "1", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('Насколько Вас устраивает наш продукт?').innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"Насколько Вас устраивает наш продукт?\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Coвсем не устраивает').nth(4).innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Coвсем не устраивает\"]').innerText" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Coвсем не устраивает').nth(5).innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(1).innerText" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] div').withText('Coвсем не устраивает').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] .tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Coвсем не устраивает\"]').innerText" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "2", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Coвсем не устраивает').nth(4).innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"Coвсем не устраивает\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Устраивает').nth(4).innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(3).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Устраивает\"]').innerText" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Устраивает').nth(5).innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(3).innerText" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] div').withText('Устраивает').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] .tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Устраивает\"]').innerText" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "3", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Устраивает').nth(4).innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"Устраивает\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Полностью устраивает').nth(4).innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(5).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Полностью устраивает\"]').innerText" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Полностью устраивает').nth(5).innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(5).innerText" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).find('div').withText('Полностью устраивает').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).nth(1).find('.tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Полностью устраивает\"]').innerText" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "4", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Полностью устраивает').nth(4).innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"Полностью устраивает\"" + } + }, + { + "selector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .sa-table__header-extension ').withText('Сменить язык')" + }, + "studio": { + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .sa-table__header-extension ').withText('Сменить язык')" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .sa-table__header-extension').nth(2)" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(1).find('div').nth(1).find('select')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__header-extension').nth(2)" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__header-extensions .sa-table__header-extension').nth(2)" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-table__header-extensions select')" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(1).find('div').nth(1).find('select')" + }, + "ruleType": "$dom$" + } + ], + "useOffsets": false, + "offsetX": 105, + "offsetY": 24 + }, + "options": {}, + "type": "click", + "callsite": "5" + }, + { + "type": "click", + "studio": {}, + "callsite": "10", + "selector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .sa-table__header-extension option').withText('English')" + }, + "options": {} + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div div div').nth(8).find('div div div div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('span').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-col-title').nth(1).find('span').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-col-title').nth(1).nth(1).find('div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"How satisfied are you with the Product?\"] span').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"How satisfied are you with the Product?\"] div div div div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div div div').nth(8).find('div div div div span').innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "6", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('How satisfied are you with the Product?').innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"How satisfied are you with the Product?\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Not Satisfied').nth(4).innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Not Satisfied\"]').innerText" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Not Satisfied').nth(5).innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(1).innerText" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] div').withText('Not Satisfied').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] .tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Not Satisfied\"]').innerText" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "7", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Not Satisfied').nth(4).innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"Not Satisfied\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Satisfied').nth(6).innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(3).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Satisfied\"]').innerText" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Satisfied').nth(7).innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(3).innerText" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] div').withText('Satisfied').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] .tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Satisfied\"]').innerText" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "8", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Satisfied').nth(6).innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"Satisfied\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Completely satisfied').nth(4).innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(5).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Completely satisfied\"]').innerText" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Completely satisfied').nth(5).innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(5).innerText" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).find('div').withText('Completely satisfied').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).nth(1).find('.tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Completely satisfied\"]').innerText" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "9", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Completely satisfied').nth(4).innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"Completely satisfied\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectorPostfix": ".exists" + }, + "callsite": "13", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .sa-table__header-extension').withText('Change Locale').exists" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "true" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkFunction", + "selectorPostfix": "", + "selectors": [] + }, + "callsite": "12", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "getLocaleInState()" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"\"" + } + } + ] + }, + { + "name": "Check pagination from state", + "commands": [ + { + "type": "execute-async-expression", + "studio": {}, + "callsite": "0", + "expression": "var json = {\r\n elements: [\r\n {\r\n type: \"boolean\",\r\n name: \"bool\",\r\n title: \"Question 1\",\r\n },\r\n {\r\n type: \"boolean\",\r\n name: \"bool2\",\r\n title: \"Question 2\",\r\n },\r\n {\r\n type: \"boolean\",\r\n name: \"bool3\",\r\n title: \"Question 3\",\r\n },\r\n ],\r\n};\r\n\r\nvar data = [\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n }, {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n }, {\r\n bool: true,\r\n bool2: false,\r\n bool3: true,\r\n },\r\n {\r\n bool: true,\r\n bool2: false,\r\n bool3: false,\r\n },\r\n {\r\n bool: false,\r\n bool2: true,\r\n bool3: false,\r\n },\r\n];\r\n\r\nvar initTabulator = ClientFunction((json, data, options, state) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsTabulator = new SurveyAnalyticsTabulator.Tabulator(\r\n survey,\r\n data,\r\n options\r\n );\r\n surveyAnalyticsTabulator.state = state;\r\n surveyAnalyticsTabulator.render(document.getElementById(\"tabulatorContainer\"));\r\n})\r\n\r\nawait initTabulator(json, data, { actionsColumnWidth: 100 }, { pageSize: 10 });" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-table').childElementCount" + }, + "ruleType": "$edited$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('html').childElementCount" + }, + "ruleType": "$tagName$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".childElementCount" + }, + "callsite": "1", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-table').childElementCount" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "9" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectorPostfix": ".value" + }, + "callsite": "2", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('.sa-table__entries select').value" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "'10'" + } + } + ] + }, + { + "name": "Check locale from state", + "commands": [ + { + "type": "execute-async-expression", + "studio": {}, + "callsite": "0", + "expression": "\r\nvar json = {\r\n locale: \"ru\",\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"satisfaction\",\r\n title: {\r\n default: \"How satisfied are you with the Product?\",\r\n ru: \"Насколько Вас устраивает наш продукт?\",\r\n },\r\n choices: [\r\n {\r\n value: 0,\r\n text: {\r\n default: \"Not Satisfied\",\r\n ru: \"Coвсем не устраивает\",\r\n },\r\n },\r\n {\r\n value: 1,\r\n text: {\r\n default: \"Satisfied\",\r\n ru: \"Устраивает\",\r\n },\r\n },\r\n {\r\n value: 2,\r\n text: {\r\n default: \"Completely satisfied\",\r\n ru: \"Полностью устраивает\",\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [{ satisfaction: 0 }, { satisfaction: 1 }, { satisfaction: 2 }];\r\n\r\nvar initTabulator = ClientFunction((json, data, options, state) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsTabulator = new SurveyAnalyticsTabulator.Tabulator(\r\n survey,\r\n data,\r\n options\r\n );\r\n window.surveyAnalyticsTabulator.state = state;\r\n window.surveyAnalyticsTabulator.render(document.getElementById(\"tabulatorContainer\"));\r\n})\r\n\r\nawait initTabulator(json, data, { actionsColumnWidth: 100 }, { locale: \"en\" });\r\n\r\n" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div div div').nth(8).find('div div div div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('span').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-col-title').nth(1).find('span').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-col-title').nth(1).nth(1).find('div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"How satisfied are you with the Product?\"] span').withText('How satisfied are you with the Product?').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"How satisfied are you with the Product?\"] div div div div span').innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div div div').nth(8).find('div div div div span').innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "6", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('How satisfied are you with the Product?').innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"How satisfied are you with the Product?\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Not Satisfied').nth(4).innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Not Satisfied\"]').innerText" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Not Satisfied').nth(5).innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(1).innerText" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] div').withText('Not Satisfied').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"] .tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Not Satisfied\"]').innerText" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div div').nth(3).innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "7", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Not Satisfied').nth(4).innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"Not Satisfied\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Satisfied').nth(6).innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(3).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Satisfied\"]').innerText" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Satisfied').nth(7).innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(3).innerText" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] div').withText('Satisfied').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-e\"] .tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Satisfied\"]').innerText" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div').nth(7).find('div').nth(3).innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "8", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Satisfied').nth(6).innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"Satisfied\"" + } + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Completely satisfied').nth(4).innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .tabulator-cell').nth(5).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer [title=\"Completely satisfied\"]').innerText" + }, + "ruleType": "$attr$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div').withText('Completely satisfied').nth(5).innerText" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.tabulator-cell').nth(5).innerText" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).find('div').withText('Completely satisfied').innerText" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[class^=\"tabulator-row tabulator-selectable tabulator-row-o\"]').nth(1).nth(1).find('.tabulator-cell').nth(1).innerText" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('[title=\"Completely satisfied\"]').innerText" + }, + "ruleType": "$attr$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div').nth(6).find('div').nth(19).find('div div').nth(14).find('div').nth(3).innerText" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".innerText" + }, + "callsite": "9", + "assertionType": "eql", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div').withText('Completely satisfied').nth(4).innerText" + }, + "options": {}, + "expected": { + "type": "js-expr", + "value": "\"Completely satisfied\"" + } + } + ] + }, + { + "name": "Check commercial license caption", + "commands": [ + { + "type": "execute-async-expression", + "studio": {}, + "callsite": "3", + "expression": "\r\nvar json = {\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"simplequestion\",\r\n choices: [\r\n 0,\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [];\r\n\r\nvar initTabulator = ClientFunction((json, data, options, state) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsTabulator = new SurveyAnalyticsTabulator.Tabulator(\r\n survey,\r\n data,\r\n options\r\n );\r\n window.surveyAnalyticsTabulator.state = state;\r\n window.surveyAnalyticsTabulator.render(document.getElementById(\"tabulatorContainer\"));\r\n})\r\n\r\nawait initTabulator(json, data, {});\r\n\r\n" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .sa-commercial__product').exists" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div a span span').exists" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__product').exists" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text .sa-commercial__product').exists" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text span span').exists" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div a span span').exists" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".exists" + }, + "callsite": "1", + "assertionType": "ok", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "options": {} + }, + { + "type": "execute-async-expression", + "studio": {}, + "callsite": "2", + "expression": "var json = {\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"simplequestion\",\r\n choices: [\r\n 0,\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [];\r\n\r\nvar initTabulator = ClientFunction((json, data, options, state) => {\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsTabulator = new SurveyAnalyticsTabulator.Tabulator(\r\n survey,\r\n data,\r\n options\r\n );\r\n window.surveyAnalyticsTabulator.state = state;\r\n window.surveyAnalyticsTabulator.render(document.getElementById(\"tabulatorContainer\"));\r\n})\r\n\r\nawait initTabulator(json, data, {haveCommercialLicense: true});" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .sa-commercial__product').exists" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div a span span').exists" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__product').exists" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text .sa-commercial__product').exists" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text span span').exists" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div a span span').exists" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".exists" + }, + "callsite": "5", + "assertionType": "notOk", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "options": {} + }, + { + "type": "execute-async-expression", + "studio": {}, + "callsite": "6", + "expression": "var json = {\r\n questions: [\r\n {\r\n type: \"dropdown\",\r\n name: \"simplequestion\",\r\n choices: [\r\n 0,\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nvar data = [];\r\n\r\nvar initTabulator = ClientFunction((json, data, options, state) => {\r\n SurveyAnalyticsTabulator.Tabulator.haveCommercialLicense = true;\r\n var survey = new Survey.SurveyModel(json);\r\n window.surveyAnalyticsTabulator = new SurveyAnalyticsTabulator.Tabulator(\r\n survey,\r\n data,\r\n options\r\n );\r\n window.surveyAnalyticsTabulator.state = state;\r\n window.surveyAnalyticsTabulator.render(document.getElementById(\"tabulatorContainer\"));\r\n})\r\n\r\nawait initTabulator(json, data, {haveCommercialLicense: true});" + }, + { + "type": "assertion", + "studio": { + "assertionMode": "checkElement", + "selectors": [ + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer .sa-commercial__product').exists" + }, + "ruleType": "class", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer div a span span').exists" + }, + "ruleType": "$dom$", + "ancestorRuleType": "id" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__product').exists" + }, + "ruleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "ruleType": "$text$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text .sa-commercial__product').exists" + }, + "ruleType": "class", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('.sa-commercial__text span span').exists" + }, + "ruleType": "$dom$", + "ancestorRuleType": "class" + }, + { + "rawSelector": { + "type": "js-expr", + "value": "Selector('div div a span span').exists" + }, + "ruleType": "$dom$" + } + ], + "selectorType": "CSS Selector", + "selectorPostfix": ".exists" + }, + "callsite": "7", + "assertionType": "notOk", + "actual": { + "type": "js-expr", + "value": "Selector('#tabulatorContainer span').withText('Please purchase a SurveyJS Analytics developer lic').nth(1).exists" + }, + "options": {} + } + ] + } + ], + "beforeEachCommands": [ + { + "type": "resize-window", + "studio": {}, + "callsite": "beforeEachHook_1", + "width": 1920, + "height": 1080 + } + ] + } + ] +} \ No newline at end of file