Skip to content

Commit fa63fcf

Browse files
committed
Use HTML Unescape On Event Title Fallback
1 parent 02a7794 commit fa63fcf

2 files changed

Lines changed: 15 additions & 2 deletions

File tree

app/services/sync_service/events.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,11 @@ def all_day(event)
147147
end
148148

149149
def event_title(event)
150-
event_xml_node(event)&.at_xpath("//Title")&.text&.tr("\u00A0", " ") || event.fetch("Title", nil)
150+
if (node = event_xml_node(event)&.at_xpath("//Title"))
151+
node.text.tr("\u00A0", " ")
152+
elsif (title = event.fetch("Title", nil))
153+
CGI.unescapeHTML(title).tr("\u00A0", " ")
154+
end
151155
end
152156

153157
def contact(event)

spec/services/sync_events_spec.rb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def self.cache
3939
expect(subject["title"]).to match(@events.first["Title"])
4040
end
4141

42-
it "decodes html entities from the xml title" do
42+
it "decodes html entities from the xml title node" do
4343
event = @events.first.merge(
4444
"Title" => "Refugees & Resettlement",
4545
"xml" => "<Event><Title>Refugees &amp; Resettlement</Title></Event>"
@@ -48,6 +48,15 @@ def self.cache
4848
expect(@sync_events.record_hash(event)["title"]).to eq("Refugees & Resettlement")
4949
end
5050

51+
it "decodes html entities from the fallback title value when xml title lookup fails" do
52+
event = @events.first.merge(
53+
"Title" => "Refugees &amp; Resettlement",
54+
"xml" => "<Event><Description>Fallback title path</Description></Event>"
55+
)
56+
57+
expect(@sync_events.record_hash(event)["title"]).to eq("Refugees & Resettlement")
58+
end
59+
5160
it "maps Description to description field" do
5261
expect(subject["description"]).to match(@events.first["Description"])
5362
end

0 commit comments

Comments
 (0)