
TESTS:
    ✓ API presence
    ✓ silent ignore (requires a device that does not support vibration)
    ✓ simple value
    ✓ array of values
    ✓ array with extra parameter (even array)
    ✓ cancel with 0
    ✓ cancel with []
    ✓ cancel with new vibration
    - do nothing when hidden
    - cancel when dynamically hidden
    - reinstate when dynamically shown
    - invalid values


NOTES:
• Test using vendor prefix as in
 http://dvcs.w3.org/hg/webperf/file/25712d0f6bd5/tests/submission/Microsoft/PageVisibility/support/featuredetection.js

• Testing transitions as in
http://dvcs.w3.org/hg/webperf/file/25712d0f6bd5/tests/submission/Microsoft/PageVisibility/test_tab_switch.htm

• When the visibilitychange event [PAGE-VISIBILITY] is dispatched at the Document, the user agent must run the following steps
    - If the hidden attribute [PAGE-VISIBILITY] is set to true, the user agent must 
      suppress the vibration produced by running the pre-existing instance of the processing 
      vibration patterns algorithm, if any.
    - If the hidden attribute [PAGE-VISIBILITY] is set to false, the user agent must 
      restore the vibration produced by running the pre-existing instance of the 
      processing vibration patterns algorithm, if any.
