summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--users/app/controllers/keys_controller.rb10
-rw-r--r--users/app/controllers/users_controller.rb6
-rw-r--r--users/app/views/users/get_public_key.html.haml2
-rw-r--r--users/config/routes.rb2
-rw-r--r--users/test/functional/keys_controller_test.rb31
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