Panel iconOn and iconOff do not behave correctly if application-specific classes are set in the control

This commit is contained in:
Éric Lemoine
2011-12-14 15:49:19 +01:00
parent 9f9829053a
commit 45a6e24299
2 changed files with 44 additions and 2 deletions
+38
View File
@@ -288,6 +288,44 @@
// panel.deactivate();
map.destroy();
}
function test_iconOn_iconOff(t) {
t.plan(3);
var map = new OpenLayers.Map('map');
var panel = new OpenLayers.Control.Panel();
var ctrl = new OpenLayers.Control({displayClass: 'ctrl'});
panel.addControls([ctrl]);
map.addControl(panel);
// add arbitrary classes to the panel div - we want to test
// than iconOn and iconOff do their jobs even when the panel
// div has application-specific classes.
ctrl.panel_div.className =
'ctrlItemInactive fooItemActive fooItemInactive';
t.eq(ctrl.panel_div.className,
'ctrlItemInactive fooItemActive fooItemInactive',
'initial className value is as expected');
panel.iconOn.call(ctrl);
t.eq(ctrl.panel_div.className,
'ctrlItemActive fooItemActive fooItemInactive',
'iconOn behaves as expected');
ctrl.panel_div.className =
'ctrlItemActive fooItemActive fooItemInactive';
panel.iconOff.call(ctrl);
t.eq(ctrl.panel_div.className,
'ctrlItemInactive fooItemActive fooItemInactive',
'iconOff behaves as expected');
map.destroy();
}
</script>
</head>
<body>