Exemplo n.º 1
0
 it('should select by element name case insensitive', () => {
   matcher.addSelectables(s1 = CssSelector.parse('someTag'), 1);
   expect(matcher.match(CssSelector.parse('SOMEOTHERTAG')[0], selectableCollector)).toEqual(false);
   expect(matched).toEqual([]);
   expect(matcher.match(CssSelector.parse('SOMETAG')[0], selectableCollector)).toEqual(true);
   expect(matched).toEqual([s1[0], 1]);
 });
Exemplo n.º 2
0
 it('should select by attr name and value case insensitive', () => {
   matcher.addSelectables(s1 = CssSelector.parse('[someAttr=someValue]'), 1);
   expect(matcher.match(CssSelector.parse('[SOMEATTR=SOMEOTHERATTR]')[0], selectableCollector)).toEqual(false);
   expect(matched).toEqual([]);
   expect(matcher.match(CssSelector.parse('[SOMEATTR=SOMEVALUE]')[0], selectableCollector)).toEqual(true);
   expect(matched).toEqual([s1[0], 1]);
 });
Exemplo n.º 3
0
    it('should not select twice with two matches in a list', () => {
      matcher.addSelectables(s1 = CssSelector.parse('input, .someClass'), 1);

      expect(matcher.match(CssSelector.parse('input.someclass')[0], selectableCollector))
          .toEqual(true);
      expect(matched.length).toEqual(2);
      expect(matched).toEqual([s1[0], 1]);
    });
Exemplo n.º 4
0
 it('should select with one match in a list', () => {
   matcher.addSelectables(s1 = CssSelector.parse('input[type=text], textbox'), 1);
   expect(matcher.match(CssSelector.parse('textbox')[0], selectableCollector)).toEqual(true);
   expect(matched).toEqual([s1[1], 1]);
   reset();
   expect(matcher.match(CssSelector.parse('input[type=text]')[0], selectableCollector)).toEqual(true);
   expect(matched).toEqual([s1[0], 1]);
 });
Exemplo n.º 5
0
 it('should select with a non matching :not selector', () => {
   matcher.addSelectables(s1 = CssSelector.parse('p:not(.someClass)'), 1);
   matcher.addSelectables(s2 = CssSelector.parse('p:not(.someOtherClass[someAttr])'), 2);
   matcher.addSelectables(s3 = CssSelector.parse(':not(.someClass)'), 3);
   matcher.addSelectables(s4 = CssSelector.parse(':not(.someOtherClass[someAttr])'), 4);
   expect(matcher.match(CssSelector.parse('p[someOtherAttr].someOtherClass')[0], selectableCollector)).toEqual(true);
   expect(matched).toEqual([s1[0], 1, s2[0], 2, s3[0], 3, s4[0], 4]);
 });
Exemplo n.º 6
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.º 7
0
    it('should select independent of the order in the css selector', () => {
      matcher.addSelectables(s1 = CssSelector.parse('[someAttr].someClass'), 1);
      matcher.addSelectables(s2 = CssSelector.parse('.someClass[someAttr]'), 2);
      matcher.addSelectables(s3 = CssSelector.parse('.class1.class2'), 3);
      matcher.addSelectables(s4 = CssSelector.parse('.class2.class1'), 4);

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

      reset();
      expect(matcher.match(CssSelector.parse('.someClass[someAttr]')[0], selectableCollector))
          .toEqual(true);
      expect(matched).toEqual([s1[0], 1, s2[0], 2]);

      reset();
      expect(matcher.match(CssSelector.parse('.class1.class2')[0], selectableCollector))
          .toEqual(true);
      expect(matched).toEqual([s3[0], 3, s4[0], 4]);

      reset();
      expect(matcher.match(CssSelector.parse('.class2.class1')[0], selectableCollector))
          .toEqual(true);
      expect(matched).toEqual([s4[0], 4, s3[0], 3]);
    });
Exemplo n.º 8
0
 function parse() {
   var result = [];
   for (var i = 0; i < count; i++) {
     ListWrapper.push(result, CssSelector.parse(fixedSelectorStrings[i]));
   }
   return result;
 }
Exemplo n.º 9
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.º 10
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]');
    });