--- /dev/null
+require File.dirname(__FILE__) + '/../test_helper'
+require File.dirname(__FILE__) + '/../oauth_controller_test_helper'
+require 'oauth/client/action_controller_request'
+
+class OauthClientsController; def rescue_action(e) raise e end; end
+
+class OauthClientsControllerIndexTest < ActionController::TestCase
+ include OAuthControllerTestHelper
+ tests OauthClientsController
+
+ def setup
+ @controller = OauthClientsController.new
+ @request = ActionController::TestRequest.new
+ @response = ActionController::TestResponse.new
+
+ login_as_application_owner
+ end
+
+ def do_get
+ get :index
+ end
+
+ def test_should_be_successful
+ do_get
+ assert @response.success?
+ end
+
+ def test_should_query_current_users_client_applications
+ @user.expects(:client_applications).returns(@client_applications)
+ do_get
+ end
+
+ def test_should_assign_client_applications
+ do_get
+ assert_equal @client_applications, assigns(:client_applications)
+ end
+
+ def test_should_render_index_template
+ do_get
+ assert_template 'index'
+ end
+end
+
+class OauthClientsControllerShowTest < ActionController::TestCase
+ include OAuthControllerTestHelper
+ tests OauthClientsController
+
+ def setup
+ @controller = OauthClientsController.new
+ @request = ActionController::TestRequest.new
+ @response = ActionController::TestResponse.new
+
+ login_as_application_owner
+ end
+
+ def do_get
+ get :show, :id=>'3'
+ end
+
+ def test_should_be_successful
+ do_get
+ assert @response.success?
+ end
+
+ def test_should_query_current_users_client_applications
+ @user.expects(:client_applications).returns(@client_applications)
+ @client_applications.expects(:find).with('3').returns(@client_application)
+ do_get
+ end
+
+ def test_should_assign_client_applications
+ do_get
+ assert_equal @client_application, assigns(:client_application)
+ end
+
+ def test_should_render_show_template
+ do_get
+ assert_template 'show'
+ end
+
+end
+
+class OauthClientsControllerNewTest < ActionController::TestCase
+ include OAuthControllerTestHelper
+ tests OauthClientsController
+
+ def setup
+ @controller = OauthClientsController.new
+ @request = ActionController::TestRequest.new
+ @response = ActionController::TestResponse.new
+
+ login_as_application_owner
+ ClientApplication.stubs(:new).returns(@client_application)
+ end
+
+ def do_get
+ get :new
+ end
+
+ def test_should_be_successful
+ do_get
+ assert @response.success?
+ end
+
+ def test_should_assign_client_applications
+ do_get
+ assert_equal @client_application, assigns(:client_application)
+ end
+
+ def test_should_render_show_template
+ do_get
+ assert_template 'new'
+ end
+
+end
+
+class OauthClientsControllerEditTest < ActionController::TestCase
+ include OAuthControllerTestHelper
+ tests OauthClientsController
+
+ def setup
+ @controller = OauthClientsController.new
+ @request = ActionController::TestRequest.new
+ @response = ActionController::TestResponse.new
+
+ login_as_application_owner
+ end
+
+ def do_get
+ get :edit, :id=>'3'
+ end
+
+ def test_should_be_successful
+ do_get
+ assert @response.success?
+ end
+
+ def test_should_query_current_users_client_applications
+ @user.expects(:client_applications).returns(@client_applications)
+ @client_applications.expects(:find).with('3').returns(@client_application)
+ do_get
+ end
+
+ def test_should_assign_client_applications
+ do_get
+ assert_equal @client_application, assigns(:client_application)
+ end
+
+ def test_should_render_edit_template
+ do_get
+ assert_template 'edit'
+ end
+
+end
+
+class OauthClientsControllerCreateTest < ActionController::TestCase
+ include OAuthControllerTestHelper
+ tests OauthClientsController
+
+ def setup
+ @controller = OauthClientsController.new
+ @request = ActionController::TestRequest.new
+ @response = ActionController::TestResponse.new
+
+ login_as_application_owner
+ @client_applications.stubs(:build).returns(@client_application)
+ @client_application.stubs(:save).returns(true)
+ end
+
+ def do_valid_post
+ @client_application.expects(:save).returns(true)
+ post :create,'client_application'=>{'name'=>'my site'}
+ end
+
+ def do_invalid_post
+ @client_application.expects(:save).returns(false)
+ post :create,:client_application=>{:name=>'my site'}
+ end
+
+ def test_should_query_current_users_client_applications
+ @client_applications.expects(:build).returns(@client_application)
+ do_valid_post
+ end
+
+ def test_should_redirect_to_new_client_application
+ do_valid_post
+ assert_response :redirect
+ assert_redirected_to(:action => "show", :id => @client_application.id)
+ end
+
+ def test_should_assign_client_applications
+ do_invalid_post
+ assert_equal @client_application, assigns(:client_application)
+ end
+
+ def test_should_render_show_template
+ do_invalid_post
+ assert_template('new')
+ end
+end
+
+class OauthClientsControllerDestroyTest < ActionController::TestCase
+ include OAuthControllerTestHelper
+ tests OauthClientsController
+
+ def setup
+ @controller = OauthClientsController.new
+ @request = ActionController::TestRequest.new
+ @response = ActionController::TestResponse.new
+
+ login_as_application_owner
+ @client_application.stubs(:destroy)
+ end
+
+ def do_delete
+ delete :destroy,:id=>'3'
+ end
+
+ def test_should_query_current_users_client_applications
+ @user.expects(:client_applications).returns(@client_applications)
+ @client_applications.expects(:find).with('3').returns(@client_application)
+ do_delete
+ end
+
+ def test_should_destroy_client_applications
+ @client_application.expects(:destroy)
+ do_delete
+ end
+
+ def test_should_redirect_to_list
+ do_delete
+ assert_response :redirect
+ assert_redirected_to :action => 'index'
+ end
+
+end
+
+class OauthClientsControllerUpdateTest < ActionController::TestCase
+ include OAuthControllerTestHelper
+ tests OauthClientsController
+
+ def setup
+ @controller = OauthClientsController.new
+ @request = ActionController::TestRequest.new
+ @response = ActionController::TestResponse.new
+ login_as_application_owner
+ end
+
+ def do_valid_update
+ @client_application.expects(:update_attributes).returns(true)
+ put :update, :id => '1', 'client_application' => {'name'=>'my site'}
+ end
+
+ def do_invalid_update
+ @client_application.expects(:update_attributes).returns(false)
+ put :update, :id=>'1', 'client_application' => {'name'=>'my site'}
+ end
+
+ def test_should_query_current_users_client_applications
+ @user.expects(:client_applications).returns(@client_applications)
+ @client_applications.expects(:find).with('1').returns(@client_application)
+ do_valid_update
+ end
+
+ def test_should_redirect_to_new_client_application
+ do_valid_update
+ assert_response :redirect
+ assert_redirected_to :action => "show", :id => @client_application.id
+ end
+
+ def test_should_assign_client_applications
+ do_invalid_update
+ assert_equal @client_application, assigns(:client_application)
+ end
+
+ def test_should_render_show_template
+ do_invalid_update
+ assert_template('edit')
+ end
+end