Ticket #62: patch-62-r711-A0.diff

File patch-62-r711-A0.diff, 3.1 kB (added by elemoine, 1 year ago)
  • tests/lib/GeoExt/data/ScaleStore.html

    old new  
    4747            t.ok(store.map == map, "ctor sets the passed map in the instance"); 
    4848        } 
    4949 
     50        function test_bind_unbind(t) { 
     51            t.plan(7); 
     52 
     53            var map, store; 
     54 
     55            map = new OpenLayers.Map({controls: []}); 
     56            store = new GeoExt.data.ScaleStore({}); 
     57 
     58            // map has no base layer 
     59            // 4 tests 
     60 
     61            store.bind(map); 
     62            t.ok(map.events.listeners["changebaselayer"][0]["func"] == store.populateFromMap, 
     63                 "bind registers a changebaselayer listener (map has no base layer)"); 
     64            t.ok(map.events.listeners["addlayer"][0]["func"] == store.populateOnAdd, 
     65                 "bind registers a addlayer listener (map has no base layer)"); 
     66 
     67            store.unbind(); 
     68            t.eq(map.events.listeners["changebaselayer"][0], undefined, 
     69                 "unbind unregisters changebaselayer listener (map has no base layer)"); 
     70            t.eq(map.events.listeners["addlayer"][0], undefined, 
     71                 "unbind unregisters addlayer listener (map has no base layer)"); 
     72 
     73            // map has a base layer 
     74            // 3 tests 
     75 
     76            map.addLayer(new OpenLayers.Layer("name", {isBaseLayer: true})); 
     77 
     78            store.bind(map); 
     79            t.ok(map.events.listeners["changebaselayer"][0]["func"] == store.populateFromMap, 
     80                 "bind registers a changebaselayer listener (map has a base layer)"); 
     81            t.eq(map.events.listeners["addlayer"][0], undefined, 
     82                 "bind does not register a addlayer listener (map has a base layer)"); 
     83 
     84            store.unbind(); 
     85            t.eq(map.events.listeners["changebaselayer"][0], undefined, 
     86                 "unbind unregisters changebaselayer listener (map has a base layer)"); 
     87        } 
     88 
    5089        function test_scalestore(t) { 
    5190            t.plan(1); 
    5291 
  • lib/GeoExt/data/ScaleStore.js

    old new  
    5959        if (this.map.baseLayer) { 
    6060            this.populateFromMap(); 
    6161        } else { 
    62             this.map.register('layeradded', this, this.populateOnAdd); 
     62            this.map.events.register('addlayer', this, this.populateOnAdd); 
    6363        } 
    6464    }, 
    6565 
     
    7070     */ 
    7171    unbind: function() { 
    7272        if (this.map) { 
     73            this.map.events.unregister('addlayer', this, this.populateOnAdd); 
    7374            this.map.events.unregister('changebaselayer', this, this.populateFromMap); 
    7475            delete this.map; 
    7576        } 
     
    8687    populateOnAdd: function(evt) { 
    8788        if (evt.layer.isBaseLayer) { 
    8889            this.populateFromMap(); 
    89             this.map.events.unregister('layeradded', this, this.populateOnAdd); 
     90            this.map.events.unregister('addlayer', this, this.populateOnAdd); 
    9091        } 
    9192    }, 
    9293