<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title>This test validates the functionality of onresourcetimingbufferfull in resource timing.</title>
<link rel="author" title="Intel" href="http://www.intel.com/" />
<link rel="help" href="https://www.w3.org/TR/resource-timing-2/#dom-performance-onresourcetimingbufferfull"/>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/resource-loaders.js"></script>
<script src="resources/buffer-full-utilities.js"></script>
</head>
<body>
<script>
promise_test(async () => {
    let bufferFullCount = 0;
    performance.addEventListener('resourcetimingbufferfull', e => {
        assert_equals(e.bubbles, false, "Event bubbles attribute is false");
        bufferFullCount++;
    });
    await fillUpTheBufferWithTwoResources();
    // Overflow the buffer
    await load.script(scriptResources[2]);
    await waitForNextTask();
    checkEntries(2);
    assert_equals(bufferFullCount, 1, 'onresourcetimingbufferfull should have been invoked once.');
}, "Test that a buffer full event does not bubble and that resourcetimingbufferfull is called only once per overflow");
</script>
</body>
</html>
