Steam UI improvements.

This commit is contained in:
Storm Dragon
2026-04-04 20:22:54 -04:00
parent f4af54228a
commit a750761f61
9 changed files with 506 additions and 20 deletions
+40
View File
@@ -108,5 +108,45 @@ class WebHiddenPopupTests(unittest.TestCase):
self.assertFalse(utilities._canHaveCaretContext(hiddenObject))
class WebRemovedChildRegressionTests(unittest.TestCase):
def test_removed_child_recovery_does_not_crash_when_last_key_is_not_up_or_down(self):
utilities = script_utilities.Utilities.__new__(script_utilities.Utilities)
removedChild = object()
locusOfFocus = object()
source = object()
recoveredObject = object()
event = mock.Mock(any_data=removedChild, source=source, detail1=0)
utilities._script = mock.Mock(pointOfReference={"names": {}})
utilities._handleEventForRemovedListBoxChild = mock.Mock(return_value=False)
utilities.isSameObject = mock.Mock(return_value=False)
utilities.searchForCaretContext = mock.Mock(return_value=(recoveredObject, 0))
utilities.setCaretContext = mock.Mock()
manager = mock.Mock()
manager.last_event_was_up.return_value = False
manager.last_event_was_down.return_value = False
def find_ancestor(obj, predicate):
if obj is locusOfFocus and predicate(removedChild):
return removedChild
return None
with (
mock.patch.object(script_utilities.cthulhu_state, "locusOfFocus", locusOfFocus),
mock.patch.object(script_utilities.input_event_manager, "get_manager", return_value=manager),
mock.patch.object(script_utilities.AXObject, "find_ancestor", side_effect=find_ancestor),
mock.patch.object(script_utilities.AXObject, "get_child_count", return_value=0),
mock.patch.object(script_utilities.AXObject, "clear_cache"),
mock.patch.object(script_utilities.AXObject, "is_dead", return_value=False),
mock.patch.object(script_utilities.AXUtilities, "get_focused_object", return_value=None),
mock.patch.object(script_utilities.cthulhu, "setLocusOfFocus") as setLocusOfFocus,
):
self.assertTrue(utilities.handleEventForRemovedChild(event))
setLocusOfFocus.assert_called_once_with(event, recoveredObject, False)
utilities.setCaretContext.assert_called_once_with(recoveredObject, 0)
if __name__ == "__main__":
unittest.main()