diff --git a/test/index.html b/test/index.html
index 770d33e21..c16e61fb9 100644
--- a/test/index.html
+++ b/test/index.html
@@ -183,6 +183,7 @@
+
diff --git a/test/spec/actions/orthogonalize.js b/test/spec/actions/orthogonalize.js
new file mode 100644
index 000000000..690d73140
--- /dev/null
+++ b/test/spec/actions/orthogonalize.js
@@ -0,0 +1,30 @@
+describe("iD.actions.Orthogonalize", function () {
+ var projection = d3.geo.mercator();
+
+ it("orthoganalizes a quad", function () {
+ var graph = iD.Graph({
+ 'a': iD.Node({id: 'a', loc: [0, 0]}),
+ 'b': iD.Node({id: 'b', loc: [4, 0]}),
+ 'c': iD.Node({id: 'c', loc: [3, 2]}),
+ 'd': iD.Node({id: 'd', loc: [0, 2]}),
+ '-': iD.Way({id: '-', nodes: ['a', 'b', 'c', 'd', 'a']})
+ });
+
+ graph = iD.actions.Orthogonalize('-', projection)(graph);
+
+ expect(graph.entity('-').nodes).to.have.length(5);
+ });
+
+ it("orthoganalizes a triangle", function () {
+ var graph = iD.Graph({
+ 'a': iD.Node({id: 'a', loc: [0, 0]}),
+ 'b': iD.Node({id: 'b', loc: [3, 0]}),
+ 'c': iD.Node({id: 'c', loc: [2, 2]}),
+ '-': iD.Way({id: '-', nodes: ['a', 'b', 'c', 'a']})
+ });
+
+ graph = iD.actions.Orthogonalize('-', projection)(graph);
+
+ expect(graph.entity('-').nodes).to.have.length(4);
+ });
+});