import pytest
from GramAddict.core.perception.screen_identity import ScreenIdentity, ScreenType

def test_screen_identity_own_profile_vs_other_profile():
    identity = ScreenIdentity("marisaundmarc")

    # When we are on our OWN profile, 'profile_tab' is selected,
    # but 'profile_header_container' is ALSO present.
    # The bug is that 'profile_header_container' shadows 'profile_tab' selected=True.
    
    # Let's create an XML dump that mimics this scenario:
    own_profile_xml = """<?xml version="1.0" encoding="utf-8"?>
    <hierarchy>
        <node package="com.instagram.android" resource-id="com.instagram.android:id/profile_header_container" text="" content-desc="" clickable="false" bounds="[0,0][100,100]" />
        <node package="com.instagram.android" resource-id="com.instagram.android:id/profile_tab" selected="true" text="" content-desc="Profile" clickable="true" bounds="[0,0][100,100]" />
    </hierarchy>
    """
    
    result = identity.identify(own_profile_xml)
    
    assert result["screen_type"] == ScreenType.OWN_PROFILE, "Failed! own profile was classified as OTHER_PROFILE because profile_header_container shadowed it."

def test_screen_identity_other_profile_vs_own_profile():
    identity = ScreenIdentity("marisaundmarc")

    # When we are on someone ELSE's profile, 'profile_tab' is NOT selected
    # (or maybe 'feed_tab' or 'search_tab' is selected, or none).
    # And 'profile_header_container' is present.
    
    other_profile_xml = """<?xml version="1.0" encoding="utf-8"?>
    <hierarchy>
        <node package="com.instagram.android" resource-id="com.instagram.android:id/profile_header_container" text="" content-desc="" clickable="false" bounds="[0,0][100,100]" />
        <node package="com.instagram.android" resource-id="com.instagram.android:id/feed_tab" selected="true" text="" content-desc="Home" clickable="true" bounds="[0,0][100,100]" />
    </hierarchy>
    """
    
    result = identity.identify(other_profile_xml)
    
    assert result["screen_type"] == ScreenType.OTHER_PROFILE, "Failed! other profile was not classified as OTHER_PROFILE."
