Improved regex, added tests
This commit is contained in:
@@ -330,9 +330,8 @@ OpenLayers.Control.Panel = OpenLayers.Class(OpenLayers.Control, {
|
|||||||
*/
|
*/
|
||||||
iconOn: function() {
|
iconOn: function() {
|
||||||
var d = this.panel_div; // "this" refers to a control on panel!
|
var d = this.panel_div; // "this" refers to a control on panel!
|
||||||
var re = new RegExp(this.displayClass + 'ItemInactive');
|
var re = new RegExp("\\b(" + this.displayClass + "Item)Inactive\\b");
|
||||||
d.className = d.className.replace(re,
|
d.className = d.className.replace(re, "$1Active");
|
||||||
this.displayClass + "ItemActive");
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -341,9 +340,8 @@ OpenLayers.Control.Panel = OpenLayers.Class(OpenLayers.Control, {
|
|||||||
*/
|
*/
|
||||||
iconOff: function() {
|
iconOff: function() {
|
||||||
var d = this.panel_div; // "this" refers to a control on panel!
|
var d = this.panel_div; // "this" refers to a control on panel!
|
||||||
var re = new RegExp(this.displayClass + 'ItemActive');
|
var re = new RegExp("\\b(" + this.displayClass + "Item)Active\\b");
|
||||||
d.className = d.className.replace(re,
|
d.className = d.className.replace(re, "$1Inactive");
|
||||||
this.displayClass + "ItemInactive");
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -337,6 +337,43 @@
|
|||||||
t.ok(panel2.events.element === div, "Panel outside map has the panel's div as element on its Events instance");
|
t.ok(panel2.events.element === div, "Panel outside map has the panel's div as element on its Events instance");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function test_iconOniconOff (t) {
|
||||||
|
t.plan(6);
|
||||||
|
var map = new OpenLayers.Map("map"),
|
||||||
|
navControl = new OpenLayers.Control.Navigation({autoActivate: true}),
|
||||||
|
zbControl = new OpenLayers.Control.ZoomBox(),
|
||||||
|
panel = new OpenLayers.Control.Panel({defaultControl: navControl}),
|
||||||
|
navActiveClass, navInactiveClass, zbActiveClass, zbInactiveClass;
|
||||||
|
|
||||||
|
panel.addControls([navControl, zbControl]);
|
||||||
|
map.addControl(panel);
|
||||||
|
|
||||||
|
navControl.panel_div.className += " foo";
|
||||||
|
zbControl.panel_div.className = "bar " + zbControl.panel_div.className;
|
||||||
|
|
||||||
|
t.eq(navControl.panel_div.className, "olControlNavigationItemActive olButton foo",
|
||||||
|
"defaultControl className is set to [displayClass]Active on panel instantiation");
|
||||||
|
t.eq(zbControl.panel_div.className, "bar olControlZoomBoxItemInactive olButton",
|
||||||
|
"non-defaultControl className is set to [displayClass]Inactive on panel instantiation");
|
||||||
|
|
||||||
|
panel.activateControl(zbControl);
|
||||||
|
|
||||||
|
t.eq(zbControl.panel_div.className, "bar olControlZoomBoxItemActive olButton",
|
||||||
|
"active control class name with preceding secondary class name is set to [displayClass]Active");
|
||||||
|
t.eq(navControl.panel_div.className, "olControlNavigationItemInactive olButton foo",
|
||||||
|
"inactive control class name with trailing secondary class name is set to [displayClass]Inactive");
|
||||||
|
|
||||||
|
panel.activateControl(navControl);
|
||||||
|
|
||||||
|
t.eq(navControl.panel_div.className, "olControlNavigationItemActive olButton foo",
|
||||||
|
"active control class name with trailing secondary class name is set to [displayClass]Active");
|
||||||
|
t.eq(zbControl.panel_div.className, "bar olControlZoomBoxItemInactive olButton",
|
||||||
|
"inactive control class name with preceding secondary class name is set to [displayClass]Inactive");
|
||||||
|
|
||||||
|
map.destroy();
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
Reference in New Issue
Block a user