mirror of
https://github.com/element-hq/synapse.git
synced 2024-12-14 11:57:44 +00:00
Finish matrixService unit tests. Add missing encodeURIComponent to path args.
This commit is contained in:
parent
0881a8ae6f
commit
988a8526b5
2 changed files with 234 additions and 65 deletions
|
@ -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
|
||||
});
|
||||
|
|
|
@ -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();
|
||||
}));
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue