Preserve web active window during transient Brave focus checks
This commit is contained in:
@@ -100,6 +100,59 @@ class WebKeyGrabRegressionTests(unittest.TestCase):
|
||||
testScript.refreshKeyGrabs.assert_called_once_with()
|
||||
|
||||
|
||||
class WebActiveWindowRegressionTests(unittest.TestCase):
|
||||
def test_sanity_check_recovers_missing_script_app_from_active_window(self):
|
||||
testScript = mock.Mock(app=None)
|
||||
utilities = web_script_utilities.Utilities.__new__(web_script_utilities.Utilities)
|
||||
utilities._script = testScript
|
||||
activeWindow = object()
|
||||
app = object()
|
||||
|
||||
with (
|
||||
mock.patch.object(web_script_utilities.cthulhu_state, "activeWindow", activeWindow),
|
||||
mock.patch.object(web_script_utilities.cthulhu_state, "locusOfFocus", None),
|
||||
mock.patch.object(
|
||||
web_script_utilities.AXObject,
|
||||
"get_application",
|
||||
side_effect=lambda obj: app if obj is activeWindow else None,
|
||||
),
|
||||
mock.patch.object(
|
||||
web_script_utilities.AXObject,
|
||||
"get_parent",
|
||||
side_effect=lambda obj: app if obj is activeWindow else None,
|
||||
),
|
||||
mock.patch.object(web_script_utilities.cthulhu, "setActiveWindow") as setActiveWindow,
|
||||
):
|
||||
result = web_script_utilities.Utilities.sanityCheckActiveWindow(utilities)
|
||||
|
||||
self.assertTrue(result)
|
||||
self.assertIs(testScript.app, app)
|
||||
setActiveWindow.assert_not_called()
|
||||
|
||||
def test_sanity_check_preserves_current_window_when_recovery_is_inconclusive(self):
|
||||
oldApp = object()
|
||||
testScript = mock.Mock(app=oldApp)
|
||||
utilities = web_script_utilities.Utilities.__new__(web_script_utilities.Utilities)
|
||||
utilities._script = testScript
|
||||
activeWindow = object()
|
||||
|
||||
with (
|
||||
mock.patch.object(web_script_utilities.cthulhu_state, "activeWindow", activeWindow),
|
||||
mock.patch.object(
|
||||
web_script_utilities.AXObject,
|
||||
"get_parent",
|
||||
return_value=object(),
|
||||
),
|
||||
mock.patch.object(utilities, "activeWindow", return_value=None),
|
||||
mock.patch.object(web_script_utilities.cthulhu, "setActiveWindow") as setActiveWindow,
|
||||
):
|
||||
result = web_script_utilities.Utilities.sanityCheckActiveWindow(utilities)
|
||||
|
||||
self.assertTrue(result)
|
||||
self.assertIs(testScript.app, oldApp)
|
||||
setActiveWindow.assert_not_called()
|
||||
|
||||
|
||||
class WebPresentationModeSpeechRegressionTests(unittest.TestCase):
|
||||
def _make_script(self, inFocusMode):
|
||||
testScript = web_script.Script.__new__(web_script.Script)
|
||||
|
||||
Reference in New Issue
Block a user