633de4bb69cc75314323126db390d29ff1dee2c7Luke SmithYUI.add('queue-promote-tests', function(Y) {
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smithvar suite = new Y.Test.Suite("queue-promote");
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smithsuite.add(new Y.Test.Case({
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith name : "queue-promote API",
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith "methods should exist": function () {
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith YUI().use(function (X) {
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith var q = new X.Queue('a', 'b', 'c');
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.Assert.isInstanceOf(X.Queue, q);
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.Assert.isUndefined(q.promote);
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.Assert.isUndefined(q.remove);
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.Assert.isUndefined(q.indexOf);
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith X.use('queue-promote', function () {
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.Assert.isFunction(q.promote);
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.Assert.isFunction(q.remove);
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.Assert.isFunction(q.indexOf);
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith });
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith });
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith },
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith "promote should move found item to the head" : function () {
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith var q = new Y.Queue('a', 'b', 'c');
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.ArrayAssert.itemsAreSame(['a','b','c'], q._q);
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith q.promote('c');
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.ArrayAssert.itemsAreSame(['c','a','b'], q._q);
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith },
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith "remove should remove found item": function () {
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith var q = new Y.Queue('a', 'b', 'c');
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.ArrayAssert.itemsAreSame(['a','b','c'], q._q);
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith // From the front
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith q.remove('a');
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.ArrayAssert.itemsAreSame(['b','c'], q._q);
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith // From the end
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith q.remove('c');
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.ArrayAssert.itemsAreSame(['b'], q._q);
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith q.add('d', 'e');
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith // From the middle
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith q.remove('d');
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.ArrayAssert.itemsAreSame(['b','e'], q._q);
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith // Not in the queue
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith q.remove('x');
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.ArrayAssert.itemsAreSame(['b','e'], q._q);
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith },
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith "indexOf should return index or -1": function () {
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith var q = new Y.Queue('a', 'b', 'c');
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.Assert.areSame(0, q.indexOf('a'));
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.Assert.areSame(1, q.indexOf('b'));
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.Assert.areSame(2, q.indexOf('c'));
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith Y.Assert.areSame(-1, q.indexOf('x'));
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith }
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith}));
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke SmithY.Test.Runner.add(suite);
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith
633de4bb69cc75314323126db390d29ff1dee2c7Luke Smith}, '@VERSION@' ,{requires:['queue-promote', 'test']});