noosfero | chat: review functional tests

Rodrigo Souto gitlab at gitlab.com
Mon Feb 23 16:41:21 BRT 2015


Rodrigo Souto pushed to refs/heads/master at <a href="https://gitlab.com/noosfero/noosfero">Noosfero / noosfero</a>

Commits:
<a href="https://gitlab.com/noosfero/noosfero/commit/a5b68b1ce5aa3265fb007cf12aefe5dde502b315">a5b68b1c</a> by Rodrigo Souto
chat: review functional tests

- - - - -


Changes:

=====================================
test/functional/chat_controller_test.rb
=====================================
--- a/test/functional/chat_controller_test.rb
+++ b/test/functional/chat_controller_test.rb
@@ -6,18 +6,20 @@ class ChatControllerTest < ActionController::TestCase
     env = Environment.default
     env.enable('xmpp_chat')
     env.save!
+    #TODO Maybe someday we should have a real testing ejabberd server
+    RubyBOSH.stubs(:initialize_session).returns(['fake-jid at example.org', 'fake-sid', 'fake-rid'])
     @person = create_user('testuser').person
   end
 
   should 'cant view chat when not logged in' do
-    get :index
+    get :start_session
     assert_response 302
   end
 
   should 'can view chat when logged in' do
     login_as 'testuser'
 
-    get :index
+    get :start_session
     assert_response :success
   end
 
@@ -39,29 +41,6 @@ class ChatControllerTest < ActionController::TestCase
     assert @response.body.index('PNG')
   end
 
-  should 'auto connect if last presence status is blank' do
-    login_as 'testuser'
-
-    get :index
-    assert_template 'auto_connect_online'
-  end
-
-  should 'auto connect if there last presence status was chat' do
-    create_user('testuser_online', :last_chat_status => 'chat')
-    login_as 'testuser_online'
-
-    get :index
-    assert_template 'auto_connect_online'
-  end
-
-  should 'auto connect busy if last presence status was dnd' do
-    create_user('testuser_busy', :last_chat_status => 'dnd')
-    login_as 'testuser_busy'
-
-    get :index
-    assert_template 'auto_connect_busy'
-  end
-
   begin
     require 'ruby_bosh'
     should 'try to start xmpp session' do
@@ -87,7 +66,7 @@ class ChatControllerTest < ActionController::TestCase
     env.disable('xmpp_chat')
     env.save!
 
-    get :index
+    get :start_session
 
     assert_response 404
     assert_template 'not_found'
@@ -116,4 +95,67 @@ class ChatControllerTest < ActionController::TestCase
     assert_not_equal chat_status_at, @person.user.chat_status_at
   end
 
+  should 'toggle chat status' do
+    login_as 'testuser'
+
+    get :start_session
+    assert_nil session[:chat][:status]
+
+    get :toggle
+    assert_equal 'opened', session[:chat][:status]
+
+    get :toggle
+    assert_equal 'closed', session[:chat][:status]
+
+    get :toggle
+    assert_equal 'opened', session[:chat][:status]
+  end
+
+  should 'set tab' do
+    login_as 'testuser'
+    get :start_session
+
+    post :tab, :tab_id => 'my_tab'
+    assert_equal 'my_tab', session[:chat][:tab_id]
+  end
+
+  should 'join room' do
+    login_as 'testuser'
+    get :start_session
+
+    post :join, :room_id => 'room1'
+    assert_equivalent ['room1'], session[:chat][:rooms]
+
+    post :join, :room_id => 'room2'
+    assert_equivalent ['room1', 'room2'], session[:chat][:rooms]
+
+    post :join, :room_id => 'room1'
+    assert_equivalent ['room1', 'room2'], session[:chat][:rooms]
+  end
+
+  should 'leave room' do
+    login_as 'testuser'
+    get :start_session
+    session[:chat][:rooms] = ['room1', 'room2']
+
+    post :leave, :room_id => 'room2'
+    assert_equivalent ['room1'], session[:chat][:rooms]
+
+    post :leave, :room_id => 'room1'
+    assert_equivalent [], session[:chat][:rooms]
+
+    post :leave, :room_id => 'room1'
+    assert_equivalent [], session[:chat][:rooms]
+  end
+
+  should 'fetch chat session as json' do
+    login_as 'testuser'
+    get :start_session
+    my_chat = {:status => 'opened', :rooms => ['room1', 'room2'], :tab_id => 'room1'}
+    session[:chat] = my_chat
+
+    get :my_session
+    assert_equal @response.body, my_chat.to_json
+  end
+
 end

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20150223/a52a0793/attachment-0001.html>


More information about the Noosfero-dev mailing list