From da9f52a428772e5bb1fb9a6a96680f186dbc5519 Mon Sep 17 00:00:00 2001
From: pknellore <pavankoushik.nellore@savoirfairelinux.com>
Date: Wed, 30 Apr 2025 10:48:18 -0400
Subject: [PATCH] tests: fix UI tests

Change-Id: I0e770d689f9f051e843ea6e9fe06860ede5e949c
---
 .../ring/client/settings/AccountSettings.kt   |  6 +++-
 .../cx/ring/client/wizard/AccountCreation.kt  | 32 +++++++++++--------
 2 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/jami-android/app/src/androidTest/java/cx/ring/client/settings/AccountSettings.kt b/jami-android/app/src/androidTest/java/cx/ring/client/settings/AccountSettings.kt
index 78c9021f2..618228f1f 100644
--- a/jami-android/app/src/androidTest/java/cx/ring/client/settings/AccountSettings.kt
+++ b/jami-android/app/src/androidTest/java/cx/ring/client/settings/AccountSettings.kt
@@ -660,7 +660,11 @@ class AccountSettings {
         onView(withId(R.id.existing_password)).perform(typeText("123456"), closeSoftKeyboard())
         onView(withId(R.id.link_button)).perform(click())
 
-        AccountCreation.skipBiometrics()
+        try {
+            AccountCreation.skipBiometrics()
+        } catch (e: Exception) {
+            Log.d(TAG, "Biometrics dialog not shown, skipping...")
+        }
 
         // Check that we are in the home activity.
         onView(withId(R.id.search_bar)).check(matches(isDisplayed()))
diff --git a/jami-android/app/src/androidTest/java/cx/ring/client/wizard/AccountCreation.kt b/jami-android/app/src/androidTest/java/cx/ring/client/wizard/AccountCreation.kt
index f06194c74..5c9c963f5 100644
--- a/jami-android/app/src/androidTest/java/cx/ring/client/wizard/AccountCreation.kt
+++ b/jami-android/app/src/androidTest/java/cx/ring/client/wizard/AccountCreation.kt
@@ -114,7 +114,7 @@ class AccountCreation {
     fun accountCreation_SpecifyPasswordOnly() {
         onView(withId(R.id.ring_create_btn)).perform(scrollTo(), click())
 
-        onView(allOf(withId(R.id.skip), isDisplayed())).perform(click())
+        performClickWithKeyboardClosed(R.id.skip)
 
         onView(allOf(withId(R.id.ring_password_switch), isDisplayed())).perform(click())
 
@@ -162,7 +162,7 @@ class AccountCreation {
     fun accountCreation_SpecifyProfileName() {
         onView(withId(R.id.ring_create_btn)).perform(scrollTo(), click())
 
-        onView(allOf(withId(R.id.skip), isDisplayed())).perform(click())
+        performClickWithKeyboardClosed(R.id.skip)
 
         onView(allOf(withId(R.id.create_account_password), isDisplayed())).perform(click())
 
@@ -170,13 +170,11 @@ class AccountCreation {
             .perform(replaceText("Bonjour"), closeSoftKeyboard())
 
         onView(allOf(withId(R.id.next_create_account), isDisplayed())).perform(click())
-
         // Check that we are in the home activity.
         waitForView(withId(R.id.search_bar)).perform(waitUntil(isDisplayed()))
-
+        Thread.sleep(1000)
         // Go to account settings. Click on search bar menu.
         onView(withId(R.id.menu_overflow)).perform(click())
-
         // Click on account settings. Don't know why but doesn't work to select by ID.
         onView(allOf(withText(R.string.menu_item_account_settings), isDisplayed())).perform(click())
 
@@ -192,7 +190,7 @@ class AccountCreation {
     fun accountCreation_SpecifyProfilePictureViaCamera() {
         onView(withId(R.id.ring_create_btn)).perform(scrollTo(), click())
 
-        onView(allOf(withId(R.id.skip), isDisplayed())).perform(click())
+        performClickWithKeyboardClosed(R.id.skip)
 
         onView(allOf(withId(R.id.create_account_password), isDisplayed())).perform(click())
 
@@ -233,6 +231,7 @@ class AccountCreation {
         // Check that we are in the home activity.
         waitForView(withId(R.id.search_bar)).perform(waitUntil(isDisplayed()))
 
+        Thread.sleep(1000)
         // Go to account settings. Click on search bar menu.
         onView(withId(R.id.menu_overflow)).perform(click())
 
@@ -250,7 +249,7 @@ class AccountCreation {
     fun accountCreation_SpecifyProfilePictureViaGallery() {
         onView(withId(R.id.ring_create_btn)).perform(scrollTo(), click())
 
-        onView(allOf(withId(R.id.skip), isDisplayed())).perform(click())
+        performClickWithKeyboardClosed(R.id.skip)
 
         onView(allOf(withId(R.id.create_account_password), isDisplayed())).perform(click())
 
@@ -279,6 +278,7 @@ class AccountCreation {
         // Check that we are in the home activity.
         waitForView(withId(R.id.search_bar)).perform(waitUntil(isDisplayed()))
 
+        Thread.sleep(1000)
         // Go to account settings. Click on search bar menu.
         onView(withId(R.id.menu_overflow)).perform(click())
 
@@ -296,7 +296,7 @@ class AccountCreation {
     fun accountCreation_SpecifyProfilePicture_CanCancel(){
         onView(withId(R.id.ring_create_btn)).perform(scrollTo(), click())
 
-        onView(allOf(withId(R.id.skip), isDisplayed())).perform(click())
+        performClickWithKeyboardClosed(R.id.skip)
 
         onView(allOf(withId(R.id.create_account_password), isDisplayed())).perform(click())
 
@@ -390,7 +390,7 @@ class AccountCreation {
     fun passwordSelection_EnableSection() {
         onView(withId(R.id.ring_create_btn)).perform(scrollTo(), click())
 
-        onView(allOf(withId(R.id.skip), isDisplayed())).perform(click())
+        performClickWithKeyboardClosed(R.id.skip)
 
         onView(allOf(withId(R.id.ring_password_switch), isDisplayed())).perform(click())
 
@@ -408,7 +408,7 @@ class AccountCreation {
     fun passwordSelection_LessThan6Characters_InvalidPassword() {
         onView(withId(R.id.ring_create_btn)).perform(scrollTo(), click())
 
-        onView(allOf(withId(R.id.skip), isDisplayed())).perform(click())
+        performClickWithKeyboardClosed(R.id.skip)
 
         onView(allOf(withId(R.id.ring_password_switch), isDisplayed())).perform(click())
 
@@ -431,7 +431,7 @@ class AccountCreation {
     fun passwordSelection_WrongRecopy() {
         onView(withId(R.id.ring_create_btn)).perform(scrollTo(), click())
 
-        onView(allOf(withId(R.id.skip), isDisplayed())).perform(click())
+        performClickWithKeyboardClosed(R.id.skip)
 
         onView(allOf(withId(R.id.ring_password_switch), isDisplayed())).perform(click())
 
@@ -456,7 +456,7 @@ class AccountCreation {
     fun passwordSelection_ValidPassword() {
         onView(withId(R.id.ring_create_btn)).perform(scrollTo(), click())
 
-        onView(allOf(withId(R.id.skip), isDisplayed())).perform(click())
+        performClickWithKeyboardClosed(R.id.skip)
 
         onView(allOf(withId(R.id.ring_password_switch), isDisplayed())).perform(click())
 
@@ -473,7 +473,7 @@ class AccountCreation {
     private fun createDefaultAccount() {
         onView(withId(R.id.ring_create_btn)).perform(scrollTo(), click())
 
-        onView(allOf(withId(R.id.skip), isDisplayed())).perform(click())
+        performClickWithKeyboardClosed(R.id.skip)
 
         onView(allOf(withId(R.id.create_account_password), isDisplayed())).perform(click())
 
@@ -516,6 +516,12 @@ class AccountCreation {
         Log.d(TAG, "Account created: $username")
     }
 
+    private fun performClickWithKeyboardClosed(viewId: Int) {
+        onView(isRoot()).perform(closeSoftKeyboard())
+        onView(withId(viewId)).perform(waitUntil(isDisplayed()), click())
+    }
+
+
     companion object {
         private val TAG = AccountCreation::class.java.simpleName
 
-- 
GitLab