siesta-lite
Version:
Stress-free JavaScript unit testing and functional testing tool, works in NodeJS and browsers
67 lines (52 loc) • 2.48 kB
JavaScript
/*
Siesta 5.6.1
Copyright(c) 2009-2022 Bryntum AB
https://bryntum.com/contact
https://bryntum.com/products/siesta/license
*/
Class('Ariadne.ExtJSComponentQueryFinder.Identifier.Id', {
isa : Ariadne.QueryFinder.Identifier,
does : [
Ariadne.ExtJSComponentQueryFinder.Role.ExtJSComponentHelper,
Ariadne.ExtJSDomQueryFinder.Role.ExtJSHelper
],
methods : {
identify : function (target, root, maze) {
var id = target.id
if (id && !this.ignoreComponentId(id, target, maze.finder.Ext)) {
// the 1st encountered id will be assigned with weight -100000 in case of `enableMandatoryId`
// it should be guaranteed that this id will belong to lowest parent with id (currently this holds)
var weight = maze.encounteredMandatoryId || !this.finder.enableMandatoryId ? 1000 : -100000
maze.encounteredMandatoryId = true
return {
query : '#' + this.escapeCQSelector(id),
weight : weight,
isId : true
}
} else
return null
},
ignoreComponentId : function (id, comp, Ext) {
return this.componentHasAutoGeneratedId(comp, Ext)
}
}
});
// old ignore xtypes and classnames
// // Table view is always in panel which seems more 'relevant'
// // headerContainer is rarely useful (remember though, a grid column is also a headercontainer)
// ignoreCQSelectors : function () {
// return [
// 'viewport', // Adds no relevance, like matching BODY in a dom query
// 'tableview', // Always sits in a grid panel
// 'treeview', // Always sits in a tree panel
// 'gridview', // Always sits in a grid panel
// 'surface', // "belongs" to a chart but does not respond to CQ: https://www.sencha.com/forum/showthread.php?308911-Querying-chart-gt-surface-doesn-t-work&p=1128263#post1128263
// '>>headercontainer[isColumn=undefined]'
// ];
// },
//
// ignoreExtClassNamesRe : function () {
// return [
// 'Ext\\.dd\\.StatusProxy'
// ].join('|');
// }