Skip to content

Commit

Permalink
Proxy BBT fetch requests on Android using adb reverse
Browse files Browse the repository at this point in the history
b/165629644

Change-Id: If0b7393a9582c7d68978add9a4d1e0a6505b437e
  • Loading branch information
johnxwork committed Jun 27, 2023
1 parent 12db664 commit 9737923
Show file tree
Hide file tree
Showing 45 changed files with 238 additions and 76 deletions.
2 changes: 2 additions & 0 deletions cobalt/black_box_tests/black_box_cobalt_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ def __init__(self,
target_params=None,
success_message=None,
poll_until_wait_seconds=POLL_UNTIL_WAIT_SECONDS,
web_server_port=None,
**kwargs):
# For black box tests, don't log inline script warnings, we intend to
# explicitly control timings for suspends and resumes, so we are not
Expand All @@ -65,6 +66,7 @@ def __init__(self,
target_params,
success_message,
poll_until_wait_seconds=poll_until_wait_seconds,
web_server_port=web_server_port,
**kwargs)

self.poll_until_wait_seconds = poll_until_wait_seconds
Expand Down
7 changes: 6 additions & 1 deletion cobalt/black_box_tests/black_box_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,11 @@ def tearDownClass(cls):
super(BlackBoxTestCase, cls).tearDownClass()
logging.info('Done %s', cls.__name__)

def CreateCobaltRunner(self, url=None, target_params=None, **kwargs):
def CreateCobaltRunner(self,
url=None,
target_params=None,
web_server_port=None,
**kwargs):
all_target_params = list(target_params) if target_params else []
if _launcher_params.target_params is not None:
all_target_params += _launcher_params.target_params
Expand All @@ -155,6 +159,7 @@ def CreateCobaltRunner(self, url=None, target_params=None, **kwargs):
launcher_params=_launcher_params,
url=url,
target_params=all_target_params,
web_server_port=web_server_port,
**kwargs)

def GetBindingAddress(self):
Expand Down
3 changes: 2 additions & 1 deletion cobalt/black_box_tests/tests/allow_eval.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,6 @@ def test_allow_eval(self):
with ThreadedWebServer(binding_address=self.GetBindingAddress()) as server:
url = server.GetURL(file_name='testdata/allow_eval.html')

with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
self.assertTrue(runner.JSTestsSucceeded())
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,8 @@ def test_cancel_sync_loads_when_suspended(self):
try:
with ThreadedWebServer(JavascriptRequestDetector,
self.GetBindingAddress()) as server:
with self.CreateCobaltRunner(url='about:blank') as runner:
with self.CreateCobaltRunner(
url='about:blank', web_server_port=server.GetPort()) as runner:
target_url = server.GetURL(file_name='../testdata/' +
_CANCEL_SYNC_LOADS_WHEN_SUSPENDED_HTML)
cobalt_launcher_thread = threading.Thread(
Expand Down
3 changes: 2 additions & 1 deletion cobalt/black_box_tests/tests/compression_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,8 @@ def execute_test(test_runner, encoding_type):
handler=make_request_handler_class(path, encoding_type)) as server:
url = server.GetURL(file_name='testdata/compression.html')

with test_runner.CreateCobaltRunner(url=url) as runner:
with test_runner.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
test_runner.assertTrue(runner.JSTestsSucceeded())


Expand Down
3 changes: 2 additions & 1 deletion cobalt/black_box_tests/tests/conceal_visibility.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ def test_conceal_visibility(self):
with ThreadedWebServer(binding_address=self.GetBindingAddress()) as server:
url = server.GetURL(file_name='testdata/conceal_visibility.html')

with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
runner.SendConceal()
runner.SendFocus()
Expand Down
10 changes: 7 additions & 3 deletions cobalt/black_box_tests/tests/deep_links.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,8 @@ def _send_link(self, query_parameter=''):
try:
with ThreadedWebServer(JavascriptRequestDetector,
self.GetBindingAddress()) as server:
with self.CreateCobaltRunner(url='about:blank') as runner:
with self.CreateCobaltRunner(
url='about:blank', web_server_port=server.GetPort()) as runner:
target_url = server.GetURL(file_name='../testdata/' +
_DEEP_LINKS_HTML)
if query_parameter != '':
Expand Down Expand Up @@ -151,7 +152,9 @@ def _start_link(self, query_parameter=''):
initial_deep_link = 'link 3' # Expected by our test JS

with self.CreateCobaltRunner(
url=url, target_params=['--link=' + initial_deep_link]) as runner:
url=url,
target_params=['--link=' + initial_deep_link],
web_server_port=server.GetPort()) as runner:
success = runner.JSTestsSucceeded()
if success:
logging.info('[ OK ] %s', inspect.stack()[1][3])
Expand All @@ -167,7 +170,8 @@ def _delayed_link(self, query_parameter=''):
try:
with ThreadedWebServer(JavascriptRequestDetector,
self.GetBindingAddress()) as server:
with self.CreateCobaltRunner(url='about:blank') as runner:
with self.CreateCobaltRunner(
url='about:blank', web_server_port=server.GetPort()) as runner:
target_url = server.GetURL(file_name='../testdata/' +
_DEEP_LINKS_HTML)
if query_parameter != '':
Expand Down
3 changes: 2 additions & 1 deletion cobalt/black_box_tests/tests/disable_eval_with_csp.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,6 @@ def test_disable_eval_with_csp(self):
with ThreadedWebServer(binding_address=self.GetBindingAddress()) as server:
url = server.GetURL(file_name='testdata/disable_eval_with_csp.html')

with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
self.assertTrue(runner.JSTestsSucceeded())
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ def test_evergreen_verify_qa_channel_update(self):
with self.CreateCobaltRunner(
url=url,
target_params=['--update_check_delay_seconds=300'],
loader_target='loader_app') as runner:
loader_target='loader_app',
web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
self.assertTrue(runner.JSTestsSucceeded())

Expand All @@ -41,8 +42,10 @@ def test_evergreen_verify_qa_channel_update(self):
# 100 seconds provides enough time for the initial update delay, the prod
# channel update, and the target channel update.
with self.CreateCobaltRunner(
url=url, poll_until_wait_seconds=100,
loader_target='loader_app') as runner:
url=url,
poll_until_wait_seconds=100,
loader_target='loader_app',
web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
self.assertTrue(runner.JSTestsSucceeded())

Expand All @@ -52,8 +55,10 @@ def test_evergreen_verify_qa_channel_update(self):
# 60 seconds provides enough time for the initial update delay and target
# channel update check.
with self.CreateCobaltRunner(
url=url, poll_until_wait_seconds=60,
loader_target='loader_app') as runner:
url=url,
poll_until_wait_seconds=60,
loader_target='loader_app',
web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
self.assertTrue(runner.JSTestsSucceeded())

Expand All @@ -63,6 +68,7 @@ def test_evergreen_verify_qa_channel_update(self):
with self.CreateCobaltRunner(
url=url,
target_params=['--update_check_delay_seconds=300'],
loader_target='loader_app') as runner:
loader_target='loader_app',
web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
self.assertTrue(runner.JSTestsSucceeded())
3 changes: 2 additions & 1 deletion cobalt/black_box_tests/tests/freeze_timers.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ def test_freeze_visibility(self):
with ThreadedWebServer(binding_address=self.GetBindingAddress()) as server:
url = server.GetURL(file_name='testdata/freeze_timers.html')

with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
time.sleep(2.5)
runner.SendConceal()
Expand Down
3 changes: 2 additions & 1 deletion cobalt/black_box_tests/tests/freeze_visibility.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ def test_freeze_visibility(self):
with ThreadedWebServer(binding_address=self.GetBindingAddress()) as server:
url = server.GetURL(file_name='testdata/freeze_visibility.html')

with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
runner.SendFreeze()
runner.SendFocus()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ def test_h5vcc_storage_write_verify_test(self):
with ThreadedWebServer(binding_address=self.GetBindingAddress()) as server:
url = server.GetURL(
file_name='testdata/h5vcc_storage_write_verify_test.html')
with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
runner.WaitForActiveElement()
self.assertTrue(runner.JSTestsSucceeded())
3 changes: 2 additions & 1 deletion cobalt/black_box_tests/tests/http_cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,6 @@ def test_http_cache(self):
binding_address=self.GetBindingAddress(),
handler=DelayedHttpRequestHandler) as server:
url = server.GetURL(file_name='testdata/http_cache.html')
with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
self.assertTrue(runner.JSTestsSucceeded())
2 changes: 1 addition & 1 deletion cobalt/black_box_tests/tests/override_ua_parameters.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,6 @@ def test_override_ua_parameters(self):
'Waldo OS 6.0;'\
'starboard_version=Starboard/12;'\
'rasterizer_type=gles'
]) as runner:
], web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
self.assertTrue(runner.JSTestsSucceeded())
9 changes: 6 additions & 3 deletions cobalt/black_box_tests/tests/persistent_cookie.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,22 +35,25 @@ def test_persistent_cookie(self):
url = server.GetURL(file_name='testdata/persistent_cookie.html')

# The webpage listens for NUMPAD1, NUMPAD2 and NUMPAD3 at opening.
with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
# Press NUMPAD1 to verify basic cookie functionality and set
# a persistent cookie.
runner.WaitForJSTestsSetup()
runner.SendKeys(keys.Keys.NUMPAD1)
self.assertTrue(runner.JSTestsSucceeded())

with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
# Press NUMPAD2 to indicate this is the second time we opened
# the webpage and verify a persistent cookie is on device. Then
# clear this persistent cookie.
runner.SendKeys(keys.Keys.NUMPAD2)
self.assertTrue(runner.JSTestsSucceeded())

with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
# Press NUMPAD3 to verify the persistent cookie we cleared is
# not on the device for this URL any more.
Expand Down
3 changes: 2 additions & 1 deletion cobalt/black_box_tests/tests/pointer_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ def test_pointer_events(self):
binding_address=self.GetBindingAddress()) as server:
url = server.GetURL(file_name='testdata/pointer_test.html')

with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
logging.info('JS Test Setup WaitForJSTestsSetup')
runner.WaitForJSTestsSetup()
logging.info('JS Test Setup')
Expand Down
8 changes: 5 additions & 3 deletions cobalt/black_box_tests/tests/preload_font.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,16 @@ def test_preload_font(self):
url = server.GetURL(file_name='testdata/preload_font.html')

with self.CreateCobaltRunner(
url=url, target_params=['--preload']) as runner:
url=url,
target_params=['--preload'],
web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
runner.SendResume()
start_time = time.time()
while runner.IsInPreload():
if time.time() - start_time > _MAX_RESUME_WAIT_SECONDS:
raise Exception('Cobalt can not exit preload mode after receiving'
'resume signal')
raise ValueError('Cobalt can not exit preload mode after receiving'
' resume signal')
time.sleep(.1)
# At this point, Cobalt is in started mode.
self.assertTrue(runner.JSTestsSucceeded())
8 changes: 6 additions & 2 deletions cobalt/black_box_tests/tests/preload_launch_parameter.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,19 @@ def test_preload_launch_parameter(self):

# Test without other parameters.
with self.CreateCobaltRunner(
url=url, target_params=['--preload']) as runner:
url=url,
target_params=['--preload'],
web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
self.assertTrue(runner.IsInPreload())
runner.SendResume()
self.assertTrue(runner.JSTestsSucceeded())

# Test with another parameter.
with self.CreateCobaltRunner(
url=url + '?foo=bar', target_params=['--preload']) as runner:
url=url + '?foo=bar',
target_params=['--preload'],
web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
self.assertTrue(runner.IsInPreload())
runner.SendResume()
Expand Down
4 changes: 3 additions & 1 deletion cobalt/black_box_tests/tests/preload_visibility.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,9 @@ def test_preload_visibility(self):
url = server.GetURL(file_name='testdata/preload_visibility.html')

with self.CreateCobaltRunner(
url=url, target_params=['--preload']) as runner:
url=url,
target_params=['--preload'],
web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
self.assertTrue(runner.IsInPreload())
runner.SendResume()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,8 @@ def test_retry_async_script_loads_after_suspend(self):
try:
with ThreadedWebServer(JavascriptRequestDetector,
self.GetBindingAddress()) as server:
with self.CreateCobaltRunner(url='about:blank') as runner:
with self.CreateCobaltRunner(
url='about:blank', web_server_port=server.GetPort()) as runner:
target_url = server.GetURL(file_name='../testdata/' +
_HTML_FILE_TO_REQUEST)
cobalt_launcher_thread = threading.Thread(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ def test_service_worker_add_to_cache(self):
with ThreadedWebServer(binding_address=self.GetBindingAddress()) as server:
url = server.GetURL(
file_name='testdata/service_worker_add_to_cache_test.html')
with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
self.assertTrue(runner.JSTestsSucceeded())
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ def test_service_worker_cache_keys(self):
with ThreadedWebServer(binding_address=self.GetBindingAddress()) as server:
url = server.GetURL(
file_name='testdata/service_worker_cache_keys_test.html')
with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
self.assertTrue(runner.JSTestsSucceeded())
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@ def test_service_worker_controller_activation(self):
url = server.GetURL(
file_name='testdata/service_worker_controller_activation_test.html')

with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()

logging.info('SendKeys NUMPAD0.')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ def test_service_worker_fetch_main_resource(self):
with ThreadedWebServer(binding_address=self.GetBindingAddress()) as server:
url = server.GetURL(
file_name='testdata/service_worker_fetch_main_resource_test.html')
with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
self.assertTrue(runner.JSTestsSucceeded())
3 changes: 2 additions & 1 deletion cobalt/black_box_tests/tests/service_worker_fetch_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class ServiceWorkerFetchTest(black_box_tests.BlackBoxTestCase):
def test_service_worker_fetch(self):
with ThreadedWebServer(binding_address=self.GetBindingAddress()) as server:
url = server.GetURL(file_name='testdata/service_worker_fetch_test.html')
with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
self.assertTrue(runner.JSTestsSucceeded())
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ def test_service_worker_get_registrations(self):
with ThreadedWebServer(binding_address=self.GetBindingAddress()) as server:
url = server.GetURL(
file_name='testdata/service_worker_get_registrations_test.html')
with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
self.assertTrue(runner.JSTestsSucceeded())
3 changes: 2 additions & 1 deletion cobalt/black_box_tests/tests/service_worker_message_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ def test_service_worker_message(self):
with ThreadedWebServer(binding_address=self.GetBindingAddress()) as server:
url = server.GetURL(file_name='testdata/service_worker_message_test.html')

with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
runner.WaitForJSTestsSetup()
self.assertTrue(runner.JSTestsSucceeded())
9 changes: 6 additions & 3 deletions cobalt/black_box_tests/tests/service_worker_persist_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,20 @@ def test_service_worker_persist(self):
url = server.GetURL(file_name='testdata/service_worker_persist_test.html')

# NUMPAD0 calls test_successful_registration()
with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
runner.WaitForActiveElement()
runner.SendKeys(keys.Keys.NUMPAD0)
self.assertTrue(runner.JSTestsSucceeded())
# NUMPAD1 calls test_persistent_registration()
with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
runner.WaitForActiveElement()
runner.SendKeys(keys.Keys.NUMPAD1)
self.assertTrue(runner.JSTestsSucceeded())
# NUMPAD2 calls test_persistent_registration_does_not_exist()
with self.CreateCobaltRunner(url=url) as runner:
with self.CreateCobaltRunner(
url=url, web_server_port=server.GetPort()) as runner:
runner.WaitForActiveElement()
runner.SendKeys(keys.Keys.NUMPAD2)
self.assertTrue(runner.JSTestsSucceeded())
Loading

0 comments on commit 9737923

Please sign in to comment.