blob: ab3c72b564bf0634623ced0d2b27418d83a39a15 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="/js-test-resources/js-test.js"></script>
<script src="resources/util.js"></script>
<script>description("Tests that merged statistic overwrites old statistic");</script>
</head>
<body onload="setTimeout('setUpAndRun()', 0)">
<script>
jsTestIsAsync = true;
const url = "http://127.0.0.1:8000";
const sampleTopFrameURL = "http://topFrameDomain:8000";
const olderTimestamp = Math.round((new Date()).getTime() / 1000);
const newerTimestamp = olderTimestamp + 10;
const mostRecentUIToTriggerFirstPartyInteractionCount = newerTimestamp + 90000;
function insertSecondStatistic() {
// set this resource as prevalent so it is in the statistics store
testRunner.setStatisticsPrevalentResource(sampleTopFrameURL, true, function() {
testRunner.setStatisticsMergeStatistic(url, sampleTopFrameURL, "", newerTimestamp, false, mostRecentUIToTriggerFirstPartyInteractionCount, true, true, true, 1, function() {
if (testRunner.isStatisticsPrevalentResource(url))
testPassed("Host overwrote old prevalent resource value.");
else
testFailed("Host not set as prevalent resource.");
if (testRunner.isStatisticsVeryPrevalentResource(url))
testPassed("Host overwrote old very prevalent resource value.");
else
testFailed("Host not set as very prevalent resource.");
if (!testRunner.isStatisticsHasHadUserInteraction(url))
testPassed("Host did not overwrite old user interaction value.");
else
testFailed("Host not logged for user interaction.");
if (testRunner.isStatisticsGrandfathered(url))
testPassed("Host overwrote old grandfathered value.");
else
testFailed("Host not set as grandfathered.");
if (testRunner.isStatisticsRegisteredAsSubFrameUnder(url, sampleTopFrameURL))
testPassed("Host set as subframe under top frame.");
else
testFailed("Host not set as subframe under top frame.");
testRunner.statisticsResetToConsistentState(function() {
finishJSTest();
});
});
});
}
function runTestRunnerTest() {
testRunner.setStatisticsMergeStatistic(url, "", "", olderTimestamp, false, 0, false, false, false, 0, function() {
if (testRunner.isStatisticsPrevalentResource(url))
testFailed("Host got set as prevalent resource.");
if (testRunner.isStatisticsVeryPrevalentResource(url))
testFailed("Host got set as prevalent resource.");
if (testRunner.isStatisticsHasHadUserInteraction(url))
testFailed("Host got logged for user interaction.");
if (testRunner.isStatisticsGrandfathered(url))
testFailed("Host got set as grandfathered.");
insertSecondStatistic();
});
}
function setUpAndRun() {
if (window.testRunner) {
testRunner.setUseITPDatabase(true);
setEnableFeature(true, function () {
runTestRunnerTest();
});
} else {
testFailed("no testRunner");
testRunner.statisticsResetToConsistentState(function() {
finishJSTest();
});
}
}
</script>
</body>
</html>