2019-04-29 19:27:42 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2023-01-09 05:18:21 -06:00
|
|
|
require "category_badge"
|
2018-06-28 03:14:55 -05:00
|
|
|
|
2022-07-27 21:27:38 -05:00
|
|
|
RSpec.describe CategoryBadge do
|
2018-06-28 03:14:55 -05:00
|
|
|
it "escapes HTML in category names / descriptions" do
|
2023-01-09 05:18:21 -06:00
|
|
|
c = Fabricate(:category, name: "<b>name</b>", description: "<b>title</b>")
|
2018-06-28 03:14:55 -05:00
|
|
|
|
|
|
|
html = CategoryBadge.html_for(c)
|
|
|
|
|
|
|
|
expect(html).not_to include("<b>title</b>")
|
|
|
|
expect(html).not_to include("<b>name</b>")
|
|
|
|
expect(html).to include(ERB::Util.html_escape("<b>name</b>"))
|
|
|
|
expect(html).to include("title='title'")
|
|
|
|
end
|
2019-10-01 11:04:40 -05:00
|
|
|
|
|
|
|
it "escapes code block contents" do
|
|
|
|
c = Fabricate(:category, description: '<code>\' <b id="x"></code>')
|
|
|
|
html = CategoryBadge.html_for(c)
|
|
|
|
|
|
|
|
expect(html).to include("title='' <b id="x">'")
|
|
|
|
end
|
2018-06-28 03:14:55 -05:00
|
|
|
end
|