describe("ol.Tile", function() { describe("create a tile constructor", function() { it("returns a constructor than can create tiles with expected properties", function() { var Tile = ol.Tile.createConstructor(100, 100); expect(typeof Tile).toEqual("function"); var tile = new Tile('url'); expect(tile).toBeA(ol.Tile); expect(tile.getImg().className).toEqual('olTile'); expect(tile.getImg().style.width).toEqual("100px"); expect(tile.getImg().style.height).toEqual("100px"); }); }); describe("create a tile", function() { var tile; beforeEach(function() { var Tile = ol.Tile.createConstructor(200, 200); tile = new Tile('http://a.url'); }); it("creates a tile instance", function() { expect(tile).toBeA(ol.Tile); }); it("sets an image node in the instance", function() { expect(tile.getImg()).toBeDefined(); }); }); describe("handle image load", function() { var tile; beforeEach(function() { var Tile = ol.Tile.createConstructor(200, 200); tile = new Tile('http://a.url'); }); it("fires a load event", function() { var spy = jasmine.createSpy(); tile.events_.register('load', spy); tile.handleImageLoad(); expect(spy).toHaveBeenCalled(); }); it("sets the loaded flag", function() { tile.handleImageLoad(); expect(tile.isLoaded()).toBeTruthy(); }); it("unsets the loading flag", function() { tile.loading_ = true; tile.handleImageLoad(); expect(tile.isLoading()).toBeFalsy(); }); }); describe("handle image error", function() { var tile; beforeEach(function() { var Tile = ol.Tile.createConstructor(200, 200); tile = new Tile('http://a.url'); }); it("fires a load event", function() { var spy = jasmine.createSpy(); tile.events_.register('error', spy); tile.handleImageError(); expect(spy).toHaveBeenCalled(); }); it("unsets the loading flag", function() { tile.loading_ = true; tile.handleImageError(); expect(tile.isLoading()).toBeFalsy(); }); }); });