gitlab-org--gitlab-foss/spec/controllers/profile_keys_controller_spec.rb
Dmitry Medvinsky fefab47456 Fix /:username.keys response content type
Currently this method responds with `text/html`. It is kind of unusable
if you open it in a browser. The browser thinks it is HTML and renders
it as HTML, meaning new lines are dropped. So it's very hard to
distinguish where the key starts and where it ends.

This commit changes the content type header to `text/plain`.
2014-03-20 19:09:14 +04:00

59 lines
1.5 KiB
Ruby

require 'spec_helper'
describe Profiles::KeysController do
let(:user) { create(:user) }
describe "#get_keys" do
describe "non existant user" do
it "should generally not work" do
get :get_keys, username: 'not-existent'
expect(response).not_to be_success
end
end
describe "user with no keys" do
it "should generally work" do
get :get_keys, username: user.username
expect(response).to be_success
end
it "should render all keys separated with a new line" do
get :get_keys, username: user.username
expect(response.body).to eq("")
end
it "should respond with text/plain content type" do
get :get_keys, username: user.username
expect(response.content_type).to eq("text/plain")
end
end
describe "user with keys" do
before do
user.keys << create(:key)
user.keys << create(:another_key)
end
it "should generally work" do
get :get_keys, username: user.username
expect(response).to be_success
end
it "should render all keys separated with a new line" do
get :get_keys, username: user.username
expect(response.body).not_to eq("")
expect(response.body).to eq(user.all_ssh_keys.join("\n"))
end
it "should respond with text/plain content type" do
get :get_keys, username: user.username
expect(response.content_type).to eq("text/plain")
end
end
end
end