diff --git a/spec/unit/content-repo.spec.js b/spec/unit/content-repo.spec.js index db96728e6..b55055684 100644 --- a/spec/unit/content-repo.spec.js +++ b/spec/unit/content-repo.spec.js @@ -1,4 +1,4 @@ -import * as ContentRepo from "../../src/content-repo"; +import {getHttpUriForMxc, getIdenticonUri} from "../../src/content-repo"; describe("ContentRepo", function() { const baseUrl = "https://my.home.server"; @@ -7,7 +7,7 @@ describe("ContentRepo", function() { it("should do nothing to HTTP URLs when allowing direct links", function() { const httpUrl = "http://example.com/image.jpeg"; expect( - ContentRepo.getHttpUriForMxc( + getHttpUriForMxc( baseUrl, httpUrl, undefined, undefined, undefined, true, ), ).toEqual(httpUrl); @@ -15,25 +15,25 @@ describe("ContentRepo", function() { it("should return the empty string HTTP URLs by default", function() { const httpUrl = "http://example.com/image.jpeg"; - expect(ContentRepo.getHttpUriForMxc(baseUrl, httpUrl)).toEqual(""); + expect(getHttpUriForMxc(baseUrl, httpUrl)).toEqual(""); }); it("should return a download URL if no width/height/resize are specified", function() { const mxcUri = "mxc://server.name/resourceid"; - expect(ContentRepo.getHttpUriForMxc(baseUrl, mxcUri)).toEqual( + expect(getHttpUriForMxc(baseUrl, mxcUri)).toEqual( baseUrl + "/_matrix/media/r0/download/server.name/resourceid", ); }); it("should return the empty string for null input", function() { - expect(ContentRepo.getHttpUriForMxc(null)).toEqual(""); + expect(getHttpUriForMxc(null)).toEqual(""); }); it("should return a thumbnail URL if a width/height/resize is specified", function() { const mxcUri = "mxc://server.name/resourceid"; - expect(ContentRepo.getHttpUriForMxc(baseUrl, mxcUri, 32, 64, "crop")).toEqual( + expect(getHttpUriForMxc(baseUrl, mxcUri, 32, 64, "crop")).toEqual( baseUrl + "/_matrix/media/r0/thumbnail/server.name/resourceid" + "?width=32&height=64&method=crop", ); @@ -42,7 +42,7 @@ describe("ContentRepo", function() { it("should put fragments from mxc:// URIs after any query parameters", function() { const mxcUri = "mxc://server.name/resourceid#automade"; - expect(ContentRepo.getHttpUriForMxc(baseUrl, mxcUri, 32)).toEqual( + expect(getHttpUriForMxc(baseUrl, mxcUri, 32)).toEqual( baseUrl + "/_matrix/media/r0/thumbnail/server.name/resourceid" + "?width=32#automade", ); @@ -51,7 +51,7 @@ describe("ContentRepo", function() { it("should put fragments from mxc:// URIs at the end of the HTTP URI", function() { const mxcUri = "mxc://server.name/resourceid#automade"; - expect(ContentRepo.getHttpUriForMxc(baseUrl, mxcUri)).toEqual( + expect(getHttpUriForMxc(baseUrl, mxcUri)).toEqual( baseUrl + "/_matrix/media/r0/download/server.name/resourceid#automade", ); }); @@ -59,25 +59,25 @@ describe("ContentRepo", function() { describe("getIdenticonUri", function() { it("should do nothing for null input", function() { - expect(ContentRepo.getIdenticonUri(null)).toEqual(null); + expect(getIdenticonUri(null)).toEqual(null); }); it("should set w/h by default to 96", function() { - expect(ContentRepo.getIdenticonUri(baseUrl, "foobar")).toEqual( + expect(getIdenticonUri(baseUrl, "foobar")).toEqual( baseUrl + "/_matrix/media/unstable/identicon/foobar" + "?width=96&height=96", ); }); it("should be able to set custom w/h", function() { - expect(ContentRepo.getIdenticonUri(baseUrl, "foobar", 32, 64)).toEqual( + expect(getIdenticonUri(baseUrl, "foobar", 32, 64)).toEqual( baseUrl + "/_matrix/media/unstable/identicon/foobar" + "?width=32&height=64", ); }); it("should URL encode the identicon string", function() { - expect(ContentRepo.getIdenticonUri(baseUrl, "foo#bar", 32, 64)).toEqual( + expect(getIdenticonUri(baseUrl, "foo#bar", 32, 64)).toEqual( baseUrl + "/_matrix/media/unstable/identicon/foo%23bar" + "?width=32&height=64", ); diff --git a/src/client.js b/src/client.js index 04158dd64..b5a1bf881 100644 --- a/src/client.js +++ b/src/client.js @@ -36,7 +36,7 @@ import {createNewMatrixCall} from "./webrtc/call"; import * as utils from './utils'; import {sleep} from './utils'; import {MatrixError, PREFIX_MEDIA_R0, PREFIX_UNSTABLE} from "./http-api"; -import * as contentRepo from "./content-repo"; +import {getHttpUriForMxc} from "./content-repo"; import * as ContentHelpers from "./content-helpers"; import * as olmlib from "./crypto/olmlib"; import {ReEmitter} from './ReEmitter'; @@ -3132,7 +3132,7 @@ MatrixClient.prototype.setAvatarUrl = function(url, callback) { */ MatrixClient.prototype.mxcUrlToHttp = function(mxcUrl, width, height, resizeMethod, allowDirectLinks) { - return contentRepo.getHttpUriForMxc( + return getHttpUriForMxc( this.baseUrl, mxcUrl, width, height, resizeMethod, allowDirectLinks, ); }; diff --git a/src/matrix.js b/src/matrix.js index a5e76ebad..57d940ad4 100644 --- a/src/matrix.js +++ b/src/matrix.js @@ -44,8 +44,8 @@ export * from "./store/indexeddb"; export * from "./store/session/webstorage"; export * from "./crypto/store/memory-crypto-store"; export * from "./crypto/store/indexeddb-crypto-store"; +export * from "./content-repo"; export const ContentHelpers = import("./content-helpers"); -export const ContentRepo = import("./content-repo"); export { createNewMatrixCall, setAudioOutput as setMatrixCallAudioOutput, diff --git a/src/models/room-member.js b/src/models/room-member.js index fb53f5614..8fd07ebae 100644 --- a/src/models/room-member.js +++ b/src/models/room-member.js @@ -20,7 +20,7 @@ limitations under the License. */ import {EventEmitter} from "events"; -import * as ContentRepo from "../content-repo"; +import {getHttpUriForMxc, getIdenticonUri} from "../content-repo"; import * as utils from "../utils"; /** @@ -269,13 +269,13 @@ RoomMember.prototype.getAvatarUrl = if (!rawUrl && !allowDefault) { return null; } - const httpUrl = ContentRepo.getHttpUriForMxc( + const httpUrl = getHttpUriForMxc( baseUrl, rawUrl, width, height, resizeMethod, allowDirectLinks, ); if (httpUrl) { return httpUrl; } else if (allowDefault) { - return ContentRepo.getIdenticonUri( + return getIdenticonUri( baseUrl, this.userId, width, height, ); } diff --git a/src/models/room.js b/src/models/room.js index fae36d2ca..62fdbb86a 100644 --- a/src/models/room.js +++ b/src/models/room.js @@ -23,7 +23,7 @@ limitations under the License. import {EventEmitter} from "events"; import {EventTimelineSet} from "./event-timeline-set"; import {EventTimeline} from "./event-timeline"; -import * as ContentRepo from "../content-repo"; +import {getHttpUriForMxc, getIdenticonUri} from "../content-repo"; import * as utils from "../utils"; import {EventStatus, MatrixEvent} from "./event"; import {RoomMember} from "./room-member"; @@ -811,11 +811,11 @@ Room.prototype.getAvatarUrl = function(baseUrl, width, height, resizeMethod, const mainUrl = roomAvatarEvent ? roomAvatarEvent.getContent().url : null; if (mainUrl) { - return ContentRepo.getHttpUriForMxc( + return getHttpUriForMxc( baseUrl, mainUrl, width, height, resizeMethod, ); } else if (allowDefault) { - return ContentRepo.getIdenticonUri( + return getIdenticonUri( baseUrl, this.roomId, width, height, ); }