Просмотр исходного кода

Add a new test

Check that a chatbox is created when a roster item is clicked.
JC Brand 12 лет назад
Родитель
Сommit
ed86b22fe6
2 измененных файлов с 21 добавлено и 8 удалено
  1. 20 7
      spec/RosterSpec.js
  2. 1 1
      tests_main.js

+ 20 - 7
spec/RosterSpec.js

@@ -7,7 +7,7 @@
     );
 } (this, function (xmppchat) {
 
-    return describe("Roster", $.proxy(function() {
+    return describe("Converse.js", $.proxy(function() {
         // Names from http://www.fakenamegenerator.com/
         names = [
             'Louw Spekman', 'Mohamad Stet', 'Dominik Beyer', 'Dirk Eichel', 'Marco Duerr', 'Ute Schiffer',
@@ -42,7 +42,7 @@
         this.rosterview = new this.RosterView({'model':this.roster});
         this.rosterview.render();
 
-        describe("the contacts roster", $.proxy(function () {
+        describe("The contacts roster", $.proxy(function () {
 
             // by default the dts are hidden from css class and only later they will be hidden
             // by jQuery therefore for the first check we will see if visible instead of none
@@ -160,7 +160,7 @@
                 }, xmppchat));
 
                 it("can change their status to online and be sorted alphabetically", $.proxy(function () {
-                    var item, view, jid;
+                    var item, view, jid, t;
                     spyOn(this.rosterview, 'render').andCallThrough();
                     for (i=59; i>54; i--) {
                         jid = names[i].replace(' ','.').toLowerCase() + '@localhost';
@@ -178,7 +178,7 @@
                 }, xmppchat));
 
                 it("can change their status to busy and be sorted alphabetically", $.proxy(function () {
-                    var item, view, jid;
+                    var item, view, jid, t;
                     spyOn(this.rosterview, 'render').andCallThrough();
                     for (i=54; i>49; i--) {
                         jid = names[i].replace(' ','.').toLowerCase() + '@localhost';
@@ -195,7 +195,7 @@
                 }, xmppchat));
 
                 it("can change their status to away and be sorted alphabetically", $.proxy(function () {
-                    var item, view, jid;
+                    var item, view, jid, t;
                     spyOn(this.rosterview, 'render').andCallThrough();
                     for (i=49; i>44; i--) {
                         jid = names[i].replace(' ','.').toLowerCase() + '@localhost';
@@ -213,7 +213,7 @@
                 }, xmppchat));
 
                 it("can change their status to unavailable and be sorted alphabetically", $.proxy(function () {
-                    var item, view, jid;
+                    var item, view, jid, t;
                     spyOn(this.rosterview, 'render').andCallThrough();
                     for (i=44; i>39; i--) {
                         jid = names[i].replace(' ','.').toLowerCase() + '@localhost';
@@ -255,8 +255,21 @@
                     }
                 }, xmppchat));
             }, xmppchat));
+        }, xmppchat));
 
-
+        describe("Chatboxes", $.proxy(function () {
+            it("are created when you click on a roster item", $.proxy(function () {
+                var $el = $(this.rosterview.$el.find('dt#xmpp-contacts').siblings('dd.current-xmpp-contact.online').find('a.open-chat')[0]);
+                var click = jQuery.Event("click", { target: $el });
+                var jid = $el.text().replace(' ','.').toLowerCase() + '@localhost';
+                var view = this.rosterview.rosteritemviews[jid];
+                spyOn(view, 'openChat');
+                // We need to rebind all events otherwise our spy won't work.
+                view.delegateEvents();
+                var ev = $el.click();
+                expect(view.openChat).toHaveBeenCalled();
+            }, xmppchat));
         }, xmppchat));
+
     }, xmppchat));
 }));

+ 1 - 1
tests_main.js

@@ -1,4 +1,4 @@
-require(["jquery", "spec/RosterSpec"], function($) {
+require(["jquery", "spec/MainSpec"], function($) {
 
     $(function($) {
         var jasmineEnv = jasmine.getEnv();