36 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| require 'spec_helper'
 | |
| 
 | |
| describe NamespaceUrlConstrainer, lib: true do
 | |
|   let!(:group) { create(:group, path: 'gitlab') }
 | |
| 
 | |
|   describe '#matches?' do
 | |
|     context 'existing namespace' do
 | |
|       it { expect(subject.matches?(request '/gitlab')).to be_truthy }
 | |
|       it { expect(subject.matches?(request '/gitlab.atom')).to be_truthy }
 | |
|       it { expect(subject.matches?(request '/gitlab/')).to be_truthy }
 | |
|       it { expect(subject.matches?(request '//gitlab/')).to be_truthy }
 | |
|     end
 | |
| 
 | |
|     context 'non-existing namespace' do
 | |
|       it { expect(subject.matches?(request '/gitlab-ce')).to be_falsey }
 | |
|       it { expect(subject.matches?(request '/gitlab.ce')).to be_falsey }
 | |
|       it { expect(subject.matches?(request '/g/gitlab')).to be_falsey }
 | |
|       it { expect(subject.matches?(request '/.gitlab')).to be_falsey }
 | |
|     end
 | |
| 
 | |
|     context 'relative url' do
 | |
|       before do
 | |
|         allow(Gitlab::Application.config).to receive(:relative_url_root) { '/gitlab' }
 | |
|       end
 | |
| 
 | |
|       it { expect(subject.matches?(request '/gitlab/gitlab')).to be_truthy }
 | |
|       it { expect(subject.matches?(request '/gitlab/gitlab-ce')).to be_falsey }
 | |
|       it { expect(subject.matches?(request '/gitlab/')).to be_falsey }
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def request(path)
 | |
|     OpenStruct.new(path: path)
 | |
|   end
 | |
| end
 |