Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Tatuya Kamada
gitlab-ce
Commits
5a9ede47
Commit
5a9ede47
authored
May 21, 2015
by
Robert Speicher
Committed by
Dmitriy Zaporozhets
Jun 22, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update mock and stub syntax for specs
parent
dad88568
Changes
49
Show whitespace changes
Inline
Side-by-side
Showing
49 changed files
with
283 additions
and
220 deletions
+283
-220
app/helpers/broadcast_messages_helper.rb
app/helpers/broadcast_messages_helper.rb
+11
-4
app/helpers/icons_helper.rb
app/helpers/icons_helper.rb
+2
-0
app/helpers/notifications_helper.rb
app/helpers/notifications_helper.rb
+2
-0
spec/controllers/autocomplete_controller_spec.rb
spec/controllers/autocomplete_controller_spec.rb
+3
-3
spec/features/gitlab_flavored_markdown_spec.rb
spec/features/gitlab_flavored_markdown_spec.rb
+2
-1
spec/features/profile_spec.rb
spec/features/profile_spec.rb
+4
-2
spec/helpers/application_helper_spec.rb
spec/helpers/application_helper_spec.rb
+5
-5
spec/helpers/broadcast_messages_helper_spec.rb
spec/helpers/broadcast_messages_helper_spec.rb
+5
-5
spec/helpers/diff_helper_spec.rb
spec/helpers/diff_helper_spec.rb
+3
-3
spec/helpers/notifications_helper_spec.rb
spec/helpers/notifications_helper_spec.rb
+3
-6
spec/helpers/submodule_helper_spec.rb
spec/helpers/submodule_helper_spec.rb
+13
-13
spec/lib/extracts_path_spec.rb
spec/lib/extracts_path_spec.rb
+5
-2
spec/lib/gitlab/auth_spec.rb
spec/lib/gitlab/auth_spec.rb
+3
-1
spec/lib/gitlab/backend/shell_spec.rb
spec/lib/gitlab/backend/shell_spec.rb
+1
-1
spec/lib/gitlab/ldap/access_spec.rb
spec/lib/gitlab/ldap/access_spec.rb
+21
-9
spec/lib/gitlab/ldap/adapter_spec.rb
spec/lib/gitlab/ldap/adapter_spec.rb
+10
-5
spec/lib/gitlab/ldap/authentication_spec.rb
spec/lib/gitlab/ldap/authentication_spec.rb
+29
-24
spec/lib/gitlab/ldap/user_spec.rb
spec/lib/gitlab/ldap/user_spec.rb
+13
-9
spec/lib/gitlab/upgrader_spec.rb
spec/lib/gitlab/upgrader_spec.rb
+2
-2
spec/models/commit_spec.rb
spec/models/commit_spec.rb
+5
-3
spec/models/concerns/issuable_spec.rb
spec/models/concerns/issuable_spec.rb
+4
-1
spec/models/forked_project_link_spec.rb
spec/models/forked_project_link_spec.rb
+6
-6
spec/models/members/group_member_spec.rb
spec/models/members/group_member_spec.rb
+6
-2
spec/models/merge_request_spec.rb
spec/models/merge_request_spec.rb
+6
-4
spec/models/milestone_spec.rb
spec/models/milestone_spec.rb
+7
-7
spec/models/namespace_spec.rb
spec/models/namespace_spec.rb
+3
-3
spec/models/project_services/asana_service_spec.rb
spec/models/project_services/asana_service_spec.rb
+1
-1
spec/models/project_services/assembla_service_spec.rb
spec/models/project_services/assembla_service_spec.rb
+1
-1
spec/models/project_services/buildkite_service_spec.rb
spec/models/project_services/buildkite_service_spec.rb
+2
-4
spec/models/project_services/flowdock_service_spec.rb
spec/models/project_services/flowdock_service_spec.rb
+1
-1
spec/models/project_services/gemnasium_service_spec.rb
spec/models/project_services/gemnasium_service_spec.rb
+1
-1
spec/models/project_services/gitlab_ci_service_spec.rb
spec/models/project_services/gitlab_ci_service_spec.rb
+8
-11
spec/models/project_services/hipchat_service_spec.rb
spec/models/project_services/hipchat_service_spec.rb
+5
-5
spec/models/project_services/irker_service_spec.rb
spec/models/project_services/irker_service_spec.rb
+3
-3
spec/models/project_services/pushover_service_spec.rb
spec/models/project_services/pushover_service_spec.rb
+1
-1
spec/models/project_services/slack_service_spec.rb
spec/models/project_services/slack_service_spec.rb
+8
-8
spec/models/project_spec.rb
spec/models/project_spec.rb
+1
-1
spec/models/service_spec.rb
spec/models/service_spec.rb
+2
-6
spec/models/user_spec.rb
spec/models/user_spec.rb
+8
-4
spec/requests/api/api_helpers_spec.rb
spec/requests/api/api_helpers_spec.rb
+1
-1
spec/requests/api/branches_spec.rb
spec/requests/api/branches_spec.rb
+3
-1
spec/requests/api/files_spec.rb
spec/requests/api/files_spec.rb
+3
-6
spec/requests/api/groups_spec.rb
spec/requests/api/groups_spec.rb
+2
-1
spec/requests/api/merge_requests_spec.rb
spec/requests/api/merge_requests_spec.rb
+8
-2
spec/requests/api/projects_spec.rb
spec/requests/api/projects_spec.rb
+8
-11
spec/services/git_push_service_spec.rb
spec/services/git_push_service_spec.rb
+16
-10
spec/support/test_env.rb
spec/support/test_env.rb
+4
-2
spec/tasks/gitlab/backup_rake_spec.rb
spec/tasks/gitlab/backup_rake_spec.rb
+21
-17
spec/workers/post_receive_spec.rb
spec/workers/post_receive_spec.rb
+1
-1
No files found.
app/helpers/broadcast_messages_helper.rb
View file @
5a9ede47
module
BroadcastMessagesHelper
module
BroadcastMessagesHelper
def
broadcast_styling
(
broadcast_message
)
def
broadcast_styling
(
broadcast_message
)
if
(
broadcast_message
.
color
||
broadcast_message
.
font
)
styling
=
''
"background-color:
#{
broadcast_message
.
color
}
;color:
#{
broadcast_message
.
font
}
"
else
if
broadcast_message
.
color
.
present?
""
styling
<<
"background-color:
#{
broadcast_message
.
color
}
"
styling
<<
'; '
if
broadcast_message
.
font
.
present?
end
end
if
broadcast_message
.
font
.
present?
styling
<<
"color:
#{
broadcast_message
.
font
}
"
end
styling
end
end
end
end
app/helpers/icons_helper.rb
View file @
5a9ede47
module
IconsHelper
module
IconsHelper
include
FontAwesome
::
Rails
::
IconHelper
# Creates an icon tag given icon name(s) and possible icon modifiers.
# Creates an icon tag given icon name(s) and possible icon modifiers.
#
#
# Right now this method simply delegates directly to `fa_icon` from the
# Right now this method simply delegates directly to `fa_icon` from the
...
...
app/helpers/notifications_helper.rb
View file @
5a9ede47
module
NotificationsHelper
module
NotificationsHelper
include
IconsHelper
def
notification_icon
(
notification
)
def
notification_icon
(
notification
)
if
notification
.
disabled?
if
notification
.
disabled?
icon
(
'volume-off'
,
class:
'ns-mute'
)
icon
(
'volume-off'
,
class:
'ns-mute'
)
...
...
spec/controllers/autocomplete_controller_spec.rb
View file @
5a9ede47
...
@@ -16,7 +16,7 @@ describe AutocompleteController do
...
@@ -16,7 +16,7 @@ describe AutocompleteController do
let
(
:body
)
{
JSON
.
parse
(
response
.
body
)
}
let
(
:body
)
{
JSON
.
parse
(
response
.
body
)
}
it
{
expect
(
body
).
to
be_kind_of
(
Array
)
}
it
{
expect
(
body
).
to
be_kind_of
(
Array
)
}
it
{
expect
(
body
.
size
).
to
eq
(
1
)
}
it
{
expect
(
body
.
size
).
to
eq
1
}
it
{
expect
(
body
.
first
[
"username"
]).
to
eq
user
.
username
}
it
{
expect
(
body
.
first
[
"username"
]).
to
eq
user
.
username
}
end
end
...
@@ -33,7 +33,7 @@ describe AutocompleteController do
...
@@ -33,7 +33,7 @@ describe AutocompleteController do
let
(
:body
)
{
JSON
.
parse
(
response
.
body
)
}
let
(
:body
)
{
JSON
.
parse
(
response
.
body
)
}
it
{
expect
(
body
).
to
be_kind_of
(
Array
)
}
it
{
expect
(
body
).
to
be_kind_of
(
Array
)
}
it
{
expect
(
body
.
size
).
to
eq
(
1
)
}
it
{
expect
(
body
.
size
).
to
eq
1
}
it
{
expect
(
body
.
first
[
"username"
]).
to
eq
user
.
username
}
it
{
expect
(
body
.
first
[
"username"
]).
to
eq
user
.
username
}
end
end
...
@@ -46,6 +46,6 @@ describe AutocompleteController do
...
@@ -46,6 +46,6 @@ describe AutocompleteController do
let
(
:body
)
{
JSON
.
parse
(
response
.
body
)
}
let
(
:body
)
{
JSON
.
parse
(
response
.
body
)
}
it
{
expect
(
body
).
to
be_kind_of
(
Array
)
}
it
{
expect
(
body
).
to
be_kind_of
(
Array
)
}
it
{
expect
(
body
.
size
).
to
eq
(
User
.
count
)
}
it
{
expect
(
body
.
size
).
to
eq
User
.
count
}
end
end
end
end
spec/features/gitlab_flavored_markdown_spec.rb
View file @
5a9ede47
...
@@ -11,7 +11,8 @@ describe "GitLab Flavored Markdown", feature: true do
...
@@ -11,7 +11,8 @@ describe "GitLab Flavored Markdown", feature: true do
end
end
before
do
before
do
Commit
.
any_instance
.
stub
(
title:
"fix
#{
issue
.
to_reference
}
\n\n
ask
#{
fred
.
to_reference
}
for details"
)
allow_any_instance_of
(
Commit
).
to
receive
(
:title
).
and_return
(
"fix
#{
issue
.
to_reference
}
\n\n
ask
#{
fred
.
to_reference
}
for details"
)
end
end
let
(
:commit
)
{
project
.
commit
}
let
(
:commit
)
{
project
.
commit
}
...
...
spec/features/profile_spec.rb
View file @
5a9ede47
...
@@ -9,7 +9,8 @@ describe 'Profile account page', feature: true do
...
@@ -9,7 +9,8 @@ describe 'Profile account page', feature: true do
describe
'when signup is enabled'
do
describe
'when signup is enabled'
do
before
do
before
do
ApplicationSetting
.
any_instance
.
stub
(
signup_enabled?:
true
)
allow_any_instance_of
(
ApplicationSetting
).
to
receive
(
:signup_enabled?
).
and_return
(
true
)
visit
profile_account_path
visit
profile_account_path
end
end
...
@@ -23,7 +24,8 @@ describe 'Profile account page', feature: true do
...
@@ -23,7 +24,8 @@ describe 'Profile account page', feature: true do
describe
'when signup is disabled'
do
describe
'when signup is disabled'
do
before
do
before
do
ApplicationSetting
.
any_instance
.
stub
(
signup_enabled?:
false
)
allow_any_instance_of
(
ApplicationSetting
).
to
receive
(
:signup_enabled?
).
and_return
(
false
)
visit
profile_account_path
visit
profile_account_path
end
end
...
...
spec/helpers/application_helper_spec.rb
View file @
5a9ede47
...
@@ -76,8 +76,8 @@ describe ApplicationHelper do
...
@@ -76,8 +76,8 @@ describe ApplicationHelper do
end
end
it
'should return an url for the avatar with relative url'
do
it
'should return an url for the avatar with relative url'
do
Gitlab
.
config
.
gitlab
.
stub
(
relative_url_root:
'/gitlab'
)
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:relative_url_root
).
and_return
(
'/gitlab'
)
Gitlab
.
config
.
gitlab
.
stub
(
url:
Settings
.
send
(
:build_gitlab_url
))
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:url
).
and_return
(
Settings
.
send
(
:build_gitlab_url
))
user
=
create
(
:user
)
user
=
create
(
:user
)
user
.
avatar
=
File
.
open
(
avatar_file_path
)
user
.
avatar
=
File
.
open
(
avatar_file_path
)
...
@@ -97,7 +97,7 @@ describe ApplicationHelper do
...
@@ -97,7 +97,7 @@ describe ApplicationHelper do
let
(
:user_email
)
{
'user@email.com'
}
let
(
:user_email
)
{
'user@email.com'
}
it
'should return a generic avatar path when Gravatar is disabled'
do
it
'should return a generic avatar path when Gravatar is disabled'
do
ApplicationSetting
.
any_instance
.
stub
(
gravatar_enabled?:
false
)
allow_any_instance_of
(
ApplicationSetting
).
to
receive
(
:gravatar_enabled?
).
and_return
(
false
)
expect
(
gravatar_icon
(
user_email
)).
to
match
(
'no_avatar.png'
)
expect
(
gravatar_icon
(
user_email
)).
to
match
(
'no_avatar.png'
)
end
end
...
@@ -106,13 +106,13 @@ describe ApplicationHelper do
...
@@ -106,13 +106,13 @@ describe ApplicationHelper do
end
end
it
'should return default gravatar url'
do
it
'should return default gravatar url'
do
Gitlab
.
config
.
gitlab
.
stub
(
https:
false
)
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:https
).
and_return
(
false
)
url
=
'http://www.gravatar.com/avatar/b58c6f14d292556214bd64909bcdb118'
url
=
'http://www.gravatar.com/avatar/b58c6f14d292556214bd64909bcdb118'
expect
(
gravatar_icon
(
user_email
)).
to
match
(
url
)
expect
(
gravatar_icon
(
user_email
)).
to
match
(
url
)
end
end
it
'should use SSL when appropriate'
do
it
'should use SSL when appropriate'
do
Gitlab
.
config
.
gitlab
.
stub
(
https:
true
)
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:https
).
and_return
(
true
)
expect
(
gravatar_icon
(
user_email
)).
to
match
(
'https://secure.gravatar.com'
)
expect
(
gravatar_icon
(
user_email
)).
to
match
(
'https://secure.gravatar.com'
)
end
end
...
...
spec/helpers/broadcast_messages_helper_spec.rb
View file @
5a9ede47
...
@@ -2,20 +2,20 @@ require 'spec_helper'
...
@@ -2,20 +2,20 @@ require 'spec_helper'
describe
BroadcastMessagesHelper
do
describe
BroadcastMessagesHelper
do
describe
'broadcast_styling'
do
describe
'broadcast_styling'
do
let
(
:broadcast_message
)
{
double
(
color:
""
,
font:
""
)
}
let
(
:broadcast_message
)
{
double
(
color:
''
,
font:
''
)
}
context
"default style"
do
context
"default style"
do
it
"should have no style"
do
it
"should have no style"
do
expect
(
broadcast_styling
(
broadcast_message
)).
to
match
(
''
)
expect
(
broadcast_styling
(
broadcast_message
)).
to
eq
''
end
end
end
end
context
"customi
ez
d style"
do
context
"customi
ze
d style"
do
before
{
broadcast_message
.
stub
(
color:
"#f2dede"
,
font:
"#b94a48"
)
}
let
(
:broadcast_message
)
{
double
(
color:
"#f2dede"
,
font:
'#b94a48'
)
}
it
"should have a customized style"
do
it
"should have a customized style"
do
expect
(
broadcast_styling
(
broadcast_message
)).
expect
(
broadcast_styling
(
broadcast_message
)).
to
match
(
'background-color:
#f2dede;color:
#b94a48'
)
to
match
(
'background-color:
#f2dede; color:
#b94a48'
)
end
end
end
end
end
end
...
...
spec/helpers/diff_helper_spec.rb
View file @
5a9ede47
...
@@ -48,19 +48,19 @@ describe DiffHelper do
...
@@ -48,19 +48,19 @@ describe DiffHelper do
end
end
it
'should return only the first file if the diff line count in the 2nd file takes the total beyond safe limits'
do
it
'should return only the first file if the diff line count in the 2nd file takes the total beyond safe limits'
do
diffs
[
1
].
diff
.
stub
(
lines:
[
""
]
*
4999
)
#simulate 4999 lines
allow
(
diffs
[
1
].
diff
).
to
receive
(
:lines
).
and_return
(
[
""
]
*
4999
)
#simulate 4999 lines
expect
(
safe_diff_files
(
diffs
).
length
).
to
eq
(
1
)
expect
(
safe_diff_files
(
diffs
).
length
).
to
eq
(
1
)
end
end
it
'should return all files from a commit that is beyond safe limit for numbers of lines if force diff is true'
do
it
'should return all files from a commit that is beyond safe limit for numbers of lines if force diff is true'
do
allow
(
controller
).
to
receive
(
:params
)
{
{
force_show_diff:
true
}
}
allow
(
controller
).
to
receive
(
:params
)
{
{
force_show_diff:
true
}
}
diffs
[
1
].
diff
.
stub
(
lines:
[
""
]
*
4999
)
#simulate 4999 lines
allow
(
diffs
[
1
].
diff
).
to
receive
(
:lines
).
and_return
(
[
""
]
*
4999
)
#simulate 4999 lines
expect
(
safe_diff_files
(
diffs
).
length
).
to
eq
(
2
)
expect
(
safe_diff_files
(
diffs
).
length
).
to
eq
(
2
)
end
end
it
'should return only the first file if the diff line count in the 2nd file takes the total beyond hard limits'
do
it
'should return only the first file if the diff line count in the 2nd file takes the total beyond hard limits'
do
allow
(
controller
).
to
receive
(
:params
)
{
{
force_show_diff:
true
}
}
allow
(
controller
).
to
receive
(
:params
)
{
{
force_show_diff:
true
}
}
diffs
[
1
].
diff
.
stub
(
lines:
[
""
]
*
49999
)
#simulate 49999 lines
allow
(
diffs
[
1
].
diff
).
to
receive
(
:lines
).
and_return
(
[
""
]
*
49999
)
#simulate 49999 lines
expect
(
safe_diff_files
(
diffs
).
length
).
to
eq
(
1
)
expect
(
safe_diff_files
(
diffs
).
length
).
to
eq
(
1
)
end
end
...
...
spec/helpers/notifications_helper_spec.rb
View file @
5a9ede47
require
'spec_helper'
require
'spec_helper'
describe
NotificationsHelper
do
describe
NotificationsHelper
do
include
FontAwesome
::
Rails
::
IconHelper
include
IconsHelper
describe
'notification_icon'
do
describe
'notification_icon'
do
let
(
:notification
)
{
double
(
disabled?:
false
,
participating?:
false
,
watch?:
false
)
}
let
(
:notification
)
{
double
(
disabled?:
false
,
participating?:
false
,
watch?:
false
)
}
context
"disabled notification"
do
context
"disabled notification"
do
before
{
notification
.
stub
(
disabled?:
true
)
}
before
{
allow
(
notification
).
to
receive
(
:disabled?
).
and_return
(
true
)
}
it
"has a red icon"
do
it
"has a red icon"
do
expect
(
notification_icon
(
notification
)).
to
match
(
'class="fa fa-volume-off ns-mute"'
)
expect
(
notification_icon
(
notification
)).
to
match
(
'class="fa fa-volume-off ns-mute"'
)
...
@@ -16,7 +13,7 @@ describe NotificationsHelper do
...
@@ -16,7 +13,7 @@ describe NotificationsHelper do
end
end
context
"participating notification"
do
context
"participating notification"
do
before
{
notification
.
stub
(
participating?:
true
)
}
before
{
allow
(
notification
).
to
receive
(
:participating?
).
and_return
(
true
)
}
it
"has a blue icon"
do
it
"has a blue icon"
do
expect
(
notification_icon
(
notification
)).
to
match
(
'class="fa fa-volume-down ns-part"'
)
expect
(
notification_icon
(
notification
)).
to
match
(
'class="fa fa-volume-down ns-part"'
)
...
@@ -24,7 +21,7 @@ describe NotificationsHelper do
...
@@ -24,7 +21,7 @@ describe NotificationsHelper do
end
end
context
"watched notification"
do
context
"watched notification"
do
before
{
notification
.
stub
(
watch?:
true
)
}
before
{
allow
(
notification
).
to
receive
(
:watch?
).
and_return
(
true
)
}
it
"has a green icon"
do
it
"has a green icon"
do
expect
(
notification_icon
(
notification
)).
to
match
(
'class="fa fa-volume-up ns-watch"'
)
expect
(
notification_icon
(
notification
)).
to
match
(
'class="fa fa-volume-up ns-watch"'
)
...
...
spec/helpers/submodule_helper_spec.rb
View file @
5a9ede47
...
@@ -14,41 +14,41 @@ describe SubmoduleHelper do
...
@@ -14,41 +14,41 @@ describe SubmoduleHelper do
context
'submodule on self'
do
context
'submodule on self'
do
before
do
before
do
Gitlab
.
config
.
gitlab
.
stub
(
protocol:
'http'
)
# set this just to be sure
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:protocol
).
and_return
(
'http'
)
# set this just to be sure
end
end
it
'should detect ssh on standard port'
do
it
'should detect ssh on standard port'
do
Gitlab
.
config
.
gitlab_shell
.
stub
(
ssh_port:
22
)
# set this just to be sure
allow
(
Gitlab
.
config
.
gitlab_shell
).
to
receive
(
:ssh_port
).
and_return
(
22
)
# set this just to be sure
Gitlab
.
config
.
gitlab_shell
.
stub
(
ssh_path_prefix:
Settings
.
send
(
:build_gitlab_shell_ssh_path_prefix
))
allow
(
Gitlab
.
config
.
gitlab_shell
).
to
receive
(
:ssh_path_prefix
).
and_return
(
Settings
.
send
(
:build_gitlab_shell_ssh_path_prefix
))
stub_url
([
config
.
user
,
'@'
,
config
.
host
,
':gitlab-org/gitlab-ce.git'
].
join
(
''
))
stub_url
([
config
.
user
,
'@'
,
config
.
host
,
':gitlab-org/gitlab-ce.git'
].
join
(
''
))
expect
(
submodule_links
(
submodule_item
)).
to
eq
([
namespace_project_path
(
'gitlab-org'
,
'gitlab-ce'
),
namespace_project_tree_path
(
'gitlab-org'
,
'gitlab-ce'
,
'hash'
)
])
expect
(
submodule_links
(
submodule_item
)).
to
eq
([
namespace_project_path
(
'gitlab-org'
,
'gitlab-ce'
),
namespace_project_tree_path
(
'gitlab-org'
,
'gitlab-ce'
,
'hash'
)
])
end
end
it
'should detect ssh on non-standard port'
do
it
'should detect ssh on non-standard port'
do
Gitlab
.
config
.
gitlab_shell
.
stub
(
ssh_port:
2222
)
allow
(
Gitlab
.
config
.
gitlab_shell
).
to
receive
(
:ssh_port
).
and_return
(
2222
)
Gitlab
.
config
.
gitlab_shell
.
stub
(
ssh_path_prefix:
Settings
.
send
(
:build_gitlab_shell_ssh_path_prefix
))
allow
(
Gitlab
.
config
.
gitlab_shell
).
to
receive
(
:ssh_path_prefix
).
and_return
(
Settings
.
send
(
:build_gitlab_shell_ssh_path_prefix
))
stub_url
([
'ssh://'
,
config
.
user
,
'@'
,
config
.
host
,
':2222/gitlab-org/gitlab-ce.git'
].
join
(
''
))
stub_url
([
'ssh://'
,
config
.
user
,
'@'
,
config
.
host
,
':2222/gitlab-org/gitlab-ce.git'
].
join
(
''
))
expect
(
submodule_links
(
submodule_item
)).
to
eq
([
namespace_project_path
(
'gitlab-org'
,
'gitlab-ce'
),
namespace_project_tree_path
(
'gitlab-org'
,
'gitlab-ce'
,
'hash'
)
])
expect
(
submodule_links
(
submodule_item
)).
to
eq
([
namespace_project_path
(
'gitlab-org'
,
'gitlab-ce'
),
namespace_project_tree_path
(
'gitlab-org'
,
'gitlab-ce'
,
'hash'
)
])
end
end
it
'should detect http on standard port'
do
it
'should detect http on standard port'
do
Gitlab
.
config
.
gitlab
.
stub
(
port:
80
)
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:port
).
and_return
(
80
)
Gitlab
.
config
.
gitlab
.
stub
(
url:
Settings
.
send
(
:build_gitlab_url
))
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:url
).
and_return
(
Settings
.
send
(
:build_gitlab_url
))
stub_url
([
'http://'
,
config
.
host
,
'/gitlab-org/gitlab-ce.git'
].
join
(
''
))
stub_url
([
'http://'
,
config
.
host
,
'/gitlab-org/gitlab-ce.git'
].
join
(
''
))
expect
(
submodule_links
(
submodule_item
)).
to
eq
([
namespace_project_path
(
'gitlab-org'
,
'gitlab-ce'
),
namespace_project_tree_path
(
'gitlab-org'
,
'gitlab-ce'
,
'hash'
)
])
expect
(
submodule_links
(
submodule_item
)).
to
eq
([
namespace_project_path
(
'gitlab-org'
,
'gitlab-ce'
),
namespace_project_tree_path
(
'gitlab-org'
,
'gitlab-ce'
,
'hash'
)
])
end
end
it
'should detect http on non-standard port'
do
it
'should detect http on non-standard port'
do
Gitlab
.
config
.
gitlab
.
stub
(
port:
3000
)
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:port
).
and_return
(
3000
)
Gitlab
.
config
.
gitlab
.
stub
(
url:
Settings
.
send
(
:build_gitlab_url
))
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:url
).
and_return
(
Settings
.
send
(
:build_gitlab_url
))
stub_url
([
'http://'
,
config
.
host
,
':3000/gitlab-org/gitlab-ce.git'
].
join
(
''
))
stub_url
([
'http://'
,
config
.
host
,
':3000/gitlab-org/gitlab-ce.git'
].
join
(
''
))
expect
(
submodule_links
(
submodule_item
)).
to
eq
([
namespace_project_path
(
'gitlab-org'
,
'gitlab-ce'
),
namespace_project_tree_path
(
'gitlab-org'
,
'gitlab-ce'
,
'hash'
)
])
expect
(
submodule_links
(
submodule_item
)).
to
eq
([
namespace_project_path
(
'gitlab-org'
,
'gitlab-ce'
),
namespace_project_tree_path
(
'gitlab-org'
,
'gitlab-ce'
,
'hash'
)
])
end
end
it
'should work with relative_url_root'
do
it
'should work with relative_url_root'
do
Gitlab
.
config
.
gitlab
.
stub
(
port:
80
)
# set this just to be sure
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:port
).
and_return
(
80
)
# set this just to be sure
Gitlab
.
config
.
gitlab
.
stub
(
relative_url_root:
'/gitlab/root'
)
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:relative_url_root
).
and_return
(
'/gitlab/root'
)
Gitlab
.
config
.
gitlab
.
stub
(
url:
Settings
.
send
(
:build_gitlab_url
))
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:url
).
and_return
(
Settings
.
send
(
:build_gitlab_url
))
stub_url
([
'http://'
,
config
.
host
,
'/gitlab/root/gitlab-org/gitlab-ce.git'
].
join
(
''
))
stub_url
([
'http://'
,
config
.
host
,
'/gitlab/root/gitlab-org/gitlab-ce.git'
].
join
(
''
))
expect
(
submodule_links
(
submodule_item
)).
to
eq
([
namespace_project_path
(
'gitlab-org'
,
'gitlab-ce'
),
namespace_project_tree_path
(
'gitlab-org'
,
'gitlab-ce'
,
'hash'
)
])
expect
(
submodule_links
(
submodule_item
)).
to
eq
([
namespace_project_path
(
'gitlab-org'
,
'gitlab-ce'
),
namespace_project_tree_path
(
'gitlab-org'
,
'gitlab-ce'
,
'hash'
)
])
end
end
...
@@ -156,6 +156,6 @@ describe SubmoduleHelper do
...
@@ -156,6 +156,6 @@ describe SubmoduleHelper do
end
end
def
stub_url
(
url
)
def
stub_url
(
url
)
repo
.
stub
(
submodule_url_for:
url
)
allow
(
repo
).
to
receive
(
:submodule_url_for
).
and_return
(
url
)
end
end
end
end
spec/lib/extracts_path_spec.rb
View file @
5a9ede47
...
@@ -9,8 +9,11 @@ describe ExtractsPath do
...
@@ -9,8 +9,11 @@ describe ExtractsPath do
before
do
before
do
@project
=
project
@project
=
project
project
.
stub
(
repository:
double
(
ref_names:
[
'master'
,
'foo/bar/baz'
,
'v1.0.0'
,
'v2.0.0'
]))
project
.
stub
(
path_with_namespace:
'gitlab/gitlab-ci'
)
repo
=
double
(
ref_names:
[
'master'
,
'foo/bar/baz'
,
'v1.0.0'
,
'v2.0.0'
])
allow
(
project
).
to
receive
(
:repository
).
and_return
(
repo
)
allow
(
project
).
to
receive
(
:path_with_namespace
).
and_return
(
'gitlab/gitlab-ci'
)
end
end
describe
'#assign_ref'
do
describe
'#assign_ref'
do
...
...
spec/lib/gitlab/auth_spec.rb
View file @
5a9ede47
...
@@ -36,7 +36,9 @@ describe Gitlab::Auth do
...
@@ -36,7 +36,9 @@ describe Gitlab::Auth do
end
end
context
"with ldap enabled"
do
context
"with ldap enabled"
do
before
{
Gitlab
::
LDAP
::
Config
.
stub
(
enabled?:
true
)
}
before
do
allow
(
Gitlab
::
LDAP
::
Config
).
to
receive
(
:enabled?
).
and_return
(
true
)
end
it
"tries to autheticate with db before ldap"
do
it
"tries to autheticate with db before ldap"
do
expect
(
Gitlab
::
LDAP
::
Authentication
).
not_to
receive
(
:login
)
expect
(
Gitlab
::
LDAP
::
Authentication
).
not_to
receive
(
:login
)
...
...
spec/lib/gitlab/backend/shell_spec.rb
View file @
5a9ede47
...
@@ -5,7 +5,7 @@ describe Gitlab::Shell do
...
@@ -5,7 +5,7 @@ describe Gitlab::Shell do
let
(
:gitlab_shell
)
{
Gitlab
::
Shell
.
new
}
let
(
:gitlab_shell
)
{
Gitlab
::
Shell
.
new
}
before
do
before
do
Project
.
stub
(
find:
project
)
allow
(
Project
).
to
receive
(
:find
).
and_return
(
project
)
end
end
it
{
is_expected
.
to
respond_to
:add_key
}
it
{
is_expected
.
to
respond_to
:add_key
}
...
...
spec/lib/gitlab/ldap/access_spec.rb
View file @
5a9ede47
...
@@ -8,16 +8,24 @@ describe Gitlab::LDAP::Access do
...
@@ -8,16 +8,24 @@ describe Gitlab::LDAP::Access do
subject
{
access
.
allowed?
}
subject
{
access
.
allowed?
}
context
'when the user cannot be found'
do
context
'when the user cannot be found'
do
before
{
Gitlab
::
LDAP
::
Person
.
stub
(
find_by_dn:
nil
)
}
before
do
allow
(
Gitlab
::
LDAP
::
Person
).
to
receive
(
:find_by_dn
).
and_return
(
nil
)
end
it
{
is_expected
.
to
be_falsey
}
it
{
is_expected
.
to
be_falsey
}
end
end
context
'when the user is found'
do
context
'when the user is found'
do
before
{
Gitlab
::
LDAP
::
Person
.
stub
(
find_by_dn: :ldap_user
)
}
before
do
allow
(
Gitlab
::
LDAP
::
Person
).
to
receive
(
:find_by_dn
).
and_return
(
:ldap_user
)
end
context
'and the user is disabled via active directory'
do
context
'and the user is disabled via active directory'
do
before
{
Gitlab
::
LDAP
::
Person
.
stub
(
disabled_via_active_directory?:
true
)
}
before
do
allow
(
Gitlab
::
LDAP
::
Person
).
to
receive
(
:disabled_via_active_directory?
).
and_return
(
true
)
end
it
{
is_expected
.
to
be_falsey
}
it
{
is_expected
.
to
be_falsey
}
...
@@ -31,7 +39,8 @@ describe Gitlab::LDAP::Access do
...
@@ -31,7 +39,8 @@ describe Gitlab::LDAP::Access do
before
do
before
do
user
.
block
user
.
block
Gitlab
::
LDAP
::
Person
.
stub
(
disabled_via_active_directory?:
false
)
allow
(
Gitlab
::
LDAP
::
Person
).
to
receive
(
:disabled_via_active_directory?
).
and_return
(
false
)
end
end
it
{
is_expected
.
to
be_truthy
}
it
{
is_expected
.
to
be_truthy
}
...
@@ -39,7 +48,8 @@ describe Gitlab::LDAP::Access do
...
@@ -39,7 +48,8 @@ describe Gitlab::LDAP::Access do
context
'when auto-created users are blocked'
do
context
'when auto-created users are blocked'
do
before
do
before
do
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
(
block_auto_created_users:
true
)
allow_any_instance_of
(
Gitlab
::
LDAP
::
Config
).
to
receive
(
:block_auto_created_users
).
and_return
(
true
)
end
end
it
"does not unblock user in GitLab"
do
it
"does not unblock user in GitLab"
do
...
@@ -51,7 +61,8 @@ describe Gitlab::LDAP::Access do
...
@@ -51,7 +61,8 @@ describe Gitlab::LDAP::Access do
context
"when auto-created users are not blocked"
do
context
"when auto-created users are not blocked"
do
before
do
before
do
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
(
block_auto_created_users:
false
)
allow_any_instance_of
(
Gitlab
::
LDAP
::
Config
).
to
receive
(
:block_auto_created_users
).
and_return
(
false
)
end
end
it
"should unblock user in GitLab"
do
it
"should unblock user in GitLab"
do
...
@@ -63,8 +74,9 @@ describe Gitlab::LDAP::Access do
...
@@ -63,8 +74,9 @@ describe Gitlab::LDAP::Access do
context
'without ActiveDirectory enabled'
do
context
'without ActiveDirectory enabled'
do
before
do
before
do
Gitlab
::
LDAP
::
Config
.
stub
(
enabled?:
true
)
allow
(
Gitlab
::
LDAP
::
Config
).
to
receive
(
:enabled?
).
and_return
(
true
)
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
(
active_directory:
false
)
allow_any_instance_of
(
Gitlab
::
LDAP
::
Config
).
to
receive
(
:active_directory
).
and_return
(
false
)
end
end
it
{
is_expected
.
to
be_truthy
}
it
{
is_expected
.
to
be_truthy
}
...
...
spec/lib/gitlab/ldap/adapter_spec.rb
View file @
5a9ede47
...
@@ -3,27 +3,32 @@ require 'spec_helper'
...
@@ -3,27 +3,32 @@ require 'spec_helper'
describe
Gitlab
::
LDAP
::
Adapter
do
describe
Gitlab
::
LDAP
::
Adapter
do
let
(
:adapter
)
{
Gitlab
::
LDAP
::
Adapter
.
new
'ldapmain'
}
let
(
:adapter
)
{
Gitlab
::
LDAP
::
Adapter
.
new
'ldapmain'
}
describe
:dn_matches_filter?
do
describe
'#dn_matches_filter?'
do
let
(
:ldap
)
{
double
(
:ldap
)
}
let
(
:ldap
)
{
double
(
:ldap
)
}
subject
{
adapter
.
dn_matches_filter?
(
:dn
,
:filter
)
}
subject
{
adapter
.
dn_matches_filter?
(
:dn
,
:filter
)
}
before
{
a
dapter
.
stub
(
ldap:
ldap
)
}
before
{
a
llow
(
adapter
).
to
receive
(
:ldap
).
and_return
(
ldap
)
}
context
"when the search is successful"
do
context
"when the search is successful"
do
context
"and the result is non-empty"
do
context
"and the result is non-empty"
do
before
{
ldap
.
stub
(
search:
[
:foo
])
}
before
{
allow
(
ldap
).
to
receive
(
:search
).
and_return
(
[
:foo
])
}
it
{
is_expected
.
to
be_truthy
}
it
{
is_expected
.
to
be_truthy
}
end
end
context
"and the result is empty"
do
context
"and the result is empty"
do
before
{
ldap
.
stub
(
search:
[])
}
before
{
allow
(
ldap
).
to
receive
(
:search
).
and_return
(
[])
}
it
{
is_expected
.
to
be_falsey
}
it
{
is_expected
.
to
be_falsey
}
end
end
end
end
context
"when the search encounters an error"
do
context
"when the search encounters an error"
do
before
{
ldap
.
stub
(
search:
nil
,
get_operation_result:
double
(
code:
1
,
message:
'some error'
))
}
before
do
allow
(
ldap
).
to
receive_messages
(
search:
nil
,
get_operation_result:
double
(
code:
1
,
message:
'some error'
)
)
end
it
{
is_expected
.
to
be_falsey
}
it
{
is_expected
.
to
be_falsey
}
end
end
...
...
spec/lib/gitlab/ldap/authentication_spec.rb
View file @
5a9ede47
require
'spec_helper'
require
'spec_helper'
describe
Gitlab
::
LDAP
::
Authentication
do
describe
Gitlab
::
LDAP
::
Authentication
do
let
(
:klass
)
{
Gitlab
::
LDAP
::
Authentication
}
let
(
:user
)
{
create
(
:omniauth_user
,
extern_uid:
dn
)
}
let
(
:user
)
{
create
(
:omniauth_user
,
extern_uid:
dn
)
}
let
(
:dn
)
{
'uid=john,ou=people,dc=example,dc=com'
}
let
(
:dn
)
{
'uid=john,ou=people,dc=example,dc=com'
}
let
(
:login
)
{
'john'
}
let
(
:login
)
{
'john'
}
let
(
:password
)
{
'password'
}
let
(
:password
)
{
'password'
}
describe
:login
do
describe
'login'
do
let
(
:adapter
)
{
double
:adapter
}
before
do
before
do
Gitlab
::
LDAP
::
Config
.
stub
(
enabled?:
true
)
allow
(
Gitlab
::
LDAP
::
Config
).
to
receive
(
:enabled?
).
and_return
(
true
)
end
end
it
"finds the user if authentication is successful"
do
it
"finds the user if authentication is successful"
do
user
expect
(
user
).
not_to
be_nil
# try only to fake the LDAP call
# try only to fake the LDAP call
klass
.
any_instance
.
stub
(
adapter:
double
(
:adapter
,
adapter
=
double
(
'adapter'
,
dn:
dn
).
as_null_object
bind_as:
double
(
:ldap_user
,
dn:
dn
)
allow_any_instance_of
(
described_class
).
))
to
receive
(
:adapter
).
and_return
(
adapter
)
expect
(
klass
.
login
(
login
,
password
)).
to
be_truthy
expect
(
described_class
.
login
(
login
,
password
)).
to
be_truthy
end
end
it
"is false if the user does not exist"
do
it
"is false if the user does not exist"
do
# try only to fake the LDAP call
# try only to fake the LDAP call
klass
.
any_instance
.
stub
(
adapter:
double
(
:adapter
,
adapter
=
double
(
'adapter'
,
dn:
dn
).
as_null_object
bind_as:
double
(
:ldap_user
,
dn:
dn
)
allow_any_instance_of
(
described_class
).
))
to
receive
(
:adapter
).
and_return
(
adapter
)
expect
(
klass
.
login
(
login
,
password
)).
to
be_falsey
expect
(
described_class
.
login
(
login
,
password
)).
to
be_falsey
end
end
it
"is false if authentication fails"
do
it
"is false if authentication fails"
do
user
expect
(
user
).
not_to
be_nil
# try only to fake the LDAP call
# try only to fake the LDAP call
klass
.
any_instance
.
stub
(
adapter:
double
(
:adapter
,
bind_as:
nil
))
adapter
=
double
(
'adapter'
,
bind_as:
nil
).
as_null_object
expect
(
klass
.
login
(
login
,
password
)).
to
be_falsey
allow_any_instance_of
(
described_class
).
to
receive
(
:adapter
).
and_return
(
adapter
)
expect
(
described_class
.
login
(
login
,
password
)).
to
be_falsey
end
end
it
"fails if ldap is disabled"
do
it
"fails if ldap is disabled"
do
Gitlab
::
LDAP
::
Config
.
stub
(
enabled?:
false
)
allow
(
Gitlab
::
LDAP
::
Config
).
to
receive
(
:enabled?
).
and_return
(
false
)
expect
(
k
lass
.
login
(
login
,
password
)).
to
be_falsey
expect
(
described_c
lass
.
login
(
login
,
password
)).
to
be_falsey
end
end
it
"fails if no login is supplied"
do
it
"fails if no login is supplied"
do
expect
(
k
lass
.
login
(
''
,
password
)).
to
be_falsey
expect
(
described_c
lass
.
login
(
''
,
password
)).
to
be_falsey
end
end
it
"fails if no password is supplied"
do
it
"fails if no password is supplied"
do
expect
(
k
lass
.
login
(
login
,
''
)).
to
be_falsey
expect
(
described_c
lass
.
login
(
login
,
''
)).
to
be_falsey
end
end
end
end
end
end
spec/lib/gitlab/ldap/user_spec.rb
View file @
5a9ede47
...
@@ -16,24 +16,24 @@ describe Gitlab::LDAP::User do
...
@@ -16,24 +16,24 @@ describe Gitlab::LDAP::User do
describe
:changed?
do
describe
:changed?
do
it
"marks existing ldap user as changed"
do
it
"marks existing ldap user as changed"
do
existing_user
=
create
(
:omniauth_user
,
extern_uid:
'my-uid'
,
provider:
'ldapmain'
)
create
(
:omniauth_user
,
extern_uid:
'my-uid'
,
provider:
'ldapmain'
)
expect
(
ldap_user
.
changed?
).
to
be_truthy
expect
(
ldap_user
.
changed?
).
to
be_truthy
end
end
it
"marks existing non-ldap user if the email matches as changed"
do
it
"marks existing non-ldap user if the email matches as changed"
do
existing_user
=
create
(
:user
,
email:
'john@example.com'
)
create
(
:user
,
email:
'john@example.com'
)
expect
(
ldap_user
.
changed?
).
to
be_truthy
expect
(
ldap_user
.
changed?
).
to
be_truthy
end
end
it
"dont marks existing ldap user as changed"
do
it
"dont marks existing ldap user as changed"
do
existing_user
=
create
(
:omniauth_user
,
email:
'john@example.com'
,
extern_uid:
'my-uid'
,
provider:
'ldapmain'
)
create
(
:omniauth_user
,
email:
'john@example.com'
,
extern_uid:
'my-uid'
,
provider:
'ldapmain'
)
expect
(
ldap_user
.
changed?
).
to
be_falsey
expect
(
ldap_user
.
changed?
).
to
be_falsey
end
end
end
end
describe
:find_or_create
do
describe
:find_or_create
do
it
"finds the user if already existing"
do
it
"finds the user if already existing"
do
existing_user
=
create
(
:omniauth_user
,
extern_uid:
'my-uid'
,
provider:
'ldapmain'
)
create
(
:omniauth_user
,
extern_uid:
'my-uid'
,
provider:
'ldapmain'
)
expect
{
ldap_user
.
save
}.
to_not
change
{
User
.
count
}
expect
{
ldap_user
.
save
}.
to_not
change
{
User
.
count
}
end
end
...
@@ -52,11 +52,15 @@ describe Gitlab::LDAP::User do
...
@@ -52,11 +52,15 @@ describe Gitlab::LDAP::User do
end
end
end
end
describe
'blocking'
do
describe
'blocking'
do
def
configure_block
(
value
)
allow_any_instance_of
(
Gitlab
::
LDAP
::
Config
).
to
receive
(
:block_auto_created_users
).
and_return
(
value
)
end
context
'signup'
do
context
'signup'
do
context
'dont block on create'
do
context
'dont block on create'
do
before
{
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
block_auto_created_users:
false
}
before
{
configure_block
(
false
)
}
it
do
it
do
ldap_user
.
save
ldap_user
.
save
...
@@ -66,7 +70,7 @@ describe Gitlab::LDAP::User do
...
@@ -66,7 +70,7 @@ describe Gitlab::LDAP::User do
end
end
context
'block on create'
do
context
'block on create'
do
before
{
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
block_auto_created_users:
true
}
before
{
configure_block
(
true
)
}
it
do
it
do
ldap_user
.
save
ldap_user
.
save
...
@@ -83,7 +87,7 @@ describe Gitlab::LDAP::User do
...
@@ -83,7 +87,7 @@ describe Gitlab::LDAP::User do
end
end
context
'dont block on create'
do
context
'dont block on create'
do
before
{
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
block_auto_created_users:
false
}
before
{
configure_block
(
false
)
}
it
do
it
do
ldap_user
.
save
ldap_user
.
save
...
@@ -93,7 +97,7 @@ describe Gitlab::LDAP::User do
...
@@ -93,7 +97,7 @@ describe Gitlab::LDAP::User do
end
end
context
'block on create'
do
context
'block on create'
do
before
{
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
block_auto_created_users:
true
}
before
{
configure_block
(
true
)
}
it
do
it
do
ldap_user
.
save
ldap_user
.
save
...
...
spec/lib/gitlab/upgrader_spec.rb
View file @
5a9ede47
...
@@ -10,14 +10,14 @@ describe Gitlab::Upgrader do
...
@@ -10,14 +10,14 @@ describe Gitlab::Upgrader do
describe
'latest_version?'
do
describe
'latest_version?'
do
it
'should be true if newest version'
do
it
'should be true if newest version'
do
upgrader
.
stub
(
latest_version_raw:
current_version
)
allow
(
upgrader
).
to
receive
(
:latest_version_raw
).
and_return
(
current_version
)
expect
(
upgrader
.
latest_version?
).
to
be_truthy
expect
(
upgrader
.
latest_version?
).
to
be_truthy
end
end
end
end
describe
'latest_version_raw'
do
describe
'latest_version_raw'
do
it
'should be latest version for GitLab 5'
do
it
'should be latest version for GitLab 5'
do
upgrader
.
stub
(
current_version_raw:
"5.3.0"
)
allow
(
upgrader
).
to
receive
(
:current_version_raw
).
and_return
(
"5.3.0"
)
expect
(
upgrader
.
latest_version_raw
).
to
eq
(
"v5.4.2"
)
expect
(
upgrader
.
latest_version_raw
).
to
eq
(
"v5.4.2"
)
end
end
...
...
spec/models/commit_spec.rb
View file @
5a9ede47
...
@@ -77,13 +77,13 @@ eos
...
@@ -77,13 +77,13 @@ eos
let
(
:other_issue
)
{
create
:issue
,
project:
other_project
}
let
(
:other_issue
)
{
create
:issue
,
project:
other_project
}
it
'detects issues that this commit is marked as closing'
do
it
'detects issues that this commit is marked as closing'
do
commit
.
stub
(
safe_message:
"Fixes #
#{
issue
.
iid
}
"
)
allow
(
commit
).
to
receive
(
:safe_message
).
and_return
(
"Fixes #
#{
issue
.
iid
}
"
)
expect
(
commit
.
closes_issues
).
to
eq
([
issue
])
expect
(
commit
.
closes_issues
).
to
eq
([
issue
])
end
end
it
'does not detect issues from other projects'
do
it
'does not detect issues from other projects'
do
ext_ref
=
"
#{
other_project
.
path_with_namespace
}
#
#{
other_issue
.
iid
}
"
ext_ref
=
"
#{
other_project
.
path_with_namespace
}
#
#{
other_issue
.
iid
}
"
commit
.
stub
(
safe_message:
"Fixes
#{
ext_ref
}
"
)
allow
(
commit
).
to
receive
(
:safe_message
).
and_return
(
"Fixes
#{
ext_ref
}
"
)
expect
(
commit
.
closes_issues
).
to
be_empty
expect
(
commit
.
closes_issues
).
to
be_empty
end
end
end
end
...
@@ -93,7 +93,9 @@ eos
...
@@ -93,7 +93,9 @@ eos
let
(
:author
)
{
create
(
:user
,
email:
commit
.
author_email
)
}
let
(
:author
)
{
create
(
:user
,
email:
commit
.
author_email
)
}
let
(
:backref_text
)
{
"commit
#{
subject
.
id
}
"
}
let
(
:backref_text
)
{
"commit
#{
subject
.
id
}
"
}
let
(
:set_mentionable_text
)
{
->
(
txt
){
subject
.
stub
(
safe_message:
txt
)
}
}
let
(
:set_mentionable_text
)
do
->
(
txt
)
{
allow
(
subject
).
to
receive
(
:safe_message
).
and_return
(
txt
)
}
end
# Include the subject in the repository stub.
# Include the subject in the repository stub.
let
(
:extra_commits
)
{
[
subject
]
}
let
(
:extra_commits
)
{
[
subject
]
}
...
...
spec/models/concerns/issuable_spec.rb
View file @
5a9ede47
...
@@ -11,7 +11,10 @@ describe Issue, "Issuable" do
...
@@ -11,7 +11,10 @@ describe Issue, "Issuable" do
end
end
describe
"Validation"
do
describe
"Validation"
do
before
{
subject
.
stub
(
set_iid:
false
)
}
before
do
allow
(
subject
).
to
receive
(
:set_iid
).
and_return
(
false
)
end
it
{
is_expected
.
to
validate_presence_of
(
:project
)
}
it
{
is_expected
.
to
validate_presence_of
(
:project
)
}
it
{
is_expected
.
to
validate_presence_of
(
:iid
)
}
it
{
is_expected
.
to
validate_presence_of
(
:iid
)
}
it
{
is_expected
.
to
validate_presence_of
(
:author
)
}
it
{
is_expected
.
to
validate_presence_of
(
:author
)
}
...
...
spec/models/forked_project_link_spec.rb
View file @
5a9ede47
...
@@ -58,10 +58,10 @@ describe :forked_from_project do
...
@@ -58,10 +58,10 @@ describe :forked_from_project do
end
end
def
fork_project
(
from_project
,
user
)
def
fork_project
(
from_project
,
user
)
context
=
Projects
::
ForkService
.
new
(
from_project
,
user
)
shell
=
double
(
'gitlab_shell'
,
fork_repository:
true
)
shell
=
double
(
"gitlab_shell"
)
shell
.
stub
(
fork_repository:
true
)
service
=
Projects
::
ForkService
.
new
(
from_project
,
user
)
context
.
stub
(
gitlab_shell:
shell
)
allow
(
service
).
to
receive
(
:gitlab_shell
).
and_return
(
shell
)
context
.
execute
end
service
.
execute
end
spec/models/members/group_member_spec.rb
View file @
5a9ede47
...
@@ -24,8 +24,11 @@ describe GroupMember do
...
@@ -24,8 +24,11 @@ describe GroupMember do
describe
"#after_create"
do
describe
"#after_create"
do
it
"should send email to user"
do
it
"should send email to user"
do
membership
=
build
(
:group_member
)
membership
=
build
(
:group_member
)
membership
.
stub
(
notification_service:
double
(
'NotificationService'
).
as_null_object
)
allow
(
membership
).
to
receive
(
:notification_service
).
and_return
(
double
(
'NotificationService'
).
as_null_object
)
expect
(
membership
).
to
receive
(
:notification_service
)
expect
(
membership
).
to
receive
(
:notification_service
)
membership
.
save
membership
.
save
end
end
end
end
...
@@ -33,7 +36,8 @@ describe GroupMember do
...
@@ -33,7 +36,8 @@ describe GroupMember do
describe
"#after_update"
do
describe
"#after_update"
do
before
do
before
do
@group_member
=
create
:group_member
@group_member
=
create
:group_member
@group_member
.
stub
(
notification_service:
double
(
'NotificationService'
).
as_null_object
)
allow
(
@group_member
).
to
receive
(
:notification_service
).
and_return
(
double
(
'NotificationService'
).
as_null_object
)
end
end
it
"should send email to user"
do
it
"should send email to user"
do
...
...
spec/models/merge_request_spec.rb
View file @
5a9ede47
...
@@ -111,17 +111,18 @@ describe MergeRequest do
...
@@ -111,17 +111,18 @@ describe MergeRequest do
let
(
:commit2
)
{
double
(
'commit2'
,
closes_issues:
[
issue1
])
}
let
(
:commit2
)
{
double
(
'commit2'
,
closes_issues:
[
issue1
])
}
before
do
before
do
subject
.
stub
(
commits:
[
commit0
,
commit1
,
commit2
])
allow
(
subject
).
to
receive
(
:commits
).
and_return
(
[
commit0
,
commit1
,
commit2
])
end
end
it
'accesses the set of issues that will be closed on acceptance'
do
it
'accesses the set of issues that will be closed on acceptance'
do
subject
.
project
.
stub
(
default_branch:
subject
.
target_branch
)
allow
(
subject
.
project
).
to
receive
(
:default_branch
).
and_return
(
subject
.
target_branch
)
expect
(
subject
.
closes_issues
).
to
eq
([
issue0
,
issue1
].
sort_by
(
&
:id
))
expect
(
subject
.
closes_issues
).
to
eq
([
issue0
,
issue1
].
sort_by
(
&
:id
))
end
end
it
'only lists issues as to be closed if it targets the default branch'
do
it
'only lists issues as to be closed if it targets the default branch'
do
subject
.
project
.
stub
(
default_branch:
'master'
)
allow
(
subject
.
project
).
to
receive
(
:default_branch
).
and_return
(
'master'
)
subject
.
target_branch
=
'something-else'
subject
.
target_branch
=
'something-else'
expect
(
subject
.
closes_issues
).
to
be_empty
expect
(
subject
.
closes_issues
).
to
be_empty
...
@@ -130,7 +131,8 @@ describe MergeRequest do
...
@@ -130,7 +131,8 @@ describe MergeRequest do
it
'detects issues mentioned in the description'
do
it
'detects issues mentioned in the description'
do
issue2
=
create
(
:issue
,
project:
subject
.
project
)
issue2
=
create
(
:issue
,
project:
subject
.
project
)
subject
.
description
=
"Closes
#{
issue2
.
to_reference
}
"
subject
.
description
=
"Closes
#{
issue2
.
to_reference
}
"
subject
.
project
.
stub
(
default_branch:
subject
.
target_branch
)
allow
(
subject
.
project
).
to
receive
(
:default_branch
).
and_return
(
subject
.
target_branch
)
expect
(
subject
.
closes_issues
).
to
include
(
issue2
)
expect
(
subject
.
closes_issues
).
to
include
(
issue2
)
end
end
...
...
spec/models/milestone_spec.rb
View file @
5a9ede47
...
@@ -21,11 +21,11 @@ describe Milestone do
...
@@ -21,11 +21,11 @@ describe Milestone do
it
{
is_expected
.
to
have_many
(
:issues
)
}
it
{
is_expected
.
to
have_many
(
:issues
)
}
end
end
describe
"Mass assignment"
do
describe
"Validation"
do
before
do
allow
(
subject
).
to
receive
(
:set_iid
).
and_return
(
false
)
end
end
describe
"Validation"
do
before
{
subject
.
stub
(
set_iid:
false
)
}
it
{
is_expected
.
to
validate_presence_of
(
:title
)
}
it
{
is_expected
.
to
validate_presence_of
(
:title
)
}
it
{
is_expected
.
to
validate_presence_of
(
:project
)
}
it
{
is_expected
.
to
validate_presence_of
(
:project
)
}
end
end
...
@@ -66,7 +66,7 @@ describe Milestone do
...
@@ -66,7 +66,7 @@ describe Milestone do
describe
:expired?
do
describe
:expired?
do
context
"expired"
do
context
"expired"
do
before
do
before
do
milestone
.
stub
(
due_date:
Date
.
today
.
prev_year
)
allow
(
milestone
).
to
receive
(
:due_date
).
and_return
(
Date
.
today
.
prev_year
)
end
end
it
{
expect
(
milestone
.
expired?
).
to
be_truthy
}
it
{
expect
(
milestone
.
expired?
).
to
be_truthy
}
...
@@ -74,7 +74,7 @@ describe Milestone do
...
@@ -74,7 +74,7 @@ describe Milestone do
context
"not expired"
do
context
"not expired"
do
before
do
before
do
milestone
.
stub
(
due_date:
Date
.
today
.
next_year
)
allow
(
milestone
).
to
receive
(
:due_date
).
and_return
(
Date
.
today
.
next_year
)
end
end
it
{
expect
(
milestone
.
expired?
).
to
be_falsey
}
it
{
expect
(
milestone
.
expired?
).
to
be_falsey
}
...
@@ -83,7 +83,7 @@ describe Milestone do
...
@@ -83,7 +83,7 @@ describe Milestone do
describe
:percent_complete
do
describe
:percent_complete
do
before
do
before
do
milestone
.
stub
(
allow
(
milestone
).
to
receive_messages
(
closed_items_count:
3
,
closed_items_count:
3
,
total_items_count:
4
total_items_count:
4
)
)
...
...
spec/models/namespace_spec.rb
View file @
5a9ede47
...
@@ -53,7 +53,7 @@ describe Namespace do
...
@@ -53,7 +53,7 @@ describe Namespace do
describe
:move_dir
do
describe
:move_dir
do
before
do
before
do
@namespace
=
create
:namespace
@namespace
=
create
:namespace
@namespace
.
stub
(
path_changed?:
true
)
allow
(
@namespace
).
to
receive
(
:path_changed?
).
and_return
(
true
)
end
end
it
"should raise error when directory exists"
do
it
"should raise error when directory exists"
do
...
@@ -62,8 +62,8 @@ describe Namespace do
...
@@ -62,8 +62,8 @@ describe Namespace do
it
"should move dir if path changed"
do
it
"should move dir if path changed"
do
new_path
=
@namespace
.
path
+
"_new"
new_path
=
@namespace
.
path
+
"_new"
@namespace
.
stub
(
path_was:
@namespace
.
path
)
allow
(
@namespace
).
to
receive
(
:path_was
).
and_return
(
@namespace
.
path
)
@namespace
.
stub
(
path:
new_path
)
allow
(
@namespace
).
to
receive
(
:path
).
and_return
(
new_path
)
expect
(
@namespace
.
move_dir
).
to
be_truthy
expect
(
@namespace
.
move_dir
).
to
be_truthy
end
end
end
end
...
...
spec/models/project_services/asana_service_spec.rb
View file @
5a9ede47
...
@@ -42,7 +42,7 @@ describe AsanaService, models: true do
...
@@ -42,7 +42,7 @@ describe AsanaService, models: true do
before
do
before
do
@asana
=
AsanaService
.
new
@asana
=
AsanaService
.
new
@asana
.
stub
(
allow
(
@asana
).
to
receive_messages
(
project:
project
,
project:
project
,
project_id:
project
.
id
,
project_id:
project
.
id
,
service_hook:
true
,
service_hook:
true
,
...
...
spec/models/project_services/assembla_service_spec.rb
View file @
5a9ede47
...
@@ -32,7 +32,7 @@ describe AssemblaService, models: true do
...
@@ -32,7 +32,7 @@ describe AssemblaService, models: true do
before
do
before
do
@assembla_service
=
AssemblaService
.
new
@assembla_service
=
AssemblaService
.
new
@assembla_service
.
stub
(
allow
(
@assembla_service
).
to
receive_messages
(
project_id:
project
.
id
,
project_id:
project
.
id
,
project:
project
,
project:
project
,
service_hook:
true
,
service_hook:
true
,
...
...
spec/models/project_services/buildkite_service_spec.rb
View file @
5a9ede47
...
@@ -29,12 +29,10 @@ describe BuildkiteService do
...
@@ -29,12 +29,10 @@ describe BuildkiteService do
describe
'commits methods'
do
describe
'commits methods'
do
before
do
before
do
@project
=
Project
.
new
@project
=
Project
.
new
@project
.
stub
(
allow
(
@project
).
to
receive
(
:default_branch
).
and_return
(
'default-brancho'
)
default_branch:
'default-brancho'
)
@service
=
BuildkiteService
.
new
@service
=
BuildkiteService
.
new
@service
.
stub
(
allow
(
@service
).
to
receive_messages
(
project:
@project
,
project:
@project
,
service_hook:
true
,
service_hook:
true
,
project_url:
'https://buildkite.com/account-name/example-project'
,
project_url:
'https://buildkite.com/account-name/example-project'
,
...
...
spec/models/project_services/flowdock_service_spec.rb
View file @
5a9ede47
...
@@ -32,7 +32,7 @@ describe FlowdockService do
...
@@ -32,7 +32,7 @@ describe FlowdockService do
before
do
before
do
@flowdock_service
=
FlowdockService
.
new
@flowdock_service
=
FlowdockService
.
new
@flowdock_service
.
stub
(
allow
(
@flowdock_service
).
to
receive_messages
(
project_id:
project
.
id
,
project_id:
project
.
id
,
project:
project
,
project:
project
,
service_hook:
true
,
service_hook:
true
,
...
...
spec/models/project_services/gemnasium_service_spec.rb
View file @
5a9ede47
...
@@ -32,7 +32,7 @@ describe GemnasiumService do
...
@@ -32,7 +32,7 @@ describe GemnasiumService do
before
do
before
do
@gemnasium_service
=
GemnasiumService
.
new
@gemnasium_service
=
GemnasiumService
.
new
@gemnasium_service
.
stub
(
allow
(
@gemnasium_service
).
to
receive_messages
(
project_id:
project
.
id
,
project_id:
project
.
id
,
project:
project
,
project:
project
,
service_hook:
true
,
service_hook:
true
,
...
...
spec/models/project_services/gitlab_ci_service_spec.rb
View file @
5a9ede47
...
@@ -21,18 +21,15 @@
...
@@ -21,18 +21,15 @@
require
'spec_helper'
require
'spec_helper'
describe
GitlabCiService
do
describe
GitlabCiService
do
describe
"Associations"
do
describe
'associations'
do
it
{
is_expected
.
to
belong_to
:project
}
it
{
is_expected
.
to
belong_to
(
:project
)
}
it
{
is_expected
.
to
have_one
:service_hook
}
it
{
is_expected
.
to
have_one
(
:service_hook
)
}
end
describe
"Mass assignment"
do
end
end
describe
'commits methods'
do
describe
'commits methods'
do
before
do
before
do
@service
=
GitlabCiService
.
new
@service
=
GitlabCiService
.
new
@service
.
stub
(
allow
(
@service
).
to
receive_messages
(
service_hook:
true
,
service_hook:
true
,
project_url:
'http://ci.gitlab.org/projects/2'
,
project_url:
'http://ci.gitlab.org/projects/2'
,
token:
'verySecret'
token:
'verySecret'
...
@@ -56,9 +53,9 @@ describe GitlabCiService do
...
@@ -56,9 +53,9 @@ describe GitlabCiService do
it
"calls ci_yaml_file"
do
it
"calls ci_yaml_file"
do
service_hook
=
double
service_hook
=
double
service_hook
.
should_
receive
(
:execute
)
expect
(
service_hook
).
to
receive
(
:execute
)
@service
.
should_
receive
(
:service_hook
).
and_return
(
service_hook
)
expect
(
@service
).
to
receive
(
:service_hook
).
and_return
(
service_hook
)
@service
.
should_
receive
(
:ci_yaml_file
).
with
(
push_sample_data
[
:checkout_sha
])
expect
(
@service
).
to
receive
(
:ci_yaml_file
).
with
(
push_sample_data
[
:checkout_sha
])
@service
.
execute
(
push_sample_data
)
@service
.
execute
(
push_sample_data
)
end
end
...
@@ -72,7 +69,7 @@ describe GitlabCiService do
...
@@ -72,7 +69,7 @@ describe GitlabCiService do
@user
=
create
(
:user
)
@user
=
create
(
:user
)
@service
=
GitlabCiService
.
new
@service
=
GitlabCiService
.
new
@service
.
stub
(
allow
(
@service
).
to
receive_messages
(
service_hook:
true
,
service_hook:
true
,
project_url:
'http://ci.gitlab.org/projects/2'
,
project_url:
'http://ci.gitlab.org/projects/2'
,
token:
'verySecret'
,
token:
'verySecret'
,
...
...
spec/models/project_services/hipchat_service_spec.rb
View file @
5a9ede47
...
@@ -37,7 +37,7 @@ describe HipchatService do
...
@@ -37,7 +37,7 @@ describe HipchatService do
let
(
:push_sample_data
)
{
Gitlab
::
PushDataBuilder
.
build_sample
(
project
,
user
)
}
let
(
:push_sample_data
)
{
Gitlab
::
PushDataBuilder
.
build_sample
(
project
,
user
)
}
before
(
:each
)
do
before
(
:each
)
do
hipchat
.
stub
(
allow
(
hipchat
).
to
receive_messages
(
project_id:
project
.
id
,
project_id:
project
.
id
,
project:
project
,
project:
project
,
room:
123456
,
room:
123456
,
...
@@ -48,7 +48,7 @@ describe HipchatService do
...
@@ -48,7 +48,7 @@ describe HipchatService do
end
end
it
'should use v1 if version is provided'
do
it
'should use v1 if version is provided'
do
hipchat
.
stub
(
api_version:
'v1'
)
allow
(
hipchat
).
to
receive
(
:api_version
).
and_return
(
'v1'
)
expect
(
HipChat
::
Client
).
to
receive
(
:new
).
expect
(
HipChat
::
Client
).
to
receive
(
:new
).
with
(
token
,
with
(
token
,
api_version:
'v1'
,
api_version:
'v1'
,
...
@@ -59,7 +59,7 @@ describe HipchatService do
...
@@ -59,7 +59,7 @@ describe HipchatService do
end
end
it
'should use v2 as the version when nothing is provided'
do
it
'should use v2 as the version when nothing is provided'
do
hipchat
.
stub
(
api_version:
''
)
allow
(
hipchat
).
to
receive
(
:api_version
).
and_return
(
''
)
expect
(
HipChat
::
Client
).
to
receive
(
:new
).
expect
(
HipChat
::
Client
).
to
receive
(
:new
).
with
(
token
,
with
(
token
,
api_version:
'v2'
,
api_version:
'v2'
,
...
@@ -245,12 +245,12 @@ describe HipchatService do
...
@@ -245,12 +245,12 @@ describe HipchatService do
end
end
it
"should set notfiy to true"
do
it
"should set notfiy to true"
do
hipchat
.
stub
(
notify:
'1'
)
allow
(
hipchat
).
to
receive
(
:notify
).
and_return
(
'1'
)
expect
(
hipchat
.
send
(
:message_options
)).
to
eq
({
notify:
true
,
color:
'yellow'
})
expect
(
hipchat
.
send
(
:message_options
)).
to
eq
({
notify:
true
,
color:
'yellow'
})
end
end
it
"should set the color"
do
it
"should set the color"
do
hipchat
.
stub
(
color:
'red'
)
allow
(
hipchat
).
to
receive
(
:color
).
and_return
(
'red'
)
expect
(
hipchat
.
send
(
:message_options
)).
to
eq
({
notify:
false
,
color:
'red'
})
expect
(
hipchat
.
send
(
:message_options
)).
to
eq
({
notify:
false
,
color:
'red'
})
end
end
end
end
...
...
spec/models/project_services/irker_service_spec.rb
View file @
5a9ede47
...
@@ -24,8 +24,8 @@ require 'json'
...
@@ -24,8 +24,8 @@ require 'json'
describe
IrkerService
do
describe
IrkerService
do
describe
'Associations'
do
describe
'Associations'
do
it
{
should
belong_to
:project
}
it
{
is_expected
.
to
belong_to
:project
}
it
{
should
have_one
:service_hook
}
it
{
is_expected
.
to
have_one
:service_hook
}
end
end
describe
'Validations'
do
describe
'Validations'
do
...
@@ -66,7 +66,7 @@ describe IrkerService do
...
@@ -66,7 +66,7 @@ describe IrkerService do
let
(
:colorize_messages
)
{
'1'
}
let
(
:colorize_messages
)
{
'1'
}
before
do
before
do
irker
.
stub
(
allow
(
irker
).
to
receive_messages
(
active:
true
,
active:
true
,
project:
project
,
project:
project
,
project_id:
project
.
id
,
project_id:
project
.
id
,
...
...
spec/models/project_services/pushover_service_spec.rb
View file @
5a9ede47
...
@@ -52,7 +52,7 @@ describe PushoverService do
...
@@ -52,7 +52,7 @@ describe PushoverService do
let
(
:api_url
)
{
'https://api.pushover.net/1/messages.json'
}
let
(
:api_url
)
{
'https://api.pushover.net/1/messages.json'
}
before
do
before
do
pushover
.
stub
(
allow
(
pushover
).
to
receive_messages
(
project:
project
,
project:
project
,
project_id:
project
.
id
,
project_id:
project
.
id
,
service_hook:
true
,
service_hook:
true
,
...
...
spec/models/project_services/slack_service_spec.rb
View file @
5a9ede47
...
@@ -46,7 +46,7 @@ describe SlackService do
...
@@ -46,7 +46,7 @@ describe SlackService do
let
(
:channel
)
{
'slack_channel'
}
let
(
:channel
)
{
'slack_channel'
}
before
do
before
do
slack
.
stub
(
allow
(
slack
).
to
receive_messages
(
project:
project
,
project:
project
,
project_id:
project
.
id
,
project_id:
project
.
id
,
service_hook:
true
,
service_hook:
true
,
...
@@ -96,7 +96,7 @@ describe SlackService do
...
@@ -96,7 +96,7 @@ describe SlackService do
end
end
it
'should use the username as an option for slack when configured'
do
it
'should use the username as an option for slack when configured'
do
slack
.
stub
(
username:
username
)
allow
(
slack
).
to
receive
(
:username
).
and_return
(
username
)
expect
(
Slack
::
Notifier
).
to
receive
(
:new
).
expect
(
Slack
::
Notifier
).
to
receive
(
:new
).
with
(
webhook_url
,
username:
username
).
with
(
webhook_url
,
username:
username
).
and_return
(
and_return
(
...
@@ -106,7 +106,7 @@ describe SlackService do
...
@@ -106,7 +106,7 @@ describe SlackService do
end
end
it
'should use the channel as an option when it is configured'
do
it
'should use the channel as an option when it is configured'
do
slack
.
stub
(
channel:
channel
)
allow
(
slack
).
to
receive
(
:channel
).
and_return
(
channel
)
expect
(
Slack
::
Notifier
).
to
receive
(
:new
).
expect
(
Slack
::
Notifier
).
to
receive
(
:new
).
with
(
webhook_url
,
channel:
channel
).
with
(
webhook_url
,
channel:
channel
).
and_return
(
and_return
(
...
@@ -130,7 +130,7 @@ describe SlackService do
...
@@ -130,7 +130,7 @@ describe SlackService do
let
(
:webhook_url
)
{
'https://hooks.slack.com/services/SVRWFV0VVAR97N/B02R25XN3/ZBqu7xMupaEEICInN685'
}
let
(
:webhook_url
)
{
'https://hooks.slack.com/services/SVRWFV0VVAR97N/B02R25XN3/ZBqu7xMupaEEICInN685'
}
before
do
before
do
slack
.
stub
(
allow
(
slack
).
to
receive_messages
(
project:
project
,
project:
project
,
project_id:
project
.
id
,
project_id:
project
.
id
,
service_hook:
true
,
service_hook:
true
,
...
...
spec/models/project_spec.rb
View file @
5a9ede47
...
@@ -127,7 +127,7 @@ describe Project do
...
@@ -127,7 +127,7 @@ describe Project do
describe
'last_activity'
do
describe
'last_activity'
do
it
'should alias last_activity to last_event'
do
it
'should alias last_activity to last_event'
do
project
.
stub
(
last_event:
last_event
)
allow
(
project
).
to
receive
(
:last_event
).
and_return
(
last_event
)
expect
(
project
.
last_activity
).
to
eq
(
last_event
)
expect
(
project
.
last_activity
).
to
eq
(
last_event
)
end
end
end
end
...
...
spec/models/service_spec.rb
View file @
5a9ede47
...
@@ -39,9 +39,7 @@ describe Service do
...
@@ -39,9 +39,7 @@ describe Service do
let
(
:project
)
{
create
:project
}
let
(
:project
)
{
create
:project
}
before
do
before
do
@service
.
stub
(
allow
(
@service
).
to
receive
(
:project
).
and_return
(
project
)
project:
project
)
@testable
=
@service
.
can_test?
@testable
=
@service
.
can_test?
end
end
...
@@ -54,9 +52,7 @@ describe Service do
...
@@ -54,9 +52,7 @@ describe Service do
let
(
:project
)
{
create
:project
}
let
(
:project
)
{
create
:project
}
before
do
before
do
@service
.
stub
(
allow
(
@service
).
to
receive
(
:project
).
and_return
(
project
)
project:
project
)
@testable
=
@service
.
can_test?
@testable
=
@service
.
can_test?
end
end
...
...
spec/models/user_spec.rb
View file @
5a9ede47
...
@@ -458,21 +458,25 @@ describe User do
...
@@ -458,21 +458,25 @@ describe User do
it
'is false when LDAP is disabled'
do
it
'is false when LDAP is disabled'
do
# Create a condition which would otherwise cause 'true' to be returned
# Create a condition which would otherwise cause 'true' to be returned
user
.
stub
(
ldap_user?:
true
)
allow
(
user
).
to
receive
(
:ldap_user?
).
and_return
(
true
)
user
.
last_credential_check_at
=
nil
user
.
last_credential_check_at
=
nil
expect
(
user
.
requires_ldap_check?
).
to
be_falsey
expect
(
user
.
requires_ldap_check?
).
to
be_falsey
end
end
context
'when LDAP is enabled'
do
context
'when LDAP is enabled'
do
before
{
Gitlab
.
config
.
ldap
.
stub
(
enabled:
true
)
}
before
do
allow
(
Gitlab
.
config
.
ldap
).
to
receive
(
:enabled
).
and_return
(
true
)
end
it
'is false for non-LDAP users'
do
it
'is false for non-LDAP users'
do
user
.
stub
(
ldap_user?:
false
)
allow
(
user
).
to
receive
(
:ldap_user?
).
and_return
(
false
)
expect
(
user
.
requires_ldap_check?
).
to
be_falsey
expect
(
user
.
requires_ldap_check?
).
to
be_falsey
end
end
context
'and when the user is an LDAP user'
do
context
'and when the user is an LDAP user'
do
before
{
user
.
stub
(
ldap_user?:
true
)
}
before
do
allow
(
user
).
to
receive
(
:ldap_user?
).
and_return
(
true
)
end
it
'is true when the user has never had an LDAP check before'
do
it
'is true when the user has never had an LDAP check before'
do
user
.
last_credential_check_at
=
nil
user
.
last_credential_check_at
=
nil
...
...
spec/requests/api/api_helpers_spec.rb
View file @
5a9ede47
...
@@ -47,7 +47,7 @@ describe API, api: true do
...
@@ -47,7 +47,7 @@ describe API, api: true do
it
"should return nil for a user without access"
do
it
"should return nil for a user without access"
do
env
[
API
::
APIHelpers
::
PRIVATE_TOKEN_HEADER
]
=
user
.
private_token
env
[
API
::
APIHelpers
::
PRIVATE_TOKEN_HEADER
]
=
user
.
private_token
Gitlab
::
UserAccess
.
stub
(
allowed?:
false
)
allow
(
Gitlab
::
UserAccess
).
to
receive
(
:allowed?
).
and_return
(
false
)
expect
(
current_user
).
to
be_nil
expect
(
current_user
).
to
be_nil
end
end
...
...
spec/requests/api/branches_spec.rb
View file @
5a9ede47
...
@@ -141,7 +141,9 @@ describe API::API, api: true do
...
@@ -141,7 +141,9 @@ describe API::API, api: true do
end
end
describe
"DELETE /projects/:id/repository/branches/:branch"
do
describe
"DELETE /projects/:id/repository/branches/:branch"
do
before
{
Repository
.
any_instance
.
stub
(
rm_branch:
true
)
}
before
do
allow_any_instance_of
(
Repository
).
to
receive
(
:rm_branch
).
and_return
(
true
)
end
it
"should remove branch"
do
it
"should remove branch"
do
delete
api
(
"/projects/
#{
project
.
id
}
/repository/branches/
#{
branch_name
}
"
,
user
)
delete
api
(
"/projects/
#{
project
.
id
}
/repository/branches/
#{
branch_name
}
"
,
user
)
...
...
spec/requests/api/files_spec.rb
View file @
5a9ede47
...
@@ -60,9 +60,8 @@ describe API::API, api: true do
...
@@ -60,9 +60,8 @@ describe API::API, api: true do
end
end
it
"should return a 400 if editor fails to create file"
do
it
"should return a 400 if editor fails to create file"
do
Repository
.
any_instance
.
stub
(
allow_any_instance_of
(
Repository
).
to
receive
(
:commit_file
).
commit_file:
false
,
and_return
(
false
)
)
post
api
(
"/projects/
#{
project
.
id
}
/repository/files"
,
user
),
valid_params
post
api
(
"/projects/
#{
project
.
id
}
/repository/files"
,
user
),
valid_params
expect
(
response
.
status
).
to
eq
(
400
)
expect
(
response
.
status
).
to
eq
(
400
)
...
@@ -112,9 +111,7 @@ describe API::API, api: true do
...
@@ -112,9 +111,7 @@ describe API::API, api: true do
end
end
it
"should return a 400 if satellite fails to create file"
do
it
"should return a 400 if satellite fails to create file"
do
Repository
.
any_instance
.
stub
(
allow_any_instance_of
(
Repository
).
to
receive
(
:remove_file
).
and_return
(
false
)
remove_file:
false
,
)
delete
api
(
"/projects/
#{
project
.
id
}
/repository/files"
,
user
),
valid_params
delete
api
(
"/projects/
#{
project
.
id
}
/repository/files"
,
user
),
valid_params
expect
(
response
.
status
).
to
eq
(
400
)
expect
(
response
.
status
).
to
eq
(
400
)
...
...
spec/requests/api/groups_spec.rb
View file @
5a9ede47
...
@@ -167,7 +167,8 @@ describe API::API, api: true do
...
@@ -167,7 +167,8 @@ describe API::API, api: true do
describe
"POST /groups/:id/projects/:project_id"
do
describe
"POST /groups/:id/projects/:project_id"
do
let
(
:project
)
{
create
(
:project
)
}
let
(
:project
)
{
create
(
:project
)
}
before
(
:each
)
do
before
(
:each
)
do
Projects
::
TransferService
.
any_instance
.
stub
(
execute:
true
)
allow_any_instance_of
(
Projects
::
TransferService
).
to
receive
(
:execute
).
and_return
(
true
)
allow
(
Project
).
to
receive
(
:find
).
and_return
(
project
)
allow
(
Project
).
to
receive
(
:find
).
and_return
(
project
)
end
end
...
...
spec/requests/api/merge_requests_spec.rb
View file @
5a9ede47
...
@@ -301,14 +301,20 @@ describe API::API, api: true do
...
@@ -301,14 +301,20 @@ describe API::API, api: true do
describe
"PUT /projects/:id/merge_request/:merge_request_id/merge"
do
describe
"PUT /projects/:id/merge_request/:merge_request_id/merge"
do
it
"should return merge_request in case of success"
do
it
"should return merge_request in case of success"
do
MergeRequest
.
any_instance
.
stub
(
can_be_merged?:
true
,
automerge!:
true
)
allow_any_instance_of
(
MergeRequest
).
to
receive_messages
(
can_be_merged?:
true
,
automerge!:
true
)
put
api
(
"/projects/
#{
project
.
id
}
/merge_request/
#{
merge_request
.
id
}
/merge"
,
user
)
put
api
(
"/projects/
#{
project
.
id
}
/merge_request/
#{
merge_request
.
id
}
/merge"
,
user
)
expect
(
response
.
status
).
to
eq
(
200
)
expect
(
response
.
status
).
to
eq
(
200
)
end
end
it
"should return 405 if branch can't be merged"
do
it
"should return 405 if branch can't be merged"
do
MergeRequest
.
any_instance
.
stub
(
can_be_merged?:
false
)
allow_any_instance_of
(
MergeRequest
).
to
receive
(
:can_be_merged?
).
and_return
(
false
)
put
api
(
"/projects/
#{
project
.
id
}
/merge_request/
#{
merge_request
.
id
}
/merge"
,
user
)
put
api
(
"/projects/
#{
project
.
id
}
/merge_request/
#{
merge_request
.
id
}
/merge"
,
user
)
expect
(
response
.
status
).
to
eq
(
405
)
expect
(
response
.
status
).
to
eq
(
405
)
expect
(
json_response
[
'message'
]).
to
eq
(
'Branch cannot be merged'
)
expect
(
json_response
[
'message'
]).
to
eq
(
'Branch cannot be merged'
)
end
end
...
...
spec/requests/api/projects_spec.rb
View file @
5a9ede47
...
@@ -121,15 +121,13 @@ describe API::API, api: true do
...
@@ -121,15 +121,13 @@ describe API::API, api: true do
get
api
(
'/projects/all'
,
admin
)
get
api
(
'/projects/all'
,
admin
)
expect
(
response
.
status
).
to
eq
(
200
)
expect
(
response
.
status
).
to
eq
(
200
)
expect
(
json_response
).
to
be_an
Array
expect
(
json_response
).
to
be_an
Array
project_name
=
project
.
name
expect
(
json_response
.
detect
{
expect
(
json_response
).
to
satisfy
do
|
response
|
|
project
|
project
[
'name'
]
==
project_name
response
.
one?
do
|
entry
|
}[
'name'
]).
to
eq
(
project_name
)
entry
[
'name'
]
==
project
.
name
&&
entry
[
'owner'
][
'username'
]
==
user
.
username
expect
(
json_response
.
detect
{
end
|
project
|
project
[
'owner'
][
'username'
]
==
user
.
username
end
}[
'owner'
][
'username'
]).
to
eq
(
user
.
username
)
end
end
end
end
end
end
...
@@ -138,9 +136,8 @@ describe API::API, api: true do
...
@@ -138,9 +136,8 @@ describe API::API, api: true do
context
'maximum number of projects reached'
do
context
'maximum number of projects reached'
do
it
'should not create new project and respond with 403'
do
it
'should not create new project and respond with 403'
do
allow_any_instance_of
(
User
).
to
receive
(
:projects_limit_left
).
and_return
(
0
)
allow_any_instance_of
(
User
).
to
receive
(
:projects_limit_left
).
and_return
(
0
)
expect
{
expect
{
post
api
(
'/projects'
,
user2
),
name:
'foo'
}.
post
api
(
'/projects'
,
user2
),
name:
'foo'
to
change
{
Project
.
count
}.
by
(
0
)
}.
to
change
{
Project
.
count
}.
by
(
0
)
expect
(
response
.
status
).
to
eq
(
403
)
expect
(
response
.
status
).
to
eq
(
403
)
end
end
end
end
...
...
spec/services/git_push_service_spec.rb
View file @
5a9ede47
...
@@ -124,7 +124,8 @@ describe GitPushService do
...
@@ -124,7 +124,8 @@ describe GitPushService do
end
end
it
"when pushing a branch for the first time with default branch protection disabled"
do
it
"when pushing a branch for the first time with default branch protection disabled"
do
ApplicationSetting
.
any_instance
.
stub
(
default_branch_protection:
0
)
allow_any_instance_of
(
ApplicationSetting
).
to
receive
(
:default_branch_protection
).
and_return
(
0
)
expect
(
project
).
to
receive
(
:execute_hooks
)
expect
(
project
).
to
receive
(
:execute_hooks
)
expect
(
project
.
default_branch
).
to
eq
(
"master"
)
expect
(
project
.
default_branch
).
to
eq
(
"master"
)
...
@@ -133,7 +134,8 @@ describe GitPushService do
...
@@ -133,7 +134,8 @@ describe GitPushService do
end
end
it
"when pushing a branch for the first time with default branch protection set to 'developers can push'"
do
it
"when pushing a branch for the first time with default branch protection set to 'developers can push'"
do
ApplicationSetting
.
any_instance
.
stub
(
default_branch_protection:
1
)
allow_any_instance_of
(
ApplicationSetting
).
to
receive
(
:default_branch_protection
).
and_return
(
1
)
expect
(
project
).
to
receive
(
:execute_hooks
)
expect
(
project
).
to
receive
(
:execute_hooks
)
expect
(
project
.
default_branch
).
to
eq
(
"master"
)
expect
(
project
.
default_branch
).
to
eq
(
"master"
)
...
@@ -154,13 +156,13 @@ describe GitPushService do
...
@@ -154,13 +156,13 @@ describe GitPushService do
let
(
:commit
)
{
project
.
commit
}
let
(
:commit
)
{
project
.
commit
}
before
do
before
do
commit
.
stub
({
allow
(
commit
).
to
receive_messages
(
safe_message:
"this commit
\n
mentions #
#{
issue
.
id
}
"
,
safe_message:
"this commit
\n
mentions #
#{
issue
.
id
}
"
,
references:
[
issue
],
references:
[
issue
],
author_name:
commit_author
.
name
,
author_name:
commit_author
.
name
,
author_email:
commit_author
.
email
author_email:
commit_author
.
email
}
)
)
project
.
repository
.
stub
(
commits_between:
[
commit
])
allow
(
project
.
repository
).
to
receive
(
:commits_between
).
and_return
(
[
commit
])
end
end
it
"creates a note if a pushed commit mentions an issue"
do
it
"creates a note if a pushed commit mentions an issue"
do
...
@@ -178,7 +180,10 @@ describe GitPushService do
...
@@ -178,7 +180,10 @@ describe GitPushService do
end
end
it
"defaults to the pushing user if the commit's author is not known"
do
it
"defaults to the pushing user if the commit's author is not known"
do
commit
.
stub
(
author_name:
'unknown name'
,
author_email:
'unknown@email.com'
)
allow
(
commit
).
to
receive_messages
(
author_name:
'unknown name'
,
author_email:
'unknown@email.com'
)
expect
(
Note
).
to
receive
(
:create_cross_reference_note
).
with
(
issue
,
commit
,
user
)
expect
(
Note
).
to
receive
(
:create_cross_reference_note
).
with
(
issue
,
commit
,
user
)
service
.
execute
(
project
,
user
,
@oldrev
,
@newrev
,
@ref
)
service
.
execute
(
project
,
user
,
@oldrev
,
@newrev
,
@ref
)
...
@@ -201,14 +206,15 @@ describe GitPushService do
...
@@ -201,14 +206,15 @@ describe GitPushService do
let
(
:closing_commit
)
{
project
.
commit
}
let
(
:closing_commit
)
{
project
.
commit
}
before
do
before
do
closing_commit
.
stub
({
allow
(
closing_commit
).
to
receive_messages
(
issue_closing_regex:
/^([Cc]loses|[Ff]ixes) #\d+/
,
issue_closing_regex:
/^([Cc]loses|[Ff]ixes) #\d+/
,
safe_message:
"this is some work.
\n\n
closes #
#{
issue
.
iid
}
"
,
safe_message:
"this is some work.
\n\n
closes #
#{
issue
.
iid
}
"
,
author_name:
commit_author
.
name
,
author_name:
commit_author
.
name
,
author_email:
commit_author
.
email
author_email:
commit_author
.
email
}
)
)
project
.
repository
.
stub
(
commits_between:
[
closing_commit
])
allow
(
project
.
repository
).
to
receive
(
:commits_between
).
and_return
([
closing_commit
])
end
end
it
"closes issues with commit messages"
do
it
"closes issues with commit messages"
do
...
@@ -224,7 +230,7 @@ describe GitPushService do
...
@@ -224,7 +230,7 @@ describe GitPushService do
end
end
it
"doesn't close issues when pushed to non-default branches"
do
it
"doesn't close issues when pushed to non-default branches"
do
project
.
stub
(
default_branch:
'durf'
)
allow
(
project
).
to
receive
(
:default_branch
).
and_return
(
'durf'
)
# The push still shouldn't create cross-reference notes.
# The push still shouldn't create cross-reference notes.
expect
{
expect
{
...
...
spec/support/test_env.rb
View file @
5a9ede47
...
@@ -41,11 +41,13 @@ module TestEnv
...
@@ -41,11 +41,13 @@ module TestEnv
end
end
def
disable_mailer
def
disable_mailer
NotificationService
.
any_instance
.
stub
(
mailer:
double
.
as_null_object
)
allow_any_instance_of
(
NotificationService
).
to
receive
(
:mailer
).
and_return
(
double
.
as_null_object
)
end
end
def
enable_mailer
def
enable_mailer
allow_any_instance_of
(
NotificationService
).
to
receive
(
:mailer
).
and_call_original
allow_any_instance_of
(
NotificationService
).
to
receive
(
:mailer
).
and_call_original
end
end
# Clean /tmp/tests
# Clean /tmp/tests
...
...
spec/tasks/gitlab/backup_rake_spec.rb
View file @
5a9ede47
...
@@ -23,30 +23,33 @@ describe 'gitlab:app namespace rake task' do
...
@@ -23,30 +23,33 @@ describe 'gitlab:app namespace rake task' do
context
'gitlab version'
do
context
'gitlab version'
do
before
do
before
do
Dir
.
stub
glob:
[]
allow
(
Dir
).
to
receive
(
:glob
).
and_return
([])
allow
(
Dir
).
to
receive
:chdir
allow
(
Dir
).
to
receive
(
:chdir
)
File
.
stub
exists?:
true
allow
(
File
).
to
receive
(
:exists?
).
and_return
(
true
)
Kernel
.
stub
system:
true
allow
(
Kernel
).
to
receive
(
:system
).
and_return
(
true
)
FileUtils
.
stub
cp_r:
true
allow
(
FileUtils
).
to
receive
(
:cp_r
).
and_return
(
true
)
FileUtils
.
stub
mv:
true
allow
(
FileUtils
).
to
receive
(
:mv
).
and_return
(
true
)
Rake
::
Task
[
"gitlab:shell:setup"
].
stub
invoke:
true
allow
(
Rake
::
Task
[
"gitlab:shell:setup"
]).
to
receive
(
:invoke
).
and_return
(
true
)
end
end
let
(
:gitlab_version
)
{
Gitlab
::
VERSION
}
let
(
:gitlab_version
)
{
Gitlab
::
VERSION
}
it
'should fail on mismatch'
do
it
'should fail on mismatch'
do
YAML
.
stub
load_file:
{
gitlab_version:
"not
#{
gitlab_version
}
"
}
allow
(
YAML
).
to
receive
(
:load_file
).
expect
{
run_rake_task
(
'gitlab:backup:restore'
)
}.
to
(
and_return
({
gitlab_version:
"not
#{
gitlab_version
}
"
})
raise_error
SystemExit
)
expect
{
run_rake_task
(
'gitlab:backup:restore'
)
}.
to
raise_error
(
SystemExit
)
end
end
it
'should invoke restoration on mach'
do
it
'should invoke restoration on mach'
do
YAML
.
stub
load_file:
{
gitlab_version:
gitlab_version
}
allow
(
YAML
).
to
receive
(
:load_file
).
expect
(
Rake
::
Task
[
"gitlab:backup:db:restore"
]).
to
receive
:invoke
and_return
({
gitlab_version:
gitlab_version
})
expect
(
Rake
::
Task
[
"gitlab:backup:repo:restore"
]).
to
receive
:invoke
expect
(
Rake
::
Task
[
"gitlab:backup:db:restore"
]).
to
receive
(
:invoke
)
expect
(
Rake
::
Task
[
"gitlab:shell:setup"
]).
to
receive
:invoke
expect
(
Rake
::
Task
[
"gitlab:backup:repo:restore"
]).
to
receive
(
:invoke
)
expect
{
run_rake_task
(
'gitlab:backup:restore'
)
}.
to_not
raise_error
expect
(
Rake
::
Task
[
"gitlab:shell:setup"
]).
to
receive
(
:invoke
)
expect
{
run_rake_task
(
'gitlab:backup:restore'
)
}.
not_to
raise_error
end
end
end
end
...
@@ -140,7 +143,8 @@ describe 'gitlab:app namespace rake task' do
...
@@ -140,7 +143,8 @@ describe 'gitlab:app namespace rake task' do
end
end
it
'does not invoke repositories restore'
do
it
'does not invoke repositories restore'
do
Rake
::
Task
[
"gitlab:shell:setup"
].
stub
invoke:
true
allow
(
Rake
::
Task
[
"gitlab:shell:setup"
]).
to
receive
(
:invoke
).
and_return
(
true
)
allow
(
$stdout
).
to
receive
:write
allow
(
$stdout
).
to
receive
:write
expect
(
Rake
::
Task
[
"gitlab:backup:db:restore"
]).
to
receive
:invoke
expect
(
Rake
::
Task
[
"gitlab:backup:db:restore"
]).
to
receive
:invoke
...
...
spec/workers/post_receive_spec.rb
View file @
5a9ede47
...
@@ -30,7 +30,7 @@ describe PostReceive do
...
@@ -30,7 +30,7 @@ describe PostReceive do
end
end
it
"asks the project to trigger all hooks"
do
it
"asks the project to trigger all hooks"
do
Project
.
stub
(
find_with_namespace:
project
)
allow
(
Project
).
to
receive
(
:find_with_namespace
).
and_return
(
project
)
expect
(
project
).
to
receive
(
:execute_hooks
).
twice
expect
(
project
).
to
receive
(
:execute_hooks
).
twice
expect
(
project
).
to
receive
(
:execute_services
).
twice
expect
(
project
).
to
receive
(
:execute_services
).
twice
expect
(
project
).
to
receive
(
:update_merge_requests
)
expect
(
project
).
to
receive
(
:update_merge_requests
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment