Test case details

Preparation Code

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script>   /*              jQuery pub/sub plugin by Peter Higgins (dante@dojotoolkit.org)           Loosely based on Dojo publish/subscribe API, limited in scope. Rewritten blindly.           Original is (c) Dojo Foundation 2004-2010. Released under either AFL or new BSD, see:         http://dojofoundation.org/license for more information.     */   (function($) {    var topics = {};      $.publish1 = function(topic, args) {     if (topics[topic]) {      var currentTopic = topics[topic];        for (var i = 0, j = currentTopic.length; i < j; i++) {       currentTopic[i].apply($, args || []);      }     }    };      $.subscribe1 = function(topic, callback) {     if (!topics[topic]) {      topics[topic] = [];     }       topics[topic].push(callback);       return {      "topic": topic,      "callback": callback     };    };      $.unsubscribe1 = function(handle) {     var topic = handle.topic;       if (topics[topic]) {      var currentTopic = topics[topic];        for (var i = 0, j = currentTopic.length; i < j; i++) {       if (currentTopic[i] === handle.callback) {        currentTopic.splice(i, 1);       }      }     }    };     })(jQuery);     /*!    * jQuery Tiny Pub/Sub - v0.3pre - 11/4/2010    * http://benalman.com/    *    * Copyright (c) 2010 "Cowboy" Ben Alman    * Dual licensed under the MIT and GPL licenses.    * http://benalman.com/about/license/    */   /*!    * jQuery Tiny Pub/Sub - v0.X - 11/18/2010    * http://benalman.com/    *    * Original Copyright (c) 2010 "Cowboy" Ben Alman    * Dual licensed under the MIT and GPL licenses.    * http://benalman.com/about/license/    *    * Made awesome by Rick Waldron    *    */   (function(jQuery) {    var o = jQuery({});    jQuery.each({     "subscribe2": "bind",     "unsubscribe2": "unbind",     "publish2": "trigger"    }, function(fn, api) {     jQuery[fn] = function() {      o[api].apply(o, arguments);     };    });   })(jQuery); </script>

Test cases

Test #1

var handle = $.subscribe1('foo', function() {  1 + 1; }); $.publish1('foo', ['bar']); $.unsubscribe1(handle);

Test #2

$.subscribe2('foo', function() {  1 + 1; }); $.publish2('foo', ['bar']); $.unsubscribe2('foo');