Tests that user interaction is reported after history removal since that means all statistics have been reset.

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


PASS document.location.origin is topFrameOrigin
PASS testRunner.isStatisticsHasHadUserInteraction(topFrameOrigin) is false
PASS testRunner.isStatisticsHasHadUserInteraction(subFrameOrigin) is false
PASS testRunner.isStatisticsHasHadUserInteraction(topFrameOrigin) is true
PASS testRunner.isStatisticsHasHadUserInteraction(subFrameOrigin) is false
PASS testRunner.isStatisticsHasHadUserInteraction(topFrameOrigin) is false
PASS testRunner.isStatisticsHasHadUserInteraction(topFrameOrigin) is true
PASS testRunner.isStatisticsHasHadUserInteraction(subFrameOrigin) is false
PASS successfullyParsed is true

TEST COMPLETE
This is the test element
