5883ce95ef
The initializers including this were doing so at the top level, so every object loaded after them had a `current_application_settings` method. However, if someone had rack-attack enabled (which was loaded before these initializers), it would try to load the API, and fail, because `Gitlab::CurrentSettings` didn't have that method. To fix this: 1. Don't include `Gitlab::CurrentSettings` at the top level. We do not need `Object.new.current_application_settings` to work. 2. Make `Gitlab::CurrentSettings` explicitly `extend self`, as we already use it like that in several places. 3. Change the initializers to use that new form.
36 lines
964 B
Ruby
36 lines
964 B
Ruby
require 'spec_helper'
|
|
|
|
describe 'layouts/_head' do
|
|
before do
|
|
allow(view).to receive(:current_application_settings).and_return(Gitlab::CurrentSettings.current_application_settings)
|
|
end
|
|
|
|
it 'escapes HTML-safe strings in page_title' do
|
|
stub_helper_with_safe_string(:page_title)
|
|
|
|
render
|
|
|
|
expect(rendered).to match(%{content="foo" http-equiv="refresh"})
|
|
end
|
|
|
|
it 'escapes HTML-safe strings in page_description' do
|
|
stub_helper_with_safe_string(:page_description)
|
|
|
|
render
|
|
|
|
expect(rendered).to match(%{content="foo" http-equiv="refresh"})
|
|
end
|
|
|
|
it 'escapes HTML-safe strings in page_image' do
|
|
stub_helper_with_safe_string(:page_image)
|
|
|
|
render
|
|
|
|
expect(rendered).to match(%{content="foo" http-equiv="refresh"})
|
|
end
|
|
|
|
def stub_helper_with_safe_string(method)
|
|
allow_any_instance_of(PageLayoutHelper).to receive(method)
|
|
.and_return(%q{foo" http-equiv="refresh}.html_safe)
|
|
end
|
|
end
|