r2857 - positionTo: Added support for stackfix and by options. Added tests for offset and by opt...
Author: scott.gonzalez
Date: Tue Jun 30 19:36:35 2009
New Revision: 2857
Modified:
branches/dev/positionTo/tests/unit/positionTo/positionTo_core.js
branches/dev/positionTo/ui/ui.positionTo.js
Log:
positionTo: Added support for stackfix and by options. Added tests for
offset and by options.
Modified: branches/dev/positionTo/tests/unit/positionTo/positionTo_core.js
==============================================================================
--- branches/dev/positionTo/tests/unit/positionTo/positionTo_core.js
(original)
+++ branches/dev/positionTo/tests/unit/positionTo/positionTo_core.js Tue
Jun 30 19:36:35 2009
@@ -62,4 +62,58 @@
});
});
+test('offset', function() {
+ $('#elx').positionTo({
+ my: 'left top',
+ at: 'left bottom',
+ of: '#parentx',
+ offset: '10'
+ });
+ same($('#elx').offset(), { top: 17, left: 14 }, 'single value');
+
+ $('#elx').positionTo({
+ my: 'left top',
+ at: 'left bottom',
+ of: '#parentx',
+ offset: '5 -3'
+ });
+ same($('#elx').offset(), { top: 4, left: 9 }, 'two values');
+
+ $('#elx').positionTo({
+ my: 'left top',
+ at: 'left bottom',
+ of: '#parentx',
+ offset: '5px -3px'
+ });
+ same($('#elx').offset(), { top: 4, left: 9 }, 'with units');
+});
+
+test('by', function() {
+ expect(6);
+
+ var count = 0,
+ elems = $('#el1, #el2'),
+ expectedPosition = { top: 4, left: 4 },
+ originalPosition = elems.positionTo({
+ my: 'right bottom',
+ at: 'rigt bottom',
+ of: '#parentx'
+ }).offset();
+
+ elems.positionTo({
+ my: 'left top',
+ at: 'left top',
+ of: '#parentx',
+ by: function(position) {
+ same(this, elems[count], 'correct context for call #' + count);
+ same(position, expectedPosition, 'correct position for call #' + count);
+ count++;
+ }
+ });
+
+ elems.each(function() {
+ same($(this).offset(), originalPosition, 'elements not moved');
+ });
+});
+
})(jQuery);
Modified: branches/dev/positionTo/ui/ui.positionTo.js
==============================================================================
--- branches/dev/positionTo/ui/ui.positionTo.js (original)
+++ branches/dev/positionTo/ui/ui.positionTo.js Tue Jun 30 19:36:35 2009
@@ -88,12 +88,10 @@
break;
}
- // TODO: offset option
// TODO: collision option
- // TODO: by option
- // TODO: stackfix option
- elem.offset(position);
+ (options.stackfix && $.fn.stackfix && elem.stackfix());
+ (options.by ? options.by.call(this, position) : elem.offset(position));
});
};