Skip to content
Snippets Groups Projects
Commit 988a8526 authored by Kegan Dougal's avatar Kegan Dougal
Browse files

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
......@@ -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();
}));
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment