Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / webaudio / biquadfilternode-basic.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <script src="../resources/js-test.js"></script>
5 <script src="resources/compatibility.js"></script>
6 <script src="resources/audio-testing.js"></script>
7 </head>
8
9 <body>
10 <div id="description"></div>
11 <div id="console"></div>
12
13 <script>
14 description("Basic tests for BiquadFilterNode.");
15
16 var context = 0;
17
18 function runTest() {
19     if (window.testRunner) {
20         testRunner.dumpAsText();
21         testRunner.waitUntilDone();
22     }
23     
24     window.jsTestIsAsync = true;
25
26     context = new AudioContext();
27     var filter = context.createBiquadFilter();
28    
29     if (filter.numberOfInputs === 1) 
30         testPassed("BiquadFilterNode has one input.");
31     else
32         testFailed("BiquadFilterNode should have one input.");
33     
34     if (filter.numberOfOutputs === 1) 
35         testPassed("BiquadFilterNode has one output.");
36     else
37         testFailed("BiquadFilterNode should have one output.");
38     
39     if (filter.type === "lowpass")
40         testPassed("Biquad filter defaults to low-pass filter.");
41     else
42         testFailed("Biquad filter should default to low-pass filter.");
43     
44     if (filter.frequency.value === 350)
45         testPassed("The default value of frequency is 350.");
46     else
47         testFailed("The default value of frequency should be 350.");
48     
49     if (filter.Q.value === 1)
50         testPassed("The default value of Q is 1.");
51     else
52         testFailed("The default value of Q should be 1.");
53     
54     if (filter.gain.value === 0)
55         testPassed("The default value of gain is 0.");
56     else
57         testFailed("The default value of gain should be 0.");
58
59     // Check that all legal filter types can be set.
60     var filterTypeArray = [{type: "lowpass"},
61                            {type: "highpass"},
62                            {type: "bandpass"},
63                            {type: "lowshelf"},
64                            {type: "highshelf"},
65                            {type: "peaking"},
66                            {type: "notch"},
67                            {type: "allpass"}];
68
69     for (var i = 0; i < filterTypeArray.length; ++i) {
70         try {
71             filter.type = filterTypeArray[i].type;
72             if (filter.type === filterTypeArray[i].type) {
73                 var message = "Biquad filter type '" + filterTypeArray[i].type + "' is settable.";
74                 testPassed(message);
75             } else {
76                 var message = "Biquad filter type '" + filterTypeArray[i].type + "' was not correctly set.";
77                 testFailed(message);
78             }
79         } catch(e) {
80             var message = "Biquad filter type " + i + " should not throw exception.";
81             testFailed(message);
82         }
83     }
84
85
86     // Check that numerical values are no longer supported
87     filter.type = 99;
88     if (filter.type == 99)
89         testFailed("Biquad filter type incorrectly set to 99.")
90     else
91         testPassed("Biquad filter type correctly not set to 99.");
92
93     finishJSTest();
94 }
95
96 runTest();
97
98 </script>
99
100 </body>
101 </html>