Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
mtxclient
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Nheko Reborn
mtxclient
Commits
2d0c9416
Commit
2d0c9416
authored
7 years ago
by
Konstantinos Sideris
Browse files
Options
Downloads
Patches
Plain Diff
Log the errors on test failures
parent
125e201c
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
tests/client_api.cpp
+101
-124
101 additions, 124 deletions
tests/client_api.cpp
with
101 additions
and
124 deletions
tests/client_api.cpp
+
101
−
124
View file @
2d0c9416
...
...
@@ -17,6 +17,20 @@ using namespace std;
using
ErrType
=
std
::
experimental
::
optional
<
errors
::
ClientError
>
;
void
check_error
(
ErrType
err
)
{
if
(
err
)
{
cout
<<
"matrix (error) : "
<<
err
->
matrix_error
.
error
<<
"
\n
"
;
cout
<<
"matrix (errcode): "
<<
mtx
::
errors
::
to_string
(
err
->
matrix_error
.
errcode
)
<<
"
\n
"
;
cout
<<
"error_code : "
<<
err
->
error_code
<<
"
\n
"
;
cout
<<
"status_code : "
<<
err
->
status_code
<<
"
\n
"
;
}
ASSERT_FALSE
(
err
);
}
void
validate_login
(
const
std
::
string
&
user
,
const
mtx
::
responses
::
Login
&
res
)
{
...
...
@@ -42,17 +56,17 @@ TEST(ClientAPI, LoginSuccess)
std
::
shared_ptr
<
Client
>
mtx_client
=
std
::
make_shared
<
Client
>
(
"localhost"
);
mtx_client
->
login
(
"alice"
,
"secret"
,
[](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
validate_login
(
"@alice:localhost"
,
res
);
});
mtx_client
->
login
(
"bob"
,
"secret"
,
[](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
validate_login
(
"@bob:localhost"
,
res
);
});
mtx_client
->
login
(
"carl"
,
"secret"
,
[](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
validate_login
(
"@carl:localhost"
,
res
);
});
...
...
@@ -101,14 +115,12 @@ TEST(ClientAPI, ChangeDisplayName)
std
::
shared_ptr
<
Client
>
mtx_client
=
std
::
make_shared
<
Client
>
(
"localhost"
);
mtx_client
->
login
(
"alice"
,
"secret"
,
[
mtx_client
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
validate_login
(
"@alice:localhost"
,
res
);
"alice"
,
"secret"
,
[
mtx_client
](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
// Change the display name to Arthur Dent and verify its success through the lack
// of an error
mtx_client
->
set_displayname
(
"Arthur Dent"
,
[](
ErrType
err
)
{
ASSERT_FALSE
(
err
);
});
mtx_client
->
set_displayname
(
"Arthur Dent"
,
[](
ErrType
err
)
{
check_error
(
err
);
});
});
mtx_client
->
close
();
...
...
@@ -119,13 +131,12 @@ TEST(ClientAPI, EmptyDisplayName)
std
::
shared_ptr
<
Client
>
mtx_client
=
std
::
make_shared
<
Client
>
(
"localhost"
);
mtx_client
->
login
(
"alice"
,
"secret"
,
[
mtx_client
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
validate_login
(
"@alice:localhost"
,
res
);
"alice"
,
"secret"
,
[
mtx_client
](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
// Change the display name to an empty string and verify its success through the
// lack of an error
mtx_client
->
set_displayname
(
""
,
[](
ErrType
err
)
{
ASSERT_FALSE
(
err
);
});
mtx_client
->
set_displayname
(
""
,
[](
ErrType
err
)
{
check_error
(
err
);
});
});
mtx_client
->
close
();
...
...
@@ -136,9 +147,8 @@ TEST(ClientAPI, CreateRoom)
std
::
shared_ptr
<
Client
>
mtx_client
=
std
::
make_shared
<
Client
>
(
"localhost"
);
mtx_client
->
login
(
"alice"
,
"secret"
,
[
mtx_client
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
validate_login
(
"@alice:localhost"
,
res
);
"alice"
,
"secret"
,
[
mtx_client
](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
});
// Waiting for the previous request to complete.
...
...
@@ -148,7 +158,7 @@ TEST(ClientAPI, CreateRoom)
req
.
name
=
"Name"
;
req
.
topic
=
"Topic"
;
mtx_client
->
create_room
(
req
,
[](
const
mtx
::
responses
::
CreateRoom
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
ASSERT_TRUE
(
res
.
room_id
.
localpart
().
size
()
>
10
);
EXPECT_EQ
(
res
.
room_id
.
hostname
(),
"localhost"
);
});
...
...
@@ -164,8 +174,7 @@ TEST(ClientAPI, LogoutSuccess)
// Login and prove that login was successful by creating a room
mtx_client
->
login
(
"alice"
,
"secret"
,
[
&
token
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
validate_login
(
"@alice:localhost"
,
res
);
check_error
(
err
);
token
=
res
.
access_token
;
});
while
(
token
.
empty
())
{
...
...
@@ -176,15 +185,12 @@ TEST(ClientAPI, LogoutSuccess)
mtx
::
requests
::
CreateRoom
req
;
req
.
name
=
"Test1"
;
req
.
topic
=
"Topic1"
;
mtx_client
->
create_room
(
req
,
[](
const
mtx
::
responses
::
CreateRoom
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
});
mtx_client
->
create_room
(
req
,
[](
const
mtx
::
responses
::
CreateRoom
&
,
ErrType
err
)
{
check_error
(
err
);
});
// Logout and prove that logout was successful and deleted the access_token_ for the client
mtx_client
->
logout
([
mtx_client
,
&
token
](
const
mtx
::
responses
::
Logout
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
mtx_client
->
logout
([
mtx_client
,
&
token
](
const
mtx
::
responses
::
Logout
&
,
ErrType
err
)
{
check_error
(
err
);
token
.
clear
();
});
while
(
token
.
size
())
{
...
...
@@ -195,8 +201,7 @@ TEST(ClientAPI, LogoutSuccess)
mtx
::
requests
::
CreateRoom
failReq
;
failReq
.
name
=
"42"
;
failReq
.
topic
=
"LifeUniverseEverything"
;
mtx_client
->
create_room
(
failReq
,
[](
const
mtx
::
responses
::
CreateRoom
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
mtx_client
->
create_room
(
failReq
,
[](
const
mtx
::
responses
::
CreateRoom
&
,
ErrType
err
)
{
ASSERT_TRUE
(
err
);
EXPECT_EQ
(
mtx
::
errors
::
to_string
(
err
->
matrix_error
.
errcode
),
"M_MISSING_TOKEN"
);
EXPECT_EQ
(
err
->
status_code
,
boost
::
beast
::
http
::
status
::
forbidden
);
...
...
@@ -214,8 +219,7 @@ TEST(ClientAPI, LogoutInvalidatesTokenOnServer)
// Login and prove that login was successful by creating a room
mtx_client
->
login
(
"alice"
,
"secret"
,
[
&
token
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
validate_login
(
"@alice:localhost"
,
res
);
check_error
(
err
);
token
=
res
.
access_token
;
});
while
(
token
.
empty
())
{
...
...
@@ -226,16 +230,13 @@ TEST(ClientAPI, LogoutInvalidatesTokenOnServer)
mtx
::
requests
::
CreateRoom
req
;
req
.
name
=
"Test1"
;
req
.
topic
=
"Topic1"
;
mtx_client
->
create_room
(
req
,
[](
const
mtx
::
responses
::
CreateRoom
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
});
mtx_client
->
create_room
(
req
,
[](
const
mtx
::
responses
::
CreateRoom
&
,
ErrType
err
)
{
check_error
(
err
);
});
// Logout and prove that logout was successful by verifying the old access_token_ is no
// longer valid
mtx_client
->
logout
([
mtx_client
,
&
token
](
const
mtx
::
responses
::
Logout
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
mtx_client
->
logout
([
mtx_client
,
&
token
](
const
mtx
::
responses
::
Logout
&
,
ErrType
err
)
{
check_error
(
err
);
mtx_client
->
set_access_token
(
token
);
token
.
clear
();
});
...
...
@@ -247,8 +248,7 @@ TEST(ClientAPI, LogoutInvalidatesTokenOnServer)
mtx
::
requests
::
CreateRoom
failReq
;
failReq
.
name
=
"42"
;
failReq
.
topic
=
"LifeUniverseEverything"
;
mtx_client
->
create_room
(
failReq
,
[](
const
mtx
::
responses
::
CreateRoom
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
mtx_client
->
create_room
(
failReq
,
[](
const
mtx
::
responses
::
CreateRoom
&
,
ErrType
err
)
{
ASSERT_TRUE
(
err
);
EXPECT_EQ
(
mtx
::
errors
::
to_string
(
err
->
matrix_error
.
errcode
),
"M_UNKNOWN_TOKEN"
);
EXPECT_EQ
(
err
->
status_code
,
boost
::
beast
::
http
::
status
::
forbidden
);
...
...
@@ -263,19 +263,15 @@ TEST(ClientAPI, CreateRoomInvites)
auto
bob
=
std
::
make_shared
<
Client
>
(
"localhost"
);
auto
carl
=
std
::
make_shared
<
Client
>
(
"localhost"
);
alice
->
login
(
"alice"
,
"secret"
,
[
alice
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
alice
->
login
(
"alice"
,
"secret"
,
[
alice
](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
});
bob
->
login
(
"bob"
,
"secret"
,
[
bob
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
});
bob
->
login
(
"bob"
,
"secret"
,
[
bob
](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
});
carl
->
login
(
"carl"
,
"secret"
,
[
carl
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
carl
->
login
(
"carl"
,
"secret"
,
[
carl
](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
});
// Waiting for the previous requests to complete.
...
...
@@ -286,14 +282,14 @@ TEST(ClientAPI, CreateRoomInvites)
req
.
topic
=
"Topic"
;
req
.
invite
=
{
"@bob:localhost"
,
"@carl:localhost"
};
alice
->
create_room
(
req
,
[
bob
,
carl
](
const
mtx
::
responses
::
CreateRoom
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
auto
room_id
=
res
.
room_id
;
bob
->
join_room
(
res
.
room_id
,
[](
const
nlohmann
::
json
&
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
});
[](
const
nlohmann
::
json
&
,
ErrType
err
)
{
check_error
(
err
);
});
carl
->
join_room
(
res
.
room_id
,
[](
const
nlohmann
::
json
&
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
});
[](
const
nlohmann
::
json
&
,
ErrType
err
)
{
check_error
(
err
);
});
});
alice
->
close
();
...
...
@@ -306,15 +302,12 @@ TEST(ClientAPI, JoinRoom)
auto
alice
=
std
::
make_shared
<
Client
>
(
"localhost"
);
auto
bob
=
std
::
make_shared
<
Client
>
(
"localhost"
);
alice
->
login
(
"alice"
,
"secret"
,
[
alice
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
alice
->
login
(
"alice"
,
"secret"
,
[
alice
](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
});
bob
->
login
(
"bob"
,
"secret"
,
[
bob
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
});
bob
->
login
(
"bob"
,
"secret"
,
[
bob
](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
});
// Waiting for the previous requests to complete.
std
::
this_thread
::
sleep_for
(
std
::
chrono
::
seconds
(
3
));
...
...
@@ -329,11 +322,11 @@ TEST(ClientAPI, JoinRoom)
req
.
invite
=
{
"@bob:localhost"
};
req
.
room_alias_name
=
alias
;
alice
->
create_room
(
req
,
[
bob
,
alias
](
const
mtx
::
responses
::
CreateRoom
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
auto
room_id
=
res
.
room_id
;
bob
->
join_room
(
res
.
room_id
,
[](
const
nlohmann
::
json
&
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
});
[](
const
nlohmann
::
json
&
,
ErrType
err
)
{
check_error
(
err
);
});
using
namespace
mtx
::
identifiers
;
bob
->
join_room
(
parse
<
Room
>
(
"!random_room_id:localhost"
),
...
...
@@ -345,7 +338,7 @@ TEST(ClientAPI, JoinRoom)
// Join the room using an alias.
bob
->
join_room
(
"#"
+
alias
+
":localhost"
,
[](
const
nlohmann
::
json
&
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
});
[](
const
nlohmann
::
json
&
,
ErrType
err
)
{
check_error
(
err
);
});
});
alice
->
close
();
...
...
@@ -357,15 +350,12 @@ TEST(ClientAPI, LeaveRoom)
auto
alice
=
std
::
make_shared
<
Client
>
(
"localhost"
);
auto
bob
=
std
::
make_shared
<
Client
>
(
"localhost"
);
alice
->
login
(
"alice"
,
"secret"
,
[
alice
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
alice
->
login
(
"alice"
,
"secret"
,
[
alice
](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
});
bob
->
login
(
"bob"
,
"secret"
,
[
bob
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
});
bob
->
login
(
"bob"
,
"secret"
,
[
bob
](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
});
// Waiting for the previous requests to complete.
std
::
this_thread
::
sleep_for
(
std
::
chrono
::
seconds
(
3
));
...
...
@@ -375,14 +365,14 @@ TEST(ClientAPI, LeaveRoom)
req
.
topic
=
"Topic"
;
req
.
invite
=
{
"@bob:localhost"
};
alice
->
create_room
(
req
,
[
bob
](
const
mtx
::
responses
::
CreateRoom
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
auto
room_id
=
res
.
room_id
;
bob
->
join_room
(
res
.
room_id
,
[
room_id
,
bob
](
const
nlohmann
::
json
&
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
bob
->
leave_room
(
room_id
,
[](
const
nlohmann
::
json
&
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
});
room_id
,
[](
const
nlohmann
::
json
&
,
ErrType
err
)
{
check_error
(
err
);
});
});
});
...
...
@@ -403,15 +393,12 @@ TEST(ClientAPI, InviteRoom)
auto
alice
=
std
::
make_shared
<
Client
>
(
"localhost"
);
auto
bob
=
std
::
make_shared
<
Client
>
(
"localhost"
);
alice
->
login
(
"alice"
,
"secret"
,
[
alice
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
alice
->
login
(
"alice"
,
"secret"
,
[
alice
](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
});
bob
->
login
(
"bob"
,
"secret"
,
[
bob
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
});
bob
->
login
(
"bob"
,
"secret"
,
[
bob
](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
});
// Waiting for the previous requests to complete.
std
::
this_thread
::
sleep_for
(
std
::
chrono
::
seconds
(
3
));
...
...
@@ -421,22 +408,19 @@ TEST(ClientAPI, InviteRoom)
req
.
topic
=
"Topic"
;
req
.
invite
=
{};
alice
->
create_room
(
req
,
[
alice
,
bob
](
const
mtx
::
responses
::
CreateRoom
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
auto
room_id
=
res
.
room_id
;
alice
->
invite_user
(
room_id
,
"@bob:localhost"
,
[
room_id
,
bob
](
const
mtx
::
responses
::
Empty
&
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
if
(
err
)
{
std
::
cout
<<
"Received error when inviting user"
<<
std
::
endl
;
}
bob
->
join_room
(
room_id
,
[](
const
nlohmann
::
json
&
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
});
});
alice
->
invite_user
(
room_id
,
"@bob:localhost"
,
[
room_id
,
bob
](
const
mtx
::
responses
::
Empty
&
,
ErrType
err
)
{
check_error
(
err
);
bob
->
join_room
(
room_id
,
[](
const
nlohmann
::
json
&
,
ErrType
err
)
{
check_error
(
err
);
});
});
});
alice
->
close
();
...
...
@@ -448,15 +432,12 @@ TEST(ClientAPI, InvalidInvite)
auto
alice
=
std
::
make_shared
<
Client
>
(
"localhost"
);
auto
bob
=
std
::
make_shared
<
Client
>
(
"localhost"
);
alice
->
login
(
"alice"
,
"secret"
,
[
alice
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
alice
->
login
(
"alice"
,
"secret"
,
[
alice
](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
});
bob
->
login
(
"bob"
,
"secret"
,
[
bob
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
});
bob
->
login
(
"bob"
,
"secret"
,
[
bob
](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
});
// Waiting for the previous requests to complete.
std
::
this_thread
::
sleep_for
(
std
::
chrono
::
seconds
(
3
));
...
...
@@ -466,7 +447,7 @@ TEST(ClientAPI, InvalidInvite)
req
.
topic
=
"Topic"
;
req
.
invite
=
{};
alice
->
create_room
(
req
,
[
alice
,
bob
](
const
mtx
::
responses
::
CreateRoom
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
auto
room_id
=
res
.
room_id
;
bob
->
invite_user
(
room_id
,
...
...
@@ -489,9 +470,8 @@ TEST(ClientAPI, Sync)
std
::
shared_ptr
<
Client
>
mtx_client
=
std
::
make_shared
<
Client
>
(
"localhost"
);
mtx_client
->
login
(
"alice"
,
"secret"
,
[
mtx_client
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
"alice"
,
"secret"
,
[
mtx_client
](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
});
while
(
mtx_client
->
access_token
().
empty
())
...
...
@@ -501,11 +481,11 @@ TEST(ClientAPI, Sync)
req
.
name
=
"Name"
;
req
.
topic
=
"Topic"
;
mtx_client
->
create_room
(
req
,
[
mtx_client
](
const
mtx
::
responses
::
CreateRoom
&
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
mtx_client
->
sync
(
""
,
""
,
false
,
0
,
[](
const
mtx
::
responses
::
Sync
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
ASSERT_TRUE
(
res
.
rooms
.
join
.
size
()
>
0
);
ASSERT_TRUE
(
res
.
next_batch
.
size
()
>
0
);
});
...
...
@@ -519,7 +499,7 @@ TEST(ClientAPI, Versions)
std
::
shared_ptr
<
Client
>
mtx_client
=
std
::
make_shared
<
Client
>
(
"localhost"
);
mtx_client
->
versions
([](
const
mtx
::
responses
::
Versions
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
EXPECT_EQ
(
res
.
versions
.
size
(),
4
);
EXPECT_EQ
(
res
.
versions
.
at
(
0
),
"r0.0.1"
);
...
...
@@ -536,17 +516,17 @@ TEST(ClientAPI, Typing)
auto
alice
=
std
::
make_shared
<
Client
>
(
"localhost"
);
alice
->
login
(
"alice"
,
"secret"
,
[](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
});
"alice"
,
"secret"
,
[](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
});
while
(
alice
->
access_token
().
empty
())
std
::
this_thread
::
sleep_for
(
std
::
chrono
::
milliseconds
(
100
));
mtx
::
requests
::
CreateRoom
req
;
alice
->
create_room
(
req
,
[
alice
](
const
mtx
::
responses
::
CreateRoom
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
alice
->
start_typing
(
res
.
room_id
,
10000
,
[
alice
,
res
](
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
const
auto
room_id
=
res
.
room_id
.
toString
();
atomic_bool
can_continue
(
false
);
...
...
@@ -557,7 +537,7 @@ TEST(ClientAPI, Typing)
false
,
0
,
[
room_id
,
&
can_continue
](
const
mtx
::
responses
::
Sync
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
can_continue
=
true
;
...
...
@@ -571,7 +551,7 @@ TEST(ClientAPI, Typing)
std
::
this_thread
::
sleep_for
(
std
::
chrono
::
milliseconds
(
100
));
alice
->
stop_typing
(
res
.
room_id
,
[
alice
,
room_id
](
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
alice
->
sync
(
""
,
...
...
@@ -579,7 +559,7 @@ TEST(ClientAPI, Typing)
false
,
0
,
[
room_id
](
const
mtx
::
responses
::
Sync
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
auto
room
=
res
.
rooms
.
join
.
at
(
room_id
);
EXPECT_EQ
(
room
.
ephemeral
.
typing
.
size
(),
0
);
});
...
...
@@ -595,15 +575,12 @@ TEST(ClientAPI, SendMessages)
auto
alice
=
std
::
make_shared
<
Client
>
(
"localhost"
);
auto
bob
=
std
::
make_shared
<
Client
>
(
"localhost"
);
alice
->
login
(
"alice"
,
"secret"
,
[
alice
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
alice
->
login
(
"alice"
,
"secret"
,
[
alice
](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
});
bob
->
login
(
"bob"
,
"secret"
,
[
bob
](
const
mtx
::
responses
::
Login
&
res
,
ErrType
err
)
{
boost
::
ignore_unused
(
res
);
ASSERT_FALSE
(
err
);
});
bob
->
login
(
"bob"
,
"secret"
,
[
bob
](
const
mtx
::
responses
::
Login
&
,
ErrType
err
)
{
check_error
(
err
);
});
while
(
alice
->
access_token
().
empty
()
&&
bob
->
access_token
().
empty
())
std
::
this_thread
::
sleep_for
(
std
::
chrono
::
milliseconds
(
100
));
...
...
@@ -611,12 +588,12 @@ TEST(ClientAPI, SendMessages)
mtx
::
requests
::
CreateRoom
req
;
req
.
invite
=
{
"@bob:localhost"
};
alice
->
create_room
(
req
,
[
alice
,
bob
](
const
mtx
::
responses
::
CreateRoom
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
auto
room_id
=
res
.
room_id
;
bob
->
join_room
(
res
.
room_id
,
[
alice
,
bob
,
room_id
](
const
nlohmann
::
json
&
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
// Flag to indicate when those messages would be ready to be read by
// alice.
...
...
@@ -631,7 +608,7 @@ TEST(ClientAPI, SendMessages)
text
,
[
&
event_ids
](
const
mtx
::
responses
::
EventId
&
res
,
ErrType
err
)
{
event_ids
.
push_back
(
res
.
event_id
.
toString
());
ASSERT_FALSE
(
err
);
check_error
(
err
);
});
mtx
::
events
::
msg
::
Emote
emote
;
...
...
@@ -643,7 +620,7 @@ TEST(ClientAPI, SendMessages)
emote
,
[
&
event_ids
](
const
mtx
::
responses
::
EventId
&
res
,
ErrType
err
)
{
event_ids
.
push_back
(
res
.
event_id
.
toString
());
ASSERT_FALSE
(
err
);
check_error
(
err
);
});
while
(
event_ids
.
size
()
!=
2
)
...
...
@@ -655,7 +632,7 @@ TEST(ClientAPI, SendMessages)
false
,
0
,
[
room_id
,
event_ids
](
const
mtx
::
responses
::
Sync
&
res
,
ErrType
err
)
{
ASSERT_FALSE
(
err
);
check_error
(
err
);
auto
ids
=
get_event_ids
(
res
.
rooms
.
join
.
at
(
room_id
.
toString
()).
timeline
.
events
);
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment