Example #1
0
      it('should stop walking the tree when compileChildren is false', () => {
        var element = el('<div id="1"><template id="2" ignore-children><span id="3"></span></template></div>');

        var step0Log = [];
        var pipeline = new CompilePipeline([new IgnoreChildrenStep(), createLoggerStep(step0Log)]);
        var results = pipeline.process(element);

        expect(step0Log).toEqual(['1', '1<2']);
        expect(resultIdLog(results)).toEqual(['1', '2']);
      });
Example #2
0
 it('should inherit elementBinderBuilders to children', () => {
   var element = el('<div bind><div><span bind><span></span></span></div></div>');
   var pipeline = new CompilePipeline([new MockStep((parent, current, control) => {
     if (isPresent(DOM.getAttribute(current.element, 'bind'))) {
       current.bindElement();
     }
   })]);
   var results = pipeline.process(element);
   expect(results[0].inheritedElementBinder).toBe(results[1].inheritedElementBinder);
   expect(results[2].inheritedElementBinder).toBe(results[3].inheritedElementBinder);
 });
Example #3
0
 it('should inherit protoViewBuilders to children', () => {
   var element = el('<div><div><span viewroot><span></span></span></div></div>');
   var pipeline = new CompilePipeline([new MockStep((parent, current, control) => {
     if (isPresent(DOM.getAttribute(current.element, 'viewroot'))) {
       current.inheritedProtoView = new ProtoViewBuilder(current.element, ProtoViewDto.EMBEDDED_VIEW_TYPE);
     }
   })]);
   var results = pipeline.process(element);
   expect(results[0].inheritedProtoView).toBe(results[1].inheritedProtoView);
   expect(results[2].inheritedProtoView).toBe(results[3].inheritedProtoView);
 });
Example #4
0
    it('should not execute further steps when ignoreCurrentElement has been called', () => {
      var element = el('<div id="1"><span id="2" ignore-current></span><span id="3"></span></div>');
      var logs = [];
      var pipeline = new CompilePipeline([
        new IgnoreCurrentElementStep(),
        createLoggerStep(logs),
      ]);
      var results = pipeline.process(element);

      expect(results.length).toBe(2);
      expect(logs).toEqual(['1', '1<3'])
    });
Example #5
0
 it('should report the new parent to the following processor and the result', () => {
   var element = el('<div id="1"><span wrap0="1" id="2"><b id="3"></b></span></div>');
   var step0Log = [];
   var step1Log = [];
   var pipeline = new CompilePipeline([
     createWrapperStep('wrap0', step0Log),
     createLoggerStep(step1Log)
   ]);
   var result = pipeline.process(element);
   expect(step0Log).toEqual(['1', '1<2', '2<3']);
   expect(step1Log).toEqual(['1', '1<wrap0#0', 'wrap0#0<2', '2<3']);
   expect(resultIdLog(result)).toEqual(['1', 'wrap0#0', '2', '3']);
 });
Example #6
0
 it('should allow to add multiple parents by the same processor', () => {
   var element = el('<div id="1"><span wrap0="2" id="2"><b id="3"></b></span></div>');
   var step0Log = [];
   var step1Log = [];
   var pipeline = new CompilePipeline([
     createWrapperStep('wrap0', step0Log),
     createLoggerStep(step1Log)
   ]);
   var result = pipeline.process(element);
   expect(step0Log).toEqual(['1', '1<2', '2<3']);
   expect(step1Log).toEqual(['1', '1<wrap0#0', 'wrap0#0<wrap0#1', 'wrap0#1<2', '2<3']);
   expect(resultIdLog(result)).toEqual(['1', 'wrap0#0', 'wrap0#1', '2', '3']);
 });
Example #7
0
 it('should calculate distanceToParent / parent correctly', () => {
   var element = el('<div bind><div bind></div><div><div bind></div></div></div>');
   var pipeline = new CompilePipeline([new MockStep((parent, current, control) => {
     if (isPresent(DOM.getAttribute(current.element, 'bind'))) {
       current.bindElement();
     }
   })]);
   var results = pipeline.process(element);
   expect(results[0].inheritedElementBinder.distanceToParent).toBe(0);
   expect(results[1].inheritedElementBinder.distanceToParent).toBe(1);
   expect(results[3].inheritedElementBinder.distanceToParent).toBe(2);
   expect(results[1].inheritedElementBinder.parent).toBe(results[0].inheritedElementBinder);
   expect(results[3].inheritedElementBinder.parent).toBe(results[0].inheritedElementBinder);
 });
Example #8
0
 it('should report the new child to all processors and the result', () => {
   var element = el('<div id="1"><div id="2"></div></div>');
   var resultLog = [];
   var newChild = new CompileElement(el('<div id="3"></div>'));
   var pipeline = new CompilePipeline([
     new MockStep((parent, current, control) => {
       if (StringWrapper.equals(DOM.getAttribute(current.element, 'id'), '1')) {
         control.addChild(newChild);
       }
     }),
     createLoggerStep(resultLog)
   ]);
   var result = pipeline.process(element);
   expect(result[2]).toBe(newChild);
   expect(resultLog).toEqual(['1', '1<2', '1<3']);
   expect(resultIdLog(result)).toEqual(['1', '2', '3']);
 });