describe('$ionicTemplateCache', function() {
  beforeEach(module('ionic'));

  beforeEach(inject(function($ionicTemplateCache, $templateCache) {
    ionicTemplateCache = $ionicTemplateCache;
    templateCache = $templateCache;
  }));

  it('should run during initial startup', function () {
    var info = templateCache.info();
    expect(info.size).toBe(0);
    expect(ionicTemplateCache._runCount).toBe(1);
  });

  it('should run immediately after a new addition after initial run', inject(function ($templateCache, $httpBackend, $timeout) {
    $httpBackend.whenGET("/test").respond([{hello:"world"}]);
    ionicTemplateCache('/test');
    $timeout.flush();
    var info = templateCache.info();
    expect(info.size).toBe(1);
    expect(ionicTemplateCache._runCount).toBe(2);
  }));

  it('should cache 5 templates at a time', inject(function ($httpBackend, $timeout) {
    $httpBackend.whenGET("/test1").respond([{hello:"world"}]);
    $httpBackend.whenGET("/test2").respond([{hello:"world"}]);
    $httpBackend.whenGET("/test3").respond([{hello:"world"}]);
    $httpBackend.whenGET("/test4").respond([{hello:"world"}]);
    $httpBackend.whenGET("/test5").respond([{hello:"world"}]);
    $httpBackend.whenGET("/test6").respond([{hello:"world"}]);
    $httpBackend.whenGET("/test7").respond([{hello:"world"}]);
    ionicTemplateCache(['/test1','/test2','/test2','/test3','/test4','/test5','/test6','/test7']);
    $timeout.flush();
    var info = templateCache.info();
    expect(info.size).toBe(7);
    expect(ionicTemplateCache._runCount).toBe(3);
  }));
});