Initial commit
This commit is contained in:
+214
@@ -0,0 +1,214 @@
|
||||
var Backbone = require('backbone');
|
||||
var CartoDBLayer = require('../../../../../src/geo/map/cartodb-layer');
|
||||
var PlainLayer = require('../../../../../src/geo/map/plain-layer');
|
||||
var TileLayer = require('../../../../../src/geo/map/tile-layer');
|
||||
var TorqueLayer = require('../../../../../src/geo/map/torque-layer');
|
||||
var GMapsBaseLayer = require('../../../../../src/geo/map/gmaps-base-layer');
|
||||
var LayersSerializer = require('../../../../../src/windshaft/map-serializer/anonymous-map-serializer/layers-serializer');
|
||||
var MockFactory = require('../../../../helpers/mockFactory');
|
||||
var createEngine = require('../../../fixtures/engine.fixture.js');
|
||||
|
||||
describe('layers-serializer', function () {
|
||||
describe('.serialize', function () {
|
||||
var engineMock;
|
||||
var sourceMock;
|
||||
var layersCollection;
|
||||
|
||||
// Create all test objects once
|
||||
beforeAll(function () {
|
||||
layersCollection = new Backbone.Collection();
|
||||
engineMock = createEngine();
|
||||
sourceMock = MockFactory.createAnalysisModel({ id: 'a1' });
|
||||
});
|
||||
|
||||
describe('mapnik layer', function () {
|
||||
it('should serialize a cartodb layer with no aggregation', function () {
|
||||
var cartoDBLayer = new CartoDBLayer({
|
||||
id: 'l1',
|
||||
source: sourceMock,
|
||||
cartocss: 'cartoCSS1',
|
||||
cartocss_version: '2.0'
|
||||
}, {
|
||||
engine: engineMock
|
||||
});
|
||||
layersCollection.reset([cartoDBLayer]);
|
||||
|
||||
var actual = LayersSerializer.serialize(layersCollection);
|
||||
var expected = [{
|
||||
'id': 'l1',
|
||||
'type': 'mapnik',
|
||||
'options': {
|
||||
'cartocss': 'cartoCSS1',
|
||||
'cartocss_version': '2.0',
|
||||
'interactivity': ['cartodb_id'],
|
||||
'source': { id: 'a1' }
|
||||
}
|
||||
}];
|
||||
expect(actual).toEqual(expected);
|
||||
});
|
||||
|
||||
it('should serialize a cartodb layer with aggregation', function () {
|
||||
var cartoDBLayer = new CartoDBLayer({
|
||||
id: 'l1',
|
||||
source: sourceMock,
|
||||
cartocss: 'cartoCSS1',
|
||||
cartocss_version: '2.0'
|
||||
}, {
|
||||
engine: engineMock,
|
||||
aggregation: {
|
||||
threshold: 1000,
|
||||
resolution: 4,
|
||||
placement: 'point-sample',
|
||||
columns: {
|
||||
'population': {
|
||||
aggregate_function: 'sum',
|
||||
aggregated_column: 'pop_max'
|
||||
},
|
||||
'states': {
|
||||
aggregate_function: 'sum',
|
||||
aggregated_column: 'states'
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
layersCollection.reset([cartoDBLayer]);
|
||||
|
||||
var actual = LayersSerializer.serialize(layersCollection);
|
||||
|
||||
var expected = [{
|
||||
'id': 'l1',
|
||||
'type': 'mapnik',
|
||||
'options': {
|
||||
'cartocss': 'cartoCSS1',
|
||||
'cartocss_version': '2.0',
|
||||
'interactivity': ['cartodb_id'],
|
||||
'source': { id: 'a1' },
|
||||
'aggregation': {
|
||||
'threshold': 1000,
|
||||
'resolution': 4,
|
||||
'placement': 'point-sample',
|
||||
'columns': {
|
||||
'population': {
|
||||
'aggregate_function': 'sum',
|
||||
'aggregated_column': 'pop_max'
|
||||
},
|
||||
'states': {
|
||||
'aggregate_function': 'sum',
|
||||
'aggregated_column': 'states'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}];
|
||||
expect(actual).toEqual(expected);
|
||||
});
|
||||
|
||||
it('should serialize a cartodb layer with propper zoom options', function () {
|
||||
var cartoDBLayer = new CartoDBLayer({
|
||||
id: 'l1',
|
||||
source: sourceMock,
|
||||
cartocss: 'cartoCSS1',
|
||||
cartocss_version: '2.0',
|
||||
minzoom: 5,
|
||||
maxzoom: 9
|
||||
},
|
||||
{
|
||||
engine: engineMock
|
||||
});
|
||||
layersCollection.reset([cartoDBLayer]);
|
||||
|
||||
var actual = LayersSerializer.serialize(layersCollection);
|
||||
var expected = [{
|
||||
'id': 'l1',
|
||||
'type': 'mapnik',
|
||||
'options': {
|
||||
'cartocss': 'cartoCSS1',
|
||||
'cartocss_version': '2.0',
|
||||
'interactivity': ['cartodb_id'],
|
||||
'source': { id: 'a1' },
|
||||
'minzoom': 5,
|
||||
'maxzoom': 9
|
||||
}
|
||||
}];
|
||||
expect(actual).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
it('should serialize a plain layer', function () {
|
||||
var plainLayer = new PlainLayer({
|
||||
id: 'l2',
|
||||
color: 'COLOR',
|
||||
image: 'http://carto.com/image.png'
|
||||
}, { engine: engineMock });
|
||||
layersCollection.reset([plainLayer]);
|
||||
|
||||
var actual = LayersSerializer.serialize(layersCollection);
|
||||
var expected = [{
|
||||
'id': 'l2',
|
||||
'type': 'plain',
|
||||
'options': {
|
||||
'color': 'COLOR',
|
||||
'imageUrl': 'http://carto.com/image.png'
|
||||
}
|
||||
}];
|
||||
expect(actual).toEqual(expected);
|
||||
});
|
||||
|
||||
it('should serialize a torque layer', function () {
|
||||
var torqueLayer = new TorqueLayer({
|
||||
id: 'l3',
|
||||
source: sourceMock,
|
||||
cartocss: 'cartocss'
|
||||
}, {
|
||||
engine: engineMock
|
||||
});
|
||||
layersCollection.reset([torqueLayer]);
|
||||
|
||||
var actual = LayersSerializer.serialize(layersCollection);
|
||||
var expected = [{
|
||||
'id': 'l3',
|
||||
'type': 'torque',
|
||||
'options': {
|
||||
'source': { id: 'a1' },
|
||||
'cartocss': 'cartocss',
|
||||
'cartocss_version': '2.1.0'
|
||||
}
|
||||
}];
|
||||
expect(actual).toEqual(expected);
|
||||
});
|
||||
|
||||
it('should serialize a tile layer', function () {
|
||||
var tileLayer = new TileLayer({
|
||||
id: 'l4',
|
||||
urlTemplate: 'URL_TEMPLATE',
|
||||
subdomains: 'abc',
|
||||
tms: false
|
||||
}, { engine: engineMock });
|
||||
layersCollection.reset([tileLayer]);
|
||||
|
||||
var actual = LayersSerializer.serialize(layersCollection);
|
||||
var expected = [{
|
||||
'id': 'l4',
|
||||
'type': 'http',
|
||||
'options': {
|
||||
'urlTemplate': 'URL_TEMPLATE',
|
||||
'subdomains': 'abc',
|
||||
'tms': false
|
||||
}
|
||||
}];
|
||||
expect(actual).toEqual(expected);
|
||||
});
|
||||
|
||||
it('should not serialize GMapsBase layers', function () {
|
||||
var gmapsBaseLayer = new GMapsBaseLayer({
|
||||
id: 'l4',
|
||||
baseType: 'roadmap'
|
||||
}, { engine: engineMock });
|
||||
layersCollection.reset([gmapsBaseLayer]);
|
||||
|
||||
var actual = LayersSerializer.serialize(layersCollection);
|
||||
var expected = [];
|
||||
expect(actual).toEqual(expected);
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user