AudioPannerNode::setPanningModel() does not update m_panningModel properly
[WebKit-https.git] / LayoutTests / webaudio / panner-set-model.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3   <head>
4     <link rel="stylesheet" href="../fast/js/resources/js-test-style.css"/>
5     <script src="resources/audio-testing.js"></script>
6     <script src="../fast/js/resources/js-test-pre.js"></script>
7     <title>Test Panner setPanningModel values.</title>
8   </head>
9
10   <body>
11     <div id="description"></div>
12     <div id="console"></div>
13
14     <script>
15       description("Test if panningModel can be set and read.");
16
17       // Test to see if we panningModel is updated when we set it.
18       function runTest() {
19           if (window.layoutTestController) {
20               layoutTestController.dumpAsText();
21               layoutTestController.waitUntilDone();
22           }
23
24           window.jsTestIsAsync = true;
25
26           var context = new webkitAudioContext();
27           var success = true;
28           var panner = context.createPanner();
29
30           // Set the panning model and see if it can be read back
31           // correctly.
32           panner.panningModel = panner.EQUALPOWER;
33           if (panner.panningModel == 0) {
34               testPassed("Panner set to EQUALPOWER model and read correctly.");
35           } else {
36               testFailed("Panner model set to EQUALPOWER (0) but returned " + panner.panningModel);
37               success = false;
38           }
39       
40           panner.panningModel = panner.HRTF;
41           if (panner.panningModel == 1) {
42               testPassed("Panner set to HRTF model and read correctly.");
43           } else {
44               testFailed("Panner model set to HRTF (1) but returned " + panner.panningModel);
45               success = false;
46           }
47       
48           panner.panningModel = panner.SOUNDFIELD;
49           if (panner.panningModel == 2) {
50               testPassed("Panner set to SOUNDFIELD model and read correctly.");
51           } else {
52               testFailed("Panner model set to SOUNDFIELD (2) but returned " + panner.panningModel);
53               success = false;
54           }
55
56           // Set to invalid value and make sure it didn't change from
57           // it's previous setting (of 2).
58           panner.panningModel = 99;
59           if (panner.panningModel == 2) {
60               testPassed("Panner set to invalid model and panningModel did not change.");
61           } else {
62               testFailed("Panner set to invalid model, but the panningModel changed from 2 to " + panner.panningModel);
63               success = false;
64           }
65           
66           if (success) {
67               testPassed("Panning model tests passed.");
68           } else {
69               testFailed("Panning model tests failed.");
70           }
71
72           finishJSTest();
73       }
74
75       runTest();
76       successfullyParsed = true;
77
78     </script>
79
80     <script src="../fast/js/resources/js-test-post.js"></script>
81   </body>
82 </html>