[Commits] r2702 - in sandbox/mapgears/geoext.ux/ux/WFSTFeatureEditing: lib/GeoExt.ux/widgets tests/lib/GeoExt.ux/widgets
commits at geoext.org
commits at geoext.org
Tue May 17 19:55:09 CEST 2011
Author: adube
Date: 2011-05-17 19:55:09 +0200 (Tue, 17 May 2011)
New Revision: 2702
Modified:
sandbox/mapgears/geoext.ux/ux/WFSTFeatureEditing/lib/GeoExt.ux/widgets/WFSTFeatureEditingManager.js
sandbox/mapgears/geoext.ux/ux/WFSTFeatureEditing/tests/lib/GeoExt.ux/widgets/WFSTFeatureEditingManager.html
Log:
WFSTFeatureEditing - manager - more tests and DescFeatType triggered from new method instead of being part of a callback method
Modified: sandbox/mapgears/geoext.ux/ux/WFSTFeatureEditing/lib/GeoExt.ux/widgets/WFSTFeatureEditingManager.js
===================================================================
--- sandbox/mapgears/geoext.ux/ux/WFSTFeatureEditing/lib/GeoExt.ux/widgets/WFSTFeatureEditingManager.js 2011-05-17 15:36:50 UTC (rev 2701)
+++ sandbox/mapgears/geoext.ux/ux/WFSTFeatureEditing/lib/GeoExt.ux/widgets/WFSTFeatureEditingManager.js 2011-05-17 17:55:09 UTC (rev 2702)
@@ -392,9 +392,10 @@
* the layer so that it can access any of its widget directly from
* itself.
* - it is added to the :class:`OpenLayers.Map`
- * - a WFSDescribeFeatureType is triggered
* - try to get a WMS layer sibling in order to refresh it when
* transactions are made to the vector one.
+ *
+ * When finished, the 'triggerDescribeFeatureTypes' method is called.
*/
onWFSCapabilitiesStoreLoad: function(store, records, options) {
var layers = [];
@@ -427,6 +428,20 @@
this.map.addLayers(layers);
this.layers = layers;
+ this.triggerDescribeFeatureTypes(layers);
+ },
+
+ /** private: method[triggerDescribeFeatureTypes]
+ * :param layers ``Array`` of :class:`OpenLayers.Layer.Vector`. Defaults
+ * to the layers property of this object.
+ *
+ * For each layers, a WFSDescribeFeatureType is triggered with the
+ * "onDescribeFeatureTypeSuccess" callback using the layer protocol
+ * 'featureType' property as the 'TYPENAME' parameter.
+ */
+ triggerDescribeFeatureTypes: function(layers) {
+ layers = layers || this.layers;
+ alert(1);
Ext.each(layers, function(layer, index) {
var params = Ext.applyIf(Ext.applyIf(
this.describeFeatureTypeParams || {},
Modified: sandbox/mapgears/geoext.ux/ux/WFSTFeatureEditing/tests/lib/GeoExt.ux/widgets/WFSTFeatureEditingManager.html
===================================================================
--- sandbox/mapgears/geoext.ux/ux/WFSTFeatureEditing/tests/lib/GeoExt.ux/widgets/WFSTFeatureEditingManager.html 2011-05-17 15:36:50 UTC (rev 2701)
+++ sandbox/mapgears/geoext.ux/ux/WFSTFeatureEditing/tests/lib/GeoExt.ux/widgets/WFSTFeatureEditingManager.html 2011-05-17 17:55:09 UTC (rev 2702)
@@ -159,12 +159,91 @@
manager.un("commitfail", callback);
}
- function test_WFSTFeatureEditingManager_WFSCapabilitiesStore(t) {
- t.plan(0);
+ function test_WFSTFeatureEditingManager_onWFSCapabilitiesStoreLoad(t) {
+ t.plan(5);
+
+ var manager, log, layer;
+
+ // (4) testing onWFSCapabilitiesStoreLoad method called and records
+ // returned
+ GeoExt.ux.WFSTFeatureEditingManager.prototype.onWFSCapabilitiesStoreLoad = function(store, records, options) {
+ t.ok(true, "onWFSCapabilitiesStoreLoad callback method called once");
+ t.eq(records.length, 2, "Two records are in the store.");
+
+ log = true;
+ Ext.each(records, function(record, index) {
+ if (!(record.getLayer() instanceof OpenLayers.Layer.Vector)) {
+ log = false;
+ return false;
+ }
+ });
+ t.ok(log, "All records contain an OpenLayers.Layer.Vector layer.");
+
+ log = false;
+ layer = records[0].getLayer();
+ Ext.each(layer.strategies, function(strategy, strategyIndex) {
+ if (strategy instanceof OpenLayers.Strategy.Save &&
+ strategy.layer === layer)
+ {
+ log = true;
+ return false;
+ }
+ });
+ t.ok(log, "vector layers have a OpenLayers.Strategy.Save instance correctly set.");
+ };
+
+ manager = new GeoExt.ux.WFSTFeatureEditingManager({
+ "map": getNewMap(),
+ "toolbar": getNewToolbar(),
+ "mainPanelContainer": getNewMainPanelContainer(),
+ "url": "../../../../../../../geoext/examples/data/wfscap_tiny_100.xml"
+ });
+
+ // (1) delay call to let store 'load' callback method to be fired
+ t.delay_call(2, function() {
+ t.ok(true, "waited for 2s");
+ });
}
+
+ function test_WFSTFeatureEditingManager_afterWFSCapabilitiesStoreLoad(t) {
+ t.plan(7);
+
+ var manager, log, layer;
+
+ // (6) testing layers created after onWFSCapabilitiesStoreLoad method
+ // called (triggerDescribeFeatureTypes method)
+ GeoExt.ux.WFSTFeatureEditingManager.prototype.triggerDescribeFeatureTypes = function() {
+ t.ok(true, "triggerDescribeFeatureTypes method called.");
+ t.eq(manager.layers.length, 2, "Two layers were added to layers property");
+
+ layer = manager.layers[0];
+ t.ok(layer.wfstFeatureEditing, "Layer 'wfstFeatureEditing' property correclty set.");
+
+ log = (manager === layer.wfstFeatureEditing.manager);
+ t.ok(log, "Layer has a reference to the manager.");
+
+ log = (layer.wfstFeatureEditing.saveStrategy instanceof OpenLayers.Strategy.Save);
+ t.ok(log, "Layer has a reference to its save strategy.");
+
+ log = (layer.map instanceof OpenLayers.Map);
+ t.ok(log, "Layers were added to the map");
+ };
+
+ manager = new GeoExt.ux.WFSTFeatureEditingManager({
+ "map": getNewMap(),
+ "toolbar": getNewToolbar(),
+ "mainPanelContainer": getNewMainPanelContainer(),
+ "url": "../../../../../../../geoext/examples/data/wfscap_tiny_100.xml"
+ });
+
+ // (1) delay call to let store 'load' callback method to be fired
+ t.delay_call(2, function() {
+ t.ok(true, "waited for 2s");
+ });
+ }
</script>
<body>
- <div id="map"></div>
+ <div id="map" style="width: 200px; height: 200px;"></div>
<div id="panel"></div>
</body>
-</html>
\ No newline at end of file
+</html>
More information about the Commits
mailing list