Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F74469017
handler_test.exs
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
2 KB
Referenced Files
None
Subscribers
None
handler_test.exs
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.BBS.HandlerTest
do
use
Pleroma.DataCase
,
async
:
true
alias
Pleroma.Activity
alias
Pleroma.BBS.Handler
alias
Pleroma.Object
alias
Pleroma.Repo
alias
Pleroma.User
alias
Pleroma.Web.CommonAPI
import
ExUnit.CaptureIO
import
Pleroma.Factory
import
Ecto.Query
test
"getting the home timeline"
do
user
=
insert
(
:user
)
followed
=
insert
(
:user
)
{
:ok
,
user
,
followed
}
=
User
.
follow
(
user
,
followed
)
{
:ok
,
_first
}
=
CommonAPI
.
post
(
user
,
%{
status
:
"hey"
})
{
:ok
,
_second
}
=
CommonAPI
.
post
(
followed
,
%{
status
:
"hello"
})
output
=
capture_io
(
fn
->
Handler
.
handle_command
(%{
user
:
user
},
"home"
)
end
)
assert
output
=~
user
.
nickname
assert
output
=~
followed
.
nickname
assert
output
=~
"hey"
assert
output
=~
"hello"
end
test
"posting"
do
user
=
insert
(
:user
)
output
=
capture_io
(
fn
->
Handler
.
handle_command
(%{
user
:
user
},
"p this is a test post"
)
end
)
assert
output
=~
"Posted"
activity
=
Repo
.
one
(
from
(
a
in
Activity
,
where
:
fragment
(
"?->>'type' = ?"
,
a
.
data
,
"Create"
)
)
)
assert
activity
.
actor
==
user
.
ap_id
object
=
Object
.
normalize
(
activity
,
fetch
:
false
)
assert
object
.
data
[
"content"
]
==
"this is a test post"
end
test
"replying"
do
user
=
insert
(
:user
)
another_user
=
insert
(
:user
)
{
:ok
,
activity
}
=
CommonAPI
.
post
(
another_user
,
%{
status
:
"this is a test post"
})
activity_object
=
Object
.
normalize
(
activity
,
fetch
:
false
)
output
=
capture_io
(
fn
->
Handler
.
handle_command
(%{
user
:
user
},
"r
#{
activity
.
id
}
this is a reply"
)
end
)
assert
output
=~
"Replied"
reply
=
Repo
.
one
(
from
(
a
in
Activity
,
where
:
fragment
(
"?->>'type' = ?"
,
a
.
data
,
"Create"
),
where
:
a
.
actor
==
^
user
.
ap_id
)
)
assert
reply
.
actor
==
user
.
ap_id
reply_object_data
=
Object
.
normalize
(
reply
,
fetch
:
false
)
.
data
assert
reply_object_data
[
"content"
]
==
"this is a reply"
assert
reply_object_data
[
"inReplyTo"
]
==
activity_object
.
data
[
"id"
]
end
end
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Apr 25, 1:14 PM (1 d, 12 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1252879
Default Alt Text
handler_test.exs (2 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment