]> dev.renevier.net Git - syp.git/blob - openlayers/tests/Layer/EventPane.html
initial commit
[syp.git] / openlayers / tests / Layer / EventPane.html
1 <html>
2 <head>
3   <script src="../../lib/OpenLayers.js"></script>
4   <script type="text/javascript">
5     var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
6     var isOpera = (navigator.userAgent.indexOf("Opera") != -1);
7     var layer; 
8
9     function test_Layer_EventPane_constructor (t) {
10         t.plan( 5 );
11         
12         var layer = new OpenLayers.Layer.EventPane('Test Layer');
13         
14         t.ok( layer instanceof OpenLayers.Layer.EventPane, "new OpenLayers.Layer.EventPane returns object" );
15         t.eq( layer.CLASS_NAME, "OpenLayers.Layer.EventPane", "CLASS_NAME variable set correctly");
16         t.eq( layer.name, "Test Layer", "layer.name is correct" );
17         t.eq( layer.isBaseLayer, true, "EventPane layer is always base layer" );
18         if (!isMozilla) {
19             t.ok( true, "skipping element test outside of Mozilla");
20         } else {
21             t.ok( layer.pane instanceof HTMLDivElement, "layer.pane is an HTMLDivElement" );
22         }
23     }
24
25     function test_Layer_EventPane_clone (t) {
26         t.plan( 1 );
27         t.ok( true, "need to actually write some tests here" );
28         return;
29         
30         /// FIX ME FIX ME: fix this later
31
32         var map = new OpenLayers.Map('map'); 
33         var options = { chicken: 151, foo: "bar" };
34         var layer = new OpenLayers.Layer('Test Layer', options);
35         map.addLayer(layer);
36
37         // randomly assigned property
38         layer.chocolate = 5;
39
40         var clone = layer.clone();
41
42         t.ok( clone instanceof OpenLayers.Layer, "new OpenLayers.Layer returns object" );
43         t.eq( clone.name, "Test Layer", "default clone.name is correct" );
44         t.ok( ((clone.options["chicken"] == 151) && (clone.options["foo"] == "bar")), "clone.options correctly set" );
45         t.eq(clone.chocolate, 5, "correctly copied randomly assigned property");
46
47         layer.addOptions({chicken:152});
48         t.eq(clone.options["chicken"], 151, "made a clean copy of options");        
49
50         
51         t.ok( clone.map == null, "cloned layer has map property set to null")
52         
53     }
54
55     function test_Layer_EventPane_setMap (t) {
56
57 // MOUSEMOVE test does not seem to work... 
58 //         t.plan( 2 );    
59
60         if (OpenLayers.Util.getBrowserName() != "firefox" && OpenLayers.Util.getBrowserName() != "mozilla") {
61           t.plan(4);
62         } else {
63           t.plan(0);
64           t.debug_print("Firefox gives different results for different browsers on setMap on EventPane, so just don't run it for now.") 
65           return;
66         }
67         var map = new OpenLayers.Map('map');
68         
69         layer = new OpenLayers.Layer.EventPane('Test Layer');
70
71         //give dummy function so test wont bomb on layer.setMap()
72         layer.loadMapObject = function() { };
73         layer.getWarningHTML = function() { this.warning = true; return ""; };
74         map.addLayer(layer);
75         t.eq( parseInt(layer.pane.style.zIndex) - parseInt(layer.div.style.zIndex),
76             1, "layer pane is 1 z-level above its div" );
77
78         t.ok( layer.warning, "warning correctly registered on no mapObject load" );
79
80         layer2 = new OpenLayers.Layer.EventPane('Test Layer');
81
82         //give dummy function so test wont bomb on layer.setMap()
83         layer2.loadMapObject = function() { this.mapObject = {}; };
84         layer2.getWarningHTML = function() { this.warning = true; return ""; }
85
86         map.addLayer(layer2);
87         t.ok( !layer2.warning, "warning not registered on mapObject load" );
88
89         map.events.register("mousemove", map, function () {
90             t.ok(true, "got mouse move");
91         });
92         
93         if( document.createEvent ) { // Mozilla
94           var evObj = document.createEvent('MouseEvents');
95           evObj.initEvent( 'mousemove', true, false );
96           layer.pane.dispatchEvent(evObj);
97         } else if( document.createEventObject ) { // IE
98           layer.pane.fireEvent('onmousemove');
99         }
100     }
101
102     function test_Layer_EventPane_setVisibility (t) {
103         t.plan( 2 );    
104         layer = new OpenLayers.Layer.EventPane('Test Layer');
105         layer.setVisibility(false);
106         t.eq(layer.visibility, false, "layer pane is now invisible");
107         layer.setVisibility(true);
108         t.eq(layer.visibility, true, "layer pane is now visible");
109     }
110
111     
112     function test_Layer_EventPane_removeLayer(t) {
113         t.plan(1);
114         var map = new OpenLayers.Map('map');
115         
116         layer = new OpenLayers.Layer.EventPane('Test Layer');
117         layer.loadMapObject = function() { };
118         layer.getWarningHTML = function() { this.warning = true; return ""; };
119         map.addLayer(layer);
120         map.removeLayer(layer);
121         t.eq(layer.pane, null, "Layer.pane is null after being removed.");
122    }      
123
124
125   </script>
126 </head>
127 <body>
128   <div id="map" style="height:500px;width:500px"></div>
129 </body>
130 </html>