У меня есть вспомогательный метод, который принимает метку и некоторые данные и форматирует ее следующим образом:
def format_entry(labeltext, infotext)
content_tag(:div, labeltext, class: 'dataleft') +
content_tag(:div, infotext, class: 'dataright')
end
Инфотекст может быть создан пользователем, поэтому я должен убедиться, что существует защита XSS.Поэтому я написал тест:
test 'no xss in format_entry' do
label = "LBL"
info = "AA<BB"
render text: format_entry(label, info)
assert_select('div.dataright', "AA<BB")
end
Это сработало Rails 4.1.Когда я обновляюсь до Rails 4.2, тест перерывается.Это потому, что в 4.2 assert_select
используется Nokogiri, и теперь он оценивает HTML-сущности.Таким образом, он автоматически преобразует <
обратно в ">".
Как проверить, что замена действительно произошла?