Commit 9f04a780 authored by Tomas Alabes's avatar Tomas Alabes

Merge branch 'add-tests' of https://github.com/TheCloudlessSky/raphael into...

Merge branch 'add-tests' of https://github.com/TheCloudlessSky/raphael into TheCloudlessSky-add-tests
parents acfdc78c 921f6e2d
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Raphael Test Suite</title>
<link rel="stylesheet" href="../node_modules/qunitjs/qunit/qunit.css" />
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script type="text/javascript" src="../node_modules/qunitjs/qunit/qunit.js"></script>
<script type="text/javascript" src="../../eve/eve.js"></script>
<script type="text/javascript" src="../raphael.core.js"></script>
<script type="text/javascript" src="../raphael.svg.js"></script>
<script type="text/javascript" src="../raphael.vml.js"></script>
<script type="text/javascript">
(function() {
var tests = [
"dom"
];
var typeFolder = Raphael.type.toLowerCase();
for (var i = 0; i < tests.length; i++) {
var s = document.createElement('script');
s.type = "text/javascript";
s.src = typeFolder + "/" + tests[i] + ".js";
document.body.appendChild(s);
}
})();
</script>
</body>
</html>
\ No newline at end of file
(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);
});
})();
\ No newline at end of file
(function() {
module('DOM');
})();
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment