summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2015-04-23 07:42:28 -0700
committerStan Hu <stanhu@gmail.com>2015-04-23 07:42:28 -0700
commit9a2e3d3d8196afefe32b099162b17f7441de8fb1 (patch)
treed37a97156c13d15eb85dbffce6a7a2c3de778767
parente3682122269d3c1a291de3c8d76d45f989a0ef97 (diff)
downloadgitlab-ce-9a2e3d3d8196afefe32b099162b17f7441de8fb1.tar.gz
Fix broken file browsing with relative submodule in personal projects
Closes https://github.com/gitlabhq/gitlabhq/issues/7554
-rw-r--r--CHANGELOG2
-rw-r--r--app/helpers/submodule_helper.rb2
-rw-r--r--spec/helpers/submodule_helper_spec.rb15
3 files changed, 13 insertions, 6 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 5bb6842f500..89dc7444a42 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -4,7 +4,7 @@ v 7.11.0 (unreleased)
- Fix clone URL field and X11 Primary selection (Dmitry Medvinsky)
- Ignore invalid lines in .gitmodules
- Fix "Cannot move project" error message from popping up after a successful transfer (Stan Hu)
- -
+ - Fix broken file browsing with relative submodule in personal projects (Stan Hu)
- Add "Reply quoting selected text" shortcut key (`r`)
-
-
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