Commit Graph

407 Commits

Author SHA1 Message Date
Stefan Ceriu 27e59a81e4 Fix integration tests following the search tab introduction
Tabbar tabs now can take accessibility identifiers and the integration test uses the newly expected flow.
2026-10-14 20:14:27 +03:00
Stefan Ceriu 60c77c6320 Fix one missed UI test snapshot. 2026-10-12 12:54:17 +03:00
Stefan Ceriu eb56586e76 Fix UI test snapshots after enabling the new search tab. 2026-10-12 10:17:46 +03:00
Mauro 831234865b Fix Swift 6.4 warnings (#6240) 2026-10-01 10:55:19 +02:00
Stefan Ceriu a8bc26dc93 Fix various UI test snapshot issues. 2026-09-30 12:23:54 +03:00
Mauro b1ed870474 Support for Xcode 27 on CI (#6217)
* Run the tests on iOS 27.0

Bump the required simulator OS in the preview, UI and Compound tests, and the CI tool's default OS, from 26.5 to 27.0. Test devices stay the same.

iOS 27 writes transcoded videos 146 bytes larger, so update the expected sizes in MediaUploadingPreprocessorTests.

* Build and test on CI with Xcode 27

Select Xcode 27 in ci_common.sh and move every macOS workflow to the xcode-27 runner image, as macos-26 doesn't include Xcode 27. The Compound workflow now also creates its simulator on the iOS 27.0 runtime.

The xcode-27 runners are slower, so give the unit, Enterprise, Compound and snapshot recording jobs longer timeouts.

* Fix the preview snapshot layout on iOS 27

On iOS 27 the hosting controller applies the window's safe area when rendering, but the snapshot size comes from sizeThatFits, which ignores it. Component previews were shifted down and clipped at the bottom. Disable the hosting controller's safe area regions for these snapshots so the measured and rendered layouts match.

swift-snapshot-testing also renders into a window without a scene, and on iOS 27 a navigation stack in such a window reserves space for a large title it never shows, leaving a gap below the navigation bar. Attach the render window to the app's scene until swift-snapshot-testing handles it.

The invite users and add rooms screens sized their selected items row from a measured width stored in state, which is zero on the first layout pass, so snapshots could draw the row empty. Use containerRelativeFrame instead. The add rooms search previews now also wait for their results, and the search previews that show a clear button get a small precision tolerance, as it renders inconsistently in snapshots.

* Re-record the preview snapshots on iOS 27.0

Recorded on an iPhone SE (3rd generation) simulator running iOS 27.0 with Xcode 27.0 (27A266a). The changes come from iOS 27 rendering: text anti-aliasing, hyphenation and line breaking, navigation bars and toggles that now render in snapshots, lazy stacks that were blank on iOS 26, and pseudo-language locale formatting.

* Fix the UI tests on iOS 27

iOS 27 no longer exposes accessibility identifiers on SwiftUI menu items, so the space exploration test now finds them by label within the menu. On iPad, the start chat search field keeps focus after submitting and can swallow the next tap, so retry the tap if the create room screen doesn't appear.

* Re-record the UI test snapshots on iOS 27.0

Recorded on iPhone 17 and iPad (A16) simulators running iOS 27.0 with Xcode 27.0. The changes come from iOS 27 styling, like the keyboard height and glass borders. This also removes the iPad app lock setup snapshots, which have been orphaned since those tests stopped running on iPad.

* Fix the accessibility tests crashing on iOS 27

The accessibility tests' previews wrapper kept its ImageRenderer alive across the awaits that follow the render. On iOS 27, releasing it at that point tears down its view graph outside of a SwiftUI update, which hits an assertion and crashes the app. Release the renderer as soon as the image has been rendered.

* Keep the accessibility tests' image renderers alive on iOS 27

Releasing the ImageRenderer straight away wasn't enough: on iOS 27, releasing one that rendered a preview crashes SwiftUI whichever context it happens in. Keep the renderers alive instead. Each test launches a fresh app, so they only live for the one test.

* Share the UI tests' app settings with their mock user session

Since the user session flow reads its settings from UserSettings, the UI tests' mock user session was wrapping a fresh volatile AppSettings instead of the one the tests configure. The flags that skip onboarding weren't picked up, so every user session UI test got stuck on the notifications permission screen.

* Re-record the Compound snapshots on iOS 27.0

Apply the same safe area fix as the app's preview tests, so size-that-fits snapshots aren't clipped on iOS 27, and re-record the snapshots on an iPhone SE (3rd generation) simulator running iOS 27.0 in English (US).

* Fix a race reading the keyboard in the accessibility tests

On iOS 27 the QR code login screen's keyboard can be dismissing between checking that it exists and reading its frame, which fails the test. Snapshot it in a single query instead.
2026-09-29 17:02:48 +02:00
Stefan Ceriu cc07e07833 Fix UI test snapshots
after enabling room list badge counts and changing the rail trailing padding.
2026-09-25 12:13:08 +03:00
Stefan Ceriu 0454916b65 Fix start chat UI test snapshots following copy changes 2026-09-09 11:23:12 +03:00
Stefan Ceriu 8752897bc3 Fix UI test snapshots following copy changes and filter reordering 2026-09-03 10:36:31 +03:00
Stefan Ceriu 313f250273 Fix testAcceptSpaceInvite snapshot 2026-08-25 15:11:22 +03:00
Doug b27a549ef8 Update the toolbars in the Chats/Spaces screens. (#6043)
* Fix an issue with macro compilation when using Xcode previews.

* Update the Chats/Spaces toolbars to match the Figma.

Fixes a bug with the status emoji in the liquid glass button.
2026-08-18 17:50:15 +01:00
Stefan Ceriu 360d6d0ee1 Attempt another kind of fix for the encryption settings UI test 2026-08-18 08:27:57 +03:00
Stefan Ceriu d3b12561b3 Fix XCUITest text entry on all paths 2026-08-11 14:42:48 +03:00
Doug 2228da3eb9 Make sure the Tab Rail's background matches the split view's detail background. (#6003) 2026-08-11 11:07:24 +01:00
Stefan Ceriu 3f6347b6c9 Drop the addressSanitizer and undefinedBehaviorSanitizer from the Accessibility and UI tests
They cost a lot of extra memory to enable and cause problems on constrained CIs
2026-08-11 11:58:18 +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 b829c6a06f Prevent invalid snapshots on timeline replies by waiting for the keyboard to appear for longer 2026-08-10 14:49:09 +03:00
Stefan Ceriu 0bddf30de9 Improve the room member part of the UI test user session flows 2026-08-06 11:50:21 +03:00
Stefan Ceriu 56b790da74 Fix various UI test snapshots 2026-08-04 14:17:07 +03:00
Mauro 9093631f8b Periphery cleanup (#5893) 2026-07-20 11:16:11 +02:00
Doug 80ad39e877 Fix UI tests (#5862)
* Fix UI tests compilation error.

* Update UI Snapshots.
2026-07-10 18:12:05 +01: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
Doug 036c9ce248 Stop reserving space for the non-existant icon background in ListRowLabel on iOS 26. (#5822)
* Stop reserving space for the non-existant icon background in ListRowLabel on iOS 26.

* Use the .avatar label style for NotificationSettingsEditScreenRoomCell.
2026-07-01 12:58:33 +01:00
Doug 123661537a Make LinkNewDeviceScreen fall back to the App Lock PIN code when there's no passcode. (#5794)
* Fall back to the AppLock PIN code when there's no passcode.

* Add extra tests on the LinkNewDeviceFlowCoordinator.

* Misc tweaks for clarification.

* Regenerate snapshots.
2026-07-01 10:13:18 +01:00
Mauro Romito 31a9f2c961 migrating ui tests using swift 6.2 2026-06-24 17:31:40 +02:00
Stefan Ceriu 69dd66b432 Fix poll form UI test snapshots after allowing multiple votes. 2026-06-24 11:12:44 +03:00
Stefan Ceriu a04a4c2691 Delete the composerAttachments UI test snapshot step
Because it keeps failing and because we have proper tests for all of those options
2026-06-22 15:09:36 +03:00
Doug 73ea338d67 Regenerate failing UI snapshots. 2026-06-18 12:45:40 +03:00
Mauro Romito 9dd78c0188 updated user sessions flow ui tests 2026-06-11 14:53:50 +02:00
Stefan Ceriu b7b762db16 Update UI test snapshots 2026-06-08 19:54:07 +03:00
Stefan Ceriu 2fddb597b8 Bump the CI workflows to iOS 26.5, centralise default OS version 2026-06-08 19:54:07 +03:00
Stefan Ceriu 8196fa09bd Update locally failing snapshots 2026-06-03 08:57:04 +03:00
Stefan Ceriu 0c1894e175 Update UI test snapshots that fail on CI 2026-05-29 17:48:00 +03:00
Doug fa67713726 Run SwiftFormat. 2026-05-27 17:11:42 +01:00
Stefan Ceriu 0138fd2a5e Add message sending end editing steps to the user session flow UI test 2026-05-27 18:05:25 +03:00
Stefan Ceriu 42b3507eaa Fix wrong keyboard type on some iPhone UI test snapshots. 2026-05-15 10:19:29 +03:00
Mauro Romito d60f5d6efb UI tests updated 2026-05-12 14:46:18 +02:00
Stefan Ceriu ded86dd66e Fix settings UI test by making sure the analytics button is visible before attempting to tap it. 2026-05-11 15:37:38 +03:00
Stefan Ceriu a5d07cf1f3 Fix start chat UI flow after allowing avatars to be selected from files too 2026-05-11 15:37:38 +03:00
Stefan Ceriu 80385bbc1e Fix start chat flow UI test snapshots after enabling the room directory by default 2026-05-11 15:37:38 +03:00
Stefan Ceriu 42d726cd50 Fix room roles and permissions UI test snapshots after adding live location sharing 2026-05-11 15:37:38 +03:00
Doug 0acbc41432 Rename OIDC to OAuth. (#5525)
* Rename OIDC to OAuth.

* Update the enterprise submodule.
2026-05-05 14:07:06 +01:00
Doug 8a6bd920a6 Re-enable the AppLock UI tests on iPhone only.
It was only iPad that had an issue.
2026-05-04 13:14:33 +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
Stefan Ceriu c46a0d22cb Revert "Re-enable the disabled UI tests but delete the snapshotting steps that are conflicting with the secure pin keyboard"
This reverts commit cde1ae61f9aa3c6d3528d390c3bdb37a4301444b.
2026-04-28 10:05:43 +02:00
Stefan Ceriu 893b8f56a6 Re-enable the disabled UI tests but delete the snapshotting steps that are conflicting with the secure pin keyboard 2026-04-28 10:05:43 +02:00
Mauro Romito 3a70f20979 disable tests that do not work for now 2026-04-28 10:05:43 +02:00
Mauro Romito f7cb0d2ff7 updated tests snapshots 2026-04-28 10:05:43 +02:00
Mauro Romito 3efca2366a fix for the flaky start chat test flow 2026-04-28 10:05:43 +02:00
Stefan Ceriu a17b097029 Update all UI test snapshots following 26.4 migration 2026-04-21 20:10:51 +03:00