<!-- Copyright 2016 Google Inc. All Rights Reserved. Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE. https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title>IntersectionObserver Tests</title> <!-- Dependencies --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mocha/2.5.3/mocha.min.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/2.5.3/mocha.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/expect.js/0.2.0/expect.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/sinon.js/3.2.1/sinon.min.js"></script> <!-- Polyfills for IE7-8 --> <script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=es5,getComputedStyle"></script> </head> <body> <div id="mocha"></div> <!-- Setup --> <script>mocha.setup({ui:'bdd'});</script> <!-- Uncomment this script to force the polyfill installation <script> delete window.IntersectionObserver; delete window.IntersectionObserverEntry; </script> --> <!-- Script under test --> <script src="intersection-observer.js"></script> <!-- Tests --> <script src="intersection-observer-test.js"></script> <!-- Reporting --> <script> var runner = mocha.run(); var failedTests = []; runner.on('end', function(){ window.mochaResults = runner.stats; window.mochaResults.reports = failedTests; }); runner.on('fail', function(test, err){ var flattenTitles = function(test){ var titles = []; while (test.parent.title){ titles.push(test.parent.title); test = test.parent; } return titles.reverse(); }; failedTests.push({ name: test.title, result: false, message: err.message, stack: err.stack, titles: flattenTitles(test) }); }); </script> </body> </html>