clearQueue and next should now work with default fx on all browsers
[jquery.git] / test / unit / data.js
index fa56891..812ccd2 100644 (file)
@@ -157,4 +157,104 @@ test("queue() with other types",function() {
        \r
        // Clean up\r
        $div.removeData();\r
-})\r
+});\r
+\r
+test("queue(name) passes in the next item in the queue as a parameter", function() {\r
+       expect(2);\r
+       \r
+       var div = jQuery({});\r
+       var counter = 0;\r
+       \r
+       div.queue("foo", function(next) {\r
+               equals(++counter, 1, "Dequeueing");\r
+               next();\r
+       }).queue("foo", function(next) {\r
+               equals(++counter, 2, "Next was called");\r
+               next();\r
+       }).queue("bar", function() {\r
+               equals(++counter, 3, "Other queues are not triggered by next()")\r
+       });\r
+       \r
+       div.dequeue("foo");\r
+       \r
+       div.removeData();\r
+});\r
+\r
+test("queue(name) passes in the next item in the queue as a parameter", function() {\r
+       expect(2);\r
+       \r
+       var div = jQuery({});\r
+       var counter = 0;\r
+       \r
+       div.queue("foo", function(next) {\r
+               equals(++counter, 1, "Dequeueing");\r
+               next();\r
+       }).queue("foo", function(next) {\r
+               equals(++counter, 2, "Next was called");\r
+               next();\r
+       }).queue("bar", function() {\r
+               equals(++counter, 3, "Other queues are not triggered by next()")\r
+       });\r
+       \r
+       div.dequeue("foo");\r
+       \r
+       div.removeData();\r
+});\r
+\r
+test("queue() passes in the next item in the queue as a parameter to fx queues", function() {\r
+       expect(2);\r
+       \r
+       var div = jQuery({});\r
+       var counter = 0;\r
+       \r
+       div.queue(function(next) {\r
+               equals(++counter, 1, "Dequeueing");\r
+               next();\r
+       }).queue(function(next) {\r
+               equals(++counter, 2, "Next was called");\r
+               next();\r
+       }).queue("bar", function() {\r
+               equals(++counter, 3, "Other queues are not triggered by next()")\r
+       });\r
+       \r
+       div.removeData();\r
+});\r
+\r
+test("clearQueue(name) clears the queue", function() {\r
+       expect(1);\r
+       \r
+       var div = jQuery({});\r
+       var counter = 0;\r
+       \r
+       div.queue("foo", function(next) {\r
+               counter++;\r
+               jQuery(this).clearQueue("foo");\r
+               next();\r
+       }).queue("foo", function(next) {\r
+               counter++;\r
+       });\r
+       \r
+       div.dequeue("foo");\r
+       \r
+       equals(counter, 1, "the queue was cleared");\r
+       \r
+       div.removeData();\r
+});\r
+\r
+test("clearQueue() clears the fx queue", function() {\r
+       expect(1);\r
+       \r
+       var div = jQuery({});\r
+       var counter = 0;\r
+       \r
+       div.queue(function(next) {\r
+               counter++;\r
+               setTimeout(function() { jQuery(this).clearQueue(); next(); }, 50);\r
+       }).queue(function(next) {\r
+               counter++;\r
+       });\r
+       \r
+       equals(counter, 1, "the queue was cleared");\r
+       \r
+       div.removeData();\r
+});\r