diff options
author | Ruben Davila <rdavila84@gmail.com> | 2017-06-08 00:20:22 -0500 |
---|---|---|
committer | Ruben Davila <rdavila84@gmail.com> | 2017-06-08 00:20:22 -0500 |
commit | 681a24361b2a1b642cf7b38f45517600b952e198 (patch) | |
tree | 7d62ee87ac6fc5d962caedf18b04203c78965b56 /spec/models/concerns/routable_spec.rb | |
parent | 7755c0b8b448721671e866f712898b247b02c2ac (diff) | |
download | gitlab-ce-681a24361b2a1b642cf7b38f45517600b952e198.tar.gz |
Escape the underscore char inside the LIKE operator33323-incorrect-project-authorizations
An underscore can be used as a wildcard inside the LIKE operator, if we
really want to match it then we need to escape it otherwise the query
will return invalid results.
Diffstat (limited to 'spec/models/concerns/routable_spec.rb')
-rw-r--r-- | spec/models/concerns/routable_spec.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/spec/models/concerns/routable_spec.rb b/spec/models/concerns/routable_spec.rb index 49a4132f763..2f337c14d96 100644 --- a/spec/models/concerns/routable_spec.rb +++ b/spec/models/concerns/routable_spec.rb @@ -133,6 +133,29 @@ describe Group, 'Routable' do subject { described_class.member_self_and_descendants(user.id) } it { is_expected.to match_array [group, nested_group] } + + context 'when the group has special chars in its path' do + let(:user1) { create(:user) } + let(:group1) { create(:group, name: 'demo', path: 'demo') } + let(:nested_group1) { create(:group, name: 'nest', path: 'nest', parent: group1) } + let!(:project1) { create(:empty_project, group: nested_group1) } + + let(:user2) { create(:user) } + let(:group2) { create(:group, name: '____', path: '____') } + let(:nested_group2) { create(:group, name: 'test', path: 'test', parent: group2) } + let!(:project2) { create(:empty_project, group: nested_group2) } + + before do + group1.add_master(user1) + group2.add_master(user2) + end + + it 'only returns the right groups' do + groups = described_class.member_self_and_descendants(user2.id) + + expect(groups).to match_array([group2, nested_group2]) + end + end end describe '.member_hierarchy' do |