forked from matrix-org/matrix-react-sdk
-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add UIFeature.locationSharing to hide location sharing ([\matrix-org#10727](matrix-org#10727)). * Memoize field validation results ([\matrix-org#10714](matrix-org#10714)). * Commands for plain text editor ([\matrix-org#10567](matrix-org#10567)). Contributed by @alunturner. * Allow 16 lines of text in the rich text editors ([\matrix-org#10670](matrix-org#10670)). Contributed by @alunturner. * Bail out of `RoomSettingsDialog` when room is not found ([\matrix-org#10662](matrix-org#10662)). Contributed by @kerryarchibald. * Element-R: Populate device list for right-panel ([\matrix-org#10671](matrix-org#10671)). Contributed by @florianduros. * Make existing and new issue URLs configurable ([\matrix-org#10710](matrix-org#10710)). Fixes element-hq/element-web#24424. * Fix usages of ARIA tabpanel ([\matrix-org#10628](matrix-org#10628)). Fixes element-hq/element-web#25016. * Element-R: Starting a DMs with a user ([\matrix-org#10673](matrix-org#10673)). Contributed by @florianduros. * ARIA Accessibility improvements ([\matrix-org#10675](matrix-org#10675)). * ARIA Accessibility improvements ([\matrix-org#10674](matrix-org#10674)). * Add arrow key controls to emoji and reaction pickers ([\matrix-org#10637](matrix-org#10637)). Fixes element-hq/element-web#17189. * Translate credits in help about section ([\matrix-org#10676](matrix-org#10676)). * Fix: reveal images when image previews are disabled ([\matrix-org#10781](matrix-org#10781)). Fixes element-hq/element-web#25271. Contributed by @kerryarchibald. * Fix autocomplete not resetting properly on message send ([\matrix-org#10741](matrix-org#10741)). Fixes element-hq/element-web#25170. * Fix start_sso not working with guests disabled ([\matrix-org#10720](matrix-org#10720)). Fixes element-hq/element-web#16624. * Fix soft crash with Element call widgets ([\matrix-org#10684](matrix-org#10684)). * Send correct receipt when marking a room as read ([\matrix-org#10730](matrix-org#10730)). Fixes element-hq/element-web#25207. * Offload some more waveform processing onto a worker ([\matrix-org#9223](matrix-org#9223)). Fixes element-hq/element-web#19756. * Consolidate login errors ([\matrix-org#10722](matrix-org#10722)). Fixes element-hq/element-web#17520. * Fix all rooms search generating permalinks to wrong room id ([\matrix-org#10625](matrix-org#10625)). Fixes element-hq/element-web#25115. * Posthog properly handle Analytics ID changing from under us ([\matrix-org#10702](matrix-org#10702)). Fixes element-hq/element-web#25187. * Fix Clock being read as an absolute time rather than duration ([\matrix-org#10706](matrix-org#10706)). Fixes element-hq/element-web#22582. * Properly translate errors in `ChangePassword.tsx` so they show up translated to the user but not in our logs ([\matrix-org#10615](matrix-org#10615)). Fixes element-hq/element-web#9597. Contributed by @MadLittleMods. * Honour feature toggles in guest mode ([\matrix-org#10651](matrix-org#10651)). Fixes element-hq/element-web#24513. Contributed by @andybalaam. * Fix default content in devtools event sender ([\matrix-org#10699](matrix-org#10699)). Contributed by @tulir. * Fix a crash when a call ends while you're in it ([\matrix-org#10681](matrix-org#10681)). Fixes element-hq/element-web#25153. * Fix lack of screen reader indication when triggering auto complete ([\matrix-org#10664](matrix-org#10664)). Fixes element-hq/element-web#11011. * Fix typing tile duplicating users ([\matrix-org#10678](matrix-org#10678)). Fixes element-hq/element-web#25165. * Fix wrong room topic tooltip position ([\matrix-org#10667](matrix-org#10667)). Fixes element-hq/element-web#25158. * Fix create subspace dialog not working ([\matrix-org#10652](matrix-org#10652)). Fixes element-hq/element-web#24882.
- Loading branch information
Showing
437 changed files
with
10,244 additions
and
3,100 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
/* | ||
Copyright 2023 The Matrix.org Foundation C.I.C. | ||
Licensed under the Apache License, Version 2.0 (the "License"); | ||
you may not use this file except in compliance with the License. | ||
You may obtain a copy of the License at | ||
http://www.apache.org/licenses/LICENSE-2.0 | ||
Unless required by applicable law or agreed to in writing, software | ||
distributed under the License is distributed on an "AS IS" BASIS, | ||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
See the License for the specific language governing permissions and | ||
limitations under the License. | ||
*/ | ||
|
||
import type { VerificationRequest } from "matrix-js-sdk/src/crypto/verification/request/VerificationRequest"; | ||
import { HomeserverInstance } from "../../plugins/utils/homeserver"; | ||
import { handleVerificationRequest, waitForVerificationRequest } from "./utils"; | ||
import { CypressBot } from "../../support/bot"; | ||
|
||
describe("Complete security", () => { | ||
let homeserver: HomeserverInstance; | ||
|
||
beforeEach(() => { | ||
cy.startHomeserver("default").then((data) => { | ||
homeserver = data; | ||
}); | ||
// visit the login page of the app, to load the matrix sdk | ||
cy.visit("/#/login"); | ||
|
||
// wait for the page to load | ||
cy.window({ log: false }).should("have.property", "matrixcs"); | ||
}); | ||
|
||
afterEach(() => { | ||
cy.stopHomeserver(homeserver); | ||
}); | ||
|
||
it("should go straight to the welcome screen if we have no signed device", () => { | ||
const username = Cypress._.uniqueId("user_"); | ||
const password = "supersecret"; | ||
cy.registerUser(homeserver, username, password, "Jeff"); | ||
logIntoElement(homeserver.baseUrl, username, password); | ||
cy.findByText("Welcome Jeff"); | ||
}); | ||
|
||
it("should walk through device verification if we have a signed device", () => { | ||
// create a new user, and have it bootstrap cross-signing | ||
let botClient: CypressBot; | ||
cy.getBot(homeserver, { displayName: "Jeff" }) | ||
.then(async (bot) => { | ||
botClient = bot; | ||
await bot.bootstrapCrossSigning({}); | ||
}) | ||
.then(() => { | ||
// now log in, in Element. We go in through the login page because otherwise the device setup flow | ||
// doesn't get triggered | ||
console.log("%cAccount set up; logging in user", "font-weight: bold; font-size:x-large"); | ||
logIntoElement(homeserver.baseUrl, botClient.getSafeUserId(), botClient.__cypress_password); | ||
|
||
// we should see a prompt for a device verification | ||
cy.findByRole("heading", { name: "Verify this device" }); | ||
const botVerificationRequestPromise = waitForVerificationRequest(botClient); | ||
cy.findByRole("button", { name: "Verify with another device" }).click(); | ||
|
||
// accept the verification request on the "bot" side | ||
cy.wrap(botVerificationRequestPromise).then(async (verificationRequest: VerificationRequest) => { | ||
await verificationRequest.accept(); | ||
await handleVerificationRequest(verificationRequest); | ||
}); | ||
|
||
// confirm that the emojis match | ||
cy.findByRole("button", { name: "They match" }).click(); | ||
|
||
// we should get the confirmation box | ||
cy.findByText(/You've successfully verified/); | ||
|
||
cy.findByRole("button", { name: "Got it" }).click(); | ||
}); | ||
}); | ||
}); | ||
|
||
/** | ||
* Fill in the login form in element with the given creds | ||
*/ | ||
function logIntoElement(homeserverUrl: string, username: string, password: string) { | ||
cy.visit("/#/login"); | ||
|
||
// select homeserver | ||
cy.findByRole("button", { name: "Edit" }).click(); | ||
cy.findByRole("textbox", { name: "Other homeserver" }).type(homeserverUrl); | ||
cy.findByRole("button", { name: "Continue" }).click(); | ||
|
||
// wait for the dialog to go away | ||
cy.get(".mx_ServerPickerDialog").should("not.exist"); | ||
|
||
cy.findByRole("textbox", { name: "Username" }).type(username); | ||
cy.findByPlaceholderText("Password").type(password); | ||
cy.findByRole("button", { name: "Sign in" }).click(); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.