diff --git a/lib/gitlab/regex.rb b/lib/gitlab/regex.rb index 53ab2686b43e0c4202a1fc51aedd6ba14a2b9228..3331bd123b2d86c593b445ffd2185530243af521 100644 --- a/lib/gitlab/regex.rb +++ b/lib/gitlab/regex.rb @@ -34,12 +34,12 @@ module Gitlab def project_path_regex - @project_path_regex ||= /\A[a-zA-Z0-9_.][a-zA-Z0-9_\-\.]*(?<!\.git)\z/.freeze + @project_path_regex ||= /\A[a-zA-Z0-9_.][a-zA-Z0-9_\-\.]*(?<!\.git|\.atom)\z/.freeze end def project_path_regex_message "can contain only letters, digits, '_', '-' and '.'. " \ - "Cannot start with '-' or end in '.git'" \ + "Cannot start with '-', end in '.git' or end in '.atom'" \ end diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb index ad143c14c432a9b50b9c5c6d7f11ca101b3629c5..245cf96d6443812da78c4a0b03044fbf0bee26fb 100644 --- a/spec/controllers/projects_controller_spec.rb +++ b/spec/controllers/projects_controller_spec.rb @@ -88,13 +88,10 @@ describe ProjectsController do end context "when the url contains .atom" do - let(:public_project_with_dot) { create(:project, :public, name: 'my.atom', path: 'my.atom') } + let(:public_project_with_dot_atom) { create(:project, :public, name: 'my.atom', path: 'my.atom') } - it 'loads a project' do - get :show, namespace_id: public_project_with_dot.namespace.path, id: public_project_with_dot.path - - expect(assigns(:project)).to eq(public_project_with_dot) - expect(response.status).to eq(200) + it 'expect an error creating the project' do + expect { public_project_with_dot_atom }.to raise_error(ActiveRecord::RecordInvalid) end end end