Improvements with Steam.
This commit is contained in:
@@ -267,5 +267,90 @@ class SteamLabelRecoveryTests(unittest.TestCase):
|
||||
self.assertEqual(utilities.displayedLabel(button), "Add Friend")
|
||||
|
||||
|
||||
class SteamRedundantImageTests(unittest.TestCase):
|
||||
def test_is_useless_image_treats_unlabeled_click_ancestor_image_with_nearby_text_as_useless(self):
|
||||
testScript = mock.Mock(generatorCache={})
|
||||
utilities = steam_script_utilities.Utilities(testScript)
|
||||
image = object()
|
||||
parent = object()
|
||||
entry = object()
|
||||
|
||||
utilities.inDocumentContent = mock.Mock(return_value=True)
|
||||
|
||||
def get_parent(obj):
|
||||
if obj in (image, entry):
|
||||
return parent
|
||||
return None
|
||||
|
||||
def get_name(obj):
|
||||
if obj is entry:
|
||||
return "Search for games or profiles..."
|
||||
return ""
|
||||
|
||||
def get_child_count(obj):
|
||||
if obj is parent:
|
||||
return 2
|
||||
return 0
|
||||
|
||||
def has_action(obj, actionName):
|
||||
return obj is image and actionName == "click-ancestor"
|
||||
|
||||
def iter_children(obj, pred=None):
|
||||
children = [image, entry] if obj is parent else []
|
||||
if pred is not None:
|
||||
children = [child for child in children if pred(child)]
|
||||
return iter(children)
|
||||
|
||||
with (
|
||||
mock.patch.object(steam_script_utilities.ChromiumUtilities, "isUselessImage", return_value=False),
|
||||
mock.patch.object(steam_script_utilities.AXObject, "get_parent", side_effect=get_parent),
|
||||
mock.patch.object(steam_script_utilities.AXObject, "get_name", side_effect=get_name),
|
||||
mock.patch.object(steam_script_utilities.AXObject, "get_description", return_value=""),
|
||||
mock.patch.object(steam_script_utilities.AXObject, "get_child_count", side_effect=get_child_count),
|
||||
mock.patch.object(steam_script_utilities.AXObject, "has_action", side_effect=has_action),
|
||||
mock.patch.object(steam_script_utilities.AXObject, "iter_children", side_effect=iter_children),
|
||||
mock.patch.object(steam_script_utilities.AXObject, "supports_text", return_value=False),
|
||||
mock.patch.object(
|
||||
steam_script_utilities.AXObject,
|
||||
"get_role_description",
|
||||
side_effect=lambda obj: "Unlabeled image" if obj is image else "",
|
||||
),
|
||||
mock.patch.object(
|
||||
steam_script_utilities.AXUtilities,
|
||||
"is_image_or_canvas",
|
||||
side_effect=lambda obj: obj is image,
|
||||
),
|
||||
mock.patch.object(steam_script_utilities.AXUtilities, "is_focusable", return_value=False),
|
||||
mock.patch.object(steam_script_utilities.AXUtilities, "is_button", return_value=False),
|
||||
mock.patch.object(steam_script_utilities.AXUtilities, "is_push_button", return_value=False),
|
||||
):
|
||||
self.assertTrue(utilities.isUselessImage(image))
|
||||
|
||||
def test_is_useless_image_defers_to_generic_logic_without_nearby_text(self):
|
||||
testScript = mock.Mock(generatorCache={})
|
||||
utilities = steam_script_utilities.Utilities(testScript)
|
||||
image = object()
|
||||
|
||||
utilities.inDocumentContent = mock.Mock(return_value=True)
|
||||
|
||||
with (
|
||||
mock.patch.object(steam_script_utilities.ChromiumUtilities, "isUselessImage", return_value=False),
|
||||
mock.patch.object(steam_script_utilities.AXObject, "get_parent", return_value=None),
|
||||
mock.patch.object(steam_script_utilities.AXObject, "get_name", return_value=""),
|
||||
mock.patch.object(steam_script_utilities.AXObject, "get_description", return_value=""),
|
||||
mock.patch.object(steam_script_utilities.AXObject, "get_child_count", return_value=0),
|
||||
mock.patch.object(steam_script_utilities.AXObject, "has_action", return_value=True),
|
||||
mock.patch.object(steam_script_utilities.AXObject, "supports_text", return_value=False),
|
||||
mock.patch.object(steam_script_utilities.AXObject, "get_role_description", return_value=""),
|
||||
mock.patch.object(
|
||||
steam_script_utilities.AXUtilities,
|
||||
"is_image_or_canvas",
|
||||
side_effect=lambda obj: obj is image,
|
||||
),
|
||||
mock.patch.object(steam_script_utilities.AXUtilities, "is_focusable", return_value=False),
|
||||
):
|
||||
self.assertFalse(utilities.isUselessImage(image))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user