diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-04-27 14:23:01 +0000 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-04-27 14:23:01 +0000 |
commit | 9f443f42578f8f995415f3d0b9aa9ee8aebeff0b (patch) | |
tree | 2b1f46122220e101ada6b342ac70be7d9bca03b4 | |
parent | bd606e3b6211e4da0ccb57ed4fcc833f135623e1 (diff) | |
parent | 9a2e3d3d8196afefe32b099162b17f7441de8fb1 (diff) | |
download | gitlab-ce-9f443f42578f8f995415f3d0b9aa9ee8aebeff0b.tar.gz |
Merge branch 'fix-relative-submodule-links-with-personal-projects' into 'master'
Fix broken file browsing with relative submodule in personal projects
Git submodules with relative links work fine for projects in groups but not in personal projects. This patch fixes this issue.
To reproduce the problem, go here:
https://gitlab.com/andrewwu.tw/submodule-test/tree/master
Closes https://github.com/gitlabhq/gitlabhq/issues/7554
See merge request !565
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | app/helpers/submodule_helper.rb | 2 | ||||
-rw-r--r-- | spec/helpers/submodule_helper_spec.rb | 15 |
3 files changed, 13 insertions, 5 deletions
diff --git a/CHANGELOG b/CHANGELOG index 97b8c182c42..97a469513c8 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -8,6 +8,7 @@ v 7.11.0 (unreleased) - Redirect to sign in page after signing out. - Fix "Hello @username." references not working by no longer allowing usernames to end in period. - + - Fix broken file browsing with relative submodule in personal projects (Stan Hu) - Add "Reply quoting selected text" shortcut key (`r`) - Fix bug causing `@whatever` inside an issue's first code block to be picked up as a user mention. - Fix bug causing `@whatever` inside an inline code snippet (backtick-style) to be picked up as a user mention. diff --git a/app/helpers/submodule_helper.rb b/app/helpers/submodule_helper.rb index 9954617c762..e13d4eaf101 100644 --- a/app/helpers/submodule_helper.rb +++ b/app/helpers/submodule_helper.rb @@ -63,7 +63,7 @@ module SubmoduleHelper namespace = components.pop.gsub(/^\.\.$/, '') if namespace.empty? - namespace = @project.group.path + namespace = @project.namespace.name end [ diff --git a/spec/helpers/submodule_helper_spec.rb b/spec/helpers/submodule_helper_spec.rb index e99c3f5bc11..e98b75afabc 100644 --- a/spec/helpers/submodule_helper_spec.rb +++ b/spec/helpers/submodule_helper_spec.rb @@ -117,34 +117,41 @@ describe SubmoduleHelper do context 'submodules with relative links' do let(:group) { create(:group) } let(:project) { create(:project, group: group) } + let(:commit_id) { sample_commit[:id] } before do self.instance_variable_set(:@project, project) end it 'one level down' do - commit_id = sample_commit[:id] result = relative_self_links('../test.git', commit_id) expect(result).to eq(["/#{group.path}/test", "/#{group.path}/test/tree/#{commit_id}"]) end it 'two levels down' do - commit_id = sample_commit[:id] result = relative_self_links('../../test.git', commit_id) expect(result).to eq(["/#{group.path}/test", "/#{group.path}/test/tree/#{commit_id}"]) end it 'one level down with namespace and repo' do - commit_id = sample_commit[:id] result = relative_self_links('../foobar/test.git', commit_id) expect(result).to eq(["/foobar/test", "/foobar/test/tree/#{commit_id}"]) end it 'two levels down with namespace and repo' do - commit_id = sample_commit[:id] result = relative_self_links('../foobar/baz/test.git', commit_id) expect(result).to eq(["/baz/test", "/baz/test/tree/#{commit_id}"]) end + + context 'personal project' do + let(:user) { create(:user) } + let(:project) { create(:project, namespace: user.namespace) } + + it 'one level down with personal project' do + result = relative_self_links('../test.git', commit_id) + expect(result).to eq(["/#{user.username}/test", "/#{user.username}/test/tree/#{commit_id}"]) + end + end end end |