Basic layergroup validation on named map creation/update

This commit is contained in:
Raul Ochoa
2015-01-23 18:24:25 +01:00
parent 56abcfd2f4
commit 11d9f5dd76
2 changed files with 32 additions and 13 deletions
+17
View File
@@ -92,6 +92,11 @@ o._checkInvalidTemplate = function(template) {
return new Error("Invalid characters in template name '" + tplname + "'");
}
var invalidError = isInvalidLayergroup(template.layergroup);
if (invalidError) {
return invalidError;
}
var placeholders = template.placeholders || {};
var placeholderKeys = Object.keys(placeholders);
@@ -128,6 +133,18 @@ o._checkInvalidTemplate = function(template) {
return false;
};
function isInvalidLayergroup(layergroup) {
if (!layergroup) {
return new Error('Missing layergroup');
}
if (!_.isArray(layergroup.layers)) {
return new Error('Missing layers array from layergroup config');
}
return false;
}
function templateDefaults(template) {
var templateAuth = _.defaults({}, template.auth || {}, {
method: 'open'
+15 -13
View File
@@ -16,7 +16,9 @@ suite('template_maps', function() {
version:'0.0.1',
name: 'first',
auth: {},
layergroup: {}
layergroup: {
layers: []
}
};
var owner = 'me';
@@ -24,7 +26,7 @@ suite('template_maps', function() {
var tmap = new TemplateMaps(redis_pool);
assert.ok(tmap);
var tpl = { version:'6.6.6',
name:'k', auth: {}, layergroup: {} };
name:'k', auth: {}, layergroup: {layers:[]} };
Step(
function() {
tmap.addTemplate('me', tpl, this);
@@ -44,7 +46,7 @@ suite('template_maps', function() {
var tmap = new TemplateMaps(redis_pool);
assert.ok(tmap);
var tpl = { version:'0.0.1',
auth: {}, layergroup: {} };
auth: {}, layergroup: {layers:[]} };
Step(
function() {
tmap.addTemplate('me', tpl, this);
@@ -64,7 +66,7 @@ suite('template_maps', function() {
var tmap = new TemplateMaps(redis_pool);
assert.ok(tmap);
var tpl = { version:'0.0.1',
auth: {}, layergroup: {} };
auth: {}, layergroup: {layers:[]} };
var invalidnames = [ "ab|", "a b", "a@b", "1ab", "_x", "", " x", "x " ];
var testNext = function() {
if ( ! invalidnames.length ) { done(); return; }
@@ -91,7 +93,7 @@ suite('template_maps', function() {
assert.ok(tmap);
var tpl = { version:'0.0.1',
name: "valid", placeholders: {},
auth: {}, layergroup: {} };
auth: {}, layergroup: {layers:[]} };
var invalidnames = [ "ab|", "a b", "a@b", "1ab", "_x", "", " x", "x " ];
var testNext = function() {
if ( ! invalidnames.length ) { done(); return; }
@@ -119,7 +121,7 @@ suite('template_maps', function() {
assert.ok(tmap);
var tpl = { version:'0.0.1',
name: "valid", placeholders: { v: {} },
auth: {}, layergroup: {} };
auth: {}, layergroup: {layers:[]} };
tmap.addTemplate('me', tpl, function(err) {
if ( ! err ) {
done(new Error("Unexpected success with missing placeholder default"));
@@ -139,7 +141,7 @@ suite('template_maps', function() {
assert.ok(tmap);
var tpl = { version:'0.0.1',
name: "valid", placeholders: { v: { default:1 } },
auth: {}, layergroup: {} };
auth: {}, layergroup: {layers:[]} };
tmap.addTemplate('me', tpl, function(err) {
if ( ! err ) {
done(new Error("Unexpected success with missing placeholder type"));
@@ -161,7 +163,7 @@ suite('template_maps', function() {
assert.ok(tmap);
var tpl = { version:'0.0.1',
name: "invalid_auth1", placeholders: { },
auth: { method: 'token' }, layergroup: {} };
auth: { method: 'token' }, layergroup: {layers:[]} };
tmap.addTemplate('me', tpl, function(err) {
if ( ! err ) {
done(new Error("Unexpected success with invalid token auth (undefined tokens)"));
@@ -182,7 +184,7 @@ suite('template_maps', function() {
var expected_failure = false;
var tpl_id;
var tpl = { version:'0.0.1',
name: 'first', auth: {}, layergroup: {} };
name: 'first', auth: {}, layergroup: {layers:[]} };
Step(
function() {
tmap.addTemplate('me', tpl, this);
@@ -216,9 +218,9 @@ suite('template_maps', function() {
var tmap = new TemplateMaps(redis_pool);
assert.ok(tmap);
var expected_failure = false;
var tpl1 = { version:'0.0.1', name: 'first', auth: {}, layergroup: {} };
var tpl1 = { version:'0.0.1', name: 'first', auth: {}, layergroup: {layers:[]} };
var tpl1_id;
var tpl2 = { version:'0.0.1', name: 'second', auth: {}, layergroup: {} };
var tpl2 = { version:'0.0.1', name: 'second', auth: {}, layergroup: {layers:[]} };
var tpl2_id;
Step(
function addTemplate1() {
@@ -279,7 +281,7 @@ suite('template_maps', function() {
var tpl = { version:'0.0.1',
name: 'first',
auth: { method: 'open' },
layergroup: {}
layergroup: {layers:[]}
};
var tpl_id;
Step(
@@ -434,7 +436,7 @@ suite('template_maps', function() {
max_user_templates: 2
});
assert.ok(tmap);
var tpl = { version:'0.0.1', auth: {}, layergroup: {} };
var tpl = { version:'0.0.1', auth: {}, layergroup: {layers:[]} };
var expectErr = false;
var idMe = [];
var idYou = [];