| <!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 sampleTopFrameURL1 = "http://topFrameDomain1:8000"; |
| const sampleTopFrameURL2 = "http://topFrameDomain2:8000"; |
| const olderTimestamp = Math.round((new Date()).getTime() / 1000); |
| const newerTimestamp = olderTimestamp + 10; |
| const mostRecentUIToTriggerFirstPartyInteractionCount = newerTimestamp + 90000; |
| |
| function insertSecondStatistic() { |
| |
| // set url1 as prevalent so it is in the statistics store |
| // set url2 having UI so it is in the statistics store |
| testRunner.setStatisticsPrevalentResource(sampleTopFrameURL1, true, function() { |
| testRunner.setStatisticsHasHadUserInteraction(sampleTopFrameURL2, true, function () { |
| testRunner.setStatisticsMergeStatistic(url, sampleTopFrameURL1, sampleTopFrameURL2, newerTimestamp, true, 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 overwrote 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, sampleTopFrameURL1)) |
| testPassed("Host set as subframe under top frame1."); |
| else |
| testFailed("Host not set as subframe under top frame1."); |
| if (testRunner.isStatisticsRegisteredAsSubFrameUnder(url, sampleTopFrameURL2)) |
| testPassed("Host set as subframe under top frame2."); |
| else |
| testFailed("Host not set as subframe under top frame2."); |
| |
| 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> |