From adacfb64538bc547f96e2555a5a765cd0a7788ea Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Fri, 9 Dec 2016 22:17:02 +0100 Subject: [PATCH] Add test for duplicated attribution --- test/spec/ol/control/attribution.test.js | 76 ++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 test/spec/ol/control/attribution.test.js diff --git a/test/spec/ol/control/attribution.test.js b/test/spec/ol/control/attribution.test.js new file mode 100644 index 0000000000..ca2d8d6403 --- /dev/null +++ b/test/spec/ol/control/attribution.test.js @@ -0,0 +1,76 @@ +goog.provide('ol.test.control.Attribution'); + +goog.require('ol.Map'); +goog.require('ol.View'); +goog.require('ol.control.Attribution'); +goog.require('ol.layer.Tile'); +goog.require('ol.source.Tile'); + +describe('ol.control.Attribution', function() { + + var map, target; + beforeEach(function() { + target = document.createElement('div'); + target.style.width = target.style.height = '100px'; + document.body.appendChild(target); + map = new ol.Map({ + target: target, + controls: [new ol.control.Attribution({ + collapsed: false, + collapsible: false + })], + layers: [ + new ol.layer.Tile({ + source: new ol.source.Tile({ + projection: 'EPSG:3857', + tileGrid: ol.tilegrid.createXYZ(), + attributions: 'foo' + }) + }), + new ol.layer.Tile({ + source: new ol.source.Tile({ + projection: 'EPSG:3857', + tileGrid: ol.tilegrid.createXYZ(), + attributions: 'bar' + }) + }), + new ol.layer.Tile({ + source: new ol.source.Tile({ + projection: 'EPSG:3857', + tileGrid: ol.tilegrid.createXYZ(), + attributions: 'foo' + }) + }) + ], + view: new ol.View({ + center: [0, 0], + zoom: 0 + }) + }); + map.getLayers().forEach(function(layer) { + var source = layer.getSource(); + source.getTile = function() { + var tile = new ol.Tile([0, 0, -1], 2 /* LOADED */); + tile.getImage = function() { + var image = new Image(); + image.width = 256; + image.height = 256; + return image; + }; + return tile; + }; + }); + }); + + afterEach(function() { + map.setTarget(null); + document.body.removeChild(target); + }); + + it('does not add duplicate attributions', function() { + map.renderSync(); + var attribution = document.querySelectorAll('.ol-attribution li'); + expect(attribution.length).to.be(3); // first
  • is the logo + }); + +});