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