Skip to content

Commit 36a14a2

Browse files
test(ui): restore PKCE relogin/reconnect tests, remove only IMX ConnectBtn tests
1 parent b2e1a93 commit 36a14a2

3 files changed

Lines changed: 208 additions & 2 deletions

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: 63 additions & 1 deletion
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()
@@ -231,4 +232,65 @@ def test_3_passport_functions(self):
231232
self.test_1_passport_functions()
232233

233234
def test_5_zkevm_functions(self):
234-
self.test_3_zkevm_functions()
235+
self.test_3_zkevm_functions()
236+
237+
def test_6_relogin(self):
238+
# Close and reopen app
239+
stop_sample_app()
240+
open_sample_app()
241+
242+
# Restart AltTester
243+
self.altdriver.stop()
244+
self.__class__.altdriver = AltDriver()
245+
time.sleep(5)
246+
247+
# Wait for unauthenticated screen
248+
self.altdriver.wait_for_current_scene_to_be("UnauthenticatedScene")
249+
250+
# Relogin
251+
print("Re-logging in...")
252+
self.altdriver.wait_for_object(By.NAME, "ReloginBtn").tap()
253+
254+
# Wait for authenticated screen
255+
self.altdriver.wait_for_current_scene_to_be("AuthenticatedScene")
256+
print("Re-logged in")
257+
258+
# Get access token
259+
self.altdriver.find_object(By.NAME, "GetAccessTokenBtn").tap()
260+
output = self.altdriver.find_object(By.NAME, "Output")
261+
self.assertTrue(len(output.get_text()) > 50)
262+
263+
self.altdriver.stop()
264+
265+
def test_7_reconnect_connect_imx(self):
266+
# Close and reopen app
267+
stop_sample_app()
268+
open_sample_app()
269+
270+
# Restart AltTester
271+
self.altdriver.stop()
272+
self.__class__.altdriver = AltDriver()
273+
time.sleep(5)
274+
275+
# Wait for unauthenticated screen
276+
self.altdriver.wait_for_current_scene_to_be("UnauthenticatedScene")
277+
278+
# Reconnect
279+
print("Reconnecting...")
280+
self.altdriver.wait_for_object(By.NAME, "ReconnectBtn").tap()
281+
282+
# Wait for authenticated screen
283+
self.altdriver.wait_for_current_scene_to_be("AuthenticatedScene")
284+
print("Reconnected")
285+
286+
# Get access token
287+
self.altdriver.find_object(By.NAME, "GetAccessTokenBtn").tap()
288+
output = self.altdriver.find_object(By.NAME, "Output")
289+
self.assertTrue(len(output.get_text()) > 50)
290+
291+
# Get address without having to click Connect to IMX button
292+
self.altdriver.find_object(By.NAME, "GetAddressBtn").tap()
293+
self.assertEqual(TestConfig.WALLET_ADDRESS, output.get_text())
294+
295+
# Logout
296+
self.logout()

sample/Tests/test/test_windows.py

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,3 +205,75 @@ def test_5_zkevm_functions(self):
205205
self.test_3_zkevm_functions()
206206
print("COMPLETED TEST: test_5_zkevm_functions")
207207
print("=" * 60)
208+
209+
def test_6_relogin(self):
210+
print("=" * 60)
211+
print("STARTING TEST: test_6_relogin")
212+
print("=" * 60)
213+
self.restart_app_and_altdriver()
214+
215+
# Relogin
216+
print("Re-logging in...")
217+
self.get_altdriver().wait_for_object(By.NAME, "ReloginBtn").tap()
218+
219+
# Wait for authenticated screen
220+
self.get_altdriver().wait_for_current_scene_to_be("AuthenticatedScene")
221+
print("Re-logged in")
222+
223+
# Get access token
224+
self.get_altdriver().find_object(By.NAME, "GetAccessTokenBtn").tap()
225+
output = self.get_altdriver().find_object(By.NAME, "Output")
226+
self.assertTrue(len(output.get_text()) > 50)
227+
228+
print("COMPLETED TEST: test_6_relogin")
229+
print("=" * 60)
230+
231+
def test_7_reconnect_connect_imx(self):
232+
print("=" * 60)
233+
print("STARTING TEST: test_7_reconnect_connect_imx")
234+
print("=" * 60)
235+
self.restart_app_and_altdriver()
236+
237+
# Reconnect
238+
print("Reconnecting...")
239+
self.get_altdriver().wait_for_object(By.NAME, "ReconnectBtn").tap()
240+
241+
# Wait for authenticated screen
242+
self.get_altdriver().wait_for_current_scene_to_be("AuthenticatedScene")
243+
print("Reconnected")
244+
245+
# Get access token
246+
self.get_altdriver().find_object(By.NAME, "GetAccessTokenBtn").tap()
247+
time.sleep(2) # Give Unity time to fetch and display the access token
248+
output = self.get_altdriver().find_object(By.NAME, "Output")
249+
self.assertTrue(len(output.get_text()) > 50)
250+
251+
# Get address without having to click Connect to IMX button
252+
self.get_altdriver().find_object(By.NAME, "GetAddressBtn").tap()
253+
time.sleep(2) # Give Unity time to fetch and display the address
254+
output = self.get_altdriver().find_object(By.NAME, "Output") # Re-fetch output after address is loaded
255+
self.assertEqual(TestConfig.WALLET_ADDRESS, output.get_text())
256+
257+
# Logout
258+
print("Logging out...")
259+
launch_browser()
260+
bring_sample_app_to_foreground()
261+
self.get_altdriver().find_object(By.NAME, "LogoutBtn").tap()
262+
263+
# Use controlled browser logout instead of waiting for scene change
264+
logout_with_controlled_browser()
265+
266+
# Bring Unity app to foreground immediately so it can receive the logout callback
267+
bring_sample_app_to_foreground()
268+
269+
# Give Unity time to process the logout callback
270+
time.sleep(5)
271+
272+
# Wait for unauthenticated screen
273+
self.get_altdriver().wait_for_current_scene_to_be("UnauthenticatedScene")
274+
275+
stop_browser()
276+
print("Logged out")
277+
278+
print("COMPLETED TEST: test_7_reconnect_connect_imx")
279+
print("=" * 60)

0 commit comments

Comments
 (0)