summaryrefslogtreecommitdiffstats
path: root/dom/tests/mochitest/ajax/scriptaculous/test/unit/position_clone_test.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/tests/mochitest/ajax/scriptaculous/test/unit/position_clone_test.html')
-rw-r--r--dom/tests/mochitest/ajax/scriptaculous/test/unit/position_clone_test.html312
1 files changed, 312 insertions, 0 deletions
diff --git a/dom/tests/mochitest/ajax/scriptaculous/test/unit/position_clone_test.html b/dom/tests/mochitest/ajax/scriptaculous/test/unit/position_clone_test.html
new file mode 100644
index 0000000000..0644c631b5
--- /dev/null
+++ b/dom/tests/mochitest/ajax/scriptaculous/test/unit/position_clone_test.html
@@ -0,0 +1,312 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>script.aculo.us Unit test file</title>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+ <script src="../../lib/prototype.js" type="text/javascript"></script>
+ <script src="../../src/scriptaculous.js" type="text/javascript"></script>
+ <script src="../../src/unittest.js" type="text/javascript"></script>
+ <link rel="stylesheet" href="../test.css" type="text/css" />
+</head>
+<body>
+<h1>script.aculo.us Unit test file</h1>
+<p>
+ Tests for Postion.clone (to be moved to Prototype)
+</p>
+
+<!-- Log output -->
+<div id="testlog"> </div>
+
+<!-- Tests follow -->
+<script type="text/javascript" language="javascript" charset="utf-8">
+// <![CDATA[
+
+ function prepareTarget(contained, position1, position2) {
+ var target;
+ if($('target_div')) Element.remove('target_div');
+ if($('container_div')) Element.remove('container_div');
+ if(contained) {
+ target = Builder.node('div',
+ {id: 'container_div', style: 'position:' + position1},
+ [Builder.node('div', {id: 'target_div', style: 'position: ' +position2})]);
+ } else {
+ target = Builder.node('div',
+ {id: 'target_div', style: 'position:' + position1}, '456');
+ }
+ document.body.appendChild(target);
+ Position.clone($('source_div'),$('target_div'));
+ }
+
+ function prepareTargetHidden(contained, position1, position2) {
+ var target;
+ if($('target_div')) Element.remove('target_div');
+ if($('container_div')) Element.remove('container_div');
+ if(contained) {
+ target = Builder.node('div',
+ {id: 'container_div', style: 'position:' + position1},
+ [Builder.node('div', {id: 'target_div', style: 'display:none; position: ' +position2})]);
+ } else {
+ target = Builder.node('div',
+ {id: 'target_div', style: 'display:none; position:' + position1}, '456');
+ }
+ document.body.appendChild(target);
+ Position.clone($('source_div'),$('target_div'));
+ Element.show($('target_div'));
+ }
+
+ new Test.Unit.Runner({
+
+ teardown: function() {
+ Element.remove($('source_div'));
+ },
+
+ testPositionCloneFromAbsolute: function() { with(this) {
+ var source = Builder.node('div',
+ {id: 'source_div', style: 'position:absolute; top:20px; left:120px; width:100px; height:50px;'}, '123');
+ document.body.appendChild(source);
+ var expected = Object.inspect([120, 20]);
+ assertEqual(expected, Object.inspect(Position.page($('source_div'))));
+
+ prepareTarget(false, 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute BODY child");
+
+ prepareTarget(false, 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed BODY child");
+
+ prepareTarget(true, 'absolute', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of absolute BODY child");
+
+ prepareTarget(true, 'absolute', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of absolute BODY child");
+
+ prepareTarget(true, 'relative', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of relative BODY child");
+
+ prepareTarget(true, 'relative', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of relative BODY child");
+
+ prepareTarget(true, 'static', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of static BODY child");
+
+ prepareTarget(true, 'static', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of static BODY child");
+ }},
+
+ testPositionCloneFromRelative: function() { with(this) {
+ var source = Builder.node('div',
+ {id: 'source_div', style: 'position:relative; top:20px; left:120px; width:100px; height:50px;'}, '123');
+ document.body.appendChild(source);
+ var expected = Object.inspect(Position.page($('source_div')));
+ assertEqual(expected, Object.inspect(Position.page($('source_div'))));
+
+ prepareTarget(false, 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute BODY child");
+
+ prepareTarget(false, 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed BODY child");
+
+ prepareTarget(true, 'absolute', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of absolute BODY child");
+
+ prepareTarget(true, 'absolute', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of absolute BODY child");
+
+ prepareTarget(true, 'relative', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of relative BODY child");
+
+ prepareTarget(true, 'relative', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of relative BODY child");
+
+ prepareTarget(true, 'static', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of static BODY child");
+
+ prepareTarget(true, 'static', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of static BODY child");
+ }},
+
+ testPositionCloneFromStatic: function() { with(this) {
+ var source = Builder.node('div',
+ {id: 'source_div', style: 'top:20px; left:120px; width:100px; height:50px;'}, '123');
+ document.body.appendChild(source);
+ var expected = Object.inspect(Position.page($('source_div')));
+ assertEqual(expected, Object.inspect(Position.page($('source_div'))));
+
+ prepareTarget(false, 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute BODY child");
+
+ prepareTarget(false, 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed BODY child");
+
+ prepareTarget(true, 'absolute', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of absolute BODY child");
+
+ prepareTarget(true, 'absolute', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of absolute BODY child");
+
+ prepareTarget(true, 'relative', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of relative BODY child");
+
+ prepareTarget(true, 'relative', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of relative BODY child");
+
+ prepareTarget(true, 'static', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of static BODY child");
+
+ prepareTarget(true, 'static', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of static BODY child");
+ }},
+
+ testPositionCloneFromAbsoluteWithHiddenTarget: function() { with(this) {
+ var source = Builder.node('div',
+ {id: 'source_div', style: 'position:absolute; top:20px; left:120px; width:100px; height:50px;'}, '123');
+ document.body.appendChild(source);
+ var expected = Object.inspect([120, 20]);
+ assertEqual(expected, Object.inspect(Position.page($('source_div'))));
+
+ prepareTargetHidden(false, 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute BODY child");
+
+ prepareTargetHidden(false, 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed BODY child");
+
+ prepareTargetHidden(true, 'absolute', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of absolute BODY child");
+
+ prepareTargetHidden(true, 'absolute', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of absolute BODY child");
+
+ prepareTargetHidden(true, 'relative', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of relative BODY child");
+
+ prepareTargetHidden(true, 'relative', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of relative BODY child");
+
+ prepareTargetHidden(true, 'static', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of static BODY child");
+
+ prepareTargetHidden(true, 'static', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of static BODY child");
+ }},
+
+ testPositionCloneFromRelativeWithHiddenTarget: function() { with(this) {
+ var source = Builder.node('div',
+ {id: 'source_div', style: 'position:relative; top:20px; left:120px; width:100px; height:50px;'}, '123');
+ document.body.appendChild(source);
+ var expected = Object.inspect(Position.page($('source_div')));
+ assertEqual(expected, Object.inspect(Position.page($('source_div'))));
+
+ prepareTargetHidden(false, 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute BODY child");
+
+ prepareTargetHidden(false, 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed BODY child");
+
+ prepareTargetHidden(true, 'absolute', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of absolute BODY child");
+
+ prepareTargetHidden(true, 'absolute', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of absolute BODY child");
+
+ prepareTargetHidden(true, 'relative', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of relative BODY child");
+
+ prepareTargetHidden(true, 'relative', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of relative BODY child");
+
+ prepareTargetHidden(true, 'static', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of static BODY child");
+
+ prepareTargetHidden(true, 'static', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of static BODY child");
+ }},
+
+ testPositionCloneFromStaticWithHiddenTarget: function() { with(this) {
+ var source = Builder.node('div',
+ {id: 'source_div', style: 'top:20px; left:120px; width:100px; height:50px;'}, '123');
+ document.body.appendChild(source);
+ var expected = Object.inspect(Position.page($('source_div')));
+ assertEqual(expected, Object.inspect(Position.page($('source_div'))));
+
+ prepareTargetHidden(false, 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute BODY child");
+
+ prepareTargetHidden(false, 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed BODY child");
+
+ prepareTargetHidden(true, 'absolute', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of absolute BODY child");
+
+ prepareTargetHidden(true, 'absolute', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of absolute BODY child");
+
+ prepareTargetHidden(true, 'relative', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of relative BODY child");
+
+ prepareTargetHidden(true, 'relative', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of relative BODY child");
+
+ prepareTargetHidden(true, 'static', 'absolute');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to absolute child of static BODY child");
+
+ prepareTargetHidden(true, 'static', 'fixed');
+ assertEqual(expected, Object.inspect(Position.page($('target_div'))),
+ "Clone to fixed child of static BODY child");
+ }}
+
+ });
+
+// ]]>
+</script>
+
+<!-- Test elements will be inserted after this -->
+
+</body>
+</html> \ No newline at end of file