[Commits] r252 - in sandbox/elemoine/playground: lib/GeoExt/data tests tests/data
commits at geoext.org
commits at geoext.org
Mon Mar 23 22:00:05 CET 2009
Author: elemoine
Date: 2009-03-23 22:00:05 +0100 (Mon, 23 Mar 2009)
New Revision: 252
Added:
sandbox/elemoine/playground/tests/data/LayerReader.html
Modified:
sandbox/elemoine/playground/lib/GeoExt/data/LayerReader.js
sandbox/elemoine/playground/tests/list-tests.html
Log:
add tests for LayerReader
Modified: sandbox/elemoine/playground/lib/GeoExt/data/LayerReader.js
===================================================================
--- sandbox/elemoine/playground/lib/GeoExt/data/LayerReader.js 2009-03-23 19:08:00 UTC (rev 251)
+++ sandbox/elemoine/playground/lib/GeoExt/data/LayerReader.js 2009-03-23 21:00:05 UTC (rev 252)
@@ -32,7 +32,7 @@
*/
GeoExt.data.LayerReader = function(meta, recordType) {
meta = meta || {};
- if(!(recordType instanceof GeoExt.data.LayerRecord)) {
+ if(!(recordType instanceof Function)) {
recordType = GeoExt.data.LayerRecord.create(
recordType || meta.fields || {});
}
@@ -54,7 +54,7 @@
* containing {<GeoExt.data.LayerRecord>} objects.
*
* Parameters:
- * layers - {Array({OpenLayers.Layer})}
+ * layers - {Array({OpenLayers.Layer})} Array of layers.
*
* Returns:
* {Object} An object with two properties. The value of the property "records"
@@ -63,14 +63,13 @@
*/
readRecords : function(layers) {
var records = [];
-
- if (layers) {
+ if(layers) {
var recordType = this.recordType, fields = recordType.prototype.fields;
var i, lenI, j, lenJ, layer, values, field, v;
- for (i = 0, lenI = layers.length; i < lenI; i++) {
+ for(i = 0, lenI = layers.length; i < lenI; i++) {
layer = layers[i];
values = {};
- for (j = 0, lenJ = fields.length; j < lenJ; j++){
+ for(j = 0, lenJ = fields.length; j < lenJ; j++){
field = fields.items[j];
v = layer[field.mapping || field.name] ||
field.defaultValue;
@@ -81,7 +80,6 @@
records[records.length] = new recordType(values, layer.id);
}
}
-
return {
records: records,
totalRecords: this.totalRecords != null ? this.totalRecords : records.length
Added: sandbox/elemoine/playground/tests/data/LayerReader.html
===================================================================
--- sandbox/elemoine/playground/tests/data/LayerReader.html (rev 0)
+++ sandbox/elemoine/playground/tests/data/LayerReader.html 2009-03-23 21:00:05 UTC (rev 252)
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html debug="true">
+ <head>
+ <script type="text/javascript" src="../../../../openlayers/lib/OpenLayers.js"></script>
+ <script type="text/javascript" src="../../../../ext/2.2.1/adapter/ext/ext-base.js"></script>
+ <script type="text/javascript" src="../../../../ext/2.2.1/ext-all-debug.js"></script>
+ <script type="text/javascript" src="../../lib/GeoExt.js"></script>
+
+ <script type="text/javascript">
+ function test_constructor(t) {
+ t.plan(4);
+
+ var reader, recordType;
+
+ reader = new GeoExt.data.LayerReader();
+ var record = new reader.recordType();
+ t.ok(record instanceof GeoExt.data.LayerRecord,
+ "ctor creates a LayerRecord type if none is provided");
+
+ recordType = [{name: "extra"}];
+ reader = new GeoExt.data.LayerReader(null, recordType);
+ t.eq(reader.recordType.prototype.fields.items[2].name, "extra",
+ "ctor creates a LayerRecord type with the correct field");
+
+ recordType = GeoExt.data.LayerRecord.create([{name: "extra"}]);
+ reader = new GeoExt.data.LayerReader(null, recordType);
+ t.ok(reader.recordType == recordType,
+ "ctor configures reader with passed LayerRecord type");
+
+ reader = new GeoExt.data.LayerReader({fields: [{name: "extra"}]});
+ t.eq(reader.recordType.prototype.fields.items[2].name, "extra",
+ "ctor creates a LayerRecord type with the correct field");
+ }
+
+ function test_readRecords(t) {
+ t.plan(5);
+
+ var reader, layers, data;
+
+ reader = new GeoExt.data.LayerReader(null, [{name: "extra"}]);
+ layers = [
+ new OpenLayers.Layer("layer1"),
+ new OpenLayers.Layer("layer2")
+ ];
+ layers[0].extra = "layer1extra";
+ layers[1].extra = "layer2extra";
+
+ data = reader.readRecords(layers);
+ t.eq(data.totalRecords, 2,
+ "readRecords returns expected number of records");
+ t.ok(data.records[0] instanceof GeoExt.data.LayerRecord,
+ "readRecords returns records of expected type");
+ t.ok(data.records[0].get("layer") == layers[0],
+ "readRecords returns records with expected \"layer\" field");
+ t.eq(data.records[0].get("title"), layers[0].name,
+ "readRecords returns records with expected \"title\" field");
+ t.eq(data.records[0].get("extra"), layers[0].extra,
+ "readRecords returns records with expected \"extra\" field");
+ }
+ </script>
+ <body>
+ </body>
+</html>
Modified: sandbox/elemoine/playground/tests/list-tests.html
===================================================================
--- sandbox/elemoine/playground/tests/list-tests.html 2009-03-23 19:08:00 UTC (rev 251)
+++ sandbox/elemoine/playground/tests/list-tests.html 2009-03-23 21:00:05 UTC (rev 252)
@@ -3,6 +3,7 @@
<li>data/FeatureStore.html</li>
<li>data/FeatureStoreMediator.html</li>
<li>data/LayerRecord.html</li>
+ <li>data/LayerReader.html</li>
<li>data/LayerStore.html</li>
<li>data/LayerStoreMediator.html</li>
<li>data/ProtocolProxy.html</li>
More information about the Commits
mailing list