summaryrefslogtreecommitdiff
path: root/users/test/functional
diff options
context:
space:
mode:
Diffstat (limited to 'users/test/functional')
-rw-r--r--users/test/functional/.gitkeep0
-rw-r--r--users/test/functional/application_controller_test.rb28
-rw-r--r--users/test/functional/helper_methods_test.rb39
-rw-r--r--users/test/functional/keys_controller_test.rb32
-rw-r--r--users/test/functional/sessions_controller_test.rb59
-rw-r--r--users/test/functional/test_helpers_test.rb38
-rw-r--r--users/test/functional/users_controller_test.rb159
-rw-r--r--users/test/functional/v1/sessions_controller_test.rb62
-rw-r--r--users/test/functional/v1/users_controller_test.rb74
-rw-r--r--users/test/functional/webfinger_controller_test.rb33
10 files changed, 0 insertions, 524 deletions
diff --git a/users/test/functional/.gitkeep b/users/test/functional/.gitkeep
deleted file mode 100644
index e69de29..0000000
--- a/users/test/functional/.gitkeep
+++ /dev/null
diff --git a/users/test/functional/application_controller_test.rb b/users/test/functional/application_controller_test.rb
deleted file mode 100644
index 94b77bd..0000000
--- a/users/test/functional/application_controller_test.rb
+++ /dev/null
@@ -1,28 +0,0 @@
-require 'test_helper'
-
-class ApplicationControllerTest < ActionController::TestCase
-
- def setup
- # so we can test the effect on the response
- @controller.response = @response
- end
-
- def test_authorize_redirect
- @controller.send(:authorize)
- assert_access_denied(true, false)
- end
-
- def test_authorized
- login
- @controller.send(:authorize)
- assert_access_denied(false)
- end
-
- def test_authorize_admin
- login
- @current_user.expects(:is_admin?).returns(false)
- @controller.send(:authorize_admin)
- assert_access_denied
- end
-
-end
diff --git a/users/test/functional/helper_methods_test.rb b/users/test/functional/helper_methods_test.rb
deleted file mode 100644
index 44226ae..0000000
--- a/users/test/functional/helper_methods_test.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# Testing and documenting the helper methods available from
-# ApplicationController
-#
-
-require 'test_helper'
-
-class HelperMethodsTest < ActionController::TestCase
- tests ApplicationController
-
- # we test them right in here...
- include ApplicationController._helpers
-
- # the helpers all reference the controller.
- def controller
- @controller
- end
-
- def test_current_user
- login
- assert_equal @current_user, current_user
- end
-
- def test_logged_in
- login
- assert logged_in?
- end
-
- def test_logged_out
- assert !logged_in?
- end
-
- def test_admin
- login
- @current_user.expects(:is_admin?).returns(bool = stub)
- assert_equal bool, admin?
- end
-
-end
diff --git a/users/test/functional/keys_controller_test.rb b/users/test/functional/keys_controller_test.rb
deleted file mode 100644
index 863be93..0000000
--- a/users/test/functional/keys_controller_test.rb
+++ /dev/null
@@ -1,32 +0,0 @@
-require 'test_helper'
-
-class KeysControllerTest < ActionController::TestCase
-
- test "get existing public key" do
- public_key = 'my public key'
- @user = stub_record :user, :public_key => public_key
- User.stubs(:find_by_login).with(@user.login).returns(@user)
- get :show, :login => @user.login
- assert_response :success
- assert_equal "text/text", response.content_type
- assert_equal public_key, response.body
- end
-
- test "get non-existing public key for user" do
- # this isn't a scenerio that should generally occur.
- @user = stub_record :user
- User.stubs(:find_by_login).with(@user.login).returns(@user)
- get :show, :login => @user.login
- assert_response :success
- assert_equal "text/text", response.content_type
- assert_equal '', response.body.strip
- end
-
- test "get public key for non-existing user" do
- # raise 404 error if user doesn't exist (doesn't need to be this routing error, but seems fine to assume for now):
- assert_raise(ActionController::RoutingError) {
- get :show, :login => 'asdkljslksjfdlskfj'
- }
- end
-
-end
diff --git a/users/test/functional/sessions_controller_test.rb b/users/test/functional/sessions_controller_test.rb
deleted file mode 100644
index fe7903f..0000000
--- a/users/test/functional/sessions_controller_test.rb
+++ /dev/null
@@ -1,59 +0,0 @@
-require 'test_helper'
-
-# This is a simple controller unit test.
-# We're stubbing out both warden and srp.
-# There's an integration test testing the full rack stack and srp
-class SessionsControllerTest < ActionController::TestCase
-
- setup do
- @user = stub :login => "me", :id => 123
- @client_hex = 'a123'
- end
-
- test "should get login screen" do
- get :new
- assert_response :success
- assert_equal "text/html", response.content_type
- assert_template "sessions/new"
- end
-
- test "redirect to home_url if logged in" do
- login
- get :new
- assert_response :redirect
- assert_redirected_to home_url
- end
-
- test "renders json" do
- get :new, :format => :json
- assert_response :success
- assert_json_error nil
- end
-
- test "renders warden errors" do
- request.env['warden.options'] = {attempted_path: '/1/sessions/asdf.json'}
- strategy = stub :message => {:field => :translate_me}
- request.env['warden'].stubs(:winning_strategy).returns(strategy)
- I18n.expects(:t).with(:translate_me).at_least_once.returns("translation stub")
- get :new, :format => :json
- assert_response 422
- assert_json_error :field => "translation stub"
- end
-
- test "renders failed attempt message" do
- request.env['warden.options'] = {attempted_path: '/1/sessions/asdf.json'}
- request.env['warden'].stubs(:winning_strategy).returns(nil)
- get :new, :format => :json
- assert_response 422
- assert_json_error :login => I18n.t(:all_strategies_failed)
- end
-
- test "destory should logout" do
- login
- expect_logout
- delete :destroy
- assert_response :redirect
- assert_redirected_to home_url
- end
-
-end
diff --git a/users/test/functional/test_helpers_test.rb b/users/test/functional/test_helpers_test.rb
deleted file mode 100644
index 845e516..0000000
--- a/users/test/functional/test_helpers_test.rb
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# There are a few test helpers for dealing with login etc.
-# We test them here and also document their behaviour.
-#
-
-require 'test_helper'
-
-class TestHelpersTest < ActionController::TestCase
- tests ApplicationController # testing no controller in particular
-
- def test_login_stubs_warden
- login
- assert_equal @current_user, request.env['warden'].user
- end
-
- def test_login_token_authenticates
- login
- assert_equal @current_user, @controller.send(:token_authenticate)
- end
-
- def test_login_stubs_token
- login
- assert @token
- assert_equal @current_user, @token.authenticate
- end
-
- def test_login_adds_token_header
- login
- token_present = @controller.authenticate_with_http_token do |token, options|
- assert_equal @token.id, token
- end
- # authenticate_with_http_token just returns nil and does not
- # execute the block if there is no token. So we have to also
- # ensure it was run:
- assert token_present
- end
-end
-
diff --git a/users/test/functional/users_controller_test.rb b/users/test/functional/users_controller_test.rb
deleted file mode 100644
index 57ae94d..0000000
--- a/users/test/functional/users_controller_test.rb
+++ /dev/null
@@ -1,159 +0,0 @@
-require 'test_helper'
-
-class UsersControllerTest < ActionController::TestCase
-
- test "should get new" do
- get :new
-
- assert_equal User, assigns(:user).class
- assert_response :success
- end
-
- test "failed show without login" do
- user = find_record :user
- get :show, :id => user.id
- assert_response :redirect
- assert_redirected_to login_path
- end
-
- test "user can see user" do
- user = find_record :user,
- :most_recent_tickets => []
- login user
- get :show, :id => user.id
- assert_response :success
- end
-
- test "admin can see other user" do
- user = find_record :user,
- :most_recent_tickets => []
- login :is_admin? => true
- get :show, :id => user.id
- assert_response :success
-
- end
-
- test "user cannot see other user" do
- user = find_record :user,
- :most_recent_tickets => []
- login
- get :show, :id => user.id
- assert_response :redirect
- assert_access_denied
- end
-
- test "may not show non-existing user without auth" do
- nonid = 'thisisnotanexistinguserid'
-
- get :show, :id => nonid
- assert_access_denied(true, false)
- end
-
- test "may not show non-existing user without admin" do
- nonid = 'thisisnotanexistinguserid'
- login
-
- get :show, :id => nonid
- assert_access_denied
- end
-
- test "redirect admin to user list for non-existing user" do
- nonid = 'thisisnotanexistinguserid'
- login :is_admin? => true
- get :show, :id => nonid
- assert_response :redirect
- assert_equal({:alert => "No such user."}, flash.to_hash)
- assert_redirected_to users_path
- end
-
- test "should get edit view" do
- user = find_record :user
-
- login user
- get :edit, :id => user.id
-
- assert_equal user, assigns[:user]
- end
-
- test "admin can destroy user" do
- user = find_record :user
-
- # we destroy the user record and the associated data...
- user.expects(:destroy)
- Identity.expects(:disable_all_for).with(user)
- Ticket.expects(:destroy_all_from).with(user)
-
- login :is_admin? => true
- delete :destroy, :id => user.id
-
- assert_response :redirect
- assert_redirected_to users_path
- end
-
- test "user can cancel account" do
- user = find_record :user
-
- # we destroy the user record and the associated data...
- user.expects(:destroy)
- Identity.expects(:disable_all_for).with(user)
- Ticket.expects(:destroy_all_from).with(user)
-
- login user
- expect_logout
- delete :destroy, :id => @current_user.id
-
- assert_response :redirect
- assert_redirected_to bye_url
- end
-
- test "non-admin can't destroy user" do
- user = find_record :user
-
- login
- delete :destroy, :id => user.id
-
- assert_access_denied
- end
-
- test "admin can list users" do
- login :is_admin? => true
- get :index
-
- assert_response :success
- assert assigns(:users)
- end
-
- test "non-admin can't list users" do
- login
- get :index
-
- assert_access_denied
- end
-
- test "admin can search users" do
- login :is_admin? => true
- get :index, :query => "a"
-
- assert_response :success
- assert assigns(:users)
- end
-
- test "user cannot enable own account" do
- user = find_record :user
- login
- post :enable, :id => user.id
- assert_access_denied
- end
-
- test "admin can deactivate user" do
- user = find_record :user
- assert user.enabled?
- user.expects(:save).returns(true)
-
- login :is_admin? => true
-
- post :deactivate, :id => user.id
- assert !assigns(:user).enabled?
- end
-
-end
diff --git a/users/test/functional/v1/sessions_controller_test.rb b/users/test/functional/v1/sessions_controller_test.rb
deleted file mode 100644
index 4200e8f..0000000
--- a/users/test/functional/v1/sessions_controller_test.rb
+++ /dev/null
@@ -1,62 +0,0 @@
-require 'test_helper'
-
-# This is a simple controller unit test.
-# We're stubbing out both warden and srp.
-# There's an integration test testing the full rack stack and srp
-class V1::SessionsControllerTest < ActionController::TestCase
-
- setup do
- @request.env['HTTP_HOST'] = 'api.lvh.me'
- @user = stub_record :user, {}, true
- @client_hex = 'a123'
- end
-
- test "renders json" do
- get :new, :format => :json
- assert_response :success
- assert_json_error nil
- end
-
- test "renders warden errors" do
- request.env['warden.options'] = {attempted_path: 'path/to/controller'}
- strategy = stub :message => {:field => :translate_me}
- request.env['warden'].stubs(:winning_strategy).returns(strategy)
- I18n.expects(:t).with(:translate_me).at_least_once.returns("translation stub")
- get :new, :format => :json
- assert_response 422
- assert_json_error :field => "translation stub"
- end
-
- # Warden takes care of parsing the params and
- # rendering the response. So not much to test here.
- test "should perform handshake" do
- request.env['warden'].expects(:authenticate!)
- # make sure we don't get a template missing error:
- @controller.stubs(:render)
- post :create, :login => @user.login, 'A' => @client_hex
- end
-
- test "should authorize" do
- request.env['warden'].expects(:authenticate!)
- @controller.stubs(:current_user).returns(@user)
- handshake = stub(:to_hash => {h: "ash"})
- session[:handshake] = handshake
-
- post :update, :id => @user.login, :client_auth => @client_hex
-
- assert_nil session[:handshake]
- assert_response :success
- assert json_response.keys.include?("id")
- assert json_response.keys.include?("token")
- assert token = Token.find(json_response['token'])
- assert_equal @user.id, token.user_id
- end
-
- test "destroy should logout" do
- login
- expect_logout
- delete :destroy
- assert_response 204
- end
-
-end
diff --git a/users/test/functional/v1/users_controller_test.rb b/users/test/functional/v1/users_controller_test.rb
deleted file mode 100644
index 7cd9b0c..0000000
--- a/users/test/functional/v1/users_controller_test.rb
+++ /dev/null
@@ -1,74 +0,0 @@
-require 'test_helper'
-
-class V1::UsersControllerTest < ActionController::TestCase
-
- test "user can change settings" do
- user = find_record :user
- changed_attribs = record_attributes_for :user_with_settings
- account_settings = stub
- account_settings.expects(:update).with(changed_attribs)
- Account.expects(:new).with(user).returns(account_settings)
-
- login user
- put :update, :user => changed_attribs, :id => user.id, :format => :json
-
- assert_equal user, assigns[:user]
- assert_response 204
- assert_equal " ", @response.body
- end
-
- test "admin can update user" do
- user = find_record :user
- changed_attribs = record_attributes_for :user_with_settings
- account_settings = stub
- account_settings.expects(:update).with(changed_attribs)
- Account.expects(:new).with(user).returns(account_settings)
-
- login :is_admin? => true
- put :update, :user => changed_attribs, :id => user.id, :format => :json
-
- assert_equal user, assigns[:user]
- assert_response 204
- end
-
- test "user cannot update other user" do
- user = find_record :user
- login
- put :update, :user => record_attributes_for(:user_with_settings), :id => user.id, :format => :json
- assert_access_denied
- end
-
- test "should create new user" do
- user_attribs = record_attributes_for :user
- user = User.new(user_attribs)
- Account.expects(:create).with(user_attribs).returns(user)
-
- post :create, :user => user_attribs, :format => :json
-
- assert_nil session[:user_id]
- assert_json_response user
- assert_response :success
- end
-
- test "should redirect to signup form on failed attempt" do
- user_attribs = record_attributes_for :user
- user_attribs.slice!('login')
- user = User.new(user_attribs)
- assert !user.valid?
- Account.expects(:create).with(user_attribs).returns(user)
-
- post :create, :user => user_attribs, :format => :json
-
- assert_json_error user.errors.messages
- assert_response 422
- end
-
- test "admin can autocomplete users" do
- login :is_admin? => true
- get :index, :query => 'a', :format => :json
-
- assert_response :success
- assert assigns(:users)
- end
-
-end
diff --git a/users/test/functional/webfinger_controller_test.rb b/users/test/functional/webfinger_controller_test.rb
deleted file mode 100644
index 6597b69..0000000
--- a/users/test/functional/webfinger_controller_test.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-require 'test_helper'
-
-class WebfingerControllerTest < ActionController::TestCase
-
- test "get host meta xml" do
- get :host_meta, :format => :xml
- assert_response :success
- assert_equal "application/xml", response.content_type
- end
-
- test "get host meta json" do
- get :host_meta, :format => :json
- assert_response :success
- assert_equal "application/json", response.content_type
- end
-
- test "get user webfinger xml" do
- @user = stub_record :user, :public_key => 'my public key'
- User.stubs(:find_by_login).with(@user.login).returns(@user)
- get :search, :q => @user.email_address.to_s, :format => :xml
- assert_response :success
- assert_equal "application/xml", response.content_type
- end
-
- test "get user webfinger json" do
- @user = stub_record :user, :public_key => 'my public key'
- User.stubs(:find_by_login).with(@user.login).returns(@user)
- get :search, :q => @user.email_address.to_s, :format => :json
- assert_response :success
- assert_equal "application/json", response.content_type
- end
-
-end