a3b15d60042c81a524cebb94370e5a234a19d04bLuke SmithYUI.add('datatable-sort-tests', function(Y) {
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smithvar suite = new Y.Test.Suite("Y.Plugin.DataTableSort");
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smithsuite.add(new Y.Test.Case({
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith name: "DataTableSort tests",
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith "datatable-sort should not rely on a link in the template": function () {
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith var table, link, th;
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith table = new Y.DataTable.Base({
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith columnset: [{ key: 'a', sortable: true }],
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith recordset: [{ a: "a1" }, { a: "a2" }, { a: "a3" }]
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith }).plug(Y.Plugin.DataTableSort);
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith Y.one('#testbed').empty();
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith table.render('#testbed');
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith th = table._theadNode.one('th');
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith Y.Assert.isInstanceOf(Y.Node, th);
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith link = th.one('a');
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith Y.Assert.isInstanceOf(Y.Node, link);
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith // Should not error
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith link.simulate('click');
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith table.destroy();
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith Y.one('#testbed').empty();
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith table = new Y.DataTable.Base({
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith columnset: [{ key: 'a', sortable: true }],
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith recordset: [{ a: "a1" }, { a: "a2" }, { a: "a3" }]
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith }).plug(Y.Plugin.DataTableSort, {
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith trigger: {
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith selector: 'th',
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith event: 'click'
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith },
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith template: '{value}' // override the template with link
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith });
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith table.render('#testbed');
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith th = table._theadNode.one('th');
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith Y.Assert.isInstanceOf(Y.Node, th);
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith link = th.one('a');
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith Y.Assert.isNull(link);
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith // Should not error
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith th.simulate('click');
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith table.destroy();
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith Y.one('#testbed').empty();
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith }
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith // test direction classes
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith // test trigger event
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith // test unplug
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith}));
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke SmithY.Test.Runner.add(suite);
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith
a3b15d60042c81a524cebb94370e5a234a19d04bLuke Smith}, '@VERSION@' ,{requires:['datatable-sort', 'test', 'node-event-simulate']});