Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F33101430
follow_bot_policy_test.exs
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
3 KB
Referenced Files
None
Subscribers
None
follow_bot_policy_test.exs
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.Web.ActivityPub.MRF.FollowBotPolicyTest
do
use
Pleroma.DataCase
,
async
:
true
alias
Pleroma.User
alias
Pleroma.Web.ActivityPub.MRF.FollowBotPolicy
import
Pleroma.Factory
describe
"FollowBotPolicy"
do
test
"follows remote users"
do
bot
=
insert
(
:user
,
actor_type
:
"Service"
)
remote_user
=
insert
(
:user
,
local
:
false
)
clear_config
([
:mrf_follow_bot
,
:follower_nickname
],
bot
.
nickname
)
message
=
%{
"@context"
=>
"https://www.w3.org/ns/activitystreams"
,
"to"
=>
[
remote_user
.
follower_address
],
"cc"
=>
[
"https://www.w3.org/ns/activitystreams
#
Public"
],
"type"
=>
"Create"
,
"object"
=>
%{
"content"
=>
"Test post"
,
"type"
=>
"Note"
,
"attributedTo"
=>
remote_user
.
ap_id
,
"inReplyTo"
=>
nil
},
"actor"
=>
remote_user
.
ap_id
}
refute
User
.
following?
(
bot
,
remote_user
)
assert
User
.
get_follow_requests
(
remote_user
)
|>
length
==
0
FollowBotPolicy
.
filter
(
message
)
assert
User
.
get_follow_requests
(
remote_user
)
|>
length
==
1
end
test
"does not follow users with
#
nobot in bio"
do
bot
=
insert
(
:user
,
actor_type
:
"Service"
)
remote_user
=
insert
(
:user
,
%{
local
:
false
,
bio
:
"go away bots!
#
nobot"
})
clear_config
([
:mrf_follow_bot
,
:follower_nickname
],
bot
.
nickname
)
message
=
%{
"@context"
=>
"https://www.w3.org/ns/activitystreams"
,
"to"
=>
[
remote_user
.
follower_address
],
"cc"
=>
[
"https://www.w3.org/ns/activitystreams
#
Public"
],
"type"
=>
"Create"
,
"object"
=>
%{
"content"
=>
"I don't like follow bots"
,
"type"
=>
"Note"
,
"attributedTo"
=>
remote_user
.
ap_id
,
"inReplyTo"
=>
nil
},
"actor"
=>
remote_user
.
ap_id
}
refute
User
.
following?
(
bot
,
remote_user
)
assert
User
.
get_follow_requests
(
remote_user
)
|>
length
==
0
FollowBotPolicy
.
filter
(
message
)
assert
User
.
get_follow_requests
(
remote_user
)
|>
length
==
0
end
test
"does not follow local users"
do
bot
=
insert
(
:user
,
actor_type
:
"Service"
)
local_user
=
insert
(
:user
,
local
:
true
)
clear_config
([
:mrf_follow_bot
,
:follower_nickname
],
bot
.
nickname
)
message
=
%{
"@context"
=>
"https://www.w3.org/ns/activitystreams"
,
"to"
=>
[
local_user
.
follower_address
],
"cc"
=>
[
"https://www.w3.org/ns/activitystreams
#
Public"
],
"type"
=>
"Create"
,
"object"
=>
%{
"content"
=>
"Hi I'm a local user"
,
"type"
=>
"Note"
,
"attributedTo"
=>
local_user
.
ap_id
,
"inReplyTo"
=>
nil
},
"actor"
=>
local_user
.
ap_id
}
refute
User
.
following?
(
bot
,
local_user
)
assert
User
.
get_follow_requests
(
local_user
)
|>
length
==
0
FollowBotPolicy
.
filter
(
message
)
assert
User
.
get_follow_requests
(
local_user
)
|>
length
==
0
end
test
"does not follow users requiring follower approval"
do
bot
=
insert
(
:user
,
actor_type
:
"Service"
)
remote_user
=
insert
(
:user
,
%{
local
:
false
,
is_locked
:
true
})
clear_config
([
:mrf_follow_bot
,
:follower_nickname
],
bot
.
nickname
)
message
=
%{
"@context"
=>
"https://www.w3.org/ns/activitystreams"
,
"to"
=>
[
remote_user
.
follower_address
],
"cc"
=>
[
"https://www.w3.org/ns/activitystreams
#
Public"
],
"type"
=>
"Create"
,
"object"
=>
%{
"content"
=>
"I don't like randos following me"
,
"type"
=>
"Note"
,
"attributedTo"
=>
remote_user
.
ap_id
,
"inReplyTo"
=>
nil
},
"actor"
=>
remote_user
.
ap_id
}
refute
User
.
following?
(
bot
,
remote_user
)
assert
User
.
get_follow_requests
(
remote_user
)
|>
length
==
0
FollowBotPolicy
.
filter
(
message
)
assert
User
.
get_follow_requests
(
remote_user
)
|>
length
==
0
end
end
end
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Jan 20, 12:24 PM (1 d, 1 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
973525
Default Alt Text
follow_bot_policy_test.exs (3 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment