| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="UTF-8"> |
| <title>Tests that many inserts into the database only result in one row.</title> |
| <script src="/js-test-resources/js-test.js"></script> |
| <script src="resources/util.js"></script> |
| </head> |
| <body> |
| <script> |
| description("Tests that many inserts into the database only result in one row."); |
| jsTestIsAsync = true; |
| |
| const topFrameUrl = "http://127.0.0.1:8000/temp"; |
| const subframeUrl = "http://127.0.1.1:8000/temp"; |
| |
| function checkClassificationAndContinue() { |
| if (!testRunner.isStatisticsRegisteredAsSubFrameUnder(subframeUrl, topFrameUrl)) { |
| testFailed("url did not get set as subframe."); |
| setEnableFeature(false, finishJSTest); |
| } else if (!testRunner.isStatisticsRegisteredAsRedirectingTo(subframeUrl, topFrameUrl)) { |
| testFailed("url did not get set as redirecting to top frame."); |
| setEnableFeature(false, finishJSTest); |
| } else if (!testRunner.isStatisticsRegisteredAsSubresourceUnder(subframeUrl, topFrameUrl)) { |
| testFailed("url did not get set as subresource."); |
| setEnableFeature(false, finishJSTest); |
| } else { |
| testPassed("url set as subframe"); |
| checkCountStatistics(); |
| } |
| } |
| |
| function insertManyTimes(url) { |
| testRunner.setStatisticsSubframeUnderTopFrameOrigin(url, topFrameUrl); |
| testRunner.setStatisticsSubframeUnderTopFrameOrigin(url, topFrameUrl); |
| testRunner.setStatisticsSubframeUnderTopFrameOrigin(url, topFrameUrl); |
| testRunner.setStatisticsSubframeUnderTopFrameOrigin(url, topFrameUrl); |
| |
| testRunner.setStatisticsSubresourceUnderTopFrameOrigin(url, topFrameUrl); |
| testRunner.setStatisticsSubresourceUnderTopFrameOrigin(url, topFrameUrl); |
| testRunner.setStatisticsSubresourceUnderTopFrameOrigin(url, topFrameUrl); |
| testRunner.setStatisticsSubresourceUnderTopFrameOrigin(url, topFrameUrl); |
| |
| |
| testRunner.setStatisticsSubresourceUniqueRedirectTo(url, topFrameUrl); |
| testRunner.setStatisticsSubresourceUniqueRedirectTo(url, topFrameUrl); |
| testRunner.setStatisticsSubresourceUniqueRedirectTo(url, topFrameUrl); |
| testRunner.setStatisticsSubresourceUniqueRedirectTo(url, topFrameUrl); |
| } |
| |
| function setUpStatisticsAndContinue() { |
| insertManyTimes(subframeUrl); |
| testRunner.installStatisticsDidScanDataRecordsCallback(checkClassificationAndContinue); |
| testRunner.statisticsProcessStatisticsAndDataRecords(); |
| } |
| |
| function checkCountStatistics(result) { |
| if (testRunner.isStatisticsOnlyInDatabaseOnce(subframeUrl, topFrameUrl)) |
| testPassed("Relationships are only in the database once."); |
| else |
| testFailed("Relationships are in the database more than once."); |
| |
| setEnableFeature(false, finishJSTest); |
| } |
| |
| if (window.testRunner) { |
| setEnableFeature(true, function() { |
| setUpStatisticsAndContinue(); |
| }); |
| } |
| </script> |
| </body> |
| </html> |