From 16cdd35f6dc59f3618714708d9bb658e971e3ed3 Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Thu, 24 Jul 2014 14:37:45 +0200 Subject: [PATCH] Test to make sure that feature styles take prececence --- .../canvas/canvasvectorlayerrenderer.test.js | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 test/spec/ol/renderer/canvas/canvasvectorlayerrenderer.test.js diff --git a/test/spec/ol/renderer/canvas/canvasvectorlayerrenderer.test.js b/test/spec/ol/renderer/canvas/canvasvectorlayerrenderer.test.js new file mode 100644 index 0000000000..ada7c28f77 --- /dev/null +++ b/test/spec/ol/renderer/canvas/canvasvectorlayerrenderer.test.js @@ -0,0 +1,72 @@ +goog.provide('ol.test.renderer.canvas.VectorLayer'); + +describe('ol.renderer.canvas.VectorLayer', function() { + + describe('constructor', function() { + + it('creates a new instance', function() { + var map = new ol.Map({ + target: document.createElement('div') + }); + var layer = new ol.layer.Vector({ + source: new ol.source.Vector() + }); + var renderer = new ol.renderer.canvas.VectorLayer(map.getRenderer(), + layer); + expect(renderer).to.be.a(ol.renderer.canvas.VectorLayer); + }); + + it('gives precedence to feature styles over layer styles', function() { + var target = document.createElement('div'); + target.style.width = '256px'; + target.style.height = '256px'; + document.body.appendChild(target); + var map = new ol.Map({ + view: new ol.View({ + center: [0, 0], + zoom: 0 + }), + target: target + }); + var layerStyle = [new ol.style.Style({ + text: new ol.style.Text({ + text: 'layer' + }) + })]; + var featureStyle = [new ol.style.Style({ + text: new ol.style.Text({ + text: 'feature' + }) + })]; + var feature1 = new ol.Feature(new ol.geom.Point([0, 0])); + var feature2 = new ol.Feature(new ol.geom.Point([0, 0])); + feature2.setStyle(featureStyle); + var layer = new ol.layer.Vector({ + source: new ol.source.Vector({ + features: [feature1, feature2] + }), + style: layerStyle + }); + map.addLayer(layer); + var spy = sinon.spy(map.getRenderer().getLayerRenderer(layer), + 'renderFeature'); + map.renderSync(); + expect(spy.getCall(0).args[3]).to.be(layerStyle); + expect(spy.getCall(1).args[3]).to.be(featureStyle); + document.body.removeChild(target); + }); + + }); + +}); + + +goog.require('ol.Feature'); +goog.require('ol.Map'); +goog.require('ol.View'); +goog.require('ol.geom.Point'); +goog.require('ol.layer.Vector'); +goog.require('ol.renderer.canvas.VectorLayer'); +goog.require('ol.source.Vector'); +goog.require('ol.style.Style'); +goog.require('ol.style.Text');