summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--help/test/functional/tickets_controller_test.rb26
-rw-r--r--users/app/controllers/sessions_controller.rb1
-rw-r--r--users/app/controllers/v1/sessions_controller.rb1
-rw-r--r--users/test/functional/users_controller_test.rb14
-rw-r--r--users/test/integration/api/account_flow_test.rb8
-rw-r--r--users/test/support/auth_test_helper.rb3
-rw-r--r--users/test/support/stub_record_helper.rb4
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