Commit 1c9a41e0d5cac3ee937555ae4189ecd1ad597004

Authored by GitLab
1 parent b9d58c4c

adding tests for the ssh keys feature

app/controllers/profiles/keys_controller.rb
@@ -40,7 +40,7 @@ class Profiles::KeysController < ApplicationController @@ -40,7 +40,7 @@ class Profiles::KeysController < ApplicationController
40 if params[:username].present? 40 if params[:username].present?
41 begin 41 begin
42 user = User.find_by_username(params[:username]) 42 user = User.find_by_username(params[:username])
43 - user.present? ? (render :text => user.all_ssh_keys) : 43 + user.present? ? (render :text => user.all_ssh_keys.join('\n')) :
44 (render_404 and return) 44 (render_404 and return)
45 rescue => e 45 rescue => e
46 render text: e.message 46 render text: e.message
app/models/user.rb
@@ -393,6 +393,6 @@ class User < ActiveRecord::Base @@ -393,6 +393,6 @@ class User < ActiveRecord::Base
393 end 393 end
394 394
395 def all_ssh_keys 395 def all_ssh_keys
396 - keys.collect{|x| x.key}.join("\n") 396 + keys.collect{|x| x.key}
397 end 397 end
398 end 398 end
spec/models/user_spec.rb
@@ -276,4 +276,16 @@ describe User do @@ -276,4 +276,16 @@ describe User do
276 User.by_username_or_id('bar').should be_nil 276 User.by_username_or_id('bar').should be_nil
277 end 277 end
278 end 278 end
  279 +
  280 + describe 'all_ssh_keys' do
  281 + it { should have_many(:keys).dependent(:destroy) }
  282 +
  283 + it "should have all ssh keys" do
  284 + user = create :user
  285 + key = create :key, key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD33bWLBxu48Sev9Fert1yzEO4WGcWglWF7K/AwblIUFselOt/QdOL9DSjpQGxLagO1s9wl53STIO8qGS4Ms0EJZyIXOEFMjFJ5xmjSy+S37By4sG7SsltQEHMxtbtFOaW5LV2wCrX+rUsRNqLMamZjgjcPO0/EgGCXIGMAYW4O7cwGZdXWYIhQ1Vwy+CsVMDdPkPgBXqK7nR/ey8KMs8ho5fMNgB5hBw/AL9fNGhRw3QTD6Q12Nkhl4VZES2EsZqlpNnJttnPdp847DUsT6yuLRlfiQfz5Cn9ysHFdXObMN5VYIiPFwHeYCZp1X2S4fDZooRE8uOLTfxWHPXwrhqSH", user_id: user.id
  286 +
  287 + user.all_ssh_keys.should include(key.key)
  288 + end
  289 +
  290 + end
279 end 291 end
spec/routing/routing_spec.rb
@@ -183,6 +183,11 @@ describe Profiles::KeysController, "routing" do @@ -183,6 +183,11 @@ describe Profiles::KeysController, "routing" do
183 it "to #destroy" do 183 it "to #destroy" do
184 delete("/profile/keys/1").should route_to('profiles/keys#destroy', id: '1') 184 delete("/profile/keys/1").should route_to('profiles/keys#destroy', id: '1')
185 end 185 end
  186 +
  187 + # get all the ssh-keys of a user
  188 + it "to #get_keys" do
  189 + get("/foo.keys").should route_to('profiles/keys#get_keys', username: 'foo')
  190 + end
186 end 191 end
187 192
188 # dashboard GET /dashboard(.:format) dashboard#show 193 # dashboard GET /dashboard(.:format) dashboard#show