File: resource_timing_content_length.html

package info (click to toggle)
firefox 147.0.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,683,320 kB
  • sloc: cpp: 7,607,359; javascript: 6,533,295; ansic: 3,775,223; python: 1,415,500; xml: 634,561; asm: 438,949; java: 186,241; sh: 62,752; makefile: 18,079; objc: 13,092; perl: 12,808; yacc: 4,583; cs: 3,846; pascal: 3,448; lex: 1,720; ruby: 1,003; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10; exp: 6
file content (35 lines) | stat: -rw-r--r-- 2,005 bytes parent folder | download | duplicates (24)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title>This test validates the value of encodedBodySize in certain situations.</title>
<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<script>
    function test_resource_timing_for_content_length({actualContentLength, lengthHeader}, title) {
        promise_test(async t => {
            const content = new Array(actualContentLength).fill('x').join('')
            const url = `resources/resource-timing-content-length.py?content=${content}&length=${lengthHeader}`
            fetch(url)
            const entry = await new Promise(resolve => new PerformanceObserver((entryList, observer) => {
                observer.disconnect()
                resolve(entryList.getEntries()[0])
            }).observe({entryTypes: ['resource']}))

            const expectedContentLength = Number.isInteger(lengthHeader) ? Math.min(actualContentLength, lengthHeader) : actualContentLength
            assert_equals(entry.encodedBodySize, expectedContentLength)
        }, title);
    }

    test_resource_timing_for_content_length({actualContentLength: 3, lengthHeader: 'auto'},
        "encodedBodySize should be equal to the actual byte size of the content")
    test_resource_timing_for_content_length({actualContentLength: 13, lengthHeader: 'none'},
        "encodedBodySize should be equal to the actual byte size of the content when no header present")
    test_resource_timing_for_content_length({actualContentLength: 7, lengthHeader: 3},
        "encodedBodySize should be equal to the actual byte size of the content when header value is lower than actual content")
    test_resource_timing_for_content_length({actualContentLength: 8, lengthHeader: 40},
        "encodedBodySize should be equal to the actual byte size of the content when header value is higher than actual content")
</script>
</html>