a5928238865d9082a62ac31895f17bf8e7400b7b
[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 waitForEventAndTest(eventName, testFuncString, endit)
64 {
65     function _eventCallback(event)
66     {
67         if (eval(testFuncString))
68             consoleWrite("EVENT(" + eventName + ") TEST(" + testFuncString + ") <span style='color:green'>OK</span>");
69         else
70             consoleWrite("EVENT(" + eventName + ") TEST(" + testFuncString + ") <span style='color:red'>FAIL</span>");
71         
72         if (endit)
73             endTest();    
74     }
75     
76     media.addEventListener(eventName, _eventCallback);
77 }
78
79 function testException(testString, exceptionString)
80 {
81     try {
82         eval(testString);
83     } catch (ex) { 
84         if (ex.code == eval(exceptionString))
85             consoleWrite("TEST(" + testString + ") THROWS("+exceptionString+") <span style='color:green'>OK</span>");
86         else
87             consoleWrite("TEST(" + testString + ") THROWS("+exceptionString+") <span style='color:red'>FAIL</span>");    
88     }
89 }
90
91 var testEnded = false;
92
93 function endTest()
94 {
95     consoleWrite("END OF TEST");
96     testEnded = true;
97     if (window.layoutTestController)
98         layoutTestController.notifyDone();     
99 }
100
101 function consoleWrite(text)
102 {
103     if (testEnded)
104         return;
105     console.innerHTML += text + "<br>";
106 }
107
108 function relativeURL(url)
109 {
110     return url.substr(url.indexOf('/media/')+7);
111 }