summaryrefslogtreecommitdiffhomepage
path: root/android/test
AgeCommit message (Collapse)AuthorFilesLines
2025-10-27Increase test timeoutDavid Göransson1-25/+27
2025-10-27Update ktfmt to 0.25.0Jonatan Rhodin1-38/+38
2025-10-23Fix failing test due to time zone changeKalle Lindström3-4/+4
2025-10-10Decrease the time we wait for a connection to fail during testsJonatan Rhodin1-1/+1
2025-10-09Implement LWO on androidJonatan Rhodin4-2/+70
2025-10-06Document runBlocking in TrafficGeneratorDavid Göransson1-1/+2
A comment is added to clarify that `runBlocking` is used intentionally to prevent tests from skipping delays. The `suspend` modifier, which was redundant, has been removed from the `generateTraffic` function.
2025-10-06Warn users about android 16 upgrade issueDavid Göransson1-1/+4
2025-09-29Format codeJonatan Rhodin1-42/+42
2025-09-12Add better support for variant filtersDavid Göransson2-8/+3
2025-09-10Add inital baseline profile generationKalle Lindström5-2/+229
To improve startup performance this PR adds a baseline profile generation module in test/baselineprofile. The baseline profile plugin requires Junit4 so that is also added as a dependency. A baseline-prof.txt was also generated by running `./gradlew generatePlayProdReleaseBaselineProfile` and checked in. The tests that generate the baselineprofile currently only start the app and accepts the privacy policy. This should be improved later on to improve the startup performance.
2025-09-03Add connection test for QUICDavid Göransson4-0/+32
2025-09-03Add UI support for QUIC settingJonatan Rhodin1-0/+51
2025-08-28Use rust-android-gradle plugin as submoduleKalle Lindström1-1/+10
2025-08-19Update ui automatorJonatan Rhodin1-2/+5
2025-08-19Fix failing e2e testsJonatan Rhodin1-1/+1
2025-08-14Set relay to current country on first startKalle Lindström1-0/+44
Sets the default relay selection to the current country (as determined by am.i.mullvad.net). If the current country does not have any relays the country with the closest relay is choosen instead. In non-release builds of the Android app we do not bundle a relay list in the APK, and the relay list is fetched when the user logs in. So one of the following can happen: 1. Geolocation request returns, we have a relay list. 2. Geolocation request returns, we do not yet have a relay list. 3. Relay list request returns, we have a geolocation. 4. Relay list request returns, we do not have a geolocation. In 1. and 3. we can update the default location. In 2. we have to wait until the relay list is fetched from the api until we can update the default location. 4. is unlikely to happen but could happen if am.i.mullvad is down.
2025-08-05Add konsist test to ensure all view model test uses TestCoroutineRuleJonatan Rhodin1-0/+18
2025-08-01Fix ktor parsing errorDavid Göransson1-2/+3
App module had transitive dependencies using a older version at runtime of serializationx. However, when compiling the test:e2e module a later version than 1.8.0 was used through ktor. This caused deserialization in runtime to go looking for a method that didn't exist. By putting an explicit version in the app module we make sure to use a version that is compatible with ktor.
2025-07-31Fix tests failing when the notification allowed dialog is not shownJonatan Rhodin3-45/+7
2025-07-29Check for both tag and name in location cells for e2e testsDavid Göransson1-1/+6
2025-07-28Add named arg detekt testKalle Lindström6-0/+177
Adds a custom detekt rule that checks that all Screen and Dialog composables are called with only named arguments.
2025-07-10Add e2e test for Google play purchasesDavid Göransson8-4/+156
2025-07-10Fix typoDavid Göransson1-1/+2
2025-07-04Remove waitForStable workaroundDavid Göransson3-18/+4
2025-07-03Fix gradle kotlinOptions warningsDavid Göransson4-12/+27
2025-06-19Remove deprecated junit platformJonatan Rhodin1-7/+0
2025-06-19Use AlarmManager for notificationsKalle Lindström1-16/+45
Instead of scheduling system notifications from a flow we now schedule them independently from the app lifecycle via AlarmManager. This is done so that for example an expiry notification that the user dismissed won't get redisplayed if the app process gets killed and then restarted. When the account exiry time is fetched we schedule an alarm that will show a notification 3 days before the account time expires. This alarm then also schedules a new alarm to show the following notification and so on. To make this work this PR also introduces two new broadcast receivers; one on boot received listener and one on time time/timezone changed listener. Beause Android clears alarms when the devices is rebooted/the time is changed we need these listeners to re-trigger the alarm. To enable the broadcast receivers to re-trigger the alarm we also have to persist the expiry time in the DataStore preferences.
2025-05-26Migrate remaining deps and versions to version catalogsDavid Göransson4-34/+31
2025-05-23Increase timeout for long testDavid Göransson1-43/+45
2025-05-23Fix e2e testDavid Göransson1-1/+1
2025-05-23Fix wrong country and city for stagemole daita relayJonatan Rhodin1-1/+5
2025-05-22Fix e2e production testsJonatan Rhodin6-22/+68
2025-05-22Add Post quantum connection testJonatan Rhodin3-12/+60
2025-05-21Fix urlsDavid Göransson2-2/+2
2025-05-21Supply IP address when using API overrideDavid Göransson1-1/+6
Previously we did a DNS lookup for Stagemole and Devmole however, this causes problem when starting the app with no internet and is different from how the app performs in production mode. This commit removes that logic in order to align closer to what we expect in prod.
2025-05-21Update with new property referencesDavid Göransson1-15/+10
2025-05-21Unify usage of gradle propertiesDavid Göransson15-88/+84
This commit does multiple changes to how we work with properties. - Instead of relying on `e2e.properties` and `local.properties` only use the `gradle.properties` as per standard gradle. - Naming of properties are changed to have a coherent structure. - Allow for setting stagemole and prod account separately. - Consolidate all the default values into `gradle.properties`
2025-05-19Add API blocked e2e connection testKalle Lindström5-6/+167
2025-05-16Use block wireguard new apiKalle Lindström2-2/+2
2025-05-13Catch nullpointerDavid Göransson3-4/+18
2025-05-13Avoid waiting for stable when active window is switchedDavid Göransson4-27/+19
NullPointerException was probably caused by the active window being changing while we called `waitForStableInActiveWindow`.
2025-05-12Convert all test to use Page patternDavid Göransson28-392/+245
Converts all our last test to use the Page object pattern and clean up a bunch of old MockApi and E2E test logic.
2025-05-12Increase router capture request timeouts by 15 secondsJonatan Rhodin1-0/+4
2025-05-09Add waitForStable between on each pageDavid Göransson1-1/+6
2025-05-09Fix flaky device management testDavid Göransson3-14/+39
The device mangement test would fail because it expect the device to be removed however it was in a loading state while API request was being made. This commit allows it to be visible intiailly (loading) and then expects it to be removed.
2025-05-09Add device management pageDavid Göransson1-0/+20
2025-05-09Fix a few blockers preventing us from bumping ktorDavid Göransson3-19/+13
2025-05-07Fix test tag mismatchDavid Göransson1-3/+3
2025-05-07Attempt to fix flakinessDavid Göransson1-0/+2
2025-04-30Move all test tags to new lib.ui.tag moduleKalle Lindström13-60/+52