Revision 6ff8cb60aab43a83cc52b509b2eede8c474db652 authored by Eric Willigers on 05 September 2018, 09:19:05 UTC, committed by Eric Willigers on 05 September 2018, 09:37:23 UTC
Test the parsing and serialization of the longhand properties from
CSS Animations and CSS Transitions.

Relevant browser bugs:

Edge animation-duration should reject negatives
https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18347049/

Edge and Safari incorrectly accept unitless 0 on <time> values
https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18348525/
https://bugs.webkit.org/show_bug.cgi?id=113230
1 parent beeef72
Raw File
server_timing_header-parsing.html
<!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
      }
      window.addEventListener('load', runTests)
    </script>
</head>
back to top