diff options
Diffstat (limited to '')
-rw-r--r-- | dom/tests/mochitest/ajax/scriptaculous/test/unit/position_clone_test.html | 312 |
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 |