UNPKG

siesta-lite

Version:

Stress-free JavaScript unit testing and functional testing tool, works in NodeJS and browsers

167 lines (138 loc) 5.2 kB
/* Siesta 5.6.1 Copyright(c) 2009-2022 Bryntum AB https://bryntum.com/contact https://bryntum.com/products/siesta/license */ Class('Ariadne.ExtJSDomQueryFinder.Identifier.CssClass', { isa : Ariadne.DomQueryFinder.Identifier.CssClass, does : Ariadne.ExtJSDomQueryFinder.Role.ExtJSHelper, has : { ignoreCssClasses : function () { return [ // ignore focus, hover specific CSS classes '-focus$', '-focused$', '-over$', '-hover$', '-selected$', '-active$', '-default$', 'x-form-dirty', 'x-grid-dirty-cell', 'x-unselectable', '-toolbar-item$', '-item-disabled', 'x-form-empty-field', 'x-grid-item-alt' // , // 'sch-event-inner', // 'x-table-layout-cell' ] }, lessRelevantCssClasses : function () { return [ 'x-form-field', 'x-form-required-field', '-layout', '-inner$', '-default$', '-box-', '^x-tree-elbow' ] } }, methods : { initialize : function () { this.SUPERARG(arguments) var lessRelevantCssClasses = this.lessRelevantCssClasses lessRelevantCssClasses.forEach(function (cls, index) { lessRelevantCssClasses[ index ] = new RegExp(cls) }) }, getWeightForCssClass : function (cls, target) { var prefix = this.getExtCssClassPrefixRegexp(target) if ( this.lessRelevantCssClasses.some(function (lessRelevantClsRegExp) { return lessRelevantClsRegExp.test(cls) }) ) return 1000 // no Ext or css class belongs to Ext - normal weight if (!prefix || prefix.test(cls)) return 995 // user-assigned css class - a bit lower weight to always prefer such classes return 950 }, ignoreCssClass : function (cls, dom) { var cmp = this.getComponentOfDomElement(dom) if (cmp && this.valueIsAutoGeneratedByComponent(cmp, cls)) return true return this.SUPER(cls, dom) }, processCssClasses : function (classes, target) { var prefix = this.getExtCssClassPrefixRegexp(target) if (!prefix) return classes classes.sort(function (cls1, cls2) { var test1 = prefix.test(cls1) var test2 = prefix.test(cls2) if (test1 && !test2) return 1 if (!test1 && test2) return -1 return 0 }) return classes } } }); // old ignore classes // ignoreClasses : function () { // return [ // 'x-body', // 'x-box-item', // 'x-btn-wrap', // 'x-component', // too generic // 'x-datepicker-cell', // 'x-fit-item', // 'x-form-field', // too generic // 'x-form-empty-field', // 'x-form-required-field', // 'x-grid-cell-inner', // we prefer "x-grid-cell" // 'x-grid-view', // 'x-grid-resize-marker', // 'x-layout', // 'x-menu-item-link', // 'x-noicon', // 'x-resizable-overlay', // 'x-tab-noicon', // 'x-tab-default-noicon', // 'x-tab-default', // 'x-tab-inner', // 'x-tab-button', // 'x-tab-text', // 'x-tab-icon', // 'x-tab-wrap', // 'x-tree-icon', // 'x-frame-mc', // 'x-trigger-index-', // 'x-unselectable', // 'x-grid-with-row-lines', // '^x-autocontainer-', // '^x-btn-inner', // 'x-column-header-text-inner', // '^x-noborder', // 'x-box-inner', // 'x-monthpicker-item-inner', // 'x-box-target', // 'x-dd-drag-proxy', // // Ext3 panel body classes // 'x-panel-bwrap', // // // Bryntum generic selectors // 'sch-gantt-terminal$', // 'sch-gantt-task-handle$', // 'sch-gantt-item$', // 'sch-terminal$', // 'sch-resizable-handle$', // // // In case someone left garbage in the DOM // 'null', // 'undefined' // ];