Explorar el Código

Tests update

Add empty specs for status widget
Fixed roster localStorage spec to not break the xmppstatus view
JC Brand hace 12 años
padre
commit
3be0f2d89b
Se han modificado 1 ficheros con 22 adiciones y 12 borrados
  1. 22 12
      spec/MainSpec.js

+ 22 - 12
spec/MainSpec.js

@@ -65,7 +65,7 @@
         this.onConnected(mock_connection);
         this.animate = false; // don't use animations
 
-        describe("The Contacts Roster", $.proxy(function () {
+        describe("The Control Box", $.proxy(function () {
             it("is not shown by default", $.proxy(function () {
                 expect(this.rosterview.$el.is(':visible')).toEqual(false);
             }, xmppchat));
@@ -76,6 +76,20 @@
                 expect(this.toggleControlBox).toHaveBeenCalled();
             }, xmppchat));
 
+            describe("The Status Widget", $.proxy(function () {
+                it("can be used to set the current user's chat status", $.proxy(function () {
+                    // TODO
+                }, xmppchat));
+
+                it("can be used to set a custom status message", $.proxy(function () {
+                    // TODO
+                }, xmppchat));
+            }, xmppchat));
+
+        }, xmppchat));
+
+        describe("The Contacts Roster", $.proxy(function () {
+
             describe("Pending Contacts", $.proxy(function () {
                 it("do not have a heading if there aren't any", $.proxy(function () {
                     expect(this.rosterview.$el.find('dt#pending-xmpp-contacts').css('display')).toEqual('none');
@@ -309,25 +323,21 @@
                     var new_attrs, old_attrs, attrs, old_roster;
                     // One contact was declined, so we have 1 less contact then originally
                     expect(this.roster.length).toEqual(num_contacts-1); 
-                    old_roster = this.roster;
-                    this.roster = new this.RosterItems();
-                    expect(this.roster.length).toEqual(0);
+                    new_roster = new this.RosterItems();
+                    // Roster items are yet to be fetched from localStorage
+                    expect(new_roster.length).toEqual(0);
 
-                    this.roster.localStorage = new Backbone.LocalStorage(
+                    new_roster.localStorage = new Backbone.LocalStorage(
                         hex_sha1('converse.rosteritems-dummy@localhost'));
-                    this.chatboxes.onConnected();
 
-                    spyOn(this.roster, 'fetch').andCallThrough();
-                    this.rosterview = new this.RosterView({'model':this.roster});
-                    expect(this.roster.fetch).toHaveBeenCalled();
+                    new_roster.fetch();
                     expect(this.roster.length).toEqual(num_contacts-1);
-
                     // Check that the roster items retrieved from localStorage
                     // have the same attributes values as the original ones.
                     attrs = ['jid', 'fullname', 'subscription', 'ask'];
                     for (i=0; i<attrs.length; i++) {
-                        new_attrs = _.pluck(_.pluck(this.roster.models, 'attributes'), attrs[i]);
-                        old_attrs = _.pluck(_.pluck(old_roster.models, 'attributes'), attrs[i]);
+                        new_attrs = _.pluck(_.pluck(new_roster.models, 'attributes'), attrs[i]);
+                        old_attrs = _.pluck(_.pluck(this.roster.models, 'attributes'), attrs[i]);
                         // Roster items in storage are not necessarily sorted,
                         // so we have to sort them here to do a proper
                         // comparison