UNPKG

siesta-lite

Version:

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

71 lines (49 loc) 2.1 kB
/* Siesta 5.6.1 Copyright(c) 2009-2022 Bryntum AB https://bryntum.com/contact https://bryntum.com/products/siesta/license */ Class('Ariadne.DomQueryFinder.Identifier.CssClass', { isa : Ariadne.QueryFinder.Identifier, does : Ariadne.DomQueryFinder.Role.DomHelper, has : { // an array of strings, which will be join with "|" and converted to RegExp // values from the class definition will be combined with the values provided to the instance ignoreCssClasses : function () { return [ '^null$', '^undefined$' ] }, ignoreCssClassesRegExp : null }, methods : { initialize : function (cfg) { var ignoreCssClasses = this.mergeArrayAttributeFromClassHierarchy('ignoreCssClasses', cfg) this.ignoreCssClassesRegExp = ignoreCssClasses.length ? new RegExp(ignoreCssClasses.join('|')) : /\0/ }, identify : function (target, root, maze) { var classes = this.processCssClasses(this.getCssClasses(target), target) var segments = [] for (var i = 0; i < classes.length; i++) { // use object notation for segment, so subclasses can call SUPER and assign custom weights segments.push({ query : '.' + this.escapeDomSelector(classes[ i ], true), weight : this.getWeightForCssClass(classes[ i ], target) }) } return segments }, getWeightForCssClass : function (cls, target) { return 1000 }, ignoreCssClass : function (cls, dom) { return this.ignoreCssClassesRegExp.test(cls) }, processCssClasses : function (classes, target) { return classes } } // eof methods });