Modernizr Test Suite

Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)

  • flexbox: true
  • flexboxlegacy: true
  • canvas: true
  • canvastext: true
  • webgl: true
  • touch: false
  • geolocation: true
  • postmessage: true
  • websqldatabase: true
  • indexeddb: true
  • hashchange: true
  • history: true
  • draganddrop: true
  • websockets: true
  • rgba: true
  • hsla: true
  • multiplebgs: true
  • backgroundsize: true
  • borderimage: true
  • borderradius: true
  • boxshadow: true
  • textshadow: true
  • opacity: true
  • cssanimations: true
  • csscolumns: true
  • cssgradients: true
  • cssreflections: true
  • csstransforms: true
  • csstransforms3d: true
  • csstransitions: true
  • fontface: true
  • generatedcontent: true
  • video: true
  • audio: true
  • localstorage: true
  • sessionstorage: true
  • webworkers: true
  • applicationcache: false
  • svg: true
  • inlinesvg: true
  • smil: true
  • svgclippaths: true
  • input{}
  • inputtypes{}
  • _version: 2.8.3
  • _prefixes: ,-webkit-,-moz-,-o-,-ms-,
  • _domPrefixes: webkit,moz,o,ms
  • _cssomPrefixes: Webkit,Moz,O,ms
  • Tests completed in 35 milliseconds.
    272 tests of 273 passed, 1 failed.

    1. Basics: globals set up (0, 1, 1)Rerun
      1. global modernizr object created
    2. Basics: bind is implemented (0, 14, 14)Rerun
      1. bind is a member of Function.prototype
      2. bind works as expected
      3. okay
      4. okay
      5. okay
      6. okay
      7. okay
      8. f instanceof F
      9. g instanceof F
      10. h instanceof F
      11. "prototype" in F
      12. okay
      13. Objects that allow call but not construct can be bound...
      14. it exists
    3. Basics: document.documentElement is valid and correct (0, 1, 1)Rerun
      1. okay
    4. Basics: no-js class is gone. (0, 6, 6)Rerun
      1. no-js class is gone
      2. html.js class is present
      3. html.+no-js class is still present
      4. html.no-js- class is still present
      5. html.i-has-no-js class is still present
      6. document.querySelector('html.js') matches.
    5. Basics: html shim worked (0, 2, 2)Rerun
      1. unknown elements dont collapse
      2. unknown elements are styleable
    6. Modernizr classes and bools: html classes are looking good (0, 95, 95)Rerun
      1. private Modernizr object _enableHTML5should not have matching classes
      2. private Modernizr object no-_enableHTML5 should not have matching classes
      3. private Modernizr object _versionshould not have matching classes
      4. private Modernizr object no-_version should not have matching classes
      5. private Modernizr object _fontfacereadyshould not have matching classes
      6. private Modernizr object no-_fontfaceready should not have matching classes
      7. flexbox is correctly true in the classes and object
      8. flexboxlegacy is correctly true in the classes and object
      9. canvas is correctly true in the classes and object
      10. canvastext is correctly true in the classes and object
      11. webgl is correctly true in the classes and object
      12. touch is correctly false in the classes and object
      13. geolocation is correctly true in the classes and object
      14. postmessage is correctly true in the classes and object
      15. websqldatabase is correctly true in the classes and object
      16. indexeddb is correctly true in the classes and object
      17. hashchange is correctly true in the classes and object
      18. history is correctly true in the classes and object
      19. draganddrop is correctly true in the classes and object
      20. websockets is correctly true in the classes and object
      21. rgba is correctly true in the classes and object
      22. hsla is correctly true in the classes and object
      23. multiplebgs is correctly true in the classes and object
      24. backgroundsize is correctly true in the classes and object
      25. borderimage is correctly true in the classes and object
      26. borderradius is correctly true in the classes and object
      27. boxshadow is correctly true in the classes and object
      28. textshadow is correctly true in the classes and object
      29. opacity is correctly true in the classes and object
      30. cssanimations is correctly true in the classes and object
      31. csscolumns is correctly true in the classes and object
      32. cssgradients is correctly true in the classes and object
      33. cssreflections is correctly true in the classes and object
      34. csstransforms is correctly true in the classes and object
      35. csstransforms3d is correctly true in the classes and object
      36. csstransitions is correctly true in the classes and object
      37. fontface is correctly true in the classes and object
      38. generatedcontent is correctly true in the classes and object
      39. video is correctly true in the classes and object
      40. audio is correctly true in the classes and object
      41. localstorage is correctly true in the classes and object
      42. sessionstorage is correctly true in the classes and object
      43. webworkers is correctly true in the classes and object
      44. applicationcache is correctly false in the classes and object
      45. svg is correctly true in the classes and object
      46. inlinesvg is correctly true in the classes and object
      47. smil is correctly true in the classes and object
      48. svgclippaths is correctly true in the classes and object
      49. all classes are lowerCase.
      50. all classes are lowerCase.
      51. all classes are lowerCase.
      52. all classes are lowerCase.
      53. all classes are lowerCase.
      54. all classes are lowerCase.
      55. all classes are lowerCase.
      56. all classes are lowerCase.
      57. all classes are lowerCase.
      58. all classes are lowerCase.
      59. all classes are lowerCase.
      60. all classes are lowerCase.
      61. all classes are lowerCase.
      62. all classes are lowerCase.
      63. all classes are lowerCase.
      64. all classes are lowerCase.
      65. all classes are lowerCase.
      66. all classes are lowerCase.
      67. all classes are lowerCase.
      68. all classes are lowerCase.
      69. all classes are lowerCase.
      70. all classes are lowerCase.
      71. all classes are lowerCase.
      72. all classes are lowerCase.
      73. all classes are lowerCase.
      74. all classes are lowerCase.
      75. all classes are lowerCase.
      76. all classes are lowerCase.
      77. all classes are lowerCase.
      78. all classes are lowerCase.
      79. all classes are lowerCase.
      80. all classes are lowerCase.
      81. all classes are lowerCase.
      82. all classes are lowerCase.
      83. all classes are lowerCase.
      84. all classes are lowerCase.
      85. all classes are lowerCase.
      86. all classes are lowerCase.
      87. all classes are lowerCase.
      88. all classes are lowerCase.
      89. all classes are lowerCase.
      90. all classes are lowerCase.
      91. all classes are lowerCase.
      92. all classes are lowerCase.
      93. all classes are lowerCase.
      94. all classes are lowerCase.
      95. whitespace between all classes.
    7. Modernizr classes and bools: Modernizr properties are looking good (0, 80, 80)Rerun
      1. Modernizr.flexbox is a straight up boolean
      2. all properties are lowerCase.
      3. Modernizr.flexboxlegacy is a straight up boolean
      4. all properties are lowerCase.
      5. Modernizr.canvas is a straight up boolean
      6. all properties are lowerCase.
      7. Modernizr.canvastext is a straight up boolean
      8. all properties are lowerCase.
      9. Modernizr.webgl is a straight up boolean
      10. all properties are lowerCase.
      11. Modernizr.touch is a straight up boolean
      12. all properties are lowerCase.
      13. Modernizr.geolocation is a straight up boolean
      14. all properties are lowerCase.
      15. Modernizr.postmessage is a straight up boolean
      16. all properties are lowerCase.
      17. Modernizr.websqldatabase is a straight up boolean
      18. all properties are lowerCase.
      19. Modernizr.indexeddb is a straight up boolean
      20. all properties are lowerCase.
      21. Modernizr.hashchange is a straight up boolean
      22. all properties are lowerCase.
      23. Modernizr.history is a straight up boolean
      24. all properties are lowerCase.
      25. Modernizr.draganddrop is a straight up boolean
      26. all properties are lowerCase.
      27. Modernizr.websockets is a straight up boolean
      28. all properties are lowerCase.
      29. Modernizr.rgba is a straight up boolean
      30. all properties are lowerCase.
      31. Modernizr.hsla is a straight up boolean
      32. all properties are lowerCase.
      33. Modernizr.multiplebgs is a straight up boolean
      34. all properties are lowerCase.
      35. Modernizr.backgroundsize is a straight up boolean
      36. all properties are lowerCase.
      37. Modernizr.borderimage is a straight up boolean
      38. all properties are lowerCase.
      39. Modernizr.borderradius is a straight up boolean
      40. all properties are lowerCase.
      41. Modernizr.boxshadow is a straight up boolean
      42. all properties are lowerCase.
      43. Modernizr.textshadow is a straight up boolean
      44. all properties are lowerCase.
      45. Modernizr.opacity is a straight up boolean
      46. all properties are lowerCase.
      47. Modernizr.cssanimations is a straight up boolean
      48. all properties are lowerCase.
      49. Modernizr.csscolumns is a straight up boolean
      50. all properties are lowerCase.
      51. Modernizr.cssgradients is a straight up boolean
      52. all properties are lowerCase.
      53. Modernizr.cssreflections is a straight up boolean
      54. all properties are lowerCase.
      55. Modernizr.csstransforms is a straight up boolean
      56. all properties are lowerCase.
      57. Modernizr.csstransforms3d is a straight up boolean
      58. all properties are lowerCase.
      59. Modernizr.csstransitions is a straight up boolean
      60. all properties are lowerCase.
      61. Modernizr.fontface is a straight up boolean
      62. all properties are lowerCase.
      63. Modernizr.generatedcontent is a straight up boolean
      64. all properties are lowerCase.
      65. Modernizr.localstorage is a straight up boolean
      66. all properties are lowerCase.
      67. Modernizr.sessionstorage is a straight up boolean
      68. all properties are lowerCase.
      69. Modernizr.webworkers is a straight up boolean
      70. all properties are lowerCase.
      71. Modernizr.applicationcache is a straight up boolean
      72. all properties are lowerCase.
      73. Modernizr.svg is a straight up boolean
      74. all properties are lowerCase.
      75. Modernizr.inlinesvg is a straight up boolean
      76. all properties are lowerCase.
      77. Modernizr.smil is a straight up boolean
      78. all properties are lowerCase.
      79. Modernizr.svgclippaths is a straight up boolean
      80. all properties are lowerCase.
    8. Modernizr classes and bools: Modernizr.audio and Modernizr.video (0, 8, 8)Rerun
      1. Modernizr.video is truthy.
      2. Modernizr.video is == true
      3. Moderizr.video is truly an object
      4. Modernizr.video is !== true
      5. Modernizr.audio is truthy.
      6. Modernizr.audio is == true
      7. Moderizr.audio is truly an object
      8. Modernizr.audio is !== true
    9. Modernizr classes and bools: Modernizr results match expected values (0, 2, 2)Rerun
      1. canvas test consistent
      2. web workers test consistent
    10. Modernizr's API methods: Modernizr.addTest() (0, 22, 22)Rerun
      1. positive class added
      2. positive prop added
      3. positive class added
      4. truthy value is not casted to straight boolean
      5. negative class added
      6. negative prop added
      7. negative class added
      8. falsy value is not casted to straight boolean
      9. camelCase test name toLowerCase()'d
      10. Modernizr.addTest(feature, bool): negative class added
      11. Modernizr.addTest(feature, bool): negative prop added
      12. Modernizr.addTest(feature, bool): positive class added
      13. Modernizr.addTest(feature, bool): positive prop added
      14. Modernizr.addTest({feature: bool}): negative class added
      15. Modernizr.addTest({feature: bool}): negative prop added
      16. Modernizr.addTest({feature: bool}): positive class added
      17. Modernizr.addTest({feature: bool}): positive prop added
      18. Modernizr.addTest({feature: bool}): negative class added
      19. Modernizr.addTest({feature: bool}): negative prop added
      20. Modernizr.addTest({feature: bool}): positive class added
      21. Modernizr.addTest({feature: bool}): positive prop added
      22. addTest is chainable
    11. Modernizr's API methods: Modernizr.mq: media query testing (0, 3, 3)Rerun
      1. Modernizr.mq() doesn' freak out.
      2. screen media query matches jQuery mobile's result
      3. Cache hit matches
    12. Modernizr's API methods: Modernizr.hasEvent() (0, 3, 3)Rerun
      1. Modernizr.hasEvent() is a function
      2. click event is supported
      3. random event is definitely not supported
    13. Modernizr's API methods: Modernizr.testStyles() (0, 5, 5)Rerun
      1. Modernizr.testStyles() is a function
      2. rule passsed back matches what i gave it.
      3. width was set through the style
      4. height was set through the style
      5. element is indeed the modernizr element
    14. Modernizr's API methods: Modernizr._[properties] (0, 2, 2)Rerun
      1. Modernizr._prefixes has 6 items
      2. Modernizr.domPrefixes has 4 items
    15. Modernizr's API methods: Modernizr.testProp() (0, 5, 5)Rerun
      1. Everyone supports margin
      2. Nobody supports the happiness style. :(
      3. Everyone supports fontSize
      4. Nobody supports font-size
      5. results for `pointer-events` are consistent with a homegrown feature test
    16. Modernizr's API methods: Modernizr.testAllProps() (0, 6, 6)Rerun
      1. Everyone supports margin
      2. Nobody supports the happiness style. :(
      3. Everyone supports fontSize
      4. Nobody supports font-size
      5. Modernizr result matches API result: csstransitions
      6. Modernizr result matches API result: csscolumns
    17. Modernizr's API methods: Modernizr.prefixed() - css and DOM resolving (0, 10, 10)Rerun
      1. results for transition match the homebaked prefix finder
      2. results for backgroundSize match the homebaked prefix finder
      3. results for boxSizing match the homebaked prefix finder
      4. results for borderImage match the homebaked prefix finder
      5. results for borderRadius match the homebaked prefix finder
      6. results for boxShadow match the homebaked prefix finder
      7. results for columnCount match the homebaked prefix finder
      8. results for requestAnimationFrame match the homebaked prefix finder
      9. results for querySelectorAll match the homebaked prefix finder
      10. results for matchesSelector match the homebaked prefix finder
    18. Modernizr's API methods: Modernizr.prefixed autobind (1, 7, 8)Rerun
      1. Modernizr.prefixed('requestAnimationFrame', window) returns a function
      2. Modernizr.prefixed('requestAnimationFrame', window, false) returns a string (the prop name)
        Expected:
        "requestAnimationFrame"
        Result:
        "webkitRequestAnimationFrame"
        Diff:
        "requestAnimationFrame" "webkitRequestAnimationFrame" 
        Source:
            at Object.<anonymous> (https://oypo.asnidren.com/bower_components/modernizr/test/js/unit.js:572:5)
      3. Modernizr.prefixed('matchesSelector', HTMLElement.prototype, document.body) returns a function
      4. Modernizr.prefixed('matchesSelector', HTMLElement.prototype, document.body) is scoped to the body
      5. Modernizr.prefixed('isFullScreen') returns a boolean
      6. Modernizr.prefixed('doSomethingAmazing$#$', window) : Gobbledygook with prefixed(str,obj) returns false
      7. Modernizr.prefixed('doSomethingAmazing$#$', window) : Gobbledygook with prefixed(str,obj, scope) returns false
      8. Modernizr.prefixed('doSomethingAmazing$#$', window) : Gobbledygook with prefixed(str,obj, false) returns false

    JSON.stringify(Modernizr)
    Show the Ref Tests from Caniuse and Modernizr