WebCore:
[WebKit-https.git] / LayoutTests / media / video-test.js
1 if (window.layoutTestController) {
2     layoutTestController.dumpAsText();
3     layoutTestController.waitUntilDone();
4 }
5
6 var video = document.getElementsByTagName('video')[0];
7 var media;
8 if (video)
9     media = video;
10 var console = document.createElement('div');
11 document.body.appendChild(console);
12
13 function hanged()
14 {
15     consoleWrite("FAIL: timed out");
16     if (window.layoutTestController)
17         layoutTestController.notifyDone();  
18 }
19 setTimeout(hanged, 10000);
20
21 function testAndEnd(testFuncString)
22 {
23     test(testFuncString, true);
24 }
25
26 function test(testFuncString, endit)
27 {
28     if (eval(testFuncString))
29         consoleWrite("TEST(" + testFuncString + ") <span style='color:green'>OK</span>");
30     else
31         consoleWrite("TEST(" + testFuncString + ") <span style='color:red'>FAIL</span>");    
32
33     if (endit)
34         endTest();  
35 }
36
37 function waitForEventAndEnd(eventName, funcString)
38 {
39     waitForEvent(eventName, funcString, true)
40 }
41
42 function waitForEvent(eventName, func, endit)
43 {
44     function _eventCallback(event)
45     {
46         consoleWrite("EVENT(" + eventName + ")");
47         
48         if (func)
49             func();
50         
51         if (endit)
52             endTest();    
53     }
54
55     media.addEventListener(eventName, _eventCallback);    
56 }
57
58 function waitForEventTestAndEnd(eventName, testFuncString)
59 {
60     waitForEventAndTest(eventName, testFuncString, true);
61 }
62
63 function waitForEventAndFail(eventName)
64 {
65     waitForEventAndTest(eventName, "false", true);
66 }
67
68 function waitForEventAndTest(eventName, testFuncString, endit)
69 {
70     function _eventCallback(event)
71     {
72         if (eval(testFuncString))
73             consoleWrite("EVENT(" + eventName + ") TEST(" + testFuncString + ") <span style='color:green'>OK</span>");
74         else
75             consoleWrite("EVENT(" + eventName + ") TEST(" + testFuncString + ") <span style='color:red'>FAIL</span>");
76         
77         if (endit)
78             endTest();    
79     }
80     
81     media.addEventListener(eventName, _eventCallback);
82 }
83
84 function testException(testString, exceptionString)
85 {
86     try {
87         eval(testString);
88     } catch (ex) { 
89         if (ex.code == eval(exceptionString))
90             consoleWrite("TEST(" + testString + ") THROWS("+exceptionString+") <span style='color:green'>OK</span>");
91         else
92             consoleWrite("TEST(" + testString + ") THROWS("+exceptionString+") <span style='color:red'>FAIL</span>");    
93     }
94 }
95
96 var testEnded = false;
97
98 function endTest()
99 {
100     consoleWrite("END OF TEST");
101     testEnded = true;
102     if (window.layoutTestController)
103         layoutTestController.notifyDone();     
104 }
105
106 function consoleWrite(text)
107 {
108     if (testEnded)
109         return;
110     console.innerHTML += text + "<br>";
111 }
112
113 function relativeURL(url)
114 {
115     return url.substr(url.indexOf('/media/')+7);
116 }