Some node.js test hacking.
git-svn-id: http://svn.openlayers.org/trunk/openlayers@11551 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -0,0 +1,106 @@
|
|||||||
|
XMLHttpRequest = function() {
|
||||||
|
return {
|
||||||
|
'open': function() { },
|
||||||
|
'send': function() { }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
alert = print;
|
||||||
|
|
||||||
|
navigator = {
|
||||||
|
'appName': 'mockdom',
|
||||||
|
'userAgent': 'mockdom',
|
||||||
|
'appVersion': '0.1',
|
||||||
|
'language': 'en',
|
||||||
|
'userLanguage': 'en'
|
||||||
|
}
|
||||||
|
|
||||||
|
element = function(type) {
|
||||||
|
type = type || "";
|
||||||
|
|
||||||
|
return {
|
||||||
|
'childNodes': [],
|
||||||
|
'className': '',
|
||||||
|
'tagName': type.toUpperCase(),
|
||||||
|
'style': {},
|
||||||
|
'setAttribute': function(attr, value) {
|
||||||
|
this[attr] = value;
|
||||||
|
},
|
||||||
|
'appendChild': function(element) {
|
||||||
|
if (this.childNodes.length) {
|
||||||
|
this.childNodes[this.childNodes.length - 1].nextSibling = element;
|
||||||
|
} else {
|
||||||
|
this.firstChild = element;
|
||||||
|
}
|
||||||
|
element.parentNode = this;
|
||||||
|
this.childNodes.push(element);
|
||||||
|
|
||||||
|
},
|
||||||
|
'removeChild': function(element) {
|
||||||
|
var i = this.childNodes.indexOf(element);
|
||||||
|
this.childNodes.splice(i, 1);
|
||||||
|
},
|
||||||
|
'addEventListener': function() {
|
||||||
|
},
|
||||||
|
'removeEventListener': function() {
|
||||||
|
},
|
||||||
|
'getElementsByTagName': function(name, externalList) {
|
||||||
|
var uc = name.toUpperCase();
|
||||||
|
var list = externalList || [];
|
||||||
|
for(var i = 0; i < this.childNodes.length; i++) {
|
||||||
|
if (this.childNodes[i].tagName == uc) {
|
||||||
|
list.push(this.childNodes[i]);
|
||||||
|
}
|
||||||
|
this.childNodes[i].getElementsByTagName(name, list);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
},
|
||||||
|
'getElementById': function(id) {
|
||||||
|
for(var i = 0; i < this.childNodes.length; i++) {
|
||||||
|
if (this.childNodes[i].id == id) {
|
||||||
|
return this.childNodes[i];
|
||||||
|
} else {
|
||||||
|
var elem = this.childNodes[i].getElementById(id);
|
||||||
|
if (elem) {
|
||||||
|
return elem
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
document = element();
|
||||||
|
document.createElement = function(type) {
|
||||||
|
return element(type);
|
||||||
|
};
|
||||||
|
document.createTextNode = function(text) {
|
||||||
|
var e = element("Text");
|
||||||
|
e.innerHTML = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.appendChild(element("head"));
|
||||||
|
document.body = element("body");
|
||||||
|
document.appendChild(document.body);
|
||||||
|
|
||||||
|
window = {
|
||||||
|
'addEventListener': function() {
|
||||||
|
},
|
||||||
|
'getSelection': function() {
|
||||||
|
return {
|
||||||
|
collapseToStart: function() {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
document: document,
|
||||||
|
navigator: navigator,
|
||||||
|
location: {
|
||||||
|
href: '#',
|
||||||
|
port: '',
|
||||||
|
hostname: 'openlayers.org',
|
||||||
|
host: 'openlayers.org',
|
||||||
|
proto: 'https'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
document.location = window.location;
|
||||||
|
|
||||||
|
window.Function = Function;
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
# This build config is supposed to be used for the units tests with "mode=build"
|
||||||
|
|
||||||
|
[first]
|
||||||
|
mockdom.js
|
||||||
|
[last]
|
||||||
|
node.js
|
||||||
|
|
||||||
|
[include]
|
||||||
|
|
||||||
|
[exclude]
|
||||||
|
OpenLayers.js
|
||||||
|
Firebug/firebug.js
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
exports.OpenLayers = OpenLayers;
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
// Requires:
|
||||||
|
/// 0. nodejs
|
||||||
|
// 1. jsdom installed (npm install jsdom)
|
||||||
|
// 2. A build profile with mockdom.js included in [first], and node.js
|
||||||
|
// inclded in [last], at ../../build/OpenLayers.js , like node-tests.js.
|
||||||
|
// 3. Run with node run-tests.js
|
||||||
|
//
|
||||||
|
// Missing: integration with a solid node.js testrunner.
|
||||||
|
var jsdom = require('jsdom');
|
||||||
|
jsdom.env('<html><body></body></html>', function(errors, window) {
|
||||||
|
for (var i in window) {
|
||||||
|
if (i == "console") {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
eval(i+"=window['"+i+"'];");
|
||||||
|
}
|
||||||
|
OpenLayers = require("../../build/OpenLayers.js")['OpenLayers'];
|
||||||
|
var map = new OpenLayers.Map(document.createElement("map"));
|
||||||
|
map.addLayer(new OpenLayers.Layer("", {isBaseLayer:true}));
|
||||||
|
map.setCenter(new OpenLayers.LonLat(-71,42), 10);
|
||||||
|
var px = map.getPixelFromLonLat(map.getLonLatFromPixel(new OpenLayers.Pixel(100,100)));
|
||||||
|
console.log(px);
|
||||||
|
var px = map.getLonLatFromPixel(map.getPixelFromLonLat(new OpenLayers.LonLat(10,10)));
|
||||||
|
console.log(px);
|
||||||
|
|
||||||
|
});
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
cp mockdom.js node.js ../../lib
|
||||||
|
cp node-tests.cfg ../../build
|
||||||
|
cd ../../build
|
||||||
|
python build.py -c none node-tests
|
||||||
|
cd ../tests/node.js/
|
||||||
|
|
||||||
|
node run-test.js
|
||||||
|
rm ../../lib/mockdom.js
|
||||||
|
rm ../../lib/node.js
|
||||||
Reference in New Issue
Block a user