mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-20 23:44:47 +02:00
Add tests for the Map object
This commit is contained in:
+1
-2
@@ -24,7 +24,6 @@
|
||||
<script type="text/javascript" src="js/iD/controller/edit/SelectedWay.js"></script>
|
||||
<script type="text/javascript" src="js/iD/controller/edit/SelectedWayNode.js"></script>
|
||||
|
||||
<script type="text/javascript" src="js/iD/renderer/renderer.js"></script>
|
||||
<script type="text/javascript" src="js/iD/renderer/Map.js"></script>
|
||||
<script type="text/javascript" src="js/iD/ui/Inspector.js"></script>
|
||||
|
||||
@@ -62,7 +61,7 @@
|
||||
var connection = new iD.Connection("http://www.overpass-api.de/api/xapi?");
|
||||
|
||||
// Initialise map
|
||||
var map = iD.renderer.Map({
|
||||
var map = iD.Map({
|
||||
selector: "#map",
|
||||
connection: connection,
|
||||
width: $(document).width(),
|
||||
|
||||
+4
-1
@@ -151,6 +151,9 @@ iD.Connection = function(apiURL) {
|
||||
|
||||
function parse(callback) {
|
||||
return function(dom) {
|
||||
if (!dom.childNodes) {
|
||||
return callback(new Error('Bad request'));
|
||||
}
|
||||
for (var i = 0; i < dom.childNodes[0].childNodes.length; i++) {
|
||||
var obj = dom.childNodes[0].childNodes[i], attrib;
|
||||
if (obj.nodeName === 'node') {
|
||||
@@ -177,7 +180,7 @@ iD.Connection = function(apiURL) {
|
||||
assign(relation);
|
||||
}
|
||||
}
|
||||
callback();
|
||||
callback(null);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
// ----------------------------------------------------------------------
|
||||
// Connection base class
|
||||
|
||||
iD.renderer.Map = function(obj) {
|
||||
iD.Map = function(obj) {
|
||||
var map = {},
|
||||
selection = [],
|
||||
width = obj.width || 800,
|
||||
@@ -285,7 +285,7 @@ iD.renderer.Map = function(obj) {
|
||||
|
||||
function getZoom(zoom) {
|
||||
var s = projection.scale();
|
||||
return Math.max(Math.log(s) / Math.log(2) - 8, 0);
|
||||
return Math.max(Math.log(s) / Math.log(2) - 7, 0);
|
||||
}
|
||||
|
||||
function setZoom(zoom) {
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
iD.renderer = {};
|
||||
@@ -12,12 +12,16 @@
|
||||
<!-- include source files here... -->
|
||||
<script type="text/javascript" src="../js/lib/underscore-min.js"></script>
|
||||
<script type="text/javascript" src="../js/lib/jquery-1.8.2.min.js"></script>
|
||||
<script type="text/javascript" src="../js/lib/d3.v2.min.js"></script>
|
||||
<script type="text/javascript" src="../js/iD/Util.js"></script>
|
||||
<script type="text/javascript" src="../js/iD/Node.js"></script>
|
||||
<script type="text/javascript" src="../js/iD/Relation.js"></script>
|
||||
<script type="text/javascript" src="../js/iD/Entity.js"></script>
|
||||
<script type="text/javascript" src="../js/iD/Way.js"></script>
|
||||
<script type="text/javascript" src="../js/iD/Connection.js"></script>
|
||||
<script type="text/javascript" src="../js/iD/actions/UndoStack.js"></script>
|
||||
<script type="text/javascript" src="../js/iD/Controller.js"></script>
|
||||
<script type="text/javascript" src="../js/iD/renderer/Map.js"></script>
|
||||
|
||||
<!-- include spec files here... -->
|
||||
<script type="text/javascript" src="spec/Util.js"></script>
|
||||
@@ -25,6 +29,7 @@
|
||||
<script type="text/javascript" src="spec/Entity.js"></script>
|
||||
<script type="text/javascript" src="spec/Relation.js"></script>
|
||||
<script type="text/javascript" src="spec/Way.js"></script>
|
||||
<script type="text/javascript" src="spec/Map.js"></script>
|
||||
<script type="text/javascript" src="spec/Connection.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
describe('Map', function() {
|
||||
var node, foo;
|
||||
|
||||
beforeEach(function() {
|
||||
foo = document.body.appendChild(document.createElement('div'));
|
||||
foo.id = 'foo';
|
||||
map = iD.Map({
|
||||
selector: '#foo',
|
||||
connection: iD.Connection()
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(function() {
|
||||
foo.parentNode.removeChild(foo);
|
||||
});
|
||||
|
||||
it('can set and get its zoom level', function() {
|
||||
expect(map.setZoom(4)).toEqual(map);
|
||||
expect(map.getZoom()).toEqual(4);
|
||||
});
|
||||
|
||||
it('can zoom out and in', function() {
|
||||
expect(map.setZoom(4)).toEqual(map);
|
||||
expect(map.getZoom()).toEqual(4);
|
||||
expect(map.zoomOut()).toEqual(map);
|
||||
expect(map.getZoom()).toEqual(3);
|
||||
expect(map.zoomIn()).toEqual(map);
|
||||
expect(map.getZoom()).toEqual(4);
|
||||
});
|
||||
});
|
||||
+2
-12
@@ -15,22 +15,12 @@ describe('Node', function() {
|
||||
expect(node.lon).toEqual(-77);
|
||||
});
|
||||
|
||||
it('reprojects a latp parameter', function() {
|
||||
expect(node.latp).toBeCloseTo(41.1376);
|
||||
node.project();
|
||||
expect(node.latp).toBeCloseTo(41.1376);
|
||||
});
|
||||
|
||||
it('knows if it is within a bounding box', function() {
|
||||
expect(node.within(-90, 90, 90, -90)).toBeTruthy();
|
||||
});
|
||||
|
||||
it('knows if it is without a bounding box', function() {
|
||||
expect(node.within(-90, -85, 90, -90)).toBeFalsy();
|
||||
expect(node.within([[-90, 90], [90, -90]])).toBeTruthy();
|
||||
});
|
||||
|
||||
it('can provide geojson', function() {
|
||||
var gj = node.toGeoJSON();
|
||||
var gj = node.toGeoJSON();
|
||||
expect(gj.type).toEqual('Feature');
|
||||
expect(gj.geometry.type).toEqual('Point');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user