summaryrefslogtreecommitdiff
path: root/spec/lib
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2015-12-29 21:58:16 -0500
committerRobert Speicher <rspeicher@gmail.com>2015-12-30 15:36:59 -0500
commitd9d2e8a3e8de62beff685457e4e305f93122b206 (patch)
tree932bf5d30f725365df1f00e02df5a25434485201 /spec/lib
parent4ed369558e5642ec69c160be5658bb3c6a495bbd (diff)
downloadgitlab-ce-d9d2e8a3e8de62beff685457e4e305f93122b206.tar.gz
Support a single directory traversal in RelativeLinkFilterrs-relative-links-to-root
Prior, if we were viewing a blob at `https://example.com/namespace/project/blob/master/doc/some-file.md` and it contained a relative link such as `[README](../README.md)`, the resulting link when viewing the blob would be: `https://example.com/namespace/project/blob/README.md` which omits the `master` ref, resulting in a 404.
Diffstat (limited to 'spec/lib')
-rw-r--r--spec/lib/banzai/filter/relative_link_filter_spec.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/spec/lib/banzai/filter/relative_link_filter_spec.rb b/spec/lib/banzai/filter/relative_link_filter_spec.rb
index 0b3e5ecbc9f..0e6685f0ffb 100644
--- a/spec/lib/banzai/filter/relative_link_filter_spec.rb
+++ b/spec/lib/banzai/filter/relative_link_filter_spec.rb
@@ -92,6 +92,14 @@ describe Banzai::Filter::RelativeLinkFilter, lib: true do
to eq "/#{project_path}/blob/#{ref}/doc/api/README.md"
end
+ it 'rebuilds relative URL for a file in the repository root' do
+ relative_link = link('../README.md')
+ doc = filter(relative_link, requested_path: 'doc/some-file.md')
+
+ expect(doc.at_css('a')['href']).
+ to eq "/#{project_path}/blob/#{ref}/README.md"
+ end
+
it 'rebuilds relative URL for a file in the repo with an anchor' do
doc = filter(link('README.md#section'))
expect(doc.at_css('a')['href']).