Commit Graph

88 Commits

Author SHA1 Message Date
Stefan Ceriu 8ead25eaa3 Stop the integration tests from backgrounding the web authentication session
Tapping the SafariViewService app object makes XCUITest activate it as a
standalone app. That backgrounds Element X, which hosts the web view, so the
hosted scene goes to the background too and WebKit suspends it mid load. The
sign in page is fetched successfully but never rendered, and the test times
out waiting for the username field.

The tap dates from when the element was a web view inside the app, where it
was a plain in app tap, so it no longer does what its comment describes.
2026-08-24 15:18:48 +03:00
Stefan Ceriu 033cb2e038 Fail fast on the integration tests when encountering the first failed assert 2026-08-18 10:41:32 +03:00
Michael 6efa8743ff Combine the Server Selection screen into the Server Confirmation screen and add autocompletion when entering an account provider. (#5949)
* Adjust login flow to exclusively use the ServerSelectionScreen

* Move async code to server selection vm

* ServerSelection supports pro picker options

* Use homeserver address for both confirmation and picker modes

* rename ServerSelectionScreenMode

* remove ServerConfirmationScreen

It's been superseded by the ServerSelectionScreen

* rename userInput

* Update strings with latest design strings

* Add server input autocompletion

* Store previous servers in AppSettings and autofill on server signin

* Audit changes for logging

* Enforce lowercase server history storage

* Update tests

* Update Xcode project

* PR review fixups

* Add HomeserverHistoryManager

* Review fixups 2

* Review fixups 3
2026-08-10 18:38:37 +01:00
Stefan Ceriu 0856fdc146 Improve integration test diagnostics in an attempt to catch run crashes 2026-08-10 13:19:41 +03:00
Mauro 9093631f8b Periphery cleanup (#5893) 2026-07-20 11:16:11 +02:00
Mauro 0a77ba6c90 Swift format enforce isEmpty rule (#5843)
* swift format enforce isEmpty rule

* revert scheme

* use trailing closure
2026-07-06 15:39:16 +02:00
Mauro Romito a6384500c9 integration tests now use swift 6.2 2026-06-24 17:32:15 +02:00
Doug fa67713726 Run SwiftFormat. 2026-05-27 17:11:42 +01:00
Stefan Ceriu e8c7d0761f Wait for the search field to be usable and remove unnecessary sleeps. 2026-05-16 16:54:22 +03:00
Stefan Ceriu 0bdde39274 Move integration test flows that don't require a backend to the UI tests
In an attempt to make them faster and less flakey.
2026-04-28 17:37:50 +03:00
manuroe 77b8243de1 Fix testUserFlow integration tests, at least locally (#5352)
* Fix testUserFlow integration tests

- Use 'Close' instead of 'Cancel' button label when dismissing location picker
- Scroll up to make the People button visible before tapping it

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fixup! Fix testUserFlow integration tests

* Integration tests: Add logout handling for MAS authentication

It is useful when relaunching tests locally. It avoids them to fail because the MAS webview is already logged it from a previous session.

* Swipe until the People button is hittable.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Doug <douglase@element.io>
2026-04-22 13:21:09 +01:00
Stefan Ceriu 83704beb82 chore(integration_tests): increase the wait time for sliding sync to retrieve the integration tests room 2026-04-01 12:50:16 +03:00
Stefan Ceriu e288be6860 Fix integration tests room header discovery 2026-02-12 18:58:28 +02:00
Stefan Ceriu c3bdb19125 Remove the Signposter from the integration tests target, fix build. 2026-02-11 18:52:22 +02:00
Stefan Ceriu 23062901c0 Update files following swiftformat upgrade 2026-01-27 12:50:57 +02:00
Stefan Ceriu bc7ced11cb Fix the login flow and how the integration tests interact with the web authentication session 2025-12-11 11:56:26 +02:00
Doug 8088cb1a7c Make sure the integration tests stop when running out of WAS retries 🙈 (#4730) 2025-11-11 12:47:09 +00:00
Doug 6465730638 Fix the integration tests (maybe?!). (#4723) 2025-11-10 17:18:46 +00:00
Stefan Ceriu 3bfdee6e96 Remove the DTCoreText dependency 2025-10-28 09:53:15 +00:00
Stefan Ceriu d6f4054634 Remove the integration tests tapOnMenu as it's the same as tapOnButton (#4656) 2025-10-27 09:58:49 +00:00
Mauro f7dd9cdcf8 Update copyright holding and dates (#4640)
* Update copyright holding and dates

* compound IDE Macros updated

* update copyright

* update copyrights done

* update templates and README
2025-10-21 14:34:56 +02:00
Stefan Ceriu 43b8cfd39b Fix integration tests for Xcode 26 2025-09-26 17:20:41 +03:00
Mauro Romito 18519c15dd integration tests: support for the bottom sheet 2025-05-20 17:39:12 +02:00
Doug 3262fb4cab Fix the integration tests. (#4084)
* Fix logging/alerts during OIDC cancellation.

- Cancelling from within the web view wasn't being handled since moving the UserIndicatorController into the presenter.
- The WAS canceledLogin error code is also used when the system cancels the login. When the system cancels there's a failure reason included in the error.

* Allow UI tests to tap on any point within a view.

* Make the homeserver optional in integration tests.

* Dismiss the keyboard after entering a username to reveal the password text field.

Do the same after entering the password field too, just in case.

* Add a loop while waiting for the WAS prompt to be shown.
2025-05-01 12:07:04 +01:00
Stefan Ceriu 5ea95913e8 Fix integration tests OIDC username or email field identifier. 2025-04-15 13:15:09 +03:00
Stefan Ceriu e62b0684d2 Integration tests: work around #3365 failures. 2025-04-14 09:51:03 +03:00
Doug 56476f8bb5 Re-write integration test login for OIDC. (#3997)
* Re-write integration test login for OIDC.

* Fix integration test logout button not being visible.

---------

Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
2025-04-09 08:57:31 +01:00
Doug 7eaaf03b73 Remove the unused TestMeasurementParser and lint integration tests again. (#3918) 2025-03-19 12:52:07 +00:00
manuroe 3950cac085 Dual licensing: AGPL + Element Commercial (#3657)
* New LICENSE-COMMERCIAL file

* Apply dual licenses: AGPL + Element Commercial to file headers

* Update README with dual licensing
2025-01-06 11:27:37 +01:00
Stefan Ceriu aad423dacc Fix integration tests after clearAndTypeText signature change. 2024-10-15 08:44:06 +03:00
Stefan Ceriu a24e9932fc Re-enable the photo and document sharing flow tests 2024-09-30 11:59:08 +03:00
Stefan Ceriu 9d23dec2e9 Tracing and integration test tweaks (#3336)
* Disable image and document picker integration tests as they randomly fail to load and are flakey.

* Delete any pre-existing log files

* Various tracing tweaks and fixes:
- delete the custom tracing log levels as we can't control their ouput
- implement comparable on them
- change default levels only if the new chosen level increases their verbosity

* Make logging targets mandatory and fix their logging levels

* Switch back to using the `run_tests` reset simulator flag as `fastlane snapshot reset_simulators` was too generic and slow

* Switch all integration test taps to `tapCenter` (nee forceTap) after noticing missed taps on CI.

* Make the logging file prefix explicit, let the main app not use one.

* Rename tracing configuration `target` to `currentTarget`
2024-09-27 15:08:47 +03:00
Stefan Ceriu dc6d7f2985 Integration test improvements (#3330)
* Send a message from integration tests and check that it doesn't show up in the app logs
* Increase photo library timeout

* Wait for image tapping to process

* Send a message using the rich text editor too

* Wait for the various pickers to finish loading

* Set all logs to `trace` in integration tests

* Close formatting options after sending the second message

* Make sure logs are actually sent to tracing and get redirected to the right file

* Switch from using a custom `trace` log configuration to the lowest level `TracingConfiguration` we support
2024-09-26 10:15:09 +03:00
Stefan Ceriu 6759a66533 Fixes #3146 - Remove the account migration screen 2024-09-09 12:41:28 +03:00
Stefan Ceriu 664e87fe87 Switch license to AGPL (#3237)
* Switch license file to AGPL

* Update file copyright headers

* Update the default project file header
2024-09-06 16:34:30 +03:00
Stefan Ceriu dc85cb10ed Stop running and publishing performance metrics to gh-pages 2024-09-05 13:49:56 +03:00
Stefan Ceriu 35803b479d Fix integration tests
- remove the invites flow as the button visibility depends on the number of invites and invites are moving to the room list anyway
2024-05-07 16:55:39 +03:00
Stefan Ceriu 5221e9fb5d Fix integration tests following room detail screens title changes. 2024-04-08 12:28:07 +03:00
Stefan Ceriu a730689b1f Various reliability tweaks for the UI and integration tests. 2024-04-01 12:27:54 +03:00
Stefan Ceriu a62c96f1c5 Onboarding flow coordinator and FTUE changes (#2578)
Fixes #2595, fixes #2594, fixes #2593, fixes #2592, fixes #2591
2024-03-21 14:01:23 +02:00
Doug 3ba34c0704 Final changes for Room Moderation (#2576)
* Add confirmation that the user would like to discard unsaved changes.

* Update string on permissions screen.

* Fix UI tests and update snapshots.

* Fix integration tests.

* Run periphery for Moderation feature.
2024-03-15 13:41:23 +00:00
Stefan Ceriu 5944550721 In preparation of FTUE changes... (#2556)
* Remove the welcome screen

* Allow the UserSessionFlowCoordinator to control the whole app hierarchy, not only its splitView

* Start using the new verification state listener

* Rename Onboarding to AuthenticationStart in preparation for the new OnboardingFlowCoordinator; update snapshots and tests

* Make the AuthenticationCoordinator a proper FlowCoordinator

* Add some padding around the authentication start screen report a problem button

* Bump the RustSDK to v1.1.49

* Only add bottom padding on the authentication start screen report a problem button
2024-03-13 11:24:48 +02:00
Doug 5f0c782ce2 Use xcresultparser in all workflows. (#2510)
* Fix integration tests.
2024-02-28 18:01:20 +00:00
Mauro dc7f45a77f removed unused button check (#2498) 2024-02-26 14:00:43 +01:00
Stefan Ceriu db48656dda Tweak integration tests in an attempt to make them more reliable 2024-01-30 16:29:08 +02:00
Stefan Ceriu fcf78e93e0 More integration test tweaks (#2321)
* Improve integration test timings and alert handing

* Add missing `receive(on: DispatchQueue.main` on the invites screen

* Wait for photo library to load

* Disable the preferForLoop swiftformat rule and fix a couple of new warnings

* Delay invites screen snapshotting after dispatch main queue addition
2024-01-11 16:35:03 +02:00
Stefan Ceriu cf7e09e22e Various integration test tweaks following test homeserver and account change 2024-01-10 16:57:25 +02:00
Mauro 09fb5461e6 Removing dead code part 3 (#2264) 2023-12-19 12:12:16 +01:00
Doug 5586405c4f Make the attachment menu an actual menu. (#2199)
There was a bug with the sheet/popover when overriding the colour scheme where the button renders in light mode when the app is in dark mode.
2023-12-05 11:14:16 +00:00
Stefan Ceriu a8be8f839b Fix new swiftformat warnings: convert types used for hosting only static members into enums. 2023-11-13 13:47:14 +02:00