//beforeEach(function() {
//  this.addMatchers({
//    toBePlaying: function(expectedSong) {
//      var player = this.actual;
//      return player.currentlyPlayingSong === expectedSong &&
//             player.isPlaying;
//    }
//  });
//});
var specHelpers = new (function () {
    'use strict';
    var self = this;

    self.clickBtn = function (target) {
        $(target + ' button').click();
    };

    self.deleteCookie = function (name) {
        document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
    };


    self.beforeAll = function (func) {
        var calledTimes = 0;

        var calledOnceFunc = function (done) {
            if (calledTimes >= 1) {
                done();
            }
            else {
                func(done)
            }
        };
        beforeEach(calledOnceFunc);
    }

})();

@@ -827,16 +827,274 @@
 eFunc);%0A
+    %7D;%0A%0A    self.onceFunction = $.noop;%0A    self.once = function(fun) %7B%0A        if (typeof fun == 'undefined') %7B%0A            self.onceFunction();%0A            self.onceFunction = $.noop;%0A        %7D%0A        else %7B%0A            self.onceFunction = fun;%0A        %7D%0A
     %7D%0A%0A%7D

add specHelper.once()