Commit f10153818b51da7ee4e691cea308dd8964d908c9

Authored by Johannes Schleifenbaum
1 parent 39aeac71

Split the user ssh keys by newline, not the characters "\n"

before:
GET /user.keys

ssh-rsa ...\nssh-rsa ...\nssh-rsa ...

after:
GET /user.keys

ssh-rsa ...
ssh-rsa ...
sha-rsa ...
app/controllers/profiles/keys_controller.rb
... ... @@ -41,7 +41,7 @@ class Profiles::KeysController < ApplicationController
41 41 begin
42 42 user = User.find_by_username(params[:username])
43 43 if user.present?
44   - render text: user.all_ssh_keys.join('\n')
  44 + render text: user.all_ssh_keys.join("\n")
45 45 else
46 46 render_404 and return
47 47 end
... ...
spec/controllers/profile_keys_controller_spec.rb 0 → 100644
... ... @@ -0,0 +1,49 @@
  1 +require 'spec_helper'
  2 +
  3 +describe Profiles::KeysController do
  4 + let(:user) { create(:user) }
  5 +
  6 + describe "#get_keys" do
  7 + describe "non existant user" do
  8 + it "should generally not work" do
  9 + get :get_keys, username: 'not-existent'
  10 +
  11 + expect(response).not_to be_success
  12 + end
  13 + end
  14 +
  15 + describe "user with no keys" do
  16 + it "should generally work" do
  17 + get :get_keys, username: user.username
  18 +
  19 + expect(response).to be_success
  20 + end
  21 +
  22 + it "should render all keys separated with a new line" do
  23 + get :get_keys, username: user.username
  24 +
  25 + expect(response.body).to eq("")
  26 + end
  27 + end
  28 +
  29 + describe "user with keys" do
  30 + before do
  31 + user.keys << create(:key)
  32 + user.keys << create(:another_key)
  33 + end
  34 +
  35 + it "should generally work" do
  36 + get :get_keys, username: user.username
  37 +
  38 + expect(response).to be_success
  39 + end
  40 +
  41 + it "should render all keys separated with a new line" do
  42 + get :get_keys, username: user.username
  43 +
  44 + expect(response.body).not_to eq("")
  45 + expect(response.body).to eq(user.all_ssh_keys.join("\n"))
  46 + end
  47 + end
  48 + end
  49 +end
... ...
spec/factories.rb
... ... @@ -207,6 +207,12 @@ FactoryGirl.define do
207 207 end
208 208 end
209 209  
  210 + factory :another_key do
  211 + key do
  212 + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDmTillFzNTrrGgwaCKaSj+QCz81E6jBc/s9av0+3b1Hwfxgkqjl4nAK/OD2NjgyrONDTDfR8cRN4eAAy6nY8GLkOyYBDyuc5nTMqs5z3yVuTwf3koGm/YQQCmo91psZ2BgDFTor8SVEE5Mm1D1k3JDMhDFxzzrOtRYFPci9lskTJaBjpqWZ4E9rDTD2q/QZntCqbC3wE9uSemRQB5f8kik7vD/AD8VQXuzKladrZKkzkONCPWsXDspUitjM8HkQdOf0PsYn1CMUC1xKYbCxkg5TkEosIwGv6CoEArUrdu/4+10LVslq494mAvEItywzrluCLCnwELfW+h/m8UHoVhZ"
  213 + end
  214 + end
  215 +
210 216 factory :invalid_key do
211 217 key do
212 218 "ssh-rsa this_is_invalid_key=="
... ...