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