X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/fa11baf5c348d6eb4ca00d6d15cf9893626fa2d6..406b46e49b786fab879286d77735b2a16c1cfcc5:/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/clients_controller_spec.rb diff --git a/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/clients_controller_spec.rb b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/clients_controller_spec.rb new file mode 100644 index 000000000..d617b5669 --- /dev/null +++ b/vendor/plugins/oauth-plugin/generators/oauth_provider/templates/clients_controller_spec.rb @@ -0,0 +1,239 @@ +require File.dirname(__FILE__) + '/../spec_helper' +require File.dirname(__FILE__) + '/oauth_controller_spec_helper' +require 'oauth/client/action_controller_request' + +describe OauthClientsController, "index" do + include OAuthControllerSpecHelper + before(:each) do + login_as_application_owner + end + + def do_get + get :index + end + + it "should be successful" do + do_get + response.should be_success + end + + it "should query current_users client applications" do + @user.should_receive(:client_applications).and_return(@client_applications) + do_get + end + + it "should assign client_applications" do + do_get + assigns[:client_applications].should equal(@client_applications) + end + + it "should render index template" do + do_get + response.should render_template('index') + end +end + +describe OauthClientsController, "show" do + include OAuthControllerSpecHelper + before(:each) do + login_as_application_owner + end + + def do_get + get :show, :id => '3' + end + + it "should be successful" do + do_get + response.should be_success + end + + it "should query current_users client applications" do + @user.should_receive(:client_applications).and_return(@client_applications) + @client_applications.should_receive(:find).with('3').and_return(@client_application) + do_get + end + + it "should assign client_applications" do + do_get + assigns[:client_application].should equal(@client_application) + end + + it "should render show template" do + do_get + response.should render_template('show') + end + +end + +describe OauthClientsController, "new" do + include OAuthControllerSpecHelper + before(:each) do + login_as_application_owner + ClientApplication.stub!(:new).and_return(@client_application) + end + + def do_get + get :new + end + + it "should be successful" do + do_get + response.should be_success + end + + it "should assign client_applications" do + do_get + assigns[:client_application].should equal(@client_application) + end + + it "should render show template" do + do_get + response.should render_template('new') + end + +end + +describe OauthClientsController, "edit" do + include OAuthControllerSpecHelper + before(:each) do + login_as_application_owner + end + + def do_get + get :edit, :id => '3' + end + + it "should be successful" do + do_get + response.should be_success + end + + it "should query current_users client applications" do + @user.should_receive(:client_applications).and_return(@client_applications) + @client_applications.should_receive(:find).with('3').and_return(@client_application) + do_get + end + + it "should assign client_applications" do + do_get + assigns[:client_application].should equal(@client_application) + end + + it "should render edit template" do + do_get + response.should render_template('edit') + end + +end + +describe OauthClientsController, "create" do + include OAuthControllerSpecHelper + + before(:each) do + login_as_application_owner + @client_applications.stub!(:build).and_return(@client_application) + @client_application.stub!(:save).and_return(true) + end + + def do_valid_post + @client_application.should_receive(:save).and_return(true) + post :create, 'client_application'=>{'name' => 'my site'} + end + + def do_invalid_post + @client_application.should_receive(:save).and_return(false) + post :create, :client_application=>{:name => 'my site'} + end + + it "should query current_users client applications" do + @client_applications.should_receive(:build).and_return(@client_application) + do_valid_post + end + + it "should redirect to new client_application" do + do_valid_post + response.should be_redirect + response.should redirect_to(:action => "show", :id => @client_application.id) + end + + it "should assign client_applications" do + do_invalid_post + assigns[:client_application].should equal(@client_application) + end + + it "should render show template" do + do_invalid_post + response.should render_template('new') + end +end + +describe OauthClientsController, "destroy" do + include OAuthControllerSpecHelper + before(:each) do + login_as_application_owner + @client_application.stub!(:destroy) + end + + def do_delete + delete :destroy, :id => '3' + end + + it "should query current_users client applications" do + @user.should_receive(:client_applications).and_return(@client_applications) + @client_applications.should_receive(:find).with('3').and_return(@client_application) + do_delete + end + + it "should destroy client applications" do + @client_application.should_receive(:destroy) + do_delete + end + + it "should redirect to list" do + do_delete + response.should be_redirect + response.should redirect_to(:action => 'index') + end + +end + +describe OauthClientsController, "update" do + include OAuthControllerSpecHelper + + before(:each) do + login_as_application_owner + end + + def do_valid_update + @client_application.should_receive(:update_attributes).and_return(true) + put :update, :id => '1', 'client_application'=>{'name' => 'my site'} + end + + def do_invalid_update + @client_application.should_receive(:update_attributes).and_return(false) + put :update, :id => '1', 'client_application'=>{'name' => 'my site'} + end + + it "should query current_users client applications" do + @user.should_receive(:client_applications).and_return(@client_applications) + @client_applications.should_receive(:find).with('1').and_return(@client_application) + do_valid_update + end + + it "should redirect to new client_application" do + do_valid_update + response.should be_redirect + response.should redirect_to(:action => "show", :id => @client_application.id) + end + + it "should assign client_applications" do + do_invalid_update + assigns[:client_application].should equal(@client_application) + end + + it "should render show template" do + do_invalid_update + response.should render_template('edit') + end +end