expect(() => {
   createDirectiveVariableBindings(
       new renderApi.ElementBinder({variableBindings: new Map()}), [
         directiveBinding(
             {metadata: renderApi.DirectiveMetadata.create({exportAs: 'exportName'})}),
         directiveBinding(
             {metadata: renderApi.DirectiveMetadata.create({exportAs: 'exportName'})})
       ]);
 }).not.toThrow();
 expect(() => {
   createDirectiveVariableBindings(
       new renderApi.ElementBinder({
         variableBindings: MapWrapper.createFromStringMap({"exportName": "templateName"})
       }),
       [
         directiveBinding(
             {metadata: renderApi.DirectiveMetadata.create({exportAs: 'exportName'})}),
         directiveBinding(
             {metadata: renderApi.DirectiveMetadata.create({exportAs: 'exportName'})})
       ]);
 }).toThrowError(new RegExp("More than one directive have exportAs = 'exportName'"));
      it("should calculate directive variable bindings", () => {
        var dvbs = createDirectiveVariableBindings(
            new renderApi.ElementBinder(
                {variableBindings: MapWrapper.createFromStringMap({"exportName": "templateName"})}),
            [
              directiveBinding(
                  {metadata: renderApi.DirectiveMetadata.create({exportAs: 'exportName'})}),
              directiveBinding(
                  {metadata: renderApi.DirectiveMetadata.create({exportAs: 'otherName'})})
            ]);

        expect(dvbs).toEqual(MapWrapper.createFromStringMap({"templateName": 0}));
      });
 expect(() => {
   createDirectiveVariableBindings(
       new renderApi.ElementBinder({
         variableBindings:
             MapWrapper.createFromStringMap({"someInvalidName": "templateName"})
       }),
       [
         directiveBinding(
             {metadata: renderApi.DirectiveMetadata.create({exportAs: 'exportName'})})
       ]);
 }).toThrowError(new RegExp("Cannot find directive with exportAs = 'someInvalidName'"));
      it("should set exportAs to $implicit for component with exportAs = null", () => {
        var dvbs = createDirectiveVariableBindings(
            new renderApi.ElementBinder(
                {variableBindings: MapWrapper.createFromStringMap({"$implicit": "templateName"})}),
            [
              directiveBinding({
                metadata: renderApi.DirectiveMetadata.create(
                    {exportAs: null, type: renderApi.DirectiveMetadata.COMPONENT_TYPE})
              })
            ]);

        expect(dvbs).toEqual(MapWrapper.createFromStringMap({"templateName": 0}));
      });
Beispiel #6
0
      it('should parse host configuration', () => {
        var md = DirectiveMetadata.create({
          host: MapWrapper.createFromPairs([
            ['(event)', 'eventVal'],
            ['[prop]', 'propVal'],
            ['@action', 'actionVal'],
            ['attr', 'attrVal']
          ])
        });

        expect(md.hostListeners).toEqual(MapWrapper.createFromPairs([['event', 'eventVal']]));
        expect(md.hostProperties).toEqual(MapWrapper.createFromPairs([['prop', 'propVal']]));
        expect(md.hostActions).toEqual(MapWrapper.createFromPairs([['action', 'actionVal']]));
        expect(md.hostAttributes).toEqual(MapWrapper.createFromPairs([['attr', 'attrVal']]));
      });
      it('should run the steps and build the proto view', inject([AsyncTestCompleter], (async) => {
           var compiler = createCompiler((parent, current, control) => {
             current.inheritedProtoView.bindVariable('b', 'a');
           });

           var dirMetadata = DirectiveMetadata.create(
               {id: 'id', selector: 'CUSTOM', type: DirectiveMetadata.COMPONENT_TYPE});
           compiler.compileHost(dirMetadata)
               .then((protoView) => {
                 expect(DOM.tagName(resolveInternalDomProtoView(protoView.render).element))
                     .toEqual('CUSTOM');
                 expect(mockStepFactory.viewDef.directives).toEqual([dirMetadata]);
                 expect(protoView.variableBindings)
                     .toEqual(MapWrapper.createFromStringMap({'a': 'b'}));
                 async.done();
               });
         }));
        //
        //    expect(document.activeElement.id).toEqual("focused-input");
        //
        //    // update class of input
        //
        //    expect(document.activeElement.id).toEqual("focused-input");
        //  });
        //});
      });
    });

  });
}


var mainDir = DirectiveMetadata.create(
    {selector: 'main', id: 'main', type: DirectiveMetadata.COMPONENT_TYPE});

var simple = DirectiveMetadata.create(
    {selector: 'simple', id: 'simple', type: DirectiveMetadata.COMPONENT_TYPE});

var empty = DirectiveMetadata.create(
    {selector: 'empty', id: 'empty', type: DirectiveMetadata.COMPONENT_TYPE});

var dynamicComponent = DirectiveMetadata.create(
    {selector: 'dynamic', id: 'dynamic', type: DirectiveMetadata.COMPONENT_TYPE});

var multipleContentTagsComponent = DirectiveMetadata.create({
  selector: 'multiple-content-tags',
  id: 'multiple-content-tags',
  type: DirectiveMetadata.COMPONENT_TYPE
});
  if (isPresent(parent)) {
    current.inheritedProtoView = parent.inheritedProtoView;
  }
};

class FakeTemplateLoader extends TemplateLoader {
  _urlData: Map<string, string>;
  constructor(urlData) {
    super(null, new UrlResolver());
    this._urlData = urlData;
  }

  load(template: ViewDefinition) {
    if (isPresent(template.template)) {
      return PromiseWrapper.resolve(DOM.createTemplate(template.template));
    }

    if (isPresent(template.absUrl)) {
      var content = MapWrapper.get(this._urlData, template.absUrl);
      return isPresent(content) ?
                 PromiseWrapper.resolve(DOM.createTemplate(content)) :
                 PromiseWrapper.reject(`Failed to fetch url "${template.absUrl}"`, null);
    }

    return PromiseWrapper.reject('Load failed', null);
  }
}

var someComponent = DirectiveMetadata.create(
    {selector: 'some-comp', id: 'someComponent', type: DirectiveMetadata.COMPONENT_TYPE});
        expect(annotatedDirectives[results[0].directives[1].directiveIndex].id)
            .toEqual('someDirective');
      });
    });
  });
}

class MockStep implements CompileStep {
  processClosure: Function;
  constructor(process) { this.processClosure = process; }
  process(parent: CompileElement, current: CompileElement, control: CompileControl) {
    this.processClosure(parent, current, control);
  }
}

var someComponent = DirectiveMetadata.create(
    {selector: 'some-comp', id: 'someComponent', type: DirectiveMetadata.COMPONENT_TYPE});

var someComponentDup = DirectiveMetadata.create(
    {selector: 'some-comp', id: 'someComponentDup', type: DirectiveMetadata.COMPONENT_TYPE});

var someComponent2 = DirectiveMetadata.create(
    {selector: 'some-comp2', id: 'someComponent2', type: DirectiveMetadata.COMPONENT_TYPE});

var someDirective = DirectiveMetadata.create(
    {selector: '[some-decor]', id: 'someDirective', type: DirectiveMetadata.DIRECTIVE_TYPE});

var someDirectiveIgnoringChildren = DirectiveMetadata.create({
  selector: '[some-decor-ignoring-children]',
  compileChildren: false,
  type: DirectiveMetadata.DIRECTIVE_TYPE