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
1
Merge Requests
1
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
nexedi
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
Hide 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
def
broadcast_styling
(
broadcast_message
)
if
(
broadcast_message
.
color
||
broadcast_message
.
font
)
"background-color:
#{
broadcast_message
.
color
}
;color:
#{
broadcast_message
.
font
}
"
else
""
styling
=
''
if
broadcast_message
.
color
.
present?
styling
<<
"background-color:
#{
broadcast_message
.
color
}
"
styling
<<
'; '
if
broadcast_message
.
font
.
present?
end
if
broadcast_message
.
font
.
present?
styling
<<
"color:
#{
broadcast_message
.
font
}
"
end
styling
end
end
app/helpers/icons_helper.rb
View file @
5a9ede47
module
IconsHelper
include
FontAwesome
::
Rails
::
IconHelper
# Creates an icon tag given icon name(s) and possible icon modifiers.
#
# Right now this method simply delegates directly to `fa_icon` from the
...
...
app/helpers/notifications_helper.rb
View file @
5a9ede47
module
NotificationsHelper
include
IconsHelper
def
notification_icon
(
notification
)
if
notification
.
disabled?
icon
(
'volume-off'
,
class:
'ns-mute'
)
...
...
spec/controllers/autocomplete_controller_spec.rb
View file @
5a9ede47
...
...
@@ -16,7 +16,7 @@ describe AutocompleteController do
let
(
:body
)
{
JSON
.
parse
(
response
.
body
)
}
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
}
end
...
...
@@ -33,7 +33,7 @@ describe AutocompleteController do
let
(
:body
)
{
JSON
.
parse
(
response
.
body
)
}
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
}
end
...
...
@@ -46,6 +46,6 @@ describe AutocompleteController do
let
(
:body
)
{
JSON
.
parse
(
response
.
body
)
}
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
spec/features/gitlab_flavored_markdown_spec.rb
View file @
5a9ede47
...
...
@@ -11,7 +11,8 @@ describe "GitLab Flavored Markdown", feature: true do
end
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
let
(
:commit
)
{
project
.
commit
}
...
...
spec/features/profile_spec.rb
View file @
5a9ede47
...
...
@@ -9,7 +9,8 @@ describe 'Profile account page', feature: true do
describe
'when signup is enabled'
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
end
...
...
@@ -23,7 +24,8 @@ describe 'Profile account page', feature: true do
describe
'when signup is disabled'
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
end
...
...
spec/helpers/application_helper_spec.rb
View file @
5a9ede47
...
...
@@ -76,8 +76,8 @@ describe ApplicationHelper do
end
it
'should return an url for the avatar with relative url'
do
Gitlab
.
config
.
gitlab
.
stub
(
relative_url_root:
'/gitlab'
)
Gitlab
.
config
.
gitlab
.
stub
(
url:
Settings
.
send
(
:build_gitlab_url
))
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:relative_url_root
).
and_return
(
'/gitlab'
)
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:url
).
and_return
(
Settings
.
send
(
:build_gitlab_url
))
user
=
create
(
:user
)
user
.
avatar
=
File
.
open
(
avatar_file_path
)
...
...
@@ -97,7 +97,7 @@ describe ApplicationHelper do
let
(
:user_email
)
{
'user@email.com'
}
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'
)
end
...
...
@@ -106,13 +106,13 @@ describe ApplicationHelper do
end
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'
expect
(
gravatar_icon
(
user_email
)).
to
match
(
url
)
end
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'
)
end
...
...
spec/helpers/broadcast_messages_helper_spec.rb
View file @
5a9ede47
...
...
@@ -2,20 +2,20 @@ require 'spec_helper'
describe
BroadcastMessagesHelper
do
describe
'broadcast_styling'
do
let
(
:broadcast_message
)
{
double
(
color:
""
,
font:
""
)
}
let
(
:broadcast_message
)
{
double
(
color:
''
,
font:
''
)
}
context
"default style"
do
it
"should have no style"
do
expect
(
broadcast_styling
(
broadcast_message
)).
to
match
(
''
)
expect
(
broadcast_styling
(
broadcast_message
)).
to
eq
''
end
end
context
"customi
ez
d style"
do
before
{
broadcast_message
.
stub
(
color:
"#f2dede"
,
font:
"#b94a48"
)
}
context
"customi
ze
d style"
do
let
(
:broadcast_message
)
{
double
(
color:
"#f2dede"
,
font:
'#b94a48'
)
}
it
"should have a customized style"
do
expect
(
broadcast_styling
(
broadcast_message
)).
to
match
(
'background-color:
#f2dede;color:
#b94a48'
)
to
match
(
'background-color:
#f2dede; color:
#b94a48'
)
end
end
end
...
...
spec/helpers/diff_helper_spec.rb
View file @
5a9ede47
...
...
@@ -48,19 +48,19 @@ describe DiffHelper do
end
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
)
end
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
}
}
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
)
end
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
}
}
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
)
end
...
...
spec/helpers/notifications_helper_spec.rb
View file @
5a9ede47
require
'spec_helper'
describe
NotificationsHelper
do
include
FontAwesome
::
Rails
::
IconHelper
include
IconsHelper
describe
'notification_icon'
do
let
(
:notification
)
{
double
(
disabled?:
false
,
participating?:
false
,
watch?:
false
)
}
context
"disabled notification"
do
before
{
notification
.
stub
(
disabled?:
true
)
}
before
{
allow
(
notification
).
to
receive
(
:disabled?
).
and_return
(
true
)
}
it
"has a red icon"
do
expect
(
notification_icon
(
notification
)).
to
match
(
'class="fa fa-volume-off ns-mute"'
)
...
...
@@ -16,7 +13,7 @@ describe NotificationsHelper do
end
context
"participating notification"
do
before
{
notification
.
stub
(
participating?:
true
)
}
before
{
allow
(
notification
).
to
receive
(
:participating?
).
and_return
(
true
)
}
it
"has a blue icon"
do
expect
(
notification_icon
(
notification
)).
to
match
(
'class="fa fa-volume-down ns-part"'
)
...
...
@@ -24,7 +21,7 @@ describe NotificationsHelper do
end
context
"watched notification"
do
before
{
notification
.
stub
(
watch?:
true
)
}
before
{
allow
(
notification
).
to
receive
(
:watch?
).
and_return
(
true
)
}
it
"has a green icon"
do
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
context
'submodule on self'
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
it
'should detect ssh on standard port'
do
Gitlab
.
config
.
gitlab_shell
.
stub
(
ssh_port:
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_port
).
and_return
(
22
)
# set this just to be sure
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
(
''
))
expect
(
submodule_links
(
submodule_item
)).
to
eq
([
namespace_project_path
(
'gitlab-org'
,
'gitlab-ce'
),
namespace_project_tree_path
(
'gitlab-org'
,
'gitlab-ce'
,
'hash'
)
])
end
it
'should detect ssh on non-standard port'
do
Gitlab
.
config
.
gitlab_shell
.
stub
(
ssh_port:
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_port
).
and_return
(
2222
)
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
(
''
))
expect
(
submodule_links
(
submodule_item
)).
to
eq
([
namespace_project_path
(
'gitlab-org'
,
'gitlab-ce'
),
namespace_project_tree_path
(
'gitlab-org'
,
'gitlab-ce'
,
'hash'
)
])
end
it
'should detect http on standard port'
do
Gitlab
.
config
.
gitlab
.
stub
(
port:
80
)
Gitlab
.
config
.
gitlab
.
stub
(
url:
Settings
.
send
(
:build_gitlab_url
))
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:port
).
and_return
(
80
)
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
(
''
))
expect
(
submodule_links
(
submodule_item
)).
to
eq
([
namespace_project_path
(
'gitlab-org'
,
'gitlab-ce'
),
namespace_project_tree_path
(
'gitlab-org'
,
'gitlab-ce'
,
'hash'
)
])
end
it
'should detect http on non-standard port'
do
Gitlab
.
config
.
gitlab
.
stub
(
port:
3000
)
Gitlab
.
config
.
gitlab
.
stub
(
url:
Settings
.
send
(
:build_gitlab_url
))
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:port
).
and_return
(
3000
)
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
(
''
))
expect
(
submodule_links
(
submodule_item
)).
to
eq
([
namespace_project_path
(
'gitlab-org'
,
'gitlab-ce'
),
namespace_project_tree_path
(
'gitlab-org'
,
'gitlab-ce'
,
'hash'
)
])
end
it
'should work with relative_url_root'
do
Gitlab
.
config
.
gitlab
.
stub
(
port:
80
)
# set this just to be sure
Gitlab
.
config
.
gitlab
.
stub
(
relative_url_root:
'/gitlab/root'
)
Gitlab
.
config
.
gitlab
.
stub
(
url:
Settings
.
send
(
:build_gitlab_url
))
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:port
).
and_return
(
80
)
# set this just to be sure
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:relative_url_root
).
and_return
(
'/gitlab/root'
)
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
(
''
))
expect
(
submodule_links
(
submodule_item
)).
to
eq
([
namespace_project_path
(
'gitlab-org'
,
'gitlab-ce'
),
namespace_project_tree_path
(
'gitlab-org'
,
'gitlab-ce'
,
'hash'
)
])
end
...
...
@@ -156,6 +156,6 @@ describe SubmoduleHelper do
end
def
stub_url
(
url
)
repo
.
stub
(
submodule_url_for:
url
)
allow
(
repo
).
to
receive
(
:submodule_url_for
).
and_return
(
url
)
end
end
spec/lib/extracts_path_spec.rb
View file @
5a9ede47
...
...
@@ -9,8 +9,11 @@ describe ExtractsPath do
before
do
@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
describe
'#assign_ref'
do
...
...
spec/lib/gitlab/auth_spec.rb
View file @
5a9ede47
...
...
@@ -36,7 +36,9 @@ describe Gitlab::Auth do
end
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
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
let
(
:gitlab_shell
)
{
Gitlab
::
Shell
.
new
}
before
do
Project
.
stub
(
find:
project
)
allow
(
Project
).
to
receive
(
:find
).
and_return
(
project
)
end
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
subject
{
access
.
allowed?
}
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
}
end
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
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
}
...
...
@@ -30,8 +38,9 @@ describe Gitlab::LDAP::Access do
context
'and has no disabled flag in active diretory'
do
before
do
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
it
{
is_expected
.
to
be_truthy
}
...
...
@@ -39,7 +48,8 @@ describe Gitlab::LDAP::Access do
context
'when auto-created users are blocked'
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
it
"does not unblock user in GitLab"
do
...
...
@@ -51,7 +61,8 @@ describe Gitlab::LDAP::Access do
context
"when auto-created users are not blocked"
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
it
"should unblock user in GitLab"
do
...
...
@@ -63,8 +74,9 @@ describe Gitlab::LDAP::Access do
context
'without ActiveDirectory enabled'
do
before
do
Gitlab
::
LDAP
::
Config
.
stub
(
enabled?:
true
)
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
(
active_directory:
false
)
allow
(
Gitlab
::
LDAP
::
Config
).
to
receive
(
:enabled?
).
and_return
(
true
)
allow_any_instance_of
(
Gitlab
::
LDAP
::
Config
).
to
receive
(
:active_directory
).
and_return
(
false
)
end
it
{
is_expected
.
to
be_truthy
}
...
...
spec/lib/gitlab/ldap/adapter_spec.rb
View file @
5a9ede47
...
...
@@ -3,27 +3,32 @@ require 'spec_helper'
describe
Gitlab
::
LDAP
::
Adapter
do
let
(
:adapter
)
{
Gitlab
::
LDAP
::
Adapter
.
new
'ldapmain'
}
describe
:dn_matches_filter?
do
describe
'#dn_matches_filter?'
do
let
(
:ldap
)
{
double
(
:ldap
)
}
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
"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
}
end
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
}
end
end
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
}
end
...
...
spec/lib/gitlab/ldap/authentication_spec.rb
View file @
5a9ede47
require
'spec_helper'
describe
Gitlab
::
LDAP
::
Authentication
do
let
(
:klass
)
{
Gitlab
::
LDAP
::
Authentication
}
let
(
:user
)
{
create
(
:omniauth_user
,
extern_uid:
dn
)
}
let
(
:dn
)
{
'uid=john,ou=people,dc=example,dc=com'
}
let
(
:login
)
{
'john'
}
let
(
:user
)
{
create
(
:omniauth_user
,
extern_uid:
dn
)
}
let
(
:dn
)
{
'uid=john,ou=people,dc=example,dc=com'
}
let
(
:login
)
{
'john'
}
let
(
:password
)
{
'password'
}
describe
:login
do
let
(
:adapter
)
{
double
:adapter
}
describe
'login'
do
before
do
Gitlab
::
LDAP
::
Config
.
stub
(
enabled?:
true
)
allow
(
Gitlab
::
LDAP
::
Config
).
to
receive
(
:enabled?
).
and_return
(
true
)
end
it
"finds the user if authentication is successful"
do
user
expect
(
user
).
not_to
be_nil
# try only to fake the LDAP call
klass
.
any_instance
.
stub
(
adapter:
double
(
:adapter
,
bind_as:
double
(
:ldap_user
,
dn:
dn
)
))
expect
(
klass
.
login
(
login
,
password
)).
to
be_truthy
adapter
=
double
(
'adapter'
,
dn:
dn
).
as_null_object
allow_any_instance_of
(
described_class
).
to
receive
(
:adapter
).
and_return
(
adapter
)
expect
(
described_class
.
login
(
login
,
password
)).
to
be_truthy
end
it
"is false if the user does not exist"
do
# try only to fake the LDAP call
klass
.
any_instance
.
stub
(
adapter:
double
(
:adapter
,
bind_as:
double
(
:ldap_user
,
dn:
dn
)
))
expect
(
klass
.
login
(
login
,
password
)).
to
be_falsey
adapter
=
double
(
'adapter'
,
dn:
dn
).
as_null_object
allow_any_instance_of
(
described_class
).
to
receive
(
:adapter
).
and_return
(
adapter
)
expect
(
described_class
.
login
(
login
,
password
)).
to
be_falsey
end
it
"is false if authentication fails"
do
user
expect
(
user
).
not_to
be_nil
# try only to fake the LDAP call
klass
.
any_instance
.
stub
(
adapter:
double
(
:adapter
,
bind_as:
nil
))
expect
(
klass
.
login
(
login
,
password
)).
to
be_falsey
adapter
=
double
(
'adapter'
,
bind_as:
nil
).
as_null_object
allow_any_instance_of
(
described_class
).
to
receive
(
:adapter
).
and_return
(
adapter
)
expect
(
described_class
.
login
(
login
,
password
)).
to
be_falsey
end
it
"fails if ldap is disabled"
do
Gitlab
::
LDAP
::
Config
.
stub
(
enabled?:
false
)
expect
(
k
lass
.
login
(
login
,
password
)).
to
be_falsey
allow
(
Gitlab
::
LDAP
::
Config
).
to
receive
(
:enabled?
).
and_return
(
false
)
expect
(
described_c
lass
.
login
(
login
,
password
)).
to
be_falsey
end
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
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
\ No newline at end of file
end
spec/lib/gitlab/ldap/user_spec.rb
View file @
5a9ede47
...
...
@@ -16,24 +16,24 @@ describe Gitlab::LDAP::User do
describe
: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
end
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
end
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
end
end
describe
:find_or_create
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
}
end
...
...
@@ -52,11 +52,15 @@ describe Gitlab::LDAP::User do
end
end
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
'dont block on create'
do
before
{
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
block_auto_created_users:
false
}
before
{
configure_block
(
false
)
}
it
do
ldap_user
.
save
...
...
@@ -66,7 +70,7 @@ describe Gitlab::LDAP::User do
end
context
'block on create'
do
before
{
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
block_auto_created_users:
true
}
before
{
configure_block
(
true
)
}
it
do
ldap_user
.
save
...
...
@@ -83,7 +87,7 @@ describe Gitlab::LDAP::User do
end
context
'dont block on create'
do
before
{
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
block_auto_created_users:
false
}
before
{
configure_block
(
false
)
}
it
do
ldap_user
.
save
...
...
@@ -93,7 +97,7 @@ describe Gitlab::LDAP::User do
end
context
'block on create'
do
before
{
Gitlab
::
LDAP
::
Config
.
any_instance
.
stub
block_auto_created_users:
true
}
before
{
configure_block
(
true
)
}
it
do
ldap_user
.
save
...
...
spec/lib/gitlab/upgrader_spec.rb
View file @
5a9ede47
...
...
@@ -10,14 +10,14 @@ describe Gitlab::Upgrader do
describe
'latest_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
end
end
describe
'latest_version_raw'
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"
)
end
...
...
spec/models/commit_spec.rb
View file @
5a9ede47
...
...
@@ -77,13 +77,13 @@ eos
let
(
:other_issue
)
{
create
:issue
,
project:
other_project
}
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
])
end
it
'does not detect issues from other projects'
do
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
end
end
...
...
@@ -93,7 +93,9 @@ eos
let
(
:author
)
{
create
(
:user
,
email:
commit
.
author_email
)
}
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.
let
(
:extra_commits
)
{
[
subject
]
}
...
...
spec/models/concerns/issuable_spec.rb
View file @
5a9ede47
...
...
@@ -11,7 +11,10 @@ describe Issue, "Issuable" do
end
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
(
:iid
)
}
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
end
def
fork_project
(
from_project
,
user
)
context
=
Projects
::
ForkService
.
new
(
from_project
,
user
)
shell
=
double
(
"gitlab_shell"
)
shell
.
stub
(
fork_repository:
true
)
context
.
stub
(
gitlab_shell:
shell
)
context
.
execute
end
shell
=
double
(
'gitlab_shell'
,
fork_repository:
true
)
service
=
Projects
::
ForkService
.
new
(
from_project
,
user
)
allow
(
service
).
to
receive
(
:gitlab_shell
).
and_return
(
shell
)
service
.
execute
end
spec/models/members/group_member_spec.rb
View file @
5a9ede47
...
...
@@ -24,8 +24,11 @@ describe GroupMember do
describe
"#after_create"
do
it
"should send email to user"
do
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
)
membership
.
save
end
end
...
...
@@ -33,7 +36,8 @@ describe GroupMember do
describe
"#after_update"
do
before
do
@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
it
"should send email to user"
do
...
...
spec/models/merge_request_spec.rb
View file @
5a9ede47
...
...
@@ -111,17 +111,18 @@ describe MergeRequest do
let
(
:commit2
)
{
double
(
'commit2'
,
closes_issues:
[
issue1
])
}
before
do
subject
.
stub
(
commits:
[
commit0
,
commit1
,
commit2
])
allow
(
subject
).
to
receive
(
:commits
).
and_return
(
[
commit0
,
commit1
,
commit2
])
end
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
))
end
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'
expect
(
subject
.
closes_issues
).
to
be_empty
...
...
@@ -130,7 +131,8 @@ describe MergeRequest do
it
'detects issues mentioned in the description'
do
issue2
=
create
(
:issue
,
project:
subject
.
project
)
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
)
end
...
...
spec/models/milestone_spec.rb
View file @
5a9ede47
...
...
@@ -21,11 +21,11 @@ describe Milestone do
it
{
is_expected
.
to
have_many
(
:issues
)
}
end
describe
"Mass assignment"
do
end
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
(
:title
)
}
it
{
is_expected
.
to
validate_presence_of
(
:project
)
}
end
...
...
@@ -66,7 +66,7 @@ describe Milestone do
describe
:expired?
do
context
"expired"
do
before
do
milestone
.
stub
(
due_date:
Date
.
today
.
prev_year
)
allow
(
milestone
).
to
receive
(
:due_date
).
and_return
(
Date
.
today
.
prev_year
)
end
it
{
expect
(
milestone
.
expired?
).
to
be_truthy
}
...
...
@@ -74,7 +74,7 @@ describe Milestone do
context
"not expired"
do
before
do
milestone
.
stub
(
due_date:
Date
.
today
.
next_year
)
allow
(
milestone
).
to
receive
(
:due_date
).
and_return
(
Date
.
today
.
next_year
)
end
it
{
expect
(
milestone
.
expired?
).
to
be_falsey
}
...
...
@@ -83,7 +83,7 @@ describe Milestone do
describe
:percent_complete
do
before
do
milestone
.
stub
(
allow
(
milestone
).
to
receive_messages
(
closed_items_count:
3
,
total_items_count:
4
)
...
...
spec/models/namespace_spec.rb
View file @
5a9ede47
...
...
@@ -53,7 +53,7 @@ describe Namespace do
describe
:move_dir
do
before
do
@namespace
=
create
:namespace
@namespace
.
stub
(
path_changed?:
true
)
allow
(
@namespace
).
to
receive
(
:path_changed?
).
and_return
(
true
)
end
it
"should raise error when directory exists"
do
...
...
@@ -62,8 +62,8 @@ describe Namespace do
it
"should move dir if path changed"
do
new_path
=
@namespace
.
path
+
"_new"
@namespace
.
stub
(
path_was:
@namespace
.
path
)
@namespace
.
stub
(
path:
new_path
)
allow
(
@namespace
).
to
receive
(
:path_was
).
and_return
(
@namespace
.
path
)
allow
(
@namespace
).
to
receive
(
:path
).
and_return
(
new_path
)
expect
(
@namespace
.
move_dir
).
to
be_truthy
end
end
...
...
spec/models/project_services/asana_service_spec.rb
View file @
5a9ede47
...
...
@@ -42,7 +42,7 @@ describe AsanaService, models: true do
before
do
@asana
=
AsanaService
.
new
@asana
.
stub
(
allow
(
@asana
).
to
receive_messages
(
project:
project
,
project_id:
project
.
id
,
service_hook:
true
,
...
...
spec/models/project_services/assembla_service_spec.rb
View file @
5a9ede47
...
...
@@ -32,7 +32,7 @@ describe AssemblaService, models: true do
before
do
@assembla_service
=
AssemblaService
.
new
@assembla_service
.
stub
(
allow
(
@assembla_service
).
to
receive_messages
(
project_id:
project
.
id
,
project:
project
,
service_hook:
true
,
...
...
spec/models/project_services/buildkite_service_spec.rb
View file @
5a9ede47
...
...
@@ -29,12 +29,10 @@ describe BuildkiteService do
describe
'commits methods'
do
before
do
@project
=
Project
.
new
@project
.
stub
(
default_branch:
'default-brancho'
)
allow
(
@project
).
to
receive
(
:default_branch
).
and_return
(
'default-brancho'
)
@service
=
BuildkiteService
.
new
@service
.
stub
(
allow
(
@service
).
to
receive_messages
(
project:
@project
,
service_hook:
true
,
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
before
do
@flowdock_service
=
FlowdockService
.
new
@flowdock_service
.
stub
(
allow
(
@flowdock_service
).
to
receive_messages
(
project_id:
project
.
id
,
project:
project
,
service_hook:
true
,
...
...
spec/models/project_services/gemnasium_service_spec.rb
View file @
5a9ede47
...
...
@@ -32,7 +32,7 @@ describe GemnasiumService do
before
do
@gemnasium_service
=
GemnasiumService
.
new
@gemnasium_service
.
stub
(
allow
(
@gemnasium_service
).
to
receive_messages
(
project_id:
project
.
id
,
project:
project
,
service_hook:
true
,
...
...
spec/models/project_services/gitlab_ci_service_spec.rb
View file @
5a9ede47
...
...
@@ -21,18 +21,15 @@
require
'spec_helper'
describe
GitlabCiService
do
describe
"Associations"
do
it
{
is_expected
.
to
belong_to
:project
}
it
{
is_expected
.
to
have_one
:service_hook
}
end
describe
"Mass assignment"
do
describe
'associations'
do
it
{
is_expected
.
to
belong_to
(
:project
)
}
it
{
is_expected
.
to
have_one
(
:service_hook
)
}
end
describe
'commits methods'
do
before
do
@service
=
GitlabCiService
.
new
@service
.
stub
(
allow
(
@service
).
to
receive_messages
(
service_hook:
true
,
project_url:
'http://ci.gitlab.org/projects/2'
,
token:
'verySecret'
...
...
@@ -56,9 +53,9 @@ describe GitlabCiService do
it
"calls ci_yaml_file"
do
service_hook
=
double
service_hook
.
should_
receive
(
:execute
)
@service
.
should_
receive
(
:service_hook
).
and_return
(
service_hook
)
@service
.
should_
receive
(
:ci_yaml_file
).
with
(
push_sample_data
[
:checkout_sha
])
expect
(
service_hook
).
to
receive
(
:execute
)
expect
(
@service
).
to
receive
(
:service_hook
).
and_return
(
service_hook
)
expect
(
@service
).
to
receive
(
:ci_yaml_file
).
with
(
push_sample_data
[
:checkout_sha
])
@service
.
execute
(
push_sample_data
)
end
...
...
@@ -72,7 +69,7 @@ describe GitlabCiService do
@user
=
create
(
:user
)
@service
=
GitlabCiService
.
new
@service
.
stub
(
allow
(
@service
).
to
receive_messages
(
service_hook:
true
,
project_url:
'http://ci.gitlab.org/projects/2'
,
token:
'verySecret'
,
...
...
spec/models/project_services/hipchat_service_spec.rb
View file @
5a9ede47
...
...
@@ -37,7 +37,7 @@ describe HipchatService do
let
(
:push_sample_data
)
{
Gitlab
::
PushDataBuilder
.
build_sample
(
project
,
user
)
}
before
(
:each
)
do
hipchat
.
stub
(
allow
(
hipchat
).
to
receive_messages
(
project_id:
project
.
id
,
project:
project
,
room:
123456
,
...
...
@@ -48,7 +48,7 @@ describe HipchatService do
end
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
).
with
(
token
,
api_version:
'v1'
,
...
...
@@ -59,7 +59,7 @@ describe HipchatService do
end
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
).
with
(
token
,
api_version:
'v2'
,
...
...
@@ -245,12 +245,12 @@ describe HipchatService do
end
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'
})
end
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'
})
end
end
...
...
spec/models/project_services/irker_service_spec.rb
View file @
5a9ede47
...
...
@@ -24,8 +24,8 @@ require 'json'
describe
IrkerService
do
describe
'Associations'
do
it
{
should
belong_to
:project
}
it
{
should
have_one
:service_hook
}
it
{
is_expected
.
to
belong_to
:project
}
it
{
is_expected
.
to
have_one
:service_hook
}
end
describe
'Validations'
do
...
...
@@ -66,7 +66,7 @@ describe IrkerService do
let
(
:colorize_messages
)
{
'1'
}
before
do
irker
.
stub
(
allow
(
irker
).
to
receive_messages
(
active:
true
,
project:
project
,
project_id:
project
.
id
,
...
...
spec/models/project_services/pushover_service_spec.rb
View file @
5a9ede47
...
...
@@ -52,7 +52,7 @@ describe PushoverService do
let
(
:api_url
)
{
'https://api.pushover.net/1/messages.json'
}
before
do
pushover
.
stub
(
allow
(
pushover
).
to
receive_messages
(
project:
project
,
project_id:
project
.
id
,
service_hook:
true
,
...
...
spec/models/project_services/slack_service_spec.rb
View file @
5a9ede47
...
...
@@ -46,7 +46,7 @@ describe SlackService do
let
(
:channel
)
{
'slack_channel'
}
before
do
slack
.
stub
(
allow
(
slack
).
to
receive_messages
(
project:
project
,
project_id:
project
.
id
,
service_hook:
true
,
...
...
@@ -96,7 +96,7 @@ describe SlackService do
end
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
).
with
(
webhook_url
,
username:
username
).
and_return
(
...
...
@@ -106,7 +106,7 @@ describe SlackService do
end
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
).
with
(
webhook_url
,
channel:
channel
).
and_return
(
...
...
@@ -130,11 +130,11 @@ describe SlackService do
let
(
:webhook_url
)
{
'https://hooks.slack.com/services/SVRWFV0VVAR97N/B02R25XN3/ZBqu7xMupaEEICInN685'
}
before
do
slack
.
stub
(
project:
project
,
project_id:
project
.
id
,
service_hook:
true
,
webhook:
webhook_url
allow
(
slack
).
to
receive_messages
(
project:
project
,
project_id:
project
.
id
,
service_hook:
true
,
webhook:
webhook_url
)
WebMock
.
stub_request
(
:post
,
webhook_url
)
...
...
spec/models/project_spec.rb
View file @
5a9ede47
...
...
@@ -127,7 +127,7 @@ describe Project do
describe
'last_activity'
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
)
end
end
...
...
spec/models/service_spec.rb
View file @
5a9ede47
...
...
@@ -39,9 +39,7 @@ describe Service do
let
(
:project
)
{
create
:project
}
before
do
@service
.
stub
(
project:
project
)
allow
(
@service
).
to
receive
(
:project
).
and_return
(
project
)
@testable
=
@service
.
can_test?
end
...
...
@@ -54,9 +52,7 @@ describe Service do
let
(
:project
)
{
create
:project
}
before
do
@service
.
stub
(
project:
project
)
allow
(
@service
).
to
receive
(
:project
).
and_return
(
project
)
@testable
=
@service
.
can_test?
end
...
...
spec/models/user_spec.rb
View file @
5a9ede47
...
...
@@ -458,21 +458,25 @@ describe User do
it
'is false when LDAP is disabled'
do
# 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
expect
(
user
.
requires_ldap_check?
).
to
be_falsey
end
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
user
.
stub
(
ldap_user?:
false
)
allow
(
user
).
to
receive
(
:ldap_user?
).
and_return
(
false
)
expect
(
user
.
requires_ldap_check?
).
to
be_falsey
end
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
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
it
"should return nil for a user without access"
do
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
end
...
...
spec/requests/api/branches_spec.rb
View file @
5a9ede47
...
...
@@ -141,7 +141,9 @@ describe API::API, api: true do
end
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
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
end
it
"should return a 400 if editor fails to create file"
do
Repository
.
any_instance
.
stub
(
commit_file:
false
,
)
allow_any_instance_of
(
Repository
).
to
receive
(
:commit_file
).
and_return
(
false
)
post
api
(
"/projects/
#{
project
.
id
}
/repository/files"
,
user
),
valid_params
expect
(
response
.
status
).
to
eq
(
400
)
...
...
@@ -112,9 +111,7 @@ describe API::API, api: true do
end
it
"should return a 400 if satellite fails to create file"
do
Repository
.
any_instance
.
stub
(
remove_file:
false
,
)
allow_any_instance_of
(
Repository
).
to
receive
(
:remove_file
).
and_return
(
false
)
delete
api
(
"/projects/
#{
project
.
id
}
/repository/files"
,
user
),
valid_params
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
describe
"POST /groups/:id/projects/:project_id"
do
let
(
:project
)
{
create
(
:project
)
}
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
)
end
...
...
spec/requests/api/merge_requests_spec.rb
View file @
5a9ede47
...
...
@@ -301,14 +301,20 @@ describe API::API, api: true do
describe
"PUT /projects/:id/merge_request/:merge_request_id/merge"
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
)
expect
(
response
.
status
).
to
eq
(
200
)
end
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
)
expect
(
response
.
status
).
to
eq
(
405
)
expect
(
json_response
[
'message'
]).
to
eq
(
'Branch cannot be merged'
)
end
...
...
spec/requests/api/projects_spec.rb
View file @
5a9ede47
...
...
@@ -121,15 +121,13 @@ describe API::API, api: true do
get
api
(
'/projects/all'
,
admin
)
expect
(
response
.
status
).
to
eq
(
200
)
expect
(
json_response
).
to
be_an
Array
project_name
=
project
.
name
expect
(
json_response
.
detect
{
|
project
|
project
[
'name'
]
==
project_name
}[
'name'
]).
to
eq
(
project_name
)
expect
(
json_response
.
detect
{
|
project
|
project
[
'owner'
][
'username'
]
==
user
.
username
}[
'owner'
][
'username'
]).
to
eq
(
user
.
username
)
expect
(
json_response
).
to
satisfy
do
|
response
|
response
.
one?
do
|
entry
|
entry
[
'name'
]
==
project
.
name
&&
entry
[
'owner'
][
'username'
]
==
user
.
username
end
end
end
end
end
...
...
@@ -138,9 +136,8 @@ describe API::API, api: true do
context
'maximum number of projects reached'
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
)
expect
{
post
api
(
'/projects'
,
user2
),
name:
'foo'
}.
to
change
{
Project
.
count
}.
by
(
0
)
expect
{
post
api
(
'/projects'
,
user2
),
name:
'foo'
}.
to
change
{
Project
.
count
}.
by
(
0
)
expect
(
response
.
status
).
to
eq
(
403
)
end
end
...
...
spec/services/git_push_service_spec.rb
View file @
5a9ede47
...
...
@@ -124,7 +124,8 @@ describe GitPushService do
end
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
.
default_branch
).
to
eq
(
"master"
)
...
...
@@ -133,7 +134,8 @@ describe GitPushService do
end
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
.
default_branch
).
to
eq
(
"master"
)
...
...
@@ -154,13 +156,13 @@ describe GitPushService do
let
(
:commit
)
{
project
.
commit
}
before
do
commit
.
stub
({
allow
(
commit
).
to
receive_messages
(
safe_message:
"this commit
\n
mentions #
#{
issue
.
id
}
"
,
references:
[
issue
],
author_name:
commit_author
.
name
,
author_email:
commit_author
.
email
}
)
project
.
repository
.
stub
(
commits_between:
[
commit
])
)
allow
(
project
.
repository
).
to
receive
(
:commits_between
).
and_return
(
[
commit
])
end
it
"creates a note if a pushed commit mentions an issue"
do
...
...
@@ -178,7 +180,10 @@ describe GitPushService do
end
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
)
service
.
execute
(
project
,
user
,
@oldrev
,
@newrev
,
@ref
)
...
...
@@ -201,14 +206,15 @@ describe GitPushService do
let
(
:closing_commit
)
{
project
.
commit
}
before
do
closing_commit
.
stub
({
allow
(
closing_commit
).
to
receive_messages
(
issue_closing_regex:
/^([Cc]loses|[Ff]ixes) #\d+/
,
safe_message:
"this is some work.
\n\n
closes #
#{
issue
.
iid
}
"
,
author_name:
commit_author
.
name
,
author_email:
commit_author
.
email
}
)
)
project
.
repository
.
stub
(
commits_between:
[
closing_commit
])
allow
(
project
.
repository
).
to
receive
(
:commits_between
).
and_return
([
closing_commit
])
end
it
"closes issues with commit messages"
do
...
...
@@ -224,7 +230,7 @@ describe GitPushService do
end
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.
expect
{
...
...
spec/support/test_env.rb
View file @
5a9ede47
...
...
@@ -41,11 +41,13 @@ module TestEnv
end
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
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
# Clean /tmp/tests
...
...
spec/tasks/gitlab/backup_rake_spec.rb
View file @
5a9ede47
...
...
@@ -23,30 +23,33 @@ describe 'gitlab:app namespace rake task' do
context
'gitlab version'
do
before
do
Dir
.
stub
glob:
[]
allow
(
Dir
).
to
receive
:chdir
File
.
stub
exists?:
true
Kernel
.
stub
system:
true
FileUtils
.
stub
cp_r:
true
FileUtils
.
stub
mv:
true
Rake
::
Task
[
"gitlab:shell:setup"
].
stub
invoke:
true
allow
(
Dir
).
to
receive
(
:glob
).
and_return
([])
allow
(
Dir
).
to
receive
(
:chdir
)
allow
(
File
).
to
receive
(
:exists?
).
and_return
(
true
)
allow
(
Kernel
).
to
receive
(
:system
).
and_return
(
true
)
allow
(
FileUtils
).
to
receive
(
:cp_r
).
and_return
(
true
)
allow
(
FileUtils
).
to
receive
(
:mv
).
and_return
(
true
)
allow
(
Rake
::
Task
[
"gitlab:shell:setup"
]).
to
receive
(
:invoke
).
and_return
(
true
)
end
let
(
:gitlab_version
)
{
Gitlab
::
VERSION
}
it
'should fail on mismatch'
do
YAML
.
stub
load_file:
{
gitlab_version:
"not
#{
gitlab_version
}
"
}
expect
{
run_rake_task
(
'gitlab:backup:restore'
)
}.
to
(
raise_error
SystemExit
)
allow
(
YAML
).
to
receive
(
:load_file
).
and_return
({
gitlab_version:
"not
#{
gitlab_version
}
"
})
expect
{
run_rake_task
(
'gitlab:backup:restore'
)
}.
to
raise_error
(
SystemExit
)
end
it
'should invoke restoration on mach'
do
YAML
.
stub
load_file:
{
gitlab_version:
gitlab_version
}
expect
(
Rake
::
Task
[
"gitlab:backup:db:restore"
]).
to
receive
:invoke
expect
(
Rake
::
Task
[
"gitlab:backup:repo:restore"
]).
to
receive
:invoke
expect
(
Rake
::
Task
[
"gitlab:shell:setup"
]).
to
receive
:invoke
expect
{
run_rake_task
(
'gitlab:backup:restore'
)
}.
to_not
raise_error
allow
(
YAML
).
to
receive
(
:load_file
).
and_return
({
gitlab_version:
gitlab_version
})
expect
(
Rake
::
Task
[
"gitlab:backup:db:restore"
]).
to
receive
(
:invoke
)
expect
(
Rake
::
Task
[
"gitlab:backup:repo:restore"
]).
to
receive
(
:invoke
)
expect
(
Rake
::
Task
[
"gitlab:shell:setup"
]).
to
receive
(
:invoke
)
expect
{
run_rake_task
(
'gitlab:backup:restore'
)
}.
not_to
raise_error
end
end
...
...
@@ -140,7 +143,8 @@ describe 'gitlab:app namespace rake task' do
end
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
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
end
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_services
).
twice
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