Exemplo n.º 1
0
    it('should detect multiple attributes', () => {
      var cssSelector = CssSelector.parse('input[type=text][control]')[0];
      expect(cssSelector.element).toEqual('input');
      expect(cssSelector.attrs).toEqual(['type', 'text', 'control', '']);

      expect(cssSelector.toString()).toEqual('input[type=text][control]');
    });
Exemplo n.º 2
0
 function parse() {
   var result = [];
   for (var i = 0; i < count; i++) {
     result.push(CssSelector.parse(fixedSelectorStrings[i]));
   }
   return result;
 }
Exemplo n.º 3
0
    it('should select by class name case insensitive', () => {
      matcher.addSelectables(s1 = CssSelector.parse('.someClass'), 1);
      matcher.addSelectables(s2 = CssSelector.parse('.someClass.class2'), 2);

      expect(matcher.match(CssSelector.parse('.SOMEOTHERCLASS')[0], selectableCollector))
          .toEqual(false);
      expect(matched).toEqual([]);

      expect(matcher.match(CssSelector.parse('.SOMECLASS')[0], selectableCollector)).toEqual(true);
      expect(matched).toEqual([s1[0], 1]);

      reset();
      expect(matcher.match(CssSelector.parse('.someClass.class2')[0], selectableCollector))
          .toEqual(true);
      expect(matched).toEqual([s1[0], 1, s2[0], 2]);
    });
Exemplo n.º 4
0
 it('should detect lists of selectors', () => {
   var cssSelectors = CssSelector.parse('.someclass,[attrname=attrvalue], sometag');
   expect(cssSelectors.length).toEqual(3);
   expect(cssSelectors[0].classNames).toEqual(['someclass']);
   expect(cssSelectors[1].attrs).toEqual(['attrname', 'attrvalue']);
   expect(cssSelectors[2].element).toEqual('sometag');
 });
Exemplo n.º 5
0
 it('should detect multiple parts', () => {
   var cssSelector = CssSelector.parse('sometag[attrname=attrvalue].someclass')[0];
   expect(cssSelector.element).toEqual('sometag');
   expect(cssSelector.attrs).toEqual(['attrname', 'attrvalue']);
   expect(cssSelector.classNames).toEqual(['someclass']);
   expect(cssSelector.toString()).toEqual('sometag.someclass[attrname=attrvalue]');
 });
Exemplo n.º 6
0
 it('should detect :not without truthy', () => {
   var cssSelector = CssSelector.parse(':not([attrname=attrvalue].someclass)')[0];
   expect(cssSelector.element).toEqual("*");
   var notSelector = cssSelector.notSelector;
   expect(notSelector.attrs).toEqual(['attrname', 'attrvalue']);
   expect(notSelector.classNames).toEqual(['someclass']);
   expect(cssSelector.toString()).toEqual('*:not(.someclass[attrname=attrvalue])');
 });
Exemplo n.º 7
0
 it('should detect lists of selectors with :not', () => {
   var cssSelectors = CssSelector.parse('input[type=text], :not(textarea), textbox:not(.special)');
   expect(cssSelectors.length).toEqual(3);
   expect(cssSelectors[0].element).toEqual('input');
   expect(cssSelectors[0].attrs).toEqual(['type', 'text']);
   expect(cssSelectors[1].element).toEqual('*');
   expect(cssSelectors[1].notSelector.element).toEqual('textarea');
   expect(cssSelectors[2].element).toEqual('textbox');
   expect(cssSelectors[2].notSelector.classNames).toEqual(['special']);
 });
Exemplo n.º 8
0
 constructor(parser: Parser, directives:List<DirectiveMetadata>) {
   super();
   this._parser = parser;
   this._selectorMatcher = new SelectorMatcher();
   this._directives = directives;
   for (var i=0; i<directives.length; i++) {
     var selector = CssSelector.parse(directives[i].selector);
     this._selectorMatcher.addSelectables(selector, i);
   }
 }
Exemplo n.º 9
0
 it('should detect :not', () => {
   var cssSelector = CssSelector.parse('sometag:not([attrname=attrvalue].someclass)')[0];
   expect(cssSelector.element).toEqual('sometag');
   expect(cssSelector.attrs.length).toEqual(0);
   expect(cssSelector.classNames.length).toEqual(0);
   var notSelector = cssSelector.notSelector;
   expect(notSelector.element).toEqual(null);
   expect(notSelector.attrs).toEqual(['attrname', 'attrvalue']);
   expect(notSelector.classNames).toEqual(['someclass']);
   expect(cssSelector.toString()).toEqual('sometag:not(.someclass[attrname=attrvalue])');
 });
Exemplo n.º 10
0
 constructor(parser: Parser, directives: List<DirectiveMetadata>) {
   this._parser = parser;
   this._selectorMatcher = new SelectorMatcher();
   this._directives = directives;
   for (var i = 0; i < directives.length; i++) {
     var directive = directives[i];
     var selector = CssSelector.parse(directive.selector);
     this._ensureComponentOnlyHasElementSelector(selector, directive);
     this._selectorMatcher.addSelectables(selector, i);
   }
 }