summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/server-timing/server_timing_header-parsing.https.html
blob: 737cc08045ae94f1dc98417500e5e1400474a584 (plain)
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<!DOCTYPE html>
<!--
tests generated by:
  https://github.com/cvazac/generate-server-timing-tests
-->

<head>
    <meta charset='utf-8' />
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src="/common/performance-timeline-utils.js"></script>
    <script>
      setup({explicit_done: true})
      const tests = []
      const urlToIndex = {}
      function testServerTiming(script, expectedResults) {
        const url = script.src
        tests[urlToIndex[url]] = {url, expectedResults}
      }
      function runTests() {
        tests.forEach(function({url, expectedResults}) {
          const {serverTiming} = performance.getEntriesByName(url)[0]
          const fileName = url.substring(url.lastIndexOf('/') + 1)

          test_equals(serverTiming.length, expectedResults.length, `${fileName} - count (${serverTiming.length} ?== ${expectedResults.length})`)

          expectedResults.forEach(function(expectedResult, i) {
            const dur = expectedResult.dur || 0
            const desc = expectedResult.desc || ''
            const index = expectedResults.length === 1 ? '' : `[${i}].`
            const actual = serverTiming[i]
            if (actual === undefined) {
              // Protect against more expected results than actual results.
              return
            }
            test_equals(expectedResult.name, actual.name,
                `${fileName} - ${index}name (${expectedResult.name} ?== ${actual.name})`)
            test_equals(dur, actual.duration,
                `${fileName} - ${index}duration (${dur} ?== ${actual.duration})`)
            test_equals(desc, actual.description,
                `${fileName} - ${index}description (${desc} ?== ${actual.description})`)
          })
        })
        done()
      }
      for (let i = 0; i <= 84; i++) {
        const script = document.createElement('script')
        script.src = `./resources/parsing/${i}.js`
        document.getElementsByTagName('head')[0].appendChild(script)
        urlToIndex[script.src] = i
      }
      delayedLoadListener(runTests)
    </script>
</head>