blob: 00d2ae0e4426f4644f70e921751fffc327de46d6 [file] [log] [blame]
Yoav Weiss79001b12018-12-12 17:16:561<!DOCTYPE HTML>
2<html>
3<head>
4<meta charset="utf-8" />
5<link rel="author" title="Intel" href="http://www.intel.com/" />
6<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/>
7<title>This test validates the functionality of onresourcetimingbufferfull in resource timing.</title>
8<script src="/resources/testharness.js"></script>
9<script src="/resources/testharnessreport.js"></script>
10<script src="resources/buffer-full-utilities.js"></script>
11</head>
12<body>
13<script>
14const resource_timing_buffer_size = 2;
15let bufferFullCount = 0;
16let eventFired = false;
17setup(() => {
18 clearBufferAndSetSize(resource_timing_buffer_size);
19 performance.addEventListener('resourcetimingbufferfull', e => {
20 assert_equals(e.bubbles, false, "Event bubbles attribute is false");
21 bufferFullCount++;
22 eventFired = true;
23 });
24});
25
26let overflowTheBuffer = () => {
27 return new Promise(resolve => {
28 // This resource overflows the entry buffer, and goes into the secondary buffer.
29 appendScript('resources/empty_script.js', resolve);
30 });
31};
32
33let testThatBufferContainsTheRightResources = () => {
34 assert_equals(performance.getEntriesByType('resource').length, resource_timing_buffer_size, 'There should only be |bufferSize| resource entries.');
35 assert_equals(bufferFullCount, 1, 'onresourcetimingbufferfull should have been invoked once.');
36};
37
38promise_test(async () => {
39 await fillUpTheBufferWithTwoResources('resources/empty.js');
40 await overflowTheBuffer();
41 await waitForEventToFire();
42 testThatBufferContainsTheRightResources();
43}, "Test that a buffer full event does not bubble and that resourcetimingbufferfull is called only once per overflow");
44</script>
45</body>
46</html>