diff options
| -rw-r--r-- | users/app/controllers/keys_controller.rb | 10 | ||||
| -rw-r--r-- | users/app/controllers/users_controller.rb | 6 | ||||
| -rw-r--r-- | users/app/views/users/get_public_key.html.haml | 2 | ||||
| -rw-r--r-- | users/config/routes.rb | 2 | ||||
| -rw-r--r-- | users/test/functional/keys_controller_test.rb | 31 | 
5 files changed, 42 insertions, 9 deletions
| diff --git a/users/app/controllers/keys_controller.rb b/users/app/controllers/keys_controller.rb new file mode 100644 index 0000000..9a39fc4 --- /dev/null +++ b/users/app/controllers/keys_controller.rb @@ -0,0 +1,10 @@ +class KeysController < ApplicationController + +  def show +    user = User.find_by_login(params[:login]) +    # layout won't be included if we render text +    # we will show blank page if user doesn't have key or user doesn't exist +    render text: user ? user.public_key : '' +  end + +end diff --git a/users/app/controllers/users_controller.rb b/users/app/controllers/users_controller.rb index 3f4daeb..3cbb6dc 100644 --- a/users/app/controllers/users_controller.rb +++ b/users/app/controllers/users_controller.rb @@ -59,10 +59,4 @@ class UsersController < UsersBaseController      end    end -  def get_public_key -    @show_navigation = false -    user = User.find_by_login(params[:login]) -    @public_key = user.public_key if user -  end -  end diff --git a/users/app/views/users/get_public_key.html.haml b/users/app/views/users/get_public_key.html.haml deleted file mode 100644 index eccb367..0000000 --- a/users/app/views/users/get_public_key.html.haml +++ /dev/null @@ -1,2 +0,0 @@ -- if @public_key -  = @public_key
\ No newline at end of file diff --git a/users/config/routes.rb b/users/config/routes.rb index 1077561..69f9cf7 100644 --- a/users/config/routes.rb +++ b/users/config/routes.rb @@ -22,6 +22,6 @@ Rails.application.routes.draw do    get "/.well-known/host-meta" => 'webfinger#host_meta'    get "/webfinger" => 'webfinger#search' -  get "/key/:login" => 'users#get_public_key' +  get "/key/:login" => 'keys#show'  end diff --git a/users/test/functional/keys_controller_test.rb b/users/test/functional/keys_controller_test.rb new file mode 100644 index 0000000..9cc88d1 --- /dev/null +++ b/users/test/functional/keys_controller_test.rb @@ -0,0 +1,31 @@ +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/html", response.content_type +    assert_equal public_key, response.body +  end + +  test "get non-existing public key for user" do +    @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/html", response.content_type +    assert_equal '', response.body.strip +  end + +  test "get public key for non-existing user" do +    get :show, :login => 'asdkljslksjfdlskfj' +    assert_response :success +    assert_equal "text/html", response.content_type +    assert_equal '', response.body.strip +  end + +end | 
