Commit 1bcf0aa2e6983d8ae01b1f1b8e1f94e5c63cfd24
Exists in
spb-stable
and in
3 other branches
Merge pull request #6297 from jojosch/user-public-ssh-keys-newline
Split the user ssh keys by newline, not the characters "\n"
Showing
3 changed files
with
56 additions
and
1 deletions
Show diff stats
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 | ... | ... |
| ... | ... | @@ -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==" | ... | ... |