Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F33102828
media_proxy_warming_policy_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
media_proxy_warming_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.MediaProxyWarmingPolicyTest
do
use
ExUnit.Case
use
Pleroma.Tests.Helpers
alias
Pleroma.HTTP
alias
Pleroma.UnstubbedConfigMock
,
as
:
ConfigMock
alias
Pleroma.Web.ActivityPub.MRF
alias
Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy
import
Mock
import
Mox
@message
%{
"type"
=>
"Create"
,
"object"
=>
%{
"type"
=>
"Note"
,
"content"
=>
"content"
,
"attachment"
=>
[
%{
"url"
=>
[%{
"href"
=>
"http://example.com/image.jpg"
}]}
]
}
}
@message_with_history
%{
"type"
=>
"Create"
,
"object"
=>
%{
"type"
=>
"Note"
,
"content"
=>
"content"
,
"formerRepresentations"
=>
%{
"orderedItems"
=>
[
%{
"type"
=>
"Note"
,
"content"
=>
"content"
,
"attachment"
=>
[
%{
"url"
=>
[%{
"href"
=>
"http://example.com/image.jpg"
}]}
]
}
]
}
}
}
setup
do
ConfigMock
|>
stub_with
(
Pleroma.Test.StaticConfig
)
:ok
end
setup
do
:
clear_config
([
:media_proxy
,
:enabled
],
true
)
test
"it prefetches media proxy URIs"
do
Tesla.Mock
.
mock
(
fn
%{
method
:
:get
,
url
:
"http://example.com/image.jpg"
}
->
{
:ok
,
%
Tesla.Env
{
status
:
200
,
body
:
""
}}
end
)
with_mock
HTTP
,
get
:
fn
_
,
_
,
_
->
{
:ok
,
[]}
end
do
MediaProxyWarmingPolicy
.
filter
(
@message
)
assert
called
(
HTTP
.
get
(
:_
,
:_
,
:_
))
end
end
test
"it does nothing when no attachments are present"
do
object
=
@message
[
"object"
]
|>
Map
.
delete
(
"attachment"
)
message
=
@message
|>
Map
.
put
(
"object"
,
object
)
with_mock
HTTP
,
get
:
fn
_
,
_
,
_
->
{
:ok
,
[]}
end
do
MediaProxyWarmingPolicy
.
filter
(
message
)
refute
called
(
HTTP
.
get
(
:_
,
:_
,
:_
))
end
end
test
"history-aware"
do
Tesla.Mock
.
mock
(
fn
%{
method
:
:get
,
url
:
"http://example.com/image.jpg"
}
->
{
:ok
,
%
Tesla.Env
{
status
:
200
,
body
:
""
}}
end
)
with_mock
HTTP
,
get
:
fn
_
,
_
,
_
->
{
:ok
,
[]}
end
do
MRF
.
filter_one
(
MediaProxyWarmingPolicy
,
@message_with_history
)
assert
called
(
HTTP
.
get
(
:_
,
:_
,
:_
))
end
end
test
"works with Updates"
do
Tesla.Mock
.
mock
(
fn
%{
method
:
:get
,
url
:
"http://example.com/image.jpg"
}
->
{
:ok
,
%
Tesla.Env
{
status
:
200
,
body
:
""
}}
end
)
with_mock
HTTP
,
get
:
fn
_
,
_
,
_
->
{
:ok
,
[]}
end
do
MRF
.
filter_one
(
MediaProxyWarmingPolicy
,
@message_with_history
|>
Map
.
put
(
"type"
,
"Update"
))
assert
called
(
HTTP
.
get
(
:_
,
:_
,
:_
))
end
end
end
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Jan 20, 1:12 PM (1 d, 10 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
960435
Default Alt Text
media_proxy_warming_policy_test.exs (2 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment