Before

After

End of test

This tests that deleting an iframe doesn't cause the accessibility cache to be destroyed and recreated.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".



Before:
AXRole: document AXValue: 
    AXRole: AXWebArea AXValue: 
        AXRole: AXGroup AXValue: 
            AXRole: AXStaticText AXValue: Before
        AXRole: AXGroup AXValue: 
            AXRole: AXGroup AXValue: 
                AXRole: AXWebArea AXValue: 
                    AXRole: AXWebArea AXValue: 
                        AXRole: AXGroup AXValue: 
                            AXRole: AXButton AXValue: 
        AXRole: AXGroup AXValue: 
            AXRole: AXStaticText AXValue: After
        AXRole: AXGroup AXValue: 

After:
AXRole: document AXValue: 
    AXRole: AXWebArea AXValue: 
        AXRole: AXGroup AXValue: 
            AXRole: AXStaticText AXValue: Before
        AXRole: AXGroup AXValue: 
            AXRole: AXStaticText AXValue: After
        AXRole: AXGroup AXValue: 

PASS frameBodyRole == frameBody.role is false
PASS frameGroupRole == frameGroup.role is false
PASS frameButtonRole == frameButton.role is false
PASS root.isEqual(newRoot) is true
PASS body.isEqual(newBody) is true
PASS before.isEqual(newBefore) is true
PASS after.isEqual(newAfter) is true

TEST COMPLETE

