mirror of
https://github.com/FoggedLens/iD.git
synced 2026-04-21 11:16:36 +02:00
459dc00ce5
Store the ways which share the segment and the index of the segment. This will be used in both DragWay and Draw behaviors.
53 lines
2.0 KiB
JavaScript
53 lines
2.0 KiB
JavaScript
describe("iD.svg.Midpoints", function () {
|
|
var surface,
|
|
projection = Object,
|
|
filter = d3.functor(true);
|
|
|
|
beforeEach(function () {
|
|
surface = d3.select(document.createElementNS('http://www.w3.org/2000/svg', 'svg'))
|
|
.call(iD.svg.Surface());
|
|
});
|
|
|
|
it("finds the location of the midpoints", function () {
|
|
var a = iD.Node({loc: [0, 0]}),
|
|
b = iD.Node({loc: [50, 0]}),
|
|
line = iD.Way({nodes: [a.id, b.id]}),
|
|
graph = iD.Graph([a, b, line]);
|
|
|
|
surface.call(iD.svg.Midpoints(projection), graph, [line], filter);
|
|
|
|
expect(surface.select('.midpoint').datum().loc).to.eql([25, 0]);
|
|
});
|
|
|
|
it("doesn't create midpoints on segments with pixel length less than 40", function () {
|
|
var a = iD.Node({loc: [0, 0]}),
|
|
b = iD.Node({loc: [39, 0]}),
|
|
line = iD.Way({nodes: [a.id, b.id]}),
|
|
graph = iD.Graph([a, b, line]);
|
|
|
|
surface.call(iD.svg.Midpoints(projection), graph, [line], filter);
|
|
|
|
expect(surface.selectAll('.midpoint')[0]).to.have.length(0);
|
|
});
|
|
|
|
it("binds a datum whose 'ways' property lists ways which include the segement", function () {
|
|
var a = iD.Node({loc: [0, 0]}),
|
|
b = iD.Node({loc: [50, 0]}),
|
|
c = iD.Node({loc: [1, 1]}),
|
|
d = iD.Node({loc: [2, 2]}),
|
|
l1 = iD.Way({nodes: [a.id, b.id]}),
|
|
l2 = iD.Way({nodes: [b.id, a.id]}),
|
|
l3 = iD.Way({nodes: [c.id, a.id, b.id, d.id]}),
|
|
l4 = iD.Way({nodes: [a.id, d.id, b.id]}),
|
|
graph = iD.Graph([a, b, c, d, l1, l2, l3, l4]),
|
|
ab = function (d) { return d.id === [a.id, b.id].sort().join("-"); };
|
|
|
|
surface.call(iD.svg.Midpoints(projection), graph, [l1, l2, l3, l4], filter);
|
|
|
|
expect(surface.selectAll('.midpoint').filter(ab).datum().ways).to.eql([
|
|
{id: l1.id, index: 1},
|
|
{id: l2.id, index: 1},
|
|
{id: l3.id, index: 2}]);
|
|
});
|
|
});
|