Skip to content

Commit 702b6fb

Browse files
test(ui): restore PKCE relogin/reconnect tests, remove only IMX ConnectBtn tests
1 parent d7257c0 commit 702b6fb

3 files changed

Lines changed: 207 additions & 1 deletion

File tree

sample/Tests/test/test_android.py

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,4 +107,76 @@ def test_3_passport_functions(self):
107107
self.test_1_passport_functions()
108108

109109
def test_5_zkevm_functions(self):
110-
self.test_3_zkevm_functions()
110+
self.test_3_zkevm_functions()
111+
112+
def test_6_pkce_relogin(self):
113+
driver = self.appium_driver
114+
115+
self.close_and_open_app()
116+
117+
# Restart AltTester
118+
self.altdriver.stop()
119+
self.altdriver = AltDriver()
120+
time.sleep(5)
121+
122+
# # Select use PKCE auth
123+
self.altdriver.find_object(By.NAME, "PKCE").tap()
124+
# Wait for unauthenticated screen
125+
self.altdriver.wait_for_current_scene_to_be("UnauthenticatedScene")
126+
127+
# Relogin
128+
print("Re-logging in...")
129+
self.altdriver.wait_for_object(By.NAME, "ReloginBtn").tap()
130+
131+
# Wait for authenticated screen
132+
self.altdriver.wait_for_current_scene_to_be("AuthenticatedScene")
133+
print("Re-logged in")
134+
135+
# Get access token
136+
self.altdriver.find_object(By.NAME, "GetAccessTokenBtn").tap()
137+
output = self.altdriver.find_object(By.NAME, "Output")
138+
self.assertTrue(len(output.get_text()) > 50)
139+
140+
self.altdriver.stop()
141+
142+
def test_7_pkce_reconnect(self):
143+
self.close_and_open_app()
144+
145+
# Restart AltTester
146+
self.altdriver.stop()
147+
self.altdriver = AltDriver()
148+
time.sleep(5)
149+
150+
# Select use PKCE auth
151+
self.altdriver.find_object(By.NAME, "PKCE").tap()
152+
# Wait for unauthenticated screen
153+
self.altdriver.wait_for_current_scene_to_be("UnauthenticatedScene")
154+
155+
# Reconnect
156+
print("Reconnecting...")
157+
self.altdriver.wait_for_object(By.NAME, "ReconnectBtn").tap()
158+
159+
# Wait for authenticated screen
160+
self.altdriver.wait_for_current_scene_to_be("AuthenticatedScene")
161+
print("Reconnected")
162+
163+
# Get access token
164+
self.altdriver.find_object(By.NAME, "GetAccessTokenBtn").tap()
165+
output = self.altdriver.find_object(By.NAME, "Output")
166+
self.assertTrue(len(output.get_text()) > 50)
167+
168+
# Get address without having to click Connect to IMX button
169+
self.altdriver.find_object(By.NAME, "GetAddressBtn").tap()
170+
self.assertEqual(TestConfig.WALLET_ADDRESS, output.get_text())
171+
172+
# Logout
173+
print("Logging out...")
174+
self.altdriver.find_object(By.NAME, "LogoutBtn").tap()
175+
time.sleep(5)
176+
177+
# Wait for authenticated screen
178+
self.altdriver.wait_for_current_scene_to_be("UnauthenticatedScene")
179+
time.sleep(5)
180+
print("Logged out")
181+
182+
self.altdriver.stop()

sample/Tests/test/test_mac.py

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ def logout(cls):
174174
bring_sample_app_to_foreground()
175175
cls.altdriver.find_object(By.NAME, "LogoutBtn").tap()
176176
time.sleep(5)
177+
bring_sample_app_to_foreground() # Bring app back to foreground after browser processes logout
177178
cls.altdriver.wait_for_current_scene_to_be("UnauthenticatedScene")
178179
time.sleep(2)
179180
cls.stop_browser()
@@ -273,3 +274,64 @@ def test_3_passport_functions(self):
273274

274275
def test_5_zkevm_functions(self):
275276
self.test_3_zkevm_functions()
277+
278+
def test_6_relogin(self):
279+
# Close and reopen app
280+
stop_sample_app()
281+
open_sample_app()
282+
283+
# Restart AltTester
284+
self.altdriver.stop()
285+
self.__class__.altdriver = AltDriver()
286+
time.sleep(5)
287+
288+
# Wait for unauthenticated screen
289+
self.altdriver.wait_for_current_scene_to_be("UnauthenticatedScene")
290+
291+
# Relogin
292+
print("Re-logging in...")
293+
self.altdriver.wait_for_object(By.NAME, "ReloginBtn").tap()
294+
295+
# Wait for authenticated screen
296+
self.altdriver.wait_for_current_scene_to_be("AuthenticatedScene")
297+
print("Re-logged in")
298+
299+
# Get access token
300+
self.altdriver.find_object(By.NAME, "GetAccessTokenBtn").tap()
301+
output = self.altdriver.find_object(By.NAME, "Output")
302+
self.assertTrue(len(output.get_text()) > 50)
303+
304+
self.altdriver.stop()
305+
306+
def test_7_reconnect_connect_imx(self):
307+
# Close and reopen app
308+
stop_sample_app()
309+
open_sample_app()
310+
311+
# Restart AltTester
312+
self.altdriver.stop()
313+
self.__class__.altdriver = AltDriver()
314+
time.sleep(5)
315+
316+
# Wait for unauthenticated screen
317+
self.altdriver.wait_for_current_scene_to_be("UnauthenticatedScene")
318+
319+
# Reconnect
320+
print("Reconnecting...")
321+
self.altdriver.wait_for_object(By.NAME, "ReconnectBtn").tap()
322+
323+
# Wait for authenticated screen
324+
self.altdriver.wait_for_current_scene_to_be("AuthenticatedScene")
325+
print("Reconnected")
326+
327+
# Get access token
328+
self.altdriver.find_object(By.NAME, "GetAccessTokenBtn").tap()
329+
output = self.altdriver.find_object(By.NAME, "Output")
330+
self.assertTrue(len(output.get_text()) > 50)
331+
332+
# Get address without having to click Connect to IMX button
333+
self.altdriver.find_object(By.NAME, "GetAddressBtn").tap()
334+
self.assertEqual(TestConfig.WALLET_ADDRESS, output.get_text())
335+
336+
# Logout
337+
self.logout()

sample/Tests/test/test_windows.py

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,3 +250,75 @@ def test_5_zkevm_functions(self):
250250
self.test_3_zkevm_functions()
251251
print("COMPLETED TEST: test_5_zkevm_functions")
252252
print("=" * 60)
253+
254+
def test_6_relogin(self):
255+
print("=" * 60)
256+
print("STARTING TEST: test_6_relogin")
257+
print("=" * 60)
258+
self.restart_app_and_altdriver()
259+
260+
# Relogin
261+
print("Re-logging in...")
262+
self.get_altdriver().wait_for_object(By.NAME, "ReloginBtn").tap()
263+
264+
# Wait for authenticated screen
265+
self.get_altdriver().wait_for_current_scene_to_be("AuthenticatedScene")
266+
print("Re-logged in")
267+
268+
# Get access token
269+
self.get_altdriver().find_object(By.NAME, "GetAccessTokenBtn").tap()
270+
output = self.get_altdriver().find_object(By.NAME, "Output")
271+
self.assertTrue(len(output.get_text()) > 50)
272+
273+
print("COMPLETED TEST: test_6_relogin")
274+
print("=" * 60)
275+
276+
def test_7_reconnect_connect_imx(self):
277+
print("=" * 60)
278+
print("STARTING TEST: test_7_reconnect_connect_imx")
279+
print("=" * 60)
280+
self.restart_app_and_altdriver()
281+
282+
# Reconnect
283+
print("Reconnecting...")
284+
self.get_altdriver().wait_for_object(By.NAME, "ReconnectBtn").tap()
285+
286+
# Wait for authenticated screen
287+
self.get_altdriver().wait_for_current_scene_to_be("AuthenticatedScene")
288+
print("Reconnected")
289+
290+
# Get access token
291+
self.get_altdriver().find_object(By.NAME, "GetAccessTokenBtn").tap()
292+
time.sleep(2) # Give Unity time to fetch and display the access token
293+
output = self.get_altdriver().find_object(By.NAME, "Output")
294+
self.assertTrue(len(output.get_text()) > 50)
295+
296+
# Get address without having to click Connect to IMX button
297+
self.get_altdriver().find_object(By.NAME, "GetAddressBtn").tap()
298+
time.sleep(2) # Give Unity time to fetch and display the address
299+
output = self.get_altdriver().find_object(By.NAME, "Output") # Re-fetch output after address is loaded
300+
self.assertEqual(TestConfig.WALLET_ADDRESS, output.get_text())
301+
302+
# Logout
303+
print("Logging out...")
304+
launch_browser()
305+
bring_sample_app_to_foreground()
306+
self.get_altdriver().find_object(By.NAME, "LogoutBtn").tap()
307+
308+
# Use controlled browser logout instead of waiting for scene change
309+
logout_with_controlled_browser()
310+
311+
# Bring Unity app to foreground immediately so it can receive the logout callback
312+
bring_sample_app_to_foreground()
313+
314+
# Give Unity time to process the logout callback
315+
time.sleep(5)
316+
317+
# Wait for unauthenticated screen
318+
self.get_altdriver().wait_for_current_scene_to_be("UnauthenticatedScene")
319+
320+
stop_browser()
321+
print("Logged out")
322+
323+
print("COMPLETED TEST: test_7_reconnect_connect_imx")
324+
print("=" * 60)

0 commit comments

Comments
 (0)