diff options
Diffstat (limited to 'tests/unit/selectable/methods.js')
-rw-r--r-- | tests/unit/selectable/methods.js | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/tests/unit/selectable/methods.js b/tests/unit/selectable/methods.js new file mode 100644 index 000000000..045809670 --- /dev/null +++ b/tests/unit/selectable/methods.js @@ -0,0 +1,111 @@ +define( [ + "jquery", + "ui/selectable" +], function( $ ) { + +module("selectable: methods"); + +test("init", function() { + expect( 5 ); + + $("<div></div>").appendTo("body").selectable().remove(); + ok(true, ".selectable() called on element"); + + $([]).selectable().remove(); + ok(true, ".selectable() called on empty collection"); + + $("<div></div>").selectable().remove(); + ok(true, ".selectable() called on disconnected DOMElement"); + + var el = $("<div></div>").selectable(); + el.selectable("option", "foo"); + el.remove(); + ok(true, "arbitrary option getter after init"); + + $("<div></div>").selectable().selectable("option", "foo", "bar").remove(); + ok(true, "arbitrary option setter after init"); +}); + +test("destroy", function() { + expect( 4 ); + + $("<div></div>").appendTo("body").selectable().selectable("destroy").remove(); + ok(true, ".selectable('destroy') called on element"); + + $([]).selectable().selectable("destroy").remove(); + ok(true, ".selectable('destroy') called on empty collection"); + + $("<div></div>").selectable().selectable("destroy").remove(); + ok(true, ".selectable('destroy') called on disconnected DOMElement"); + + var expected = $("<div></div>").selectable(), + actual = expected.selectable("destroy"); + equal(actual, expected, "destroy is chainable"); +}); + +test("enable", function() { + expect(3); + var expected, actual, + fired = false, + el = $("#selectable1"); + + el.selectable({ + disabled: true, + start: function() { fired = true; } + }); + el.simulate( "drag", { + dx: 20, + dy: 20 + }); + equal(fired, false, "start fired"); + el.selectable("enable"); + el.simulate( "drag", { + dx: 20, + dy: 20 + }); + equal(fired, true, "start fired"); + el.selectable("destroy"); + + expected = $("<div></div>").selectable(); + actual = expected.selectable("enable"); + equal(actual, expected, "enable is chainable"); +}); + +test( "disable", function( assert ) { + expect( 6 ); + var chainable, + fired = false, + element = $( "#selectable1" ); + + element.selectable({ + disabled: false, + start: function() { + fired = true; + } + }); + element.simulate( "drag", { + dx: 20, + dy: 20 + }); + equal( fired, true, "start fired" ); + + chainable = element.selectable( "disable" ); + fired = false; + + element.simulate( "drag", { + dx: 20, + dy: 20 + }); + equal( fired, false, "start fired" ); + + assert.lacksClasses( element.selectable( "widget" ), "ui-state-disabled" ); + + ok( !element.selectable( "widget" ).attr( "aria-disabled" ), "element does not get aria-disabled" ); + assert.hasClasses( element.selectable( "widget" ), "ui-selectable-disabled" ); + + element.selectable( "destroy" ); + + equal( chainable, element, "disable is chainable" ); +}); + +} ); |