diff options
-rw-r--r-- | help/test/functional/tickets_controller_test.rb | 26 | ||||
-rw-r--r-- | users/app/controllers/sessions_controller.rb | 1 | ||||
-rw-r--r-- | users/app/controllers/v1/sessions_controller.rb | 1 | ||||
-rw-r--r-- | users/test/functional/users_controller_test.rb | 14 | ||||
-rw-r--r-- | users/test/integration/api/account_flow_test.rb | 8 | ||||
-rw-r--r-- | users/test/support/auth_test_helper.rb | 3 | ||||
-rw-r--r-- | users/test/support/stub_record_helper.rb | 4 |
7 files changed, 43 insertions, 14 deletions
diff --git a/help/test/functional/tickets_controller_test.rb b/help/test/functional/tickets_controller_test.rb index 592bd8c..b29fa17 100644 --- a/help/test/functional/tickets_controller_test.rb +++ b/help/test/functional/tickets_controller_test.rb @@ -118,7 +118,7 @@ class TicketsControllerTest < ActionController::TestCase login User.last ticket = Ticket.find('stubtestticketid') - ticket.created_by = User.last.id # TODO: hacky, but confirms it is their ticket + ticket.created_by = @current_user.id # TODO: hacky, but confirms it is their ticket ticket.save #they should be able to comment if it is their ticket: @@ -176,25 +176,33 @@ class TicketsControllerTest < ActionController::TestCase login :is_admin? => true, :email => nil - get :index, {:admin_status => "mine", :open_status => "open"} + get :index, {:admin_status => "all", :open_status => "open"} assert assigns(:all_tickets).count > 1 # at least 2 tickets # if we close one ticket, the admin should have 1 less open ticket they admin assert_difference('assigns[:all_tickets].count', -1) do assigns(:tickets).first.close assigns(:tickets).first.save - get :index, {:admin_status => "mine", :open_status => "open"} + get :index, {:admin_status => "all", :open_status => "open"} end + end + + test "admin_status mine vs all" do testticket = Ticket.create :title => 'temp testytest' + login :is_admin? => true, :email => nil - # test admin_status 'mine' vs 'all' get :index, {:admin_status => "all", :open_status => "open"} assert assigns(:all_tickets).include?(testticket) get :index, {:admin_status => "mine", :open_status => "open"} assert !assigns(:all_tickets).include?(testticket) + end - # admin should have one more ticket if a new tick gets an admin comment + test "commenting on a ticket adds to tickets that are mine" do + testticket = Ticket.create :title => 'temp testytest' + login :is_admin? => true, :email => nil + + get :index, {:admin_status => "mine", :open_status => "open"} assert_difference('assigns[:all_tickets].count') do put :update, :id => testticket.id, :ticket => {:comments_attributes => {"0" => {"body" =>"NEWER comment"}}} get :index, {:admin_status => "mine", :open_status => "open"} @@ -205,10 +213,12 @@ class TicketsControllerTest < ActionController::TestCase assert_equal assigns(:ticket).comments.last.posted_by, @current_user.id assigns(:ticket).destroy + end - # test ordering + test "admin ticket ordering" do - get :index, {:admin_status => "mine", :open_status => "open", :sort_order => 'created_at_desc'} + login :is_admin? => true, :email => nil + get :index, {:admin_status => "all", :open_status => "open", :sort_order => 'created_at_desc'} # this will consider all tickets, not just those on first page first_tick = assigns(:all_tickets).all.first @@ -216,7 +226,7 @@ class TicketsControllerTest < ActionController::TestCase assert first_tick.created_at > last_tick.created_at # and now reverse order: - get :index, {:admin_status => "mine", :open_status => "open", :sort_order => 'created_at_asc'} + get :index, {:admin_status => "all", :open_status => "open", :sort_order => 'created_at_asc'} assert_equal first_tick, assigns(:all_tickets).last assert_equal last_tick, assigns(:all_tickets).first diff --git a/users/app/controllers/sessions_controller.rb b/users/app/controllers/sessions_controller.rb index bc910b5..0345fbd 100644 --- a/users/app/controllers/sessions_controller.rb +++ b/users/app/controllers/sessions_controller.rb @@ -11,6 +11,7 @@ class SessionsController < ApplicationController end def create + logout if logged_in? authenticate! end diff --git a/users/app/controllers/v1/sessions_controller.rb b/users/app/controllers/v1/sessions_controller.rb index 5b4a13b..27d10fb 100644 --- a/users/app/controllers/v1/sessions_controller.rb +++ b/users/app/controllers/v1/sessions_controller.rb @@ -12,6 +12,7 @@ module V1 end def create + logout if logged_in? authenticate! end diff --git a/users/test/functional/users_controller_test.rb b/users/test/functional/users_controller_test.rb index 1840a72..ce17500 100644 --- a/users/test/functional/users_controller_test.rb +++ b/users/test/functional/users_controller_test.rb @@ -1,7 +1,6 @@ require 'test_helper' class UsersControllerTest < ActionController::TestCase - include StubRecordHelper test "should get new" do get :new @@ -35,7 +34,10 @@ class UsersControllerTest < ActionController::TestCase end test "should get edit view" do - user = find_record User, :email => nil, :email_forward => nil + user = find_record User, + :email => nil, + :email_forward => nil, + :email_aliases => [] login user get :edit, :id => user.id @@ -45,7 +47,9 @@ class UsersControllerTest < ActionController::TestCase test "should process updated params" do user = find_record User - user.expects(:update_attributes).with(user.params).returns(true) + user.expects(:attributes=).with(user.params) + user.expects(:changed?).returns(true) + user.expects(:save).returns(true) login user put :update, :user => user.params, :id => user.id, :format => :json @@ -57,7 +61,9 @@ class UsersControllerTest < ActionController::TestCase test "admin can update user" do user = find_record User - user.expects(:update_attributes).with(user.params).returns(true) + user.expects(:attributes=).with(user.params) + user.expects(:changed?).returns(true) + user.expects(:save).returns(true) login :is_admin? => true put :update, :user => user.params, :id => user.id, :format => :json diff --git a/users/test/integration/api/account_flow_test.rb b/users/test/integration/api/account_flow_test.rb index e425c35..7636f2b 100644 --- a/users/test/integration/api/account_flow_test.rb +++ b/users/test/integration/api/account_flow_test.rb @@ -62,6 +62,14 @@ class AccountFlowTest < ActiveSupport::TestCase assert server_auth["M2"] end + test "duplicate login does not break things" do + server_auth = @srp.authenticate(self) + server_auth = @srp.authenticate(self) + assert last_response.successful? + assert_nil server_auth["errors"] + assert server_auth["M2"] + end + test "signup and wrong password login attempt" do srp = SRP::Client.new(@login, "wrong password") server_auth = srp.authenticate(self) diff --git a/users/test/support/auth_test_helper.rb b/users/test/support/auth_test_helper.rb index 6a82f24..c9f5612 100644 --- a/users/test/support/auth_test_helper.rb +++ b/users/test/support/auth_test_helper.rb @@ -1,5 +1,4 @@ module AuthTestHelper - include StubRecordHelper extend ActiveSupport::Concern # Controller will fetch current user from warden. @@ -24,7 +23,7 @@ module AuthTestHelper assert_equal({:alert => "Not authorized"}, flash.to_hash) # todo: eventually probably eliminate separate conditions assert_redirected_to login_path if !logged_in - assert_redirected_to root_path if logged_in + assert_redirected_to root_path if logged_in else assert flash[:alert].blank? end diff --git a/users/test/support/stub_record_helper.rb b/users/test/support/stub_record_helper.rb index 2e1a533..1be419a 100644 --- a/users/test/support/stub_record_helper.rb +++ b/users/test/support/stub_record_helper.rb @@ -39,3 +39,7 @@ module StubRecordHelper end end + +class ActionController::TestCase + include StubRecordHelper +end |