<!DOCTYPE html>
<meta charset='utf-8'>
<title>Vibration API: vibrate(invalid)</title>
<link rel='author' title='Intel' href='http://www.intel.com'>
<link rel='help' href='https://w3c.github.io/vibration/#vibration-interface'>
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
<div id='log'></div>
<script>
  test(function() {
    assert_implements(navigator.vibrate, 'navigator.vibrate exists');
    assert_throws_js(TypeError, function() {
      navigator.vibrate();
    }, 'Argument is required, so was expecting a TypeError.');
  }, 'Missing pattern argument');

  test(function() {
    navigator.vibrate(undefined);
  }, 'pattern of undefined resolves to []');

  test(function() {
    navigator.vibrate(null);
  }, 'pattern of null resolves to []');

  test(function() {
    navigator.vibrate('one');
  }, 'pattern of empty string resolves to [""]');

  test(function() {
    navigator.vibrate('one');
  }, 'pattern of string resolves to ["one"]');

  test(function() {
    navigator.vibrate(new String('one'));
  }, 'pattern of String instance resolves to ["one"]');

  test(function() {
    navigator.vibrate(NaN);
  }, 'pattern of NaN resolves to [NaN]');

  test(function() {
    navigator.vibrate({});
  }, 'pattern of {} resolves to [{}]');
</script>
