Casting property values used as symbolizer labels to strings (allowing us to safely split them in the renderers). r=erilem (see #2193, closes #3249)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@11886 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -191,6 +191,10 @@ OpenLayers.Style = OpenLayers.Class({
|
|||||||
style.display = "none";
|
style.display = "none";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (style.label && typeof style.label !== "string") {
|
||||||
|
style.label = String(style.label);
|
||||||
|
}
|
||||||
|
|
||||||
return style;
|
return style;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
+15
-3
@@ -127,7 +127,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function test_Style_createSymbolizer(t) {
|
function test_Style_createSymbolizer(t) {
|
||||||
t.plan(4);
|
t.plan(5);
|
||||||
var style = new OpenLayers.Style();
|
var style = new OpenLayers.Style();
|
||||||
|
|
||||||
// override applySymbolizer to log arguments
|
// override applySymbolizer to log arguments
|
||||||
@@ -143,11 +143,17 @@
|
|||||||
type: OpenLayers.Filter.Comparison.EQUAL_TO,
|
type: OpenLayers.Filter.Comparison.EQUAL_TO,
|
||||||
property: "foo",
|
property: "foo",
|
||||||
value: "bar"
|
value: "bar"
|
||||||
})
|
}),
|
||||||
|
symbolizer: {
|
||||||
|
label: "${labelValue}"
|
||||||
|
}
|
||||||
});
|
});
|
||||||
rule.id = "foo=bar rule";
|
rule.id = "foo=bar rule";
|
||||||
var elseRule = new OpenLayers.Rule({
|
var elseRule = new OpenLayers.Rule({
|
||||||
elseFilter: true
|
elseFilter: true,
|
||||||
|
symbolizer: {
|
||||||
|
label: "${labelValue}"
|
||||||
|
}
|
||||||
});
|
});
|
||||||
elseRule.id = "else rule";
|
elseRule.id = "else rule";
|
||||||
style.addRules([rule, elseRule]);
|
style.addRules([rule, elseRule]);
|
||||||
@@ -167,6 +173,12 @@
|
|||||||
);
|
);
|
||||||
t.eq(log.length, 1, "b) applySymbolizer called once");
|
t.eq(log.length, 1, "b) applySymbolizer called once");
|
||||||
t.eq(log[0] && log[0].id, elseRule.id, "b) applySymbolizer called with correct rule");
|
t.eq(log[0] && log[0].id, elseRule.id, "b) applySymbolizer called with correct rule");
|
||||||
|
|
||||||
|
// c) test that label in returned symbolizer is a string even if property value is a number
|
||||||
|
var symbolizer = style.createSymbolizer(
|
||||||
|
new OpenLayers.Feature.Vector(null, {foo: "bar", labelValue: 10})
|
||||||
|
);
|
||||||
|
t.eq(symbolizer.label, "10", "c) feature property cast to string when used as symbolizer label");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user