Commit graph

41 commits

Author SHA1 Message Date
Benoit Marty
faa97ff2f1 Update wording from "Enter recovery key" to "Use recovery key" 2026-03-16 17:19:49 +01:00
Jorge Martin Espinosa
6bdb9c7c52
Fix Maestro tests again (#6167)
* Increase the timeout for asserting 'Be in your element' is visible

* Disable the chrome onboarding flow. This simplifies the code a lot and helps avoid corner cases.

* More delays with timeout!

* Add more info to the summary, specially when the tests fail, so we can quickly check what failed.

* Make sure Maestro tests can't run in parallel, but APK builds can
2026-02-12 16:24:19 +01:00
Jorge Martin Espinosa
9536afe3dc
Try fixing Maestro tests (again) (#6149)
* Try fixing Maestro tests again: they fail when creating a room because the texts have changed

* Try using a retry on the webview before the login so we skip Chrome's setup

* Try handling edge case when leaving a room does not remove the screen
2026-02-06 12:29:37 +01:00
Andy Balaam
7ce9dc1461
Update the strings for the device verification flow (#5419)
* Update the strings for the device verification flow

Part of https://github.com/element-hq/element-meta/issues/2898
2025-09-29 16:42:10 +01:00
Jorge Martin Espinosa
c2e28f5fbc
Maestro: fix MAS and EC breaking the tests (#4762) 2025-05-22 22:31:51 +02:00
Benoit Marty
38ad415ab5
Ensure the CI is marked as failed when Maestro test is failing (#4700)
* Ensure the CI is marked as failed when Maestro test is failing

* Fix typo in String to disable bookmark in ChromeCustomTab

* Fix Maestro test now that matrix.org is using MAS to authenticate.

* Fix Maestro test - other issues due to recent changes.

* Maestro: add test on Element Call

* Run through Chrome on boarding step.

* Try suggestion from https://github.com/mobile-dev-inc/Maestro/issues/1126#issuecomment-2842220361

* Revert "Try suggestion from https://github.com/mobile-dev-inc/Maestro/issues/1126#issuecomment-2842220361"

This reverts commit d400644622c1a240deb61040f9095e3221e07f21.

* Add comment on Maestro flow.
2025-05-15 17:14:41 +02:00
Jorge Martin Espinosa
271f032d95
Test using Maestro CLI + emulator instead of Cloud (#4092)
Add Maestro local CI workflow:
- Remove previous Maestro Cloud.
- Use an emulator with Pixel 7 Pro - API 35.
- Allow to record several videos in the background to verify the run.
- Upload test results.
- Allow either dispatching a new flow, running the 'build apk' job or run with a PR after the 'Build APK' flow has succeeded.
2025-01-07 14:05:14 +01:00
Benoit Marty
34a9bdecd2 Increase Maestro timeout when verifying session. 2024-06-04 16:06:02 +02:00
Jorge Martin Espinosa
c8bd04ceb1
Sign in with QR code (#2793)
* Add QR code login.
* Add FF to disable it in release mode.
* Force portrait orientation on the login flow.
* Create `NumberedList` UI components.
* Improve camera permission dialog.
* Make nodes in qrcode feature use `QrCodeLoginScope` instead of `AppScope`
* Bump SDK version.
* Fix maestro tests

---------

Co-authored-by: Benoit Marty <benoit@matrix.org>
Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-05-31 14:38:27 +02:00
Jorge Martin Espinosa
cf072fa1e1
Improve session recovery screens (#2657)
* Improve enter recovery key screen UI

* Add instructions to reset the encryption of the logged in account.

* Update screenshots

* Fix maestro flow

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-04-09 17:01:06 +00:00
Jorge Martin Espinosa
1045f99d18
Add SessionData.needsVerification field (#2672)
* Add `SessionData.needsVerification`:
  - Allows us to add a skip button for debug builds.
  - We can have the verification state almost instantly.
  - It doesn't depend on network availability to know the verification state and display the UI.
* Add DB migration.
- Make the skip button in the verification flow skip the whole flow including the completed screen.
- Save the session as verified in `RustEncryptionService.recover(recoveryKey)`.
* Enforce session verification for existing users too.
* Fix verification confirmed screen subtitle (typo in id, was using the wrong string)
* Update screenshots

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-04-09 17:28:12 +02:00
Jorge Martin Espinosa
41287c5f59
Move session verification to FTUE flow, make it mandatory (#2594)
* Move session verification to the FTUE
* Allow session verification flow to be restarted
* Use `EncryptionService` to display session verification faster
* Remove session verification item from settings
* Remove session verification banner from room list
* Remove 'verification needed' variant from the `TimelineEncryptedHistoryBanner`
* Improve verification flow UI and UX
* Remove 'verification successful' snackbar message
* Only register push provider after the session has been verified
* Hide room list while the session hasn't been verified
* Prevent deep links from changing the navigation if the session isn't verified
* Update screenshots
* Renamed `FtueState` to `FtueService`, created an actual `FtueState`.

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-04-03 14:53:17 +00:00
Jorge Martín
cfbff78667 Fix Maestro 2024-03-21 16:27:03 +01:00
Benoit Marty
3543d9398e Add TestTag to the Recovery key field. 2024-02-22 10:25:47 +01:00
Benoit Marty
335c0aee33 Add Maestro test to verify the session using recovery key. 2024-02-22 09:53:12 +01:00
Benoit Marty
15728d6b58 Add prefix MAESTRO_ to Maestro env variable. 2024-02-22 09:29:05 +01:00
Benoit Marty
076b487a0a Fix Maestro 2023-12-26 16:55:58 +01:00
Benoit Marty
1593c66cba Replace test of server without sliding sync with test of homeserver resolution. 2023-12-14 15:34:57 +01:00
Benoit Marty
548bf99c80 Fix Maestro (do not rely on text) 2023-11-02 11:57:11 +01:00
Benoit Marty
fec3f93bad Fix maestro test: chat backup is disabled by default. 2023-11-02 11:23:10 +01:00
Benoit Marty
23cf703925 Fix maestro test. 2023-11-02 09:23:07 +01:00
Benoit Marty
f736152945 Fix Maestro test 2023-10-30 12:41:16 +01:00
Benoit Marty
9807ebf649 Secure backup 2023-10-27 12:18:40 +02:00
Benoit Marty
d94cc58303 Maestro test: change server to test (one of our) server which does not support sliding sync. (#1066) 2023-10-03 10:39:59 +02:00
Benoit Marty
e65f160b13 Maestro test: change server (again) to test server which does not support sliding sync. (#1066) 2023-10-02 17:39:23 +02:00
Benoit Marty
c6d68e8392 Maestro cli 1.32.0 does not like integer with this format :/ 2023-09-13 13:49:08 +02:00
Benoit Marty
9bce5a1968 Maestro test: add assertion for server with no sliding sync error. 2023-08-17 16:18:37 +02:00
Benoit Marty
76c138580c Maestro test: change server to test server which does not support sliding sync. (#1066) 2023-08-17 16:18:37 +02:00
Jorge Martin Espinosa
2488432805
Hide encryption history + FTUE flow (#839)
* First attempt at implementing encrypted history banner and removing old UTDs

* Get the right behavior in the timeline

* Implement the designs

* Extract post-processing logic, add tests

* Add encryption banner to timeline screenshots

* Create FTUE feature to handle welcome screen and analytics

* Move classes to their own packages, add tests for `DefaultFtueState`.

* Remove unnecessary private MutableStateFlow

* Move some FTUE related methods and classes back to the `impl` module

* Handle back press at each FTUE step

* Remove unneeded `TestScope` receiver for `createState` in tests.

* Use light & dark previews for the banner view.

* Move color customization from `TextStyle` to `Text` component.

* Rename `InfoList` design components, use them in `AnalyticsOptInView` too.

* Cleanup MatrixClient.

* Fix copy&paste error

Co-authored-by: Benoit Marty <benoit@matrix.org>

* Fix typo

* Fix Maestro tests

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
Co-authored-by: Benoit Marty <benoit@matrix.org>
2023-07-17 18:34:36 +02:00
Benoit Marty
000ef93dc5 Update Meastro test after iteration on OnBoarding screen. 2023-07-04 10:56:03 +02:00
Benoit Marty
4266faa204 Update maestro test regarding the new login flow. 2023-06-09 10:19:49 +02:00
Yoan Pintas
f534ecda96 Init analytics modules (#350) 2023-06-05 13:11:34 +00:00
Benoit Marty
13990cba7c Update maestro tests. 2023-06-01 10:57:36 +02:00
Jorge Martin Espinosa
0389f782c9 Fix: Maestro tests fail when using settings (#358)
* Fix Maestro tests using 'Settings' to open the settings screen.

* Try to allow manually running Maestro tests.

* Also adjust logout flow.
2023-04-25 18:01:54 +02:00
Jorge Martin Espinosa
d36ca2907c Use user friendly error messages in login following iOS logic (#174)
* Use user friendly error messages in login following iOS logic, fix dialog colors.

* Use `AlertDialogDefaults` for the default properties of dialogs

* Improve Maestro tests with wrong password dialog

* Add tests for error messages
2023-03-07 17:55:48 +01:00
Jorge Martin Espinosa
c87c0ea28c Refine sign in flow to match designs and iOS flow (#100)
* Fix dark theme

* First attempt at replicating iOS' UI & flows.

* Try to fix Maestro tests

* Add error dialogs and tests

* Remove unused modifiers

* Try to fix detekt issues

* Tidy up maestro login flow a bit

* Add `CompoundColorPalette` with some needed colors

* Fixes to designs

* Fix detekt issues

* More design fixes

* Some other minor design fixes

* Add changelog

* Minor tweaks.

* Remove legacy dark material theme as it's no longer needed.

* Move sliding sync 'learn more' url to constants object

* Remove unused focusManager

* Change how the displayed homeserver works

* Keep user input as homeserver if it's valid

* Remove `CompoundColorPalette`, try to fix issue when toggling dark mode.

* Add `@Stable` to the theme, adjust how it toggles in dark mode

* Remove unused strings

* Update screenshots

* Re-organize components in LoginRootScreen

* Bump min coverage to 55, max to 60

* Always replace the snapshots contents when running `recordPaparazzi`

* Fix dark theme preview of components using content colors

* Add `BackButton` component

* Handle errors with dialogs in a generic way

* Align our Dialog components with the designs, use them were needed

* Use a `MatrixHomeserverDetails` data class instead of just an URL.

* `AuthenticationService.getHomeserverDetails()` now returns a `StateFlow`.

Also, try to fix coverage issues in tests.
2023-03-06 09:30:16 +01:00
Benoit Marty
62523416ec Add another test: cancel sign out. 2023-01-17 18:12:40 +01:00
Benoit Marty
339c6297a1 Fix wording issue 2023-01-17 18:12:40 +01:00
Benoit Marty
67ce11a536 Add comments for iOS 2023-01-17 18:12:40 +01:00
Benoit Marty
91d70e6f9b Fix wording issue 2023-01-17 18:12:40 +01:00
Benoit Marty
de6532e073 Setup Maestro and add first tests.
Also configure CI
2023-01-17 18:11:12 +01:00