3
<script src="../../lib/OpenLayers.js"></script>
4
<script type="text/javascript">
6
function test_initialize(t) {
11
var s = new OpenLayers.Strategy.BBOX({ratio: ratio});
12
t.eq(s.ratio, ratio, "ctor sets ratio");
15
function test_activate(t) {
18
var l = new OpenLayers.Layer.Vector();
19
var s = new OpenLayers.Strategy.BBOX();
22
t.eq(s.active, false, "not active after construction");
24
var activated = s.activate();
25
t.eq(activated, true, "activate returns true");
26
t.eq(s.active, true, "activated after activate");
27
t.ok(l.events.listeners["moveend"][0].obj == s &&
28
l.events.listeners["moveend"][0].func == s.update,
29
"activates registers moveend listener");
30
t.ok(l.events.listeners["refresh"][0].obj == s &&
31
l.events.listeners["refresh"][0].func == s.update,
32
"activates registers refresh listener");
35
function test_update(t) {
38
var s = new OpenLayers.Strategy.BBOX();
40
var invalidBoundsReturnValue;
41
var bounds = new OpenLayers.Bounds(-100, -40, 100, 40);
43
s.invalidBounds = function(b) {
45
"update calls invalidBounds with correct arg");
46
return invalidBoundsReturnValue;
48
s.calculateBounds = function(b) {
50
"update calls calculateBounds with correct arg");
52
s.triggerRead = function() {
54
"update calls triggerRead");
59
getExtent: function() {
66
invalidBoundsReturnValue = true;
67
s.update({force: true});
70
invalidBoundsReturnValue = true;
74
invalidBoundsReturnValue = false;
78
function test_triggerRead(t) {
81
var s = new OpenLayers.Strategy.BBOX();
83
var filter = {"fake": "filter"};
85
s.createFilter = function() {
91
read: function(options) {
92
t.ok(options.filter == filter,
93
"protocol read called with correct filter");
94
t.ok(options.callback == s.merge,
95
"protocol read called with correct callback");
96
t.ok(options.scope == s,
97
"protocol read called with correct scope");
110
"triggerRead aborts previous read request");
117
function test_createFilter(t) {
120
var s = new OpenLayers.Strategy.BBOX();
126
f = s.createFilter();
127
t.ok(f.CLASS_NAME.search(/^OpenLayers.Filter.Spatial/) != -1,
128
"createFilter returns a spatial filter object");
129
t.eq(f.type, OpenLayers.Filter.Spatial.BBOX,
130
"createFilter returns a BBOX-typed filter");
133
s.setLayer({filter: {fake: "filter"}});
134
f = s.createFilter();
135
t.ok(f.CLASS_NAME.search(/^OpenLayers.Filter.Logical/) != -1,
136
"createFilter returns a logical filter object");
139
function test_merge(t) {
142
var s = new OpenLayers.Strategy.BBOX();
144
var features = ["fake", "feature", "array"];
147
destroyFeatures: function() {
149
"merge calls destroyFeatures");
151
addFeatures: function(f) {
153
"merge calls addFeatures with the correct features");
158
s.merge({features: features});
164
<div id="map" style="width: 400px; height: 200px" />