浏览代码

Found a bug in jasmine

which after being fixed removes the need for the sleep() command because you
can set the execution speed via jasmine's updateInterval attr
JC Brand 12 年之前
父节点
当前提交
b1ecdfdadc
共有 2 个文件被更改,包括 9 次插入27 次删除
  1. 9 3
      Libraries/jasmine-1.3.1/jasmine.js
  2. 0 24
      spec/MainSpec.js

+ 9 - 3
Libraries/jasmine-1.3.1/jasmine.js

@@ -2080,11 +2080,17 @@ jasmine.Queue.prototype.next_ = function() {
         self.index++;
 
         var now = new Date().getTime();
-        if (self.env.updateInterval && now - self.env.lastUpdate > self.env.updateInterval) {
-          self.env.lastUpdate = now;
+        if (self.env.updateInterval) {
+            var timeout;
+            if (now - self.env.lastUpdate > self.env.updateInterval) {
+                timeout = 0;
+            } else {
+                timeout = self.env.updateInterval;
+            }
           self.env.setTimeout(function() {
+            self.env.lastUpdate = now;
             self.next_();
-          }, 0);
+          }, timeout);
         } else {
           if (jasmine.Queue.LOOP_DONT_RECURSE && completedSynchronously) {
             goAgain = true;

+ 0 - 24
spec/MainSpec.js

@@ -71,19 +71,6 @@
         this.onConnected(mock_connection);
         this.animate = false; // don't use animations
 
-        // The timeout is used to slow down the tests so that one can see
-        // visually what is happening in the page.
-        var timeout = 0;
-        var sleep = function (delay) {
-            // Yes this is blocking and stupid, but these are tests and this is
-            // the easiest way to delay execution without having to use
-            // callbacks.
-            var start = new Date().getTime();
-            while (new Date().getTime() < start + delay) {
-                continue;
-            }
-        };
-
         describe("The Contacts Roster", $.proxy(function () {
             it("is not shown by default", $.proxy(function () {
                 expect(this.rosterview.$el.is(':visible')).toEqual(false);
@@ -124,7 +111,6 @@
                         t = this.rosterview.$el.find('dt#pending-xmpp-contacts').siblings('dd.pending-xmpp-contact').text();
                         expect(t).toEqual(pend_names.slice(0,i+1).sort().join(''));
                     }
-                    sleep(timeout);
                 }, xmppchat));
 
                 it("will have their own heading once they have been added", $.proxy(function () {
@@ -153,7 +139,6 @@
                         t = this.rosterview.$el.find('dt#xmpp-contacts').siblings('dd.current-xmpp-contact.offline').find('a.open-chat').text();
                         expect(t).toEqual(cur_names.slice(0,i+1).sort().join(''));
                     }
-                    sleep(timeout);
                 }, xmppchat));
 
                 it("will have their own heading once they have been added", $.proxy(function () {
@@ -175,7 +160,6 @@
                         // Check that they are sorted alphabetically
                         t = this.rosterview.$el.find('dt#xmpp-contacts').siblings('dd.current-xmpp-contact.online').find('a.open-chat').text();
                         expect(t).toEqual(cur_names.slice(0,i+1).sort().join(''));
-                        sleep(timeout);
                     }
                 }, xmppchat));
 
@@ -193,7 +177,6 @@
                         // Check that they are sorted alphabetically
                         t = this.rosterview.$el.find('dt#xmpp-contacts').siblings('dd.current-xmpp-contact.dnd').find('a.open-chat').text();
                         expect(t).toEqual(cur_names.slice(5,i+1).sort().join(''));
-                        sleep(timeout);
                     }
                 }, xmppchat));
 
@@ -212,7 +195,6 @@
                         // Check that they are sorted alphabetically
                         t = this.rosterview.$el.find('dt#xmpp-contacts').siblings('dd.current-xmpp-contact.away').find('a.open-chat').text();
                         expect(t).toEqual(cur_names.slice(10,i+1).sort().join(''));
-                        sleep(timeout);
                     }
                 }, xmppchat));
 
@@ -231,7 +213,6 @@
                         // Check that they are sorted alphabetically
                         t = this.rosterview.$el.find('dt#xmpp-contacts').siblings('dd.current-xmpp-contact.unavailable').find('a.open-chat').text();
                         expect(t).toEqual(cur_names.slice(15, i+1).sort().join(''));
-                        sleep(timeout);
                     }
                 }, xmppchat));
 
@@ -290,7 +271,6 @@
                         // be opened.
                         expect(this.showControlBox).toHaveBeenCalled();
                     }
-                    sleep(timeout);
                 }, xmppchat));
 
                 it("will have their own heading once they have been added", $.proxy(function () {
@@ -310,7 +290,6 @@
                     accept_button.click();
                     expect(view.acceptRequest).toHaveBeenCalled();
                     expect(this.connection.roster.authorize).toHaveBeenCalled();
-                    sleep(timeout);
                 }, xmppchat));
 
                 it("can have their requests denied by the user", $.proxy(function () {
@@ -327,7 +306,6 @@
                     expect(this.connection.roster.unauthorize).toHaveBeenCalled();
                     // There should now be one less contact
                     expect(this.roster.length).toEqual(num_contacts-1); 
-                    sleep(timeout);
                 }, xmppchat));
             }, xmppchat));
 
@@ -396,7 +374,6 @@
                     $el.click();
                     expect(view.openChat).toHaveBeenCalled();
                     expect(this.chatboxes.length).toEqual(i+2);
-                    sleep(timeout);
                 }
             }, xmppchat));
 
@@ -430,7 +407,6 @@
                     view.delegateEvents(); // We need to rebind all events otherwise our spy won't be called
                     view.$el.find('.close-chatbox-button').click();
                     expect(view.closeChat).toHaveBeenCalled();
-                    sleep(timeout);
                 }
             }, xmppchat));