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.
* 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
* 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>
* 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.
* Re-write integration test login for OIDC.
* Fix integration test logout button not being visible.
---------
Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
* 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`
* 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
* 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.
* 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
* 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