Tests audit rules.     
Page reloaded.
 Network Utilization
    Combine external JavaScript (4)
     There are multiple resources served from same domain. Consider combining them into as few files as possible.
      4 JavaScript resources served from [domain].
    Specify image dimensions (2)
     A width and height should be specified for all images in order to speed up page display. The following image(s) are missing a width and/or height:
       foo1.jpg
       foo2.jpg
 Web Page Performance
    Optimize the order of styles and scripts (2)
     The following external CSS files were included after an external JavaScript file in the document head. To ensure CSS files are downloaded in parallel, always include external CSS before external JavaScript.
       audits-style1.css
      1 inline script block was found in the head between an external CSS file and another resource. To allow parallel downloading, move the inline script before the external CSS file, or after the next resource.
    Put CSS in the document head (2)
     CSS in the document body adversely impacts rendering performance.
     1 style block(s) in the 
      audits-panel-functional.html
      body should be moved to the document head.
     Link node 
      audits-style1.css
      should be moved to the document head in 
      audits-panel-functional.html
    Remove unused CSS rules (4)
     4 rules (100%) of CSS not used by the current page.
      Inline block #1: 100% is not used by the current page.
       .unused
       audits-style1.css
      : 100% is not used by the current page.
       .some-style
      Inline block #2: 100% is not used by the current page.
       .violation
       audits-style1.css
      : 100% is not used by the current page.
       .some-style
    Use normal CSS property names instead of vendor-prefixed ones (1)
      audits-panel-functional.html
       .violation
       "-webkit-border-radius" is used, but "border-radius" is supported.

