Dedicated module for transforms cache

This commit is contained in:
Tim Schaub
2016-12-04 10:09:32 -08:00
parent fd6116ab6b
commit 679fe298aa
5 changed files with 167 additions and 136 deletions

View File

@@ -17,6 +17,7 @@ goog.require('ol.style.Fill');
goog.require('ol.style.Icon');
goog.require('ol.proj');
goog.require('ol.proj.Projection');
goog.require('ol.proj.transforms');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
goog.require('ol.style.Text');
@@ -358,9 +359,9 @@ describe('ol.format.KML', function() {
'</kml>';
expect(node).to.xmleql(ol.xml.parse(text));
ol.proj.removeTransform(
ol.proj.transforms.remove(
ol.proj.get('EPSG:4326'), ol.proj.get('double'));
ol.proj.removeTransform(
ol.proj.transforms.remove(
ol.proj.get('double'), ol.proj.get('EPSG:4326'));
});

View File

@@ -451,37 +451,6 @@ describe('ol.proj', function() {
});
});
describe('ol.proj.removeTransform()', function() {
var extent = [180, -90, 180, 90];
var units = 'degrees';
it('removes functions cached by addTransform', function() {
var foo = new ol.proj.Projection({
code: 'foo',
units: units,
extent: extent
});
var bar = new ol.proj.Projection({
code: 'bar',
units: units,
extent: extent
});
var transform = function(input, output, dimension) {
return input;
};
ol.proj.addTransform(foo, bar, transform);
expect(ol.proj.transforms_).not.to.be(undefined);
expect(ol.proj.transforms_.foo).not.to.be(undefined);
expect(ol.proj.transforms_.foo.bar).to.be(transform);
var removed = ol.proj.removeTransform(foo, bar);
expect(removed).to.be(transform);
expect(ol.proj.transforms_.foo).to.be(undefined);
});
});
describe('ol.proj.transform()', function() {
it('transforms a 2d coordinate', function() {

View File

@@ -0,0 +1,36 @@
goog.provide('ol.test.proj.transforms');
goog.require('ol.proj.Projection');
goog.require('ol.proj.transforms');
describe('ol.proj.transforms.remove()', function() {
var extent = [180, -90, 180, 90];
var units = 'degrees';
it('removes functions cached by ol.proj.transforms.add()', function() {
var foo = new ol.proj.Projection({
code: 'foo',
units: units,
extent: extent
});
var bar = new ol.proj.Projection({
code: 'bar',
units: units,
extent: extent
});
var transform = function(input, output, dimension) {
return input;
};
ol.proj.transforms.add(foo, bar, transform);
expect(ol.proj.transforms.cache_).not.to.be(undefined);
expect(ol.proj.transforms.cache_.foo).not.to.be(undefined);
expect(ol.proj.transforms.cache_.foo.bar).to.be(transform);
var removed = ol.proj.transforms.remove(foo, bar);
expect(removed).to.be(transform);
expect(ol.proj.transforms.cache_.foo).to.be(undefined);
});
});