OSDN Git Service

Merge pull request #2954 from cabeca/fix-image-url-emoji
[wvm/gitlab.git] / spec / factories.rb
1 FactoryGirl.define do
2   sequence :sentence, aliases: [:title, :content] do
3     Faker::Lorem.sentence
4   end
5
6   sequence :name, aliases: [:file_name] do
7     Faker::Name.name
8   end
9
10   sequence(:url) { Faker::Internet.uri('http') }
11
12   factory :user, aliases: [:author, :assignee, :owner, :creator] do
13     email { Faker::Internet.email }
14     name
15     sequence(:username) { |n| "#{Faker::Internet.user_name}#{n}" }
16     password "123456"
17     password_confirmation { password }
18
19     trait :admin do
20       admin true
21     end
22
23     factory :admin, traits: [:admin]
24   end
25
26   factory :project do
27     sequence(:name) { |n| "project#{n}" }
28     path { name.downcase.gsub(/\s/, '_') }
29     creator
30   end
31
32   factory :redmine_project, parent: :project do
33     issues_tracker { "redmine" }
34     issues_tracker_id { "project_name_in_redmine" }
35   end
36
37   factory :group do
38     sequence(:name) { |n| "group#{n}" }
39     path { name.downcase.gsub(/\s/, '_') }
40     owner
41     type 'Group'
42   end
43
44   factory :namespace do
45     sequence(:name) { |n| "namespace#{n}" }
46     path { name.downcase.gsub(/\s/, '_') }
47     owner
48   end
49
50   factory :users_project do
51     user
52     project
53     project_access { UsersProject::MASTER }
54   end
55
56   factory :issue do
57     title
58     author
59     project
60
61     trait :closed do
62       state :closed
63     end
64
65     trait :reopened do
66       state :reopened
67     end
68
69     factory :closed_issue, traits: [:closed]
70     factory :reopened_issue, traits: [:reopened]
71   end
72
73   factory :merge_request do
74     title
75     author
76     project
77     source_branch "master"
78     target_branch "stable"
79
80     # pick 3 commits "at random" (from bcf03b5d~3 to bcf03b5d)
81     trait :with_diffs do
82       target_branch "master" # pretend bcf03b5d~3
83       source_branch "stable" # pretend bcf03b5d
84       st_commits do
85         [Commit.new(project.repo.commit('bcf03b5d')),
86          Commit.new(project.repo.commit('bcf03b5d~1')),
87          Commit.new(project.repo.commit('bcf03b5d~2'))]
88       end
89       st_diffs do
90         project.repo.diff("bcf03b5d~3", "bcf03b5d")
91       end
92     end
93
94     trait :closed do
95       state :closed
96     end
97
98     trait :reopened do
99       state :reopened
100     end
101
102     factory :closed_merge_request, traits: [:closed]
103     factory :reopened_merge_request, traits: [:reopened]
104     factory :merge_request_with_diffs, traits: [:with_diffs]
105   end
106
107   factory :note do
108     project
109     note "Note"
110     author
111
112     factory :note_on_commit, traits: [:on_commit]
113     factory :note_on_commit_diff, traits: [:on_commit, :on_diff]
114     factory :note_on_issue, traits: [:on_issue], aliases: [:votable_note]
115     factory :note_on_merge_request, traits: [:on_merge_request]
116     factory :note_on_merge_request_diff, traits: [:on_merge_request, :on_diff]
117
118     trait :on_commit do
119       commit_id     "bcf03b5de6c33f3869ef70d68cf06e679d1d7f9a"
120       noteable_type "Commit"
121     end
122
123     trait :on_diff do
124       line_code "0_184_184"
125     end
126
127     trait :on_merge_request do
128       noteable_id   1
129       noteable_type "MergeRequest"
130     end
131
132     trait :on_issue do
133       noteable_id   1
134       noteable_type "Issue"
135     end
136   end
137
138   factory :event do
139     factory :closed_issue_event do
140       project
141       action { Event::CLOSED }
142       target factory: :closed_issue
143       author factory: :user
144     end
145   end
146
147   factory :key do
148     title
149     key do
150       "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0="
151     end
152
153     factory :deploy_key do
154       project
155     end
156
157     factory :personal_key do
158       user
159     end
160
161     factory :key_with_a_space_in_the_middle do
162       key do
163         "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa ++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0="
164       end
165     end
166
167     factory :invalid_key do
168       key do
169         "ssh-rsa this_is_invalid_key=="
170       end
171     end
172   end
173
174   factory :milestone do
175     title
176     project
177
178     trait :closed do
179       state :closed
180     end
181
182     factory :closed_milestone, traits: [:closed]
183   end
184
185   factory :system_hook do
186     url
187   end
188
189   factory :project_hook do
190     url
191   end
192
193   factory :wiki do
194     title
195     content
196     user
197   end
198
199   factory :snippet do
200     project
201     author
202     title
203     content
204     file_name
205   end
206
207   factory :protected_branch do
208     name
209     project
210   end
211
212   factory :service do
213     type ""
214     title "GitLab CI"
215     token "x56olispAND34ng"
216     project
217   end
218
219   factory :service_hook do
220     url
221     service
222   end
223 end