* Fix a flaky cypress crypto test
We need to be a bit proactive to get existing shields to update when a device
is deleted.
* Handle different text between rust and legacy crypto
* Use new crypto-api for cross user verification
* update verification flow with new APIs
* Replace some calls to `checkUserTrust`
A start on https://github.com/vector-im/crypto-internal/issues/147
* Enable cypress tests
* update tests
* Delegate decisions on event shields to the js-sdk
* rerender after editing events
This is required because a transition from "valid event" to "unencrypted event"
no longer triggers a state change, so the component does not render
itself. Previously, this would be a transition from `verified:
E2EState.Normal` to `verified: null`.
* Update tests
* prettier
* Test coverage
* Enable cypress tests for shields with rust crypto
---------
Co-authored-by: Florian Duros <florianduros@element.io>
* Use new crypto-api for cross user verification
* update verification flow with new APIs
* Replace some calls to `checkUserTrust`
A start on https://github.com/vector-im/crypto-internal/issues/147
* Enable cypress tests
* update tests
* Delegate decisions on event shields to the js-sdk
* rerender after editing events
This is required because a transition from "valid event" to "unencrypted event"
no longer triggers a state change, so the component does not render
itself. Previously, this would be a transition from `verified:
E2EState.Normal` to `verified: null`.
* Update tests
* prettier
* Test coverage
---------
Co-authored-by: Florian Duros <florianduros@element.io>
There is a little-known feature where, if you have verified a user (eg, via the
emoji game), then when you mouse-over a message that they sent, it gets a green
highlight.
We also show a brown bar sometimes, and according to the CSS there may be a
yellow bar too?
Very few people seem to know this exists, and even if you do know it exists
nobody seems to understand what exactly the various colours are supposed to be.
So, rather than porting this magic mystery feature to Rust Crypto, let's rip it
out.
* Update all non-major dependencies
* Add isLocation to ComposerEvent analytics events
* Remove cypress-each as it is incompatible with modern typescript
* Roll back eslint-plugin-deprecate
* Remove stale comment
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Cypress: `crypto.verification.request` -> `crypto.verificationRequestReceived`
matrix-org/matrix-js-sdk#3514 deprecated crypto.verification.request.
* Cypress: `beginKeyVerification` -> `startVerification`
matrix-org/matrix-js-sdk#3528 deprecated beginKeyVerification
* simplify `setupBotClient`
no functional change here, just combining the various `cy.wrap()`ed things into
a single async func
* Cypress: Use Rust crypto for the bot user in verification tests
We can already start using the Rust crypto implementation for the "bot" user in
the verification tests!
* Cypress: move verification tests to their own file
* Remove redundant cypress test
This does nothing that the verification test doesn't do better.
* Factor `beginKeyVerification` call out of `doTwoWaySasVerification`
... for more flexibility. This allows us to have tests where the other side
picks the verification method.
* Cypress test for incoming verification requests
* Update references to `VerificationRequestEvent`
* Update references to `Phase`
* update references to legacy `PHASE_*` constants
* Replace `request.canAccept` with `canAcceptVerificationRequest`
* Replace `VerificationRequest` with the interface throughout
* Minor strict type fixes
* Add a couple of tests
* Add WIP Sas cross-signing test
* Login after bot creation
* Figuring out how to make it work in ci
* Wait for `r0/login` to be called before bot creation
* Make waitForVerificationRequest automatically accept requests
... thereby making the `acceptVerificationRequest` helper redundant
* Clean up `deviceIsCrossSigned`
* combine `handleVerificationRequest` and `verifyEmojiSas`
* get rid of a layer
... it adds no value
* fix bad merge
* minor cleanups to new test
* Move `logIntoElement` to utils module
* use `logIntoElement` function
* Avoid intercept
* Avoid `CryptoTestContext`
---------
Co-authored-by: Richard van der Hoff <richard@matrix.org>
* Cypress: skip tests known to fail when using Rust crypto
... which means we can then run the cypress test suite against Element Web R to
check we aren't introducing regressions.
* Update cypress/e2e/register/register.spec.ts
* Use env var to detect rust crypto
* Hoist `skipIfRustCrypto` call earlier
* Minimum hacks required to run cypress tests with dendrite
* Remove wget hack since dendrite containers now have curl
* Add basic dendritedocker plugin & hack into login spec for testing
* Add generic HomeserverInstance interface
* Add env var to configure which homeserver to use
* Remove synapse specific homeserver support api
* Update the rest of the tests to use HomeserverInstance
* Update cypress docs to reference new homeserver abstraction
* Fix formatting issues
* Change dendrite to use main branch container