~mortenoh/+junk/dhis2-detailed-import-export

« back to all changes in this revision

Viewing changes to gis/dhis-gis-geostat/mfbase/openlayers/tests/Layer/Markers.html

  • Committer: larshelge at gmail
  • Date: 2009-03-03 16:46:36 UTC
  • Revision ID: larshelge@gmail.com-20090303164636-2sjlrquo7ib1gf7r
Initial check-in

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<html>
 
2
<head>
 
3
  <script src="../../lib/OpenLayers.js"></script>
 
4
  <script type="text/javascript">
 
5
    var layer; 
 
6
 
 
7
    function test_initialize(t) {
 
8
        t.plan( 2 );
 
9
        
 
10
        layer = new OpenLayers.Layer.Markers('Test Layer');
 
11
        t.ok( layer instanceof OpenLayers.Layer.Markers, "new OpenLayers.Layer.Markers returns object" );
 
12
        t.eq( layer.name, "Test Layer", "layer.name is correct" );
 
13
    }
 
14
    function test_addlayer (t) {
 
15
        t.plan( 3 );
 
16
        
 
17
        layer = new OpenLayers.Layer.Markers('Test Layer');
 
18
        t.ok( layer instanceof OpenLayers.Layer.Markers, "new OpenLayers.Layer.Markers returns object" );
 
19
        t.eq( layer.name, "Test Layer", "layer.name is correct" );
 
20
        layer.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0), 
 
21
                                              new OpenLayers.Icon())
 
22
                       );
 
23
        t.eq( layer.markers.length, 1, "addLayer adds marker to layer." );
 
24
    }
 
25
    function test_addMarker_removeMarker (t) {
 
26
        t.plan( 4 );
 
27
 
 
28
        var map = new OpenLayers.Map('map');
 
29
        var baseLayer = new OpenLayers.Layer.WMS("Test Layer", 
 
30
            "http://octo.metacarta.com/cgi-bin/mapserv?",
 
31
            {map: "/mapdata/vmap_wms.map", layers: "basic"});
 
32
        map.addLayer(baseLayer);
 
33
        map.zoomToMaxExtent();
 
34
        layer = new OpenLayers.Layer.Markers('Test Layer');
 
35
        map.addLayer(layer);
 
36
        var marker = new OpenLayers.Marker(new OpenLayers.LonLat(5,40));
 
37
        layer.addMarker(marker);
 
38
        t.ok(  marker.icon.imageDiv.parentNode == layer.div, "addMarker adds marker image node into layer node." ); 
 
39
        layer.removeMarker(marker);
 
40
        t.ok(  marker.icon.imageDiv.parentNode != layer.div, "removeMarker removes marker image node from layer node." ); 
 
41
        layer.addMarker(marker);
 
42
        t.ok(  marker.icon.imageDiv.parentNode == layer.div, "addMarker adds marker image node into layer node." ); 
 
43
 
 
44
        layer.markers = null;
 
45
        layer.removeMarker(marker);
 
46
        t.ok(true, "removing marker when no markers present does not script error");
 
47
 
 
48
    }
 
49
    
 
50
    function test_markerMovement(t) {
 
51
        
 
52
        t.plan(6);
 
53
        
 
54
        var map = new OpenLayers.Map("map");
 
55
        var layer = new OpenLayers.Layer.Markers("Base", {isBaseLayer: true});
 
56
        map.addLayer(layer);
 
57
        map.setCenter(new OpenLayers.LonLat(0, 0), 1);
 
58
        
 
59
        var size = new OpenLayers.Size(10, 10);
 
60
        var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
 
61
        var icon = new OpenLayers.Icon("foo", size, offset);
 
62
        var marker = new OpenLayers.Marker(new OpenLayers.LonLat(10, -10), icon)
 
63
        layer.addMarker(marker);
 
64
        
 
65
        t.eq(marker.icon.px.x, 554, "marker icon is placed at 554 px on x-axis");
 
66
        t.eq(marker.icon.px.y, 314, "marker icon is placed at 314 px on y-axis");
 
67
        
 
68
        map.zoomTo(2);
 
69
        
 
70
        t.eq(marker.icon.px.x, 568, "marker icon moved to 568 px on x-axis");
 
71
        t.eq(marker.icon.px.y, 328, "marker icon moved to 328 px on y-axis");
 
72
        
 
73
        map.zoomTo(1);
 
74
 
 
75
        t.eq(marker.icon.px.x, 554, "marker icon moved back to 554 px on x-axis");
 
76
        t.eq(marker.icon.px.y, 314, "marker icon moved back to 314 px on y-axis");
 
77
        
 
78
    }
 
79
    
 
80
    function test_destroy (t) {
 
81
        t.plan( 1 );    
 
82
        layer = new OpenLayers.Layer.Markers('Test Layer');
 
83
        var map = new OpenLayers.Map('map');
 
84
        map.addLayer(layer);
 
85
        layer.destroy();
 
86
        t.eq( layer.map, null, "layer.map is null after destroy" );
 
87
    }
 
88
 
 
89
    function test_getDataExtent(t) {
 
90
        t.plan( 4 );
 
91
 
 
92
        var layer = {};
 
93
        var ret = OpenLayers.Layer.Markers.prototype.getDataExtent.apply(layer, []);
 
94
        t.eq(ret, null, "does not crash, returns null on layer with null 'this.markers'");
 
95
 
 
96
        layer.markers = [];
 
97
        ret = OpenLayers.Layer.Markers.prototype.getDataExtent.apply(layer, []);
 
98
        t.eq(ret, null, "returns null on layer with empty 'this.markers'");
 
99
        
 
100
        layer.markers.push({
 
101
            'lonlat': new OpenLayers.LonLat(4,5)
 
102
        });
 
103
        var expectedBounds = new OpenLayers.Bounds(4,5,4,5);
 
104
        ret = OpenLayers.Layer.Markers.prototype.getDataExtent.apply(layer, []);
 
105
        t.ok(ret.equals(expectedBounds), "returns expected bounds with only one marker");
 
106
 
 
107
        layer.markers.push({
 
108
            'lonlat': new OpenLayers.LonLat(1,2)
 
109
        });
 
110
        var expectedBounds = new OpenLayers.Bounds(1,2,4,5);
 
111
        ret = OpenLayers.Layer.Markers.prototype.getDataExtent.apply(layer, []);
 
112
        t.ok(ret.equals(expectedBounds), "returns expected bounds with multiple markers");
 
113
 
 
114
    }
 
115
 
 
116
    function test_setOpacity(t) {
 
117
        t.plan(1);
 
118
 
 
119
        layer = new OpenLayers.Layer.Markers('Test Layer');
 
120
 
 
121
        var opacity = 0.1234;
 
122
        
 
123
        for (var i = 0; i < 12; i++) {
 
124
            layer.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0), new OpenLayers.Icon()));
 
125
        }
 
126
 
 
127
        layer.setOpacity(opacity);
 
128
 
 
129
        for (var i = 0; i < 4; i++) {
 
130
            layer.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0), new OpenLayers.Icon()));
 
131
        }
 
132
        
 
133
        var itWorks = false;
 
134
        for (var i = 0; i < layer.markers.length; i++) {
 
135
            itWorks = parseFloat(layer.markers[i].icon.imageDiv.style.opacity) == opacity;
 
136
            if (!itWorks) {
 
137
                break;
 
138
            }
 
139
        }
 
140
        t.ok(itWorks, "setOpacity change markers opacity");
 
141
    }
 
142
 
 
143
  </script>
 
144
</head>
 
145
<body>
 
146
  <div id="map" style="width: 1080px; height: 600px;"/>
 
147
</body>
 
148
</html>