Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F84167119
twitter_api_controller_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
twitter_api_controller_test.exs
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.Web.TwitterAPI.ControllerTest
do
use
Pleroma.Web.ConnCase
alias
Pleroma.Builders.ActivityBuilder
alias
Pleroma.Repo
alias
Pleroma.User
alias
Pleroma.Web.OAuth.Token
import
Pleroma.Factory
describe
"POST /api/qvitter/statuses/notifications/read"
do
test
"without valid credentials"
,
%{
conn
:
conn
}
do
conn
=
post
(
conn
,
"/api/qvitter/statuses/notifications/read"
,
%{
"latest_id"
=>
1_234_567
})
assert
json_response
(
conn
,
403
)
==
%{
"error"
=>
"Invalid credentials."
}
end
test
"with credentials, without any params"
do
%{
user
:
current_user
,
conn
:
conn
}
=
oauth_access
([
"read:notifications"
,
"write:notifications"
])
conn
=
conn
|>
assign
(
:user
,
current_user
)
|>
post
(
"/api/qvitter/statuses/notifications/read"
)
assert
json_response
(
conn
,
400
)
==
%{
"error"
=>
"You need to specify latest_id"
,
"request"
=>
"/api/qvitter/statuses/notifications/read"
}
end
test
"with credentials, with params"
do
%{
user
:
current_user
,
conn
:
conn
}
=
oauth_access
([
"read:notifications"
,
"write:notifications"
])
other_user
=
insert
(
:user
)
{
:ok
,
_activity
}
=
ActivityBuilder
.
insert
(%{
"to"
=>
[
current_user
.
ap_id
]},
%{
user
:
other_user
})
response_conn
=
conn
|>
assign
(
:user
,
current_user
)
|>
get
(
"/api/v1/notifications"
)
[
notification
]
=
response
=
json_response
(
response_conn
,
200
)
assert
length
(
response
)
==
1
assert
notification
[
"pleroma"
][
"is_seen"
]
==
false
response_conn
=
conn
|>
assign
(
:user
,
current_user
)
|>
post
(
"/api/qvitter/statuses/notifications/read"
,
%{
"latest_id"
=>
notification
[
"id"
]})
[
notification
]
=
response
=
json_response
(
response_conn
,
200
)
assert
length
(
response
)
==
1
assert
notification
[
"pleroma"
][
"is_seen"
]
==
true
end
end
describe
"GET /api/account/confirm_email/:id/:token"
do
setup
do
{
:ok
,
user
}
=
insert
(
:user
)
|>
User
.
confirmation_changeset
(
need_confirmation
:
true
)
|>
Repo
.
update
()
assert
user
.
confirmation_pending
[
user
:
user
]
end
test
"it redirects to root url"
,
%{
conn
:
conn
,
user
:
user
}
do
conn
=
get
(
conn
,
"/api/account/confirm_email/
#{
user
.
id
}
/
#{
user
.
confirmation_token
}
"
)
assert
302
==
conn
.
status
end
test
"it confirms the user account"
,
%{
conn
:
conn
,
user
:
user
}
do
get
(
conn
,
"/api/account/confirm_email/
#{
user
.
id
}
/
#{
user
.
confirmation_token
}
"
)
user
=
User
.
get_cached_by_id
(
user
.
id
)
refute
user
.
confirmation_pending
refute
user
.
confirmation_token
end
test
"it returns 500 if user cannot be found by id"
,
%{
conn
:
conn
,
user
:
user
}
do
conn
=
get
(
conn
,
"/api/account/confirm_email/0/
#{
user
.
confirmation_token
}
"
)
assert
500
==
conn
.
status
end
test
"it returns 500 if token is invalid"
,
%{
conn
:
conn
,
user
:
user
}
do
conn
=
get
(
conn
,
"/api/account/confirm_email/
#{
user
.
id
}
/wrong_token"
)
assert
500
==
conn
.
status
end
end
describe
"GET /api/oauth_tokens"
do
setup
do
token
=
insert
(
:oauth_token
)
|>
Repo
.
preload
(
:user
)
%{
token
:
token
}
end
test
"renders list"
,
%{
token
:
token
}
do
response
=
build_conn
()
|>
assign
(
:user
,
token
.
user
)
|>
get
(
"/api/oauth_tokens"
)
keys
=
json_response
(
response
,
200
)
|>
hd
()
|>
Map
.
keys
()
assert
keys
--
[
"id"
,
"app_name"
,
"valid_until"
]
==
[]
end
test
"revoke token"
,
%{
token
:
token
}
do
response
=
build_conn
()
|>
assign
(
:user
,
token
.
user
)
|>
delete
(
"/api/oauth_tokens/
#{
token
.
id
}
"
)
tokens
=
Token
.
get_user_tokens
(
token
.
user
)
assert
tokens
==
[]
assert
response
.
status
==
201
end
end
end
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Jun 4, 7:22 PM (6 h, 12 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1539295
Default Alt Text
twitter_api_controller_test.exs (3 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment