import os import glob import xml.etree.ElementTree as ET dumps = glob.glob('debug/xml_dumps/*.xml') edge_cases = { 'dialogs': set(), 'bottom_sheets': set(), 'errors': set(), 'weird_states': set() } for dump in dumps: try: tree = ET.parse(dump) root = tree.getroot() for node in root.iter('node'): rid = node.get('resource-id', '') class_name = node.get('class', '') text = node.get('text', '') if 'dialog' in rid.lower() or 'alert' in rid.lower() or 'popup' in rid.lower(): edge_cases['dialogs'].add(rid) elif 'bottom_sheet' in rid.lower() or 'action_sheet' in rid.lower(): edge_cases['bottom_sheets'].add(rid) elif 'error' in rid.lower() or 'fail' in rid.lower(): edge_cases['errors'].add(rid) # Unusual views that might break logic if 'survey' in rid.lower() or 'rate' in rid.lower() or 'nux' in rid.lower(): edge_cases['weird_states'].add(rid) except: pass print("=== Discovered Edge Cases in Dumps ===") for k, v in edge_cases.items(): print(f"\n[{k.upper()}]") for item in list(v)[:10]: print(f" - {item}")