Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/fix/17282
Conflicts: package.json src/components/views/spaces/SpacePanel.tsx src/i18n/strings/en_EN.json src/stores/SpaceStore.tsx yarn.lock
This commit is contained in:
@@ -30,9 +30,7 @@ function createFailedDecryptionEvent() {
|
||||
const event = new MatrixEvent({
|
||||
event_id: "event-id-" + Math.random().toString(16).slice(2),
|
||||
});
|
||||
event._setClearData(
|
||||
event._badEncryptedMessage(":("),
|
||||
);
|
||||
event.setClearData(event.badEncryptedMessage(":("));
|
||||
return event;
|
||||
}
|
||||
|
||||
@@ -67,7 +65,7 @@ describe('DecryptionFailureTracker', function() {
|
||||
tracker.eventDecrypted(decryptedEvent, err);
|
||||
|
||||
// Indicate successful decryption: clear data can be anything where the msgtype is not m.bad.encrypted
|
||||
decryptedEvent._setClearData({});
|
||||
decryptedEvent.setClearData({});
|
||||
tracker.eventDecrypted(decryptedEvent, null);
|
||||
|
||||
// Pretend "now" is Infinity
|
||||
|
||||
@@ -42,7 +42,7 @@ import DMRoomMap from "../../../src/utils/DMRoomMap";
|
||||
configure({ adapter: new Adapter() });
|
||||
|
||||
let client;
|
||||
const room = new Matrix.Room();
|
||||
const room = new Matrix.Room("!roomId:server_name");
|
||||
|
||||
// wrap MessagePanel with a component which provides the MatrixClient in the context.
|
||||
class WrappedMessagePanel extends React.Component {
|
||||
|
||||
@@ -20,9 +20,11 @@ const acceptInvite = require('../usecases/accept-invite');
|
||||
const {receiveMessage} = require('../usecases/timeline');
|
||||
const {createDm} = require('../usecases/create-room');
|
||||
const {checkRoomSettings} = require('../usecases/room-settings');
|
||||
const {startSasVerifcation, acceptSasVerification} = require('../usecases/verify');
|
||||
const {startSasVerification, acceptSasVerification} = require('../usecases/verify');
|
||||
const { setupSecureBackup } = require('../usecases/security');
|
||||
const assert = require('assert');
|
||||
const { measureStart, measureStop } = require('../util');
|
||||
|
||||
|
||||
module.exports = async function e2eEncryptionScenarios(alice, bob) {
|
||||
console.log(" creating an e2e encrypted DM and join through invite:");
|
||||
@@ -31,12 +33,14 @@ module.exports = async function e2eEncryptionScenarios(alice, bob) {
|
||||
await acceptInvite(alice, 'bob');
|
||||
// do sas verifcation
|
||||
bob.log.step(`starts SAS verification with ${alice.username}`);
|
||||
const bobSasPromise = startSasVerifcation(bob, alice.username);
|
||||
await measureStart(bob, "mx_VerifyE2EEUser");
|
||||
const bobSasPromise = startSasVerification(bob, alice.username);
|
||||
const aliceSasPromise = acceptSasVerification(alice, bob.username);
|
||||
// wait in parallel, so they don't deadlock on each other
|
||||
// the logs get a bit messy here, but that's fine enough for debugging (hopefully)
|
||||
const [bobSas, aliceSas] = await Promise.all([bobSasPromise, aliceSasPromise]);
|
||||
assert.deepEqual(bobSas, aliceSas);
|
||||
await measureStop(bob, "mx_VerifyE2EEUser");
|
||||
bob.log.done(`done (match for ${bobSas.join(", ")})`);
|
||||
const aliceMessage = "Guess what I just heard?!";
|
||||
await sendMessage(alice, aliceMessage);
|
||||
|
||||
@@ -15,6 +15,8 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
const { measureStart, measureStop } = require('../util');
|
||||
|
||||
async function openRoomDirectory(session) {
|
||||
const roomDirectoryButton = await session.query('.mx_LeftPanel_exploreButton');
|
||||
await roomDirectoryButton.click();
|
||||
@@ -52,6 +54,8 @@ async function createRoom(session, roomName, encrypted=false) {
|
||||
async function createDm(session, invitees) {
|
||||
session.log.step(`creates DM with ${JSON.stringify(invitees)}`);
|
||||
|
||||
await measureStart(session, "mx_CreateDM");
|
||||
|
||||
const dmsSublist = await findSublist(session, "people");
|
||||
const startChatButton = await dmsSublist.$(".mx_RoomSublist_auxButton");
|
||||
await startChatButton.click();
|
||||
@@ -76,6 +80,8 @@ async function createDm(session, invitees) {
|
||||
|
||||
await session.query('.mx_MessageComposer');
|
||||
session.log.done();
|
||||
|
||||
await measureStop(session, "mx_CreateDM");
|
||||
}
|
||||
|
||||
module.exports = {openRoomDirectory, findSublist, createRoom, createDm};
|
||||
|
||||
@@ -16,9 +16,12 @@ limitations under the License.
|
||||
*/
|
||||
|
||||
const {openRoomDirectory} = require('./create-room');
|
||||
const { measureStart, measureStop } = require('../util');
|
||||
|
||||
|
||||
module.exports = async function join(session, roomName) {
|
||||
session.log.step(`joins room "${roomName}"`);
|
||||
await measureStart(session, "mx_JoinRoom");
|
||||
await openRoomDirectory(session);
|
||||
const roomInput = await session.query('.mx_DirectorySearchBox input');
|
||||
await session.replaceInputText(roomInput, roomName);
|
||||
@@ -26,5 +29,6 @@ module.exports = async function join(session, roomName) {
|
||||
const joinFirstLink = await session.query('.mx_RoomDirectory_table .mx_RoomDirectory_join .mx_AccessibleButton');
|
||||
await joinFirstLink.click();
|
||||
await session.query('.mx_MessageComposer');
|
||||
await measureStop(session, "mx_JoinRoom");
|
||||
session.log.done();
|
||||
};
|
||||
|
||||
@@ -74,7 +74,7 @@ async function doSasVerification(session) {
|
||||
return sasCodes;
|
||||
}
|
||||
|
||||
module.exports.startSasVerifcation = async function(session, name) {
|
||||
module.exports.startSasVerification = async function(session, name) {
|
||||
session.log.startGroup("starts verification");
|
||||
await startVerification(session, name);
|
||||
|
||||
|
||||
@@ -26,3 +26,15 @@ module.exports.range = function(start, amount, step = 1) {
|
||||
module.exports.delay = function(ms) {
|
||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||
};
|
||||
|
||||
module.exports.measureStart = function(session, name) {
|
||||
return session.page.evaluate(_name => {
|
||||
window.mxPerformanceMonitor.start(_name);
|
||||
}, name);
|
||||
};
|
||||
|
||||
module.exports.measureStop = function(session, name) {
|
||||
return session.page.evaluate(_name => {
|
||||
window.mxPerformanceMonitor.stop(_name);
|
||||
}, name);
|
||||
};
|
||||
|
||||
@@ -79,7 +79,7 @@ async function runTests() {
|
||||
await new Promise((resolve) => setTimeout(resolve, 5 * 60 * 1000));
|
||||
}
|
||||
|
||||
const performanceEntries = {};
|
||||
let performanceEntries;
|
||||
|
||||
await Promise.all(sessions.map(async (session) => {
|
||||
// Collecting all performance monitoring data before closing the session
|
||||
@@ -88,6 +88,10 @@ async function runTests() {
|
||||
window.mxPerformanceMonitor.addPerformanceDataCallback({
|
||||
entryNames: [
|
||||
window.mxPerformanceEntryNames.REGISTER,
|
||||
window.mxPerformanceEntryNames.LOGIN,
|
||||
window.mxPerformanceEntryNames.JOIN_ROOM,
|
||||
window.mxPerformanceEntryNames.CREATE_DM,
|
||||
window.mxPerformanceEntryNames.VERIFY_E2EE_USER,
|
||||
],
|
||||
callback: (events) => {
|
||||
measurements = JSON.stringify(events);
|
||||
@@ -95,7 +99,11 @@ async function runTests() {
|
||||
}, true);
|
||||
return measurements;
|
||||
});
|
||||
performanceEntries[session.username] = JSON.parse(measurements);
|
||||
|
||||
/**
|
||||
* TODO: temporary only use one user session data
|
||||
*/
|
||||
performanceEntries = JSON.parse(measurements);
|
||||
return session.close();
|
||||
}));
|
||||
fs.writeFileSync(`performance-entries.json`, JSON.stringify(performanceEntries));
|
||||
|
||||
@@ -123,8 +123,15 @@ describe("SpaceStore", () => {
|
||||
jest.runAllTimers();
|
||||
client.getVisibleRooms.mockReturnValue(rooms = []);
|
||||
getValue.mockImplementation(settingName => {
|
||||
if (settingName === "feature_spaces") {
|
||||
return true;
|
||||
switch (settingName) {
|
||||
case "feature_spaces":
|
||||
return true;
|
||||
case "feature_spaces.all_rooms":
|
||||
return true;
|
||||
case "feature_spaces.space_member_dms":
|
||||
return true;
|
||||
case "feature_spaces.space_dm_badges":
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user