From 1167ef4089645e8c043cf9009ff384829421acd7 Mon Sep 17 00:00:00 2001 From: Douglas Barbosa Alexandre Date: Tue, 12 Jul 2016 21:48:31 -0300 Subject: Fix markdown rendering for label references that contains `.` --- app/models/label.rb | 4 ++-- .../banzai/filter/label_reference_filter_spec.rb | 26 +++++++++++----------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/app/models/label.rb b/app/models/label.rb index 9b8239d8757..df38d763c96 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -61,8 +61,8 @@ class Label < ActiveRecord::Base (?: (?\d+(?!\S\w)\b) | # Integer-based label ID, or (? - [A-Za-z0-9_\-\?&]+ | # String-based single-word label title, or - "([^"]*)" # String-based multi-word label surrounded in quotes + [A-Za-z0-9_\-\?\.&]+ | # String-based single-word label title, or + "([^"]*)" # String-based multi-word label surrounded in quotes ) ) }x diff --git a/spec/lib/banzai/filter/label_reference_filter_spec.rb b/spec/lib/banzai/filter/label_reference_filter_spec.rb index 763b8dbc46a..9276a154007 100644 --- a/spec/lib/banzai/filter/label_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/label_reference_filter_spec.rb @@ -93,8 +93,8 @@ describe Banzai::Filter::LabelReferenceFilter, lib: true do end it 'links with adjacent text' do - doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(#{label.name}\.\))) + doc = reference_filter("Label (#{reference}).") + expect(doc.to_html).to match(%r(\(#{label.name}\)\.)) end it 'ignores invalid label names' do @@ -117,8 +117,8 @@ describe Banzai::Filter::LabelReferenceFilter, lib: true do end it 'links with adjacent text' do - doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(#{label.name}\.\))) + doc = reference_filter("Label (#{reference}).") + expect(doc.to_html).to match(%r(\(#{label.name}\)\.)) end it 'ignores invalid label names' do @@ -129,7 +129,7 @@ describe Banzai::Filter::LabelReferenceFilter, lib: true do end context 'String-based single-word references with special characters' do - let(:label) { create(:label, name: '?gfm&', project: project) } + let(:label) { create(:label, name: '?g.fm&', project: project) } let(:reference) { "#{Label.reference_prefix}#{label.name}" } it 'links to a valid reference' do @@ -137,17 +137,17 @@ describe Banzai::Filter::LabelReferenceFilter, lib: true do expect(doc.css('a').first.attr('href')).to eq urls. namespace_project_issues_url(project.namespace, project, label_name: label.name) - expect(doc.text).to eq 'See ?gfm&' + expect(doc.text).to eq 'See ?g.fm&' end it 'links with adjacent text' do - doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(\?gfm&\.\))) + doc = reference_filter("Label (#{reference}).") + expect(doc.to_html).to match(%r(\(\?g\.fm&\)\.)) end it 'ignores invalid label names' do act = "Label #{Label.reference_prefix}#{label.name.reverse}" - exp = "Label #{Label.reference_prefix}&mfg?" + exp = "Label #{Label.reference_prefix}&mf.g?" expect(reference_filter(act).to_html).to eq exp end @@ -202,7 +202,7 @@ describe Banzai::Filter::LabelReferenceFilter, lib: true do end context 'String-based multi-word references with special characters in quotes' do - let(:label) { create(:label, name: 'gfm & references?', project: project) } + let(:label) { create(:label, name: 'g.fm & references?', project: project) } let(:reference) { label.to_reference(format: :name) } it 'links to a valid reference' do @@ -210,17 +210,17 @@ describe Banzai::Filter::LabelReferenceFilter, lib: true do expect(doc.css('a').first.attr('href')).to eq urls. namespace_project_issues_url(project.namespace, project, label_name: label.name) - expect(doc.text).to eq 'See gfm & references?' + expect(doc.text).to eq 'See g.fm & references?' end it 'links with adjacent text' do doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(gfm & references\?\.\))) + expect(doc.to_html).to match(%r(\(g\.fm & references\?\.\))) end it 'ignores invalid label names' do act = %(Label #{Label.reference_prefix}"#{label.name.reverse}") - exp = %(Label #{Label.reference_prefix}"?secnerefer & mfg\") + exp = %(Label #{Label.reference_prefix}"?secnerefer & mf.g\") expect(reference_filter(act).to_html).to eq exp end -- cgit v1.2.1