r2844 - positionTo: added basics unit tests as well as generated tests to handle 18 variations

r2844 - positionTo: added basics unit tests as well as generated tests to handle 18 variations


Author: joern.zaefferer
Date: Thu Jun 25 13:38:19 2009
New Revision: 2844
Added:
branches/dev/positionTo/tests/unit/positionTo/
branches/dev/positionTo/tests/unit/positionTo/positionTo.html
(contents, props changed)
branches/dev/positionTo/tests/unit/positionTo/positionTo_core.js
Log:
positionTo: added basics unit tests as well as generated tests to handle 18
variations
Added: branches/dev/positionTo/tests/unit/positionTo/positionTo.html
==============================================================================
--- (empty file)
+++ branches/dev/positionTo/tests/unit/positionTo/positionTo.html    Thu Jun
25 13:38:19 2009
@@ -0,0 +1,27 @@
+<!doctype html>
+<html lang="en">
+<head>
+    <title>jQuery UI PositionTo Test Suite</title>
+
+    <script type="text/javascript" src="../../../jquery-1.3.2.js"></script>
+    <script type="text/javascript" src="../../../ui/ui.core.js"></script>
+    <script type="text/javascript"
src="../../../ui/ui.positionTo.js"></script>
+
+    <link type="text/css" href="../testsuite.css" rel="stylesheet" />
+    <script type="text/javascript" src="../testsuite.js"></script>
+    <script type="text/javascript"
src="../../../external/testrunner-r6343.js"></script>
+
+    <script type="text/javascript" src="positionTo_core.js"></script>
+</head>
+<body>
+
+<div id="main">
+    <div style="position: absolute; top: 0; left: 0">
+        <div id="el1" style="width: 3px; height: 3px;"></div>
+        <div id="el2" style="width: 3px; height: 3px;"></div>
+        <div id="parent" style="width: 3px; height: 3px; top: 4px; left:
4px;"></div>
+    </div>
+</div>
+
+</body>
+</html>
Added: branches/dev/positionTo/tests/unit/positionTo/positionTo_core.js
==============================================================================
--- (empty file)
+++ branches/dev/positionTo/tests/unit/positionTo/positionTo_core.js    Thu
Jun 25 13:38:19 2009
@@ -0,0 +1,54 @@
+/*
+ * positionTo_core.js
+ */
+(function($) {
+
+    test("basics", function() {
+        var elements = $("#el1, #el2");
+        var result = elements.positionTo({
+            of: "#parent"
+        });
+        same(result, elements);
+        var expected = { top: 9, left: 4 };
+        same(elements.filter(":first").position(), expected);
+        same(elements.filter(":last").position(), expected);
+    })
+    
+    test("positions", function() {
+        var definitions = [];
+        var offsets = {
+            left: 0,
+            center: 1,
+            right: 2,
+            top: 0,
+            middle: 1,
+            bottom: 2
+        }
+        var start = {left: 4, top: 4};
+        $.each([0, 1], function(my) {
+            $.each(["top", "middle", "bottom"], function(vindex, vertical) {
+                $.each(["left", "center", "right"], function(hindex, horizontal) {
+                    definitions.push({
+                        my: my ? horizontal + " " + vertical : undefined,
+                        at: !my ? horizontal + " " + vertical : undefined,
+                        result: {
+                            top: my ? start.top - offsets[vertical] : start.top +
offsets[vertical],
+                            left: my ? start.left - offsets[horizontal] : start.left +
offsets[horizontal]
+                        }
+                    });
+                });
+            });
+        });
+        var el = $("#el1"),
+            parent = $("#parent");
+        $.each(definitions, function(index, definition) {
+            el.positionTo({
+                my: definition.my || "left top",
+                at: definition.at || "left top",
+                of: parent
+            });
+            same(el.position(), definition.result, "Position via " +
jsDump.parse({my:definition.my, at:definition.at}));
+        });
+    })
+
+})(jQuery);