Refactoring: Pull all fullscreen code out of Document and into its own helper class
[WebKit-https.git] / LayoutTests / webaudio / biquadfilternode-basic.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <script src="../resources/js-test.js"></script>
5 <script src="resources/audio-testing.js"></script>
6 </head>
7
8 <body>
9 <div id="description"></div>
10 <div id="console"></div>
11
12 <script>
13 description("Basic tests for BiquadFilterNode.");
14
15 var context = 0;
16
17 function runTest() {
18     context = new webkitAudioContext();
19     var filter = context.createBiquadFilter();
20    
21     if (filter.numberOfInputs === 1) 
22         testPassed("BiquadFilterNode has one input.");
23     else
24         testFailed("BiquadFilterNode should have one input.");
25     
26     if (filter.numberOfOutputs === 1) 
27         testPassed("BiquadFilterNode has one output.");
28     else
29         testFailed("BiquadFilterNode should have one output.");
30     
31     if (filter.type === "lowpass")
32         testPassed("Biquad filter defaults to low-pass filter.");
33     else
34         testFailed("Biquad filter should default to low-pass filter.");
35     
36     if (filter.frequency.value === 350)
37         testPassed("The default value of frequency is 350.");
38     else
39         testFailed("The default value of frequency should be 350.");
40     
41     if (filter.Q.value === 1)
42         testPassed("The default value of Q is 1.");
43     else
44         testFailed("The default value of Q should be 1.");
45     
46     if (filter.gain.value === 0)
47         testPassed("The default value of gain is 0.");
48     else
49         testFailed("The default value of gain should be 0.");
50
51     // Check that all legal filter types can be set.
52     var filterTypeArray = [{type: "lowpass"},
53                            {type: "highpass"},
54                            {type: "bandpass"},
55                            {type: "lowshelf"},
56                            {type: "highshelf"},
57                            {type: "peaking"},
58                            {type: "notch"},
59                            {type: "allpass"}];
60
61     for (var i = 0; i < filterTypeArray.length; ++i) {
62         try {
63             filter.type = filterTypeArray[i].type;
64             if (filter.type === filterTypeArray[i].type) {
65                 var message = "Biquad filter type '" + filterTypeArray[i].type + "' is settable.";
66                 testPassed(message);
67             } else {
68                 var message = "Biquad filter type '" + filterTypeArray[i].type + "' was not correctly set.";
69                 testFailed(message);
70             }
71         } catch(e) {
72             var message = "Biquad filter type " + i + " should not throw exception.";
73             testFailed(message);
74         }
75     }
76
77     // Check that we don't throw an exception for illegal .type values as per WebIDL.
78     shouldNotThrowException(function() { filter.type = "xyz12349jfksd"; }, "Setting .type to illegal string value");
79     shouldNotThrowException(function() { filter.type = new Float32Array(1); }, "Setting .type to illegal type");
80 }
81
82 runTest();
83
84 </script>
85 </body>
86 </html>