<!DOCTYPE html>
<html>
  <head>
    <title>
      Test Constructor: ConstantSource
    </title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src="/webaudio/resources/audit-util.js"></script>
    <script src="/webaudio/resources/audit.js"></script>
    <script src="/webaudio/resources/audionodeoptions.js"></script>
  </head>
  <body>
    <script id="layout-test-code">
      let context;

      let audit = Audit.createTaskRunner();

      audit.define('initialize', (task, should) => {
        context = initializeContext(should);
        task.done();
      });

      audit.define('invalid constructor', (task, should) => {
        testInvalidConstructor(should, 'ConstantSourceNode', context);
        task.done();
      });

      audit.define('default constructor', (task, should) => {
        let prefix = 'node0';
        let node =
            testDefaultConstructor(should, 'ConstantSourceNode', context, {
              prefix: prefix,
              numberOfInputs: 0,
              numberOfOutputs: 1,
              channelCount: 2,
              channelCountMode: 'max',
              channelInterpretation: 'speakers'
            });

        testDefaultAttributes(
            should, node, prefix, [{name: 'offset', value: 1}]);

        task.done();
      });

      audit.run();
    </script>
  </body>
</html>
