aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/bower_components/raphael/dev/test/svg/dom.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/bower_components/raphael/dev/test/svg/dom.js')
-rw-r--r--public/bower_components/raphael/dev/test/svg/dom.js317
1 files changed, 317 insertions, 0 deletions
diff --git a/public/bower_components/raphael/dev/test/svg/dom.js b/public/bower_components/raphael/dev/test/svg/dom.js
new file mode 100644
index 0000000..a27d3e1
--- /dev/null
+++ b/public/bower_components/raphael/dev/test/svg/dom.js
@@ -0,0 +1,317 @@
+(function() {
+
+var paper,
+ url = 'http://raphaeljs.com';
+
+module('DOM', {
+ setup: function() {
+ paper = new Raphael(document.getElementById('qunit-fixture'), 1000, 1000);
+ },
+ teardown: function() {
+ paper.remove();
+ }
+});
+
+var equalNodePosition = function(node, expectedParent, expectedPreviousSibling, expectedNextSibling) {
+ equal(node.parentNode, expectedParent);
+ equal(node.previousSibling, expectedPreviousSibling);
+ equal(node.nextSibling, expectedNextSibling);
+};
+
+var equalNodePositionWrapped = function(node, anchor, expectedParent, expectedPreviousSibling, expectedNextSibling) {
+ equal(node.parentNode, anchor);
+ equalNodePosition(anchor, expectedParent, expectedPreviousSibling, expectedNextSibling);
+};
+
+// Element#insertBefore
+// --------------------
+
+test('insertBefore: no element', function() {
+ var el = paper.rect();
+
+ el.insertBefore(null);
+
+ equalNodePosition(el.node, paper.canvas, paper.defs, null);
+});
+
+test('insertBefore: first element', function() {
+ var x = paper.rect();
+ var el = paper.rect();
+
+ el.insertBefore(x);
+
+ equalNodePosition(el.node, paper.canvas, paper.defs, x.node);
+});
+
+test('insertBefore: middle element', function() {
+ var x = paper.rect();
+ var y = paper.rect();
+ var el = paper.rect();
+
+ el.insertBefore(y);
+
+ equalNodePosition(el.node, paper.canvas, x.node, y.node);
+});
+
+test('insertBefore: no element when wrapped in <a>', function() {
+ var el = paper.rect().attr('href', url),
+ anchor = el.node.parentNode;
+
+ el.insertBefore(null);
+
+ equalNodePositionWrapped(el.node, anchor, paper.canvas, paper.defs, null);
+});
+
+test('insertBefore: first element when wrapped in <a>', function() {
+ var x = paper.rect();
+ var el = paper.rect().attr('href', url),
+ anchor = el.node.parentNode;
+
+ el.insertBefore(x);
+
+ equalNodePositionWrapped(el.node, anchor, paper.canvas, paper.defs, x.node);
+});
+
+test('insertBefore: first element wrapped in <a> and wrapped in <a>', function() {
+ var x = paper.rect().attr('href', url),
+ xAnchor = x.node.parentNode;
+ var el = paper.rect().attr('href', url),
+ anchor = el.node.parentNode;
+
+ el.insertBefore(x);
+
+ equalNodePositionWrapped(el.node, anchor, paper.canvas, paper.defs, xAnchor);
+});
+
+test('insertBefore: middle element when wrapped in <a>', function() {
+ var x = paper.rect();
+ var y = paper.rect();
+ var el = paper.rect().attr('href', url),
+ anchor = el.node.parentNode;
+
+ el.insertBefore(y);
+
+ equalNodePositionWrapped(el.node, anchor, paper.canvas, x.node, y.node);
+});
+
+test('insertBefore: middle element wrapped in <a> and wrapped in <a>', function() {
+ var x = paper.rect().attr('href', url),
+ xAnchor = x.node.parentNode;
+ var y = paper.rect().attr('href', url),
+ yAnchor = y.node.parentNode;
+ var el = paper.rect().attr('href', url),
+ anchor = el.node.parentNode;
+
+ el.insertBefore(y);
+
+ equalNodePositionWrapped(el.node, anchor, paper.canvas, xAnchor, yAnchor);
+});
+
+// TODO...
+// insertBefore: with set
+// insertBefore: with nested set.
+
+// Element#insertAfter
+// -------------------
+
+test('insertAfter: no element', function() {
+ var el = paper.rect();
+
+ el.insertAfter(null);
+
+ equalNodePosition(el.node, paper.canvas, paper.defs, null);
+});
+
+test('insertAfter: last element', function() {
+ var x = paper.rect();
+ var el = paper.rect();
+
+ el.insertAfter(x);
+
+ equalNodePosition(el.node, paper.canvas, x.node, null);
+});
+
+test('insertAfter: middle element', function() {
+ var x = paper.rect();
+ var y = paper.rect();
+ var el = paper.rect();
+
+ el.insertAfter(x);
+
+ equalNodePosition(el.node, paper.canvas, x.node, y.node);
+});
+
+test('insertAfter: no element when wrapped in <a>', function() {
+ var el = paper.rect().attr('href', url),
+ anchor = el.node.parentNode;
+
+ el.insertAfter(null);
+
+ equalNodePositionWrapped(el.node, anchor, paper.canvas, paper.defs, null);
+});
+
+test('insertAfter: last element when wrapped in <a>', function() {
+ var x = paper.rect();
+ var el = paper.rect().attr('href', url),
+ anchor = el.node.parentNode;
+
+ el.insertAfter(x);
+
+ equalNodePositionWrapped(el.node, anchor, paper.canvas, x.node, null);
+});
+
+test('insertAfter: last element wrapped in <a> and wrapped in <a>', function() {
+ var x = paper.rect().attr('href', url),
+ xAnchor = x.node.parentNode;
+ var el = paper.rect().attr('href', url),
+ anchor = el.node.parentNode;
+
+ el.insertAfter(x);
+
+ equalNodePositionWrapped(el.node, anchor, paper.canvas, xAnchor, null);
+});
+
+test('insertAfter: middle element when wrapped in <a>', function() {
+ var x = paper.rect();
+ var y = paper.rect();
+ var el = paper.rect().attr('href', url),
+ anchor = el.node.parentNode;
+
+ el.insertAfter(x);
+
+ equalNodePositionWrapped(el.node, anchor, paper.canvas, x.node, y.node);
+});
+
+test('insertAfter: middle element wrapped in <a> and wrapped in <a>', function() {
+ var x = paper.rect().attr('href', url),
+ xAnchor = x.node.parentNode;
+ var y = paper.rect().attr('href', url),
+ yAnchor = y.node.parentNode;
+ var el = paper.rect().attr('href', url),
+ anchor = el.node.parentNode;
+
+ el.insertAfter(x);
+
+ equalNodePositionWrapped(el.node, anchor, paper.canvas, xAnchor, yAnchor);
+});
+
+// TODO...
+// insertAfter: with set
+// insertAfter: with nested set.
+
+// Element#remove
+// --------------
+
+test('remove: after added', function() {
+ var el = paper.rect(),
+ node = el.node;
+
+ el.remove();
+
+ equal(el.node, null);
+ equal(node.parentNode, null);
+});
+
+test('remove: when wrapped in <a>', function() {
+ var el = paper.rect().attr('href', url),
+ node = el.node,
+ anchor = node.parentNode;
+
+ el.remove();
+
+ equal(el.node, null);
+ equal(node.parentNode, anchor);
+ equal(anchor.parentNode, null);
+});
+
+test('remove: when already removed', function() {
+ var el = paper.rect(),
+ node = el.node;
+
+ el.remove();
+ el.remove();
+
+ equal(el.node, null);
+ equal(node.parentNode, null);
+});
+
+test('remove: when the canvas is removed', function() {
+ var el = paper.rect(),
+ node = el.node;
+
+ paper.remove();
+ el.remove();
+
+ equal(el.node, null);
+ equal(node.parentNode, null);
+});
+
+// Element#toFront
+// --------------
+
+test('toFront: normal', function() {
+ var el = paper.rect();
+ var x = paper.rect();
+
+ el.toFront();
+
+ equalNodePosition(el.node, paper.canvas, x.node, null);
+});
+
+test('toFront: when wrapped in <a>', function() {
+ var el = paper.rect().attr('href', url),
+ anchor = el.node.parentNode;
+ var x = paper.rect();
+
+ el.toFront();
+
+ equalNodePositionWrapped(el.node, anchor, paper.canvas, x.node, null);
+});
+
+// Element#toBack
+// --------------
+
+test('toBack: normal', function() {
+ var x = paper.rect();
+ var el = paper.rect();
+
+ el.toBack();
+
+ equalNodePosition(el.node, paper.canvas, null, paper.desc);
+ equalNodePosition(x.node, paper.canvas, paper.defs, null);
+});
+
+test('toBack: when wrapped in <a>', function() {
+ var x = paper.rect();
+ var el = paper.rect().attr('href', url),
+ anchor = el.node.parentNode;
+
+ el.toBack();
+
+ equalNodePositionWrapped(el.node, anchor, paper.canvas, null, paper.desc);
+ equalNodePosition(x.node, paper.canvas, paper.defs, null);
+});
+
+
+// Element#attrs
+// -------------
+
+// #x
+
+// #y
+
+// #rx
+
+// #ry
+
+// #transform
+
+// #title
+
+// #href
+
+//keep adding and testing!
+
+
+
+})(); \ No newline at end of file