'use strict';
describe('ngInit', function() {
  var element;
  afterEach(function() {
    dealoc(element);
  });
  it("should init model", inject(function($rootScope, $compile) {
    element = $compile('
')($rootScope);
    expect($rootScope.a).toEqual(123);
  }));
  it("should be evaluated before ngInclude", inject(function($rootScope, $templateCache, $compile) {
    $templateCache.put('template1.tpl', '1');
    $templateCache.put('template2.tpl', '2');
    $rootScope.template = 'template1.tpl';
    element = $compile('')($rootScope);
    $rootScope.$digest();
    expect($rootScope.template).toEqual('template2.tpl');
    expect(element.find('span').text()).toEqual('2');
  }));
  it("should be evaluated after ngController", function() {
    module(function($controllerProvider) {
      $controllerProvider.register('TestCtrl', function($scope) {});
    });
    inject(function($rootScope, $compile) {
      element = $compile('')($rootScope);
      $rootScope.$digest();
      expect($rootScope.test).toBeUndefined();
      expect(element.children('div').scope().test).toEqual(123);
    });
  });
});