Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Matrix
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Container Registry
Model registry
Operate
Environments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
TeDomum
Matrix
Commits
988a8526
Commit
988a8526
authored
10 years ago
by
Kegan Dougal
Browse files
Options
Downloads
Patches
Plain Diff
Finish matrixService unit tests. Add missing encodeURIComponent to path args.
parent
0881a8ae
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
syweb/webclient/components/matrix/matrix-service.js
+6
-5
6 additions, 5 deletions
syweb/webclient/components/matrix/matrix-service.js
syweb/webclient/test/unit/matrix-service.spec.js
+228
-60
228 additions, 60 deletions
syweb/webclient/test/unit/matrix-service.spec.js
with
234 additions
and
65 deletions
syweb/webclient/components/matrix/matrix-service.js
+
6
−
5
View file @
988a8526
...
...
@@ -443,7 +443,8 @@ angular.module('matrixService', [])
redactEvent
:
function
(
room_id
,
event_id
)
{
var
path
=
"
/rooms/$room_id/redact/$event_id
"
;
path
=
path
.
replace
(
"
$room_id
"
,
room_id
);
path
=
path
.
replace
(
"
$room_id
"
,
encodeURIComponent
(
room_id
));
// TODO: encodeURIComponent when HS updated.
path
=
path
.
replace
(
"
$event_id
"
,
event_id
);
var
content
=
{};
return
doRequest
(
"
POST
"
,
path
,
undefined
,
content
);
...
...
@@ -461,7 +462,7 @@ angular.module('matrixService', [])
paginateBackMessages
:
function
(
room_id
,
from_token
,
limit
)
{
var
path
=
"
/rooms/$room_id/messages
"
;
path
=
path
.
replace
(
"
$room_id
"
,
room_id
);
path
=
path
.
replace
(
"
$room_id
"
,
encodeURIComponent
(
room_id
)
)
;
var
params
=
{
from
:
from_token
,
limit
:
limit
,
...
...
@@ -509,12 +510,12 @@ angular.module('matrixService', [])
setProfileInfo
:
function
(
data
,
info_segment
)
{
var
path
=
"
/profile/$user/
"
+
info_segment
;
path
=
path
.
replace
(
"
$user
"
,
config
.
user_id
);
path
=
path
.
replace
(
"
$user
"
,
encodeURIComponent
(
config
.
user_id
)
)
;
return
doRequest
(
"
PUT
"
,
path
,
undefined
,
data
);
},
getProfileInfo
:
function
(
userId
,
info_segment
)
{
var
path
=
"
/profile/
"
+
userId
var
path
=
"
/profile/
"
+
encodeURIComponent
(
userId
);
if
(
info_segment
)
path
+=
'
/
'
+
info_segment
;
return
doRequest
(
"
GET
"
,
path
);
},
...
...
@@ -633,7 +634,7 @@ angular.module('matrixService', [])
// Set the logged in user presence state
setUserPresence
:
function
(
presence
)
{
var
path
=
"
/presence/$user_id/status
"
;
path
=
path
.
replace
(
"
$user_id
"
,
config
.
user_id
);
path
=
path
.
replace
(
"
$user_id
"
,
encodeURIComponent
(
config
.
user_id
)
)
;
return
doRequest
(
"
PUT
"
,
path
,
undefined
,
{
presence
:
presence
});
...
...
This diff is collapsed.
Click to expand it.
syweb/webclient/test/unit/matrix-service.spec.js
+
228
−
60
View file @
988a8526
...
...
@@ -5,6 +5,11 @@ describe('MatrixService', function() {
var
URL
=
BASE
+
PREFIX
;
var
roomId
=
"
!wejigf387t34:matrix.org
"
;
var
CONFIG
=
{
access_token
:
"
foobar
"
,
homeserver
:
BASE
};
beforeEach
(
module
(
'
matrixService
'
));
beforeEach
(
inject
(
function
(
$rootScope
,
$httpBackend
)
{
...
...
@@ -19,10 +24,7 @@ describe('MatrixService', function() {
it
(
'
should be able to POST /createRoom with an alias
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
({
access_token
:
"
foobar
"
,
homeserver
:
"
http://example.com
"
});
matrixService
.
setConfig
(
CONFIG
);
var
alias
=
"
flibble
"
;
matrixService
.
create
(
alias
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
({});
...
...
@@ -37,10 +39,7 @@ describe('MatrixService', function() {
}));
it
(
'
should be able to GET /initialSync
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
({
access_token
:
"
foobar
"
,
homeserver
:
"
http://example.com
"
});
matrixService
.
setConfig
(
CONFIG
);
var
limit
=
15
;
matrixService
.
initialSync
(
limit
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
([]);
...
...
@@ -54,10 +53,7 @@ describe('MatrixService', function() {
it
(
'
should be able to GET /rooms/$roomid/state
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
({
access_token
:
"
foobar
"
,
homeserver
:
"
http://example.com
"
});
matrixService
.
setConfig
(
CONFIG
);
matrixService
.
roomState
(
roomId
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
([]);
});
...
...
@@ -70,10 +66,7 @@ describe('MatrixService', function() {
}));
it
(
'
should be able to POST /join
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
({
access_token
:
"
foobar
"
,
homeserver
:
"
http://example.com
"
});
matrixService
.
setConfig
(
CONFIG
);
matrixService
.
joinAlias
(
roomId
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
({});
});
...
...
@@ -88,10 +81,7 @@ describe('MatrixService', function() {
it
(
'
should be able to POST /rooms/$roomid/join
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
({
access_token
:
"
foobar
"
,
homeserver
:
"
http://example.com
"
});
matrixService
.
setConfig
(
CONFIG
);
matrixService
.
join
(
roomId
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
({});
});
...
...
@@ -106,10 +96,7 @@ describe('MatrixService', function() {
it
(
'
should be able to POST /rooms/$roomid/invite
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
({
access_token
:
"
foobar
"
,
homeserver
:
"
http://example.com
"
});
matrixService
.
setConfig
(
CONFIG
);
var
inviteUserId
=
"
@user:example.com
"
;
matrixService
.
invite
(
roomId
,
inviteUserId
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
({});
...
...
@@ -127,10 +114,7 @@ describe('MatrixService', function() {
it
(
'
should be able to POST /rooms/$roomid/leave
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
({
access_token
:
"
foobar
"
,
homeserver
:
"
http://example.com
"
});
matrixService
.
setConfig
(
CONFIG
);
matrixService
.
leave
(
roomId
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
({});
});
...
...
@@ -145,10 +129,7 @@ describe('MatrixService', function() {
it
(
'
should be able to POST /rooms/$roomid/ban
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
({
access_token
:
"
foobar
"
,
homeserver
:
"
http://example.com
"
});
matrixService
.
setConfig
(
CONFIG
);
var
userId
=
"
@example:example.com
"
;
var
reason
=
"
Because.
"
;
matrixService
.
ban
(
roomId
,
userId
,
reason
).
then
(
function
(
response
)
{
...
...
@@ -168,10 +149,7 @@ describe('MatrixService', function() {
it
(
'
should be able to GET /directory/room/$alias
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
({
access_token
:
"
foobar
"
,
homeserver
:
"
http://example.com
"
});
matrixService
.
setConfig
(
CONFIG
);
var
alias
=
"
#test:example.com
"
;
var
roomId
=
"
!wefuhewfuiw:example.com
"
;
matrixService
.
resolveRoomAlias
(
alias
).
then
(
function
(
response
)
{
...
...
@@ -190,10 +168,7 @@ describe('MatrixService', function() {
}));
it
(
'
should be able to send m.room.name
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
({
access_token
:
"
foobar
"
,
homeserver
:
"
http://example.com
"
});
matrixService
.
setConfig
(
CONFIG
);
var
roomId
=
"
!fh38hfwfwef:example.com
"
;
var
name
=
"
Room Name
"
;
matrixService
.
setName
(
roomId
,
name
).
then
(
function
(
response
)
{
...
...
@@ -211,10 +186,7 @@ describe('MatrixService', function() {
}));
it
(
'
should be able to send m.room.topic
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
({
access_token
:
"
foobar
"
,
homeserver
:
"
http://example.com
"
});
matrixService
.
setConfig
(
CONFIG
);
var
roomId
=
"
!fh38hfwfwef:example.com
"
;
var
topic
=
"
A room topic can go here.
"
;
matrixService
.
setTopic
(
roomId
,
topic
).
then
(
function
(
response
)
{
...
...
@@ -233,10 +205,7 @@ describe('MatrixService', function() {
it
(
'
should be able to send generic state events without a state key
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
({
access_token
:
"
foobar
"
,
homeserver
:
"
http://example.com
"
});
matrixService
.
setConfig
(
CONFIG
);
var
roomId
=
"
!fh38hfwfwef:example.com
"
;
var
eventType
=
"
com.example.events.test
"
;
var
content
=
{
...
...
@@ -259,10 +228,7 @@ describe('MatrixService', function() {
// 500 matrix.org
xit
(
'
should be able to send generic state events with a state key
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
({
access_token
:
"
foobar
"
,
homeserver
:
"
http://example.com
"
});
matrixService
.
setConfig
(
CONFIG
);
var
roomId
=
"
!fh38hfwfwef:example.com
"
;
var
eventType
=
"
com.example.events.test:special@characters
"
;
var
content
=
{
...
...
@@ -285,10 +251,7 @@ describe('MatrixService', function() {
it
(
'
should be able to PUT generic events
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
({
access_token
:
"
foobar
"
,
homeserver
:
"
http://example.com
"
});
matrixService
.
setConfig
(
CONFIG
);
var
roomId
=
"
!fh38hfwfwef:example.com
"
;
var
eventType
=
"
com.example.events.test
"
;
var
txnId
=
"
42
"
;
...
...
@@ -311,10 +274,7 @@ describe('MatrixService', function() {
it
(
'
should be able to PUT text messages
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
({
access_token
:
"
foobar
"
,
homeserver
:
"
http://example.com
"
});
matrixService
.
setConfig
(
CONFIG
);
var
roomId
=
"
!fh38hfwfwef:example.com
"
;
var
body
=
"
ABC 123
"
;
matrixService
.
sendTextMessage
(
roomId
,
body
).
then
(
...
...
@@ -333,4 +293,212 @@ describe('MatrixService', function() {
.
respond
({});
httpBackend
.
flush
();
}));
it
(
'
should be able to PUT emote messages
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
(
CONFIG
);
var
roomId
=
"
!fh38hfwfwef:example.com
"
;
var
body
=
"
ABC 123
"
;
matrixService
.
sendEmoteMessage
(
roomId
,
body
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
({});
});
httpBackend
.
expectPUT
(
new
RegExp
(
URL
+
"
/rooms/
"
+
encodeURIComponent
(
roomId
)
+
"
/send/m.room.message/(.*)
"
+
"
?access_token=foobar
"
),
{
body
:
body
,
msgtype
:
"
m.emote
"
})
.
respond
({});
httpBackend
.
flush
();
}));
it
(
'
should be able to POST redactions
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
(
CONFIG
);
var
roomId
=
"
!fh38hfwfwef:example.com
"
;
var
eventId
=
"
fwefwexample.com
"
;
matrixService
.
redactEvent
(
roomId
,
eventId
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
({});
});
httpBackend
.
expectPOST
(
URL
+
"
/rooms/
"
+
encodeURIComponent
(
roomId
)
+
"
/redact/
"
+
encodeURIComponent
(
eventId
)
+
"
?access_token=foobar
"
)
.
respond
({});
httpBackend
.
flush
();
}));
it
(
'
should be able to GET /directory/room/$alias
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
(
CONFIG
);
var
alias
=
"
#test:example.com
"
;
var
roomId
=
"
!wefuhewfuiw:example.com
"
;
matrixService
.
resolveRoomAlias
(
alias
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
({
room_id
:
roomId
});
});
httpBackend
.
expectGET
(
URL
+
"
/directory/room/
"
+
encodeURIComponent
(
alias
)
+
"
?access_token=foobar
"
)
.
respond
({
room_id
:
roomId
});
httpBackend
.
flush
();
}));
it
(
'
should be able to GET /rooms/$roomid/members
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
(
CONFIG
);
var
roomId
=
"
!wefuhewfuiw:example.com
"
;
matrixService
.
getMemberList
(
roomId
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
({});
});
httpBackend
.
expectGET
(
URL
+
"
/rooms/
"
+
encodeURIComponent
(
roomId
)
+
"
/members?access_token=foobar
"
)
.
respond
({});
httpBackend
.
flush
();
}));
it
(
'
should be able to paginate a room
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
(
CONFIG
);
var
roomId
=
"
!wefuhewfuiw:example.com
"
;
var
from
=
"
3t_44e_54z
"
;
var
limit
=
20
;
matrixService
.
paginateBackMessages
(
roomId
,
from
,
limit
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
({});
});
httpBackend
.
expectGET
(
URL
+
"
/rooms/
"
+
encodeURIComponent
(
roomId
)
+
"
/messages?access_token=foobar&dir=b&from=
"
+
encodeURIComponent
(
from
)
+
"
&limit=
"
+
limit
)
.
respond
({});
httpBackend
.
flush
();
}));
it
(
'
should be able to GET /publicRooms
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
(
CONFIG
);
matrixService
.
publicRooms
().
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
({});
});
httpBackend
.
expectGET
(
new
RegExp
(
URL
+
"
/publicRooms(.*)
"
))
.
respond
({});
httpBackend
.
flush
();
}));
it
(
'
should be able to GET /profile/$userid/displayname
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
(
CONFIG
);
var
userId
=
"
@foo:example.com
"
;
matrixService
.
getDisplayName
(
userId
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
({});
});
httpBackend
.
expectGET
(
URL
+
"
/profile/
"
+
encodeURIComponent
(
userId
)
+
"
/displayname?access_token=foobar
"
)
.
respond
({});
httpBackend
.
flush
();
}));
it
(
'
should be able to GET /profile/$userid/avatar_url
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
(
CONFIG
);
var
userId
=
"
@foo:example.com
"
;
matrixService
.
getProfilePictureUrl
(
userId
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
({});
});
httpBackend
.
expectGET
(
URL
+
"
/profile/
"
+
encodeURIComponent
(
userId
)
+
"
/avatar_url?access_token=foobar
"
)
.
respond
({});
httpBackend
.
flush
();
}));
it
(
'
should be able to PUT /profile/$me/avatar_url
'
,
inject
(
function
(
matrixService
)
{
var
testConfig
=
angular
.
copy
(
CONFIG
);
testConfig
.
user_id
=
"
@bob:example.com
"
;
matrixService
.
setConfig
(
testConfig
);
var
url
=
"
http://example.com/mypic.jpg
"
;
matrixService
.
setProfilePictureUrl
(
url
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
({});
});
httpBackend
.
expectPUT
(
URL
+
"
/profile/
"
+
encodeURIComponent
(
testConfig
.
user_id
)
+
"
/avatar_url?access_token=foobar
"
,
{
avatar_url
:
url
})
.
respond
({});
httpBackend
.
flush
();
}));
it
(
'
should be able to PUT /profile/$me/displayname
'
,
inject
(
function
(
matrixService
)
{
var
testConfig
=
angular
.
copy
(
CONFIG
);
testConfig
.
user_id
=
"
@bob:example.com
"
;
matrixService
.
setConfig
(
testConfig
);
var
displayname
=
"
Bob Smith
"
;
matrixService
.
setDisplayName
(
displayname
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
({});
});
httpBackend
.
expectPUT
(
URL
+
"
/profile/
"
+
encodeURIComponent
(
testConfig
.
user_id
)
+
"
/displayname?access_token=foobar
"
,
{
displayname
:
displayname
})
.
respond
({});
httpBackend
.
flush
();
}));
it
(
'
should be able to login with password
'
,
inject
(
function
(
matrixService
)
{
matrixService
.
setConfig
(
CONFIG
);
var
userId
=
"
@bob:example.com
"
;
var
password
=
"
monkey
"
;
matrixService
.
login
(
userId
,
password
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
({});
});
httpBackend
.
expectPOST
(
new
RegExp
(
URL
+
"
/login(.*)
"
),
{
user
:
userId
,
password
:
password
,
type
:
"
m.login.password
"
})
.
respond
({});
httpBackend
.
flush
();
}));
it
(
'
should be able to PUT presence status
'
,
inject
(
function
(
matrixService
)
{
var
testConfig
=
angular
.
copy
(
CONFIG
);
testConfig
.
user_id
=
"
@bob:example.com
"
;
matrixService
.
setConfig
(
testConfig
);
var
status
=
"
unavailable
"
;
matrixService
.
setUserPresence
(
status
).
then
(
function
(
response
)
{
expect
(
response
.
data
).
toEqual
({});
});
httpBackend
.
expectPUT
(
URL
+
"
/presence/
"
+
encodeURIComponent
(
testConfig
.
user_id
)
+
"
/status?access_token=foobar
"
,
{
presence
:
status
})
.
respond
({});
httpBackend
.
flush
();
}));
});
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