From 26b4e5d7fe851656e828a8df534c7df4917c98f0 Mon Sep 17 00:00:00 2001 From: Zach Margolis Date: Fri, 18 Aug 2017 11:39:20 -0700 Subject: [PATCH] Fix tag double HTML escaping **Why**: To fix rendering in browsers --- app/views/layouts/application.html.slim | 5 ++++- spec/views/layouts/application.html.slim_spec.rb | 11 +++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index ccac1c14bb4..31dc2adbb3a 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -12,7 +12,10 @@ html lang="#{I18n.locale}" class='no-js' meta http-equiv="refresh" content="#{yield(:meta_refresh)}" title - = content_for?(:title) ? APP_NAME + ' - ' + yield(:title) : APP_NAME + = APP_NAME + - if content_for?(:title) + = ' - ' + = yield(:title) == stylesheet_link_tag 'application', media: 'all' <!--[if IE 8]> diff --git a/spec/views/layouts/application.html.slim_spec.rb b/spec/views/layouts/application.html.slim_spec.rb index dd18a895ea4..848c5c162fe 100644 --- a/spec/views/layouts/application.html.slim_spec.rb +++ b/spec/views/layouts/application.html.slim_spec.rb @@ -57,6 +57,17 @@ end end + context '<title>' do + it 'does not double-escape HTML in the title tag' do + view.title("Something with 'single quotes'") + + render + + doc = Nokogiri::HTML(rendered) + expect(doc.at_css('title').text).to eq("login.gov - Something with 'single quotes'") + end + end + context 'session expiration' do it 'renders a javascript page refresh' do allow(view).to receive(:user_fully_authenticated?).and_return(false)