Commit 7825830ca51dc7bf84ca6216c3b66e3ce1c63c44

Authored by Dmitriy Zaporozhets
1 parent a36195bd

Allow project name, path etc start with number. Fixed specs

app/models/project.rb
... ... @@ -73,11 +73,11 @@ class Project < ActiveRecord::Base
73 73 validates :description, length: { within: 0..2000 }
74 74 validates :name, presence: true, length: { within: 0..255 },
75 75 format: { with: Gitlab::Regex.project_name_regex,
76   - message: "only letters, digits, spaces & '_' '-' '.' allowed. Letter should be first" }
  76 + message: "only letters, digits, spaces & '_' '-' '.' allowed. Letter or digit should be first" }
77 77 validates :path, presence: true, length: { within: 0..255 },
78 78 exclusion: { in: Gitlab::Blacklist.path },
79 79 format: { with: Gitlab::Regex.path_regex,
80   - message: "only letters, digits & '_' '-' '.' allowed. Letter should be first" }
  80 + message: "only letters, digits & '_' '-' '.' allowed. Letter or digit should be first" }
81 81 validates :issues_enabled, :wall_enabled, :merge_requests_enabled,
82 82 :wiki_enabled, inclusion: { in: [true, false] }
83 83 validates :issues_tracker_id, length: { within: 0..255 }
... ...
lib/gitlab/regex.rb
... ... @@ -7,7 +7,7 @@ module Gitlab
7 7 end
8 8  
9 9 def project_name_regex
10   - /\A[a-zA-Z][a-zA-Z0-9_\-\. ]*\z/
  10 + /\A[a-zA-Z0-9][a-zA-Z0-9_\-\. ]*\z/
11 11 end
12 12  
13 13 def name_regex
... ... @@ -21,7 +21,7 @@ module Gitlab
21 21 protected
22 22  
23 23 def default_regex
24   - /\A[a-zA-Z][a-zA-Z0-9_\-\.]*\z/
  24 + /\A[a-zA-Z0-9][a-zA-Z0-9_\-\.]*\z/
25 25 end
26 26 end
27 27 end
... ...
spec/models/commit_spec.rb
... ... @@ -9,11 +9,11 @@ describe Commit do
9 9 commit.title.should == "--no commit message"
10 10 end
11 11  
12   - it "truncates a message without a newline at 70 characters" do
  12 + it "truncates a message without a newline at 80 characters" do
13 13 message = commit.safe_message * 10
14 14  
15 15 commit.stub(:safe_message).and_return(message)
16   - commit.title.should == "#{message[0..69]}…"
  16 + commit.title.should == "#{message[0..79]}…"
17 17 end
18 18  
19 19 it "truncates a message with a newline before 80 characters at the newline" do
... ... @@ -27,7 +27,7 @@ describe Commit do
27 27 message = (commit.safe_message * 10) + "\n"
28 28  
29 29 commit.stub(:safe_message).and_return(message)
30   - commit.title.should == "#{message[0..69]}…"
  30 + commit.title.should == "#{message[0..79]}…"
31 31 end
32 32 end
33 33  
... ...
spec/models/project_spec.rb
... ... @@ -68,9 +68,10 @@ describe Project do
68 68 it { should ensure_length_of(:issues_tracker_id).is_within(0..255) }
69 69  
70 70 it "should not allow new projects beyond user limits" do
71   - project.stub(:creator).and_return(double(can_create_project?: false, projects_limit: 1))
72   - project.should_not be_valid
73   - project.errors[:limit_reached].first.should match(/Your own projects limit is 1/)
  71 + project2 = build(:project)
  72 + project2.stub(:creator).and_return(double(can_create_project?: false, projects_limit: 0))
  73 + project2.should_not be_valid
  74 + project2.errors[:limit_reached].first.should match(/Your own projects limit is 0/)
74 75 end
75 76 end
76 77  
... ...