4
<link rel="stylesheet" type="text/css" href="../../../../ext/resources/css/ext-all.css" />
6
<script type="text/javascript" src="../../../../openlayers/lib/Firebug/firebug.js"></script>
7
<script type="text/javascript" src="../../../../openlayers/lib/OpenLayers.js"></script>
9
<script type="text/javascript" src="../../../../ext/adapter/ext/ext-base.js"></script>
10
<script type="text/javascript" src="../../../../ext/ext-all-debug.js"></script>
12
<script type="text/javascript">
13
// Because of a bug in Firefox 2 we need to specify the MapFish base path.
14
// See https://bugzilla.mozilla.org/show_bug.cgi?id=351282
15
var gMfLocation = "../../../../mapfish/";
17
<script type="text/javascript" src="../../../../mapfish/MapFish.js"></script>
19
<link rel="stylesheet" type="text/css" href="style.css" />
21
<script type="text/javascript"><!--
22
function test_constructor(t) {
26
store = new Ext.data.Store({
27
reader: new mapfish.widgets.data.FeatureReader(
28
{}, [{name: "name", type: "string"}]
32
mediator = new mapfish.widgets.data.FeatureStoreMediator({
35
t.ok(mediator.store == store,
36
"ctor correctly sets store");
39
function test_addFeatures(t) {
42
var mediator, store, features, flip, filter;
43
store = new Ext.data.Store({
44
reader: new mapfish.widgets.data.FeatureReader(
45
{}, [{name: "name", type: "string"}]
48
mediator = new mapfish.widgets.data.FeatureStoreMediator({
51
function createFeatures() {
53
new OpenLayers.Feature.Vector(null, {
56
new OpenLayers.Feature.Vector()
60
features = createFeatures();
61
mediator.addFeatures(features);
62
t.eq(store.getCount(), 2,
63
"addFeatures adds correct number of features");
64
var record = store.getById(features[0].id);
65
t.ok(record.get('feature') == features[0],
66
'addFeatures correctly adds features');
68
features = createFeatures();
69
mediator.addFeatures(features, {append: false});
70
t.eq(store.getCount(), 2,
71
"addFeatures adds correct number of features");
74
filter = function() { flip = !flip; return flip; };
75
features = createFeatures();
76
mediator.addFeatures(features,
77
{append: false, filter: filter});
78
t.eq(store.getCount(), 1,
79
"addFeatures adds correct number of features " +
80
"with filter passed");
83
// there's a bug in Ext where Ext dereferences an undefined
84
// value, the bug triggers with a grouping store and group
85
// field when store.loadData is called with only one arg
86
// or with false as the second arg. addFeatures works
87
// around that bug, so that test_addFeatures_ExtBug passes
89
// prefix the function name with test_ if you want to
90
// actually run the test
96
store = new Ext.data.GroupingStore({
97
reader: new Ext.data.ArrayReader({id: 0}, [
98
{name: "name", mapping: 1},
99
{name: "occupation", mapping: 2}
103
a = [[1, 'Bill', 'Gardener'], [2, 'Ben', 'Horticulturalist']];
104
store.loadData(a, false); // same effect with store.loadData(a)
106
t.eq(store.getCount(), 2,
107
"correct number of records loaded");
111
function test_addFeatures_ExtBug(t) {
114
var mediator, store, features, flip, filter;
115
store = new Ext.data.GroupingStore({
116
reader: new mapfish.widgets.data.FeatureReader(
117
{}, [{name: "name", type: "string"}]
121
mediator = new mapfish.widgets.data.FeatureStoreMediator({
124
function createFeatures() {
126
new OpenLayers.Feature.Vector(null, {
129
new OpenLayers.Feature.Vector()
133
features = createFeatures();
134
// {append: false} makes Ext panic without the workaround
135
// in FeatureStoreMediator.js, see test_ExtBug for making
136
// Ext panic without MapFish involves
137
mediator.addFeatures(features, {append: false});
138
t.eq(store.getCount(), 2,
139
"addFeatures adds correct number of features");
140
var record = store.getById(features[0].id);
141
t.ok(record.get('feature') == features[0],
142
'addFeatures correctly adds features');
145
function test_removeFeatures(t) {
148
var mediator, store, features;
149
store = new Ext.data.Store({
150
reader: new mapfish.widgets.data.FeatureReader(
151
{}, [{name: "name", type: "string"}]
154
mediator = new mapfish.widgets.data.FeatureStoreMediator({
157
function createFeatures() {
159
new OpenLayers.Feature.Vector(null, {
162
new OpenLayers.Feature.Vector()
166
features = createFeatures();
167
mediator.addFeatures(features);
168
mediator.removeFeatures(features);
169
t.eq(store.getCount(), 0,
170
'removesFeatures correctly removes features');