OLD | NEW |
1 <!-- | 1 <!-- |
2 | 2 |
3 /* | 3 /* |
4 ** Copyright (c) 2012 The Khronos Group Inc. | 4 ** Copyright (c) 2012 The Khronos Group Inc. |
5 ** | 5 ** |
6 ** Permission is hereby granted, free of charge, to any person obtaining a | 6 ** Permission is hereby granted, free of charge, to any person obtaining a |
7 ** copy of this software and/or associated documentation files (the | 7 ** copy of this software and/or associated documentation files (the |
8 ** "Materials"), to deal in the Materials without restriction, including | 8 ** "Materials"), to deal in the Materials without restriction, including |
9 ** without limitation the rights to use, copy, modify, merge, publish, | 9 ** without limitation the rights to use, copy, modify, merge, publish, |
10 ** distribute, sublicense, and/or sell copies of the Materials, and to | 10 ** distribute, sublicense, and/or sell copies of the Materials, and to |
(...skipping 26 matching lines...) Expand all Loading... |
37 </head> | 37 </head> |
38 <body> | 38 <body> |
39 <div id="description"></div> | 39 <div id="description"></div> |
40 <div id="console"></div> | 40 <div id="console"></div> |
41 <canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> | 41 <canvas id="canvas" style="width: 50px; height: 50px;"> </canvas> |
42 <script> | 42 <script> |
43 "use strict"; | 43 "use strict"; |
44 description("This test ensures that the WebGL context has all the methods in the
specification."); | 44 description("This test ensures that the WebGL context has all the methods in the
specification."); |
45 | 45 |
46 var methods = [ | 46 var methods = [ |
47 "canvas", | |
48 "getContextAttributes", | 47 "getContextAttributes", |
49 "activeTexture", | 48 "activeTexture", |
50 "attachShader", | 49 "attachShader", |
51 "bindAttribLocation", | 50 "bindAttribLocation", |
52 "bindBuffer", | 51 "bindBuffer", |
53 "bindFramebuffer", | 52 "bindFramebuffer", |
54 "bindRenderbuffer", | 53 "bindRenderbuffer", |
55 "bindTexture", | 54 "bindTexture", |
56 "blendColor", | 55 "blendColor", |
57 "blendEquation", | 56 "blendEquation", |
58 "blendEquationSeparate", | 57 "blendEquationSeparate", |
59 "blendFunc", | 58 "blendFunc", |
60 "blendFuncSeparate", | 59 "blendFuncSeparate", |
61 "bufferData", | 60 "bufferData", |
62 "bufferSubData", | 61 "bufferSubData", |
63 "checkFramebufferStatus", | 62 "checkFramebufferStatus", |
64 "clear", | 63 "clear", |
65 "clearColor", | 64 "clearColor", |
66 "clearDepth", | 65 "clearDepth", |
67 "clearStencil", | 66 "clearStencil", |
68 "colorMask", | 67 "colorMask", |
69 "compileShader", | 68 "compileShader", |
| 69 "compressedTexImage2D", |
| 70 "compressedTexSubImage2D", |
70 "copyTexImage2D", | 71 "copyTexImage2D", |
71 "copyTexSubImage2D", | 72 "copyTexSubImage2D", |
72 "createBuffer", | 73 "createBuffer", |
73 "createFramebuffer", | 74 "createFramebuffer", |
74 "createProgram", | 75 "createProgram", |
75 "createRenderbuffer", | 76 "createRenderbuffer", |
76 "createShader", | 77 "createShader", |
77 "createTexture", | 78 "createTexture", |
78 "cullFace", | 79 "cullFace", |
79 "deleteBuffer", | 80 "deleteBuffer", |
(...skipping 18 matching lines...) Expand all Loading... |
98 "framebufferTexture2D", | 99 "framebufferTexture2D", |
99 "frontFace", | 100 "frontFace", |
100 "generateMipmap", | 101 "generateMipmap", |
101 "getActiveAttrib", | 102 "getActiveAttrib", |
102 "getActiveUniform", | 103 "getActiveUniform", |
103 "getAttachedShaders", | 104 "getAttachedShaders", |
104 "getAttribLocation", | 105 "getAttribLocation", |
105 "getParameter", | 106 "getParameter", |
106 "getBufferParameter", | 107 "getBufferParameter", |
107 "getError", | 108 "getError", |
| 109 "getExtension", |
108 "getFramebufferAttachmentParameter", | 110 "getFramebufferAttachmentParameter", |
109 "getProgramParameter", | 111 "getProgramParameter", |
110 "getProgramInfoLog", | 112 "getProgramInfoLog", |
111 "getRenderbufferParameter", | 113 "getRenderbufferParameter", |
112 "getShaderParameter", | 114 "getShaderParameter", |
113 "getShaderInfoLog", | 115 "getShaderInfoLog", |
| 116 "getShaderPrecisionFormat", |
114 "getShaderSource", | 117 "getShaderSource", |
| 118 "getSupportedExtensions", |
115 "getTexParameter", | 119 "getTexParameter", |
116 "getUniform", | 120 "getUniform", |
117 "getUniformLocation", | 121 "getUniformLocation", |
118 "getVertexAttrib", | 122 "getVertexAttrib", |
119 "getVertexAttribOffset", | 123 "getVertexAttribOffset", |
120 "hint", | 124 "hint", |
121 "isBuffer", | 125 "isBuffer", |
| 126 "isContextLost", |
122 "isEnabled", | 127 "isEnabled", |
123 "isFramebuffer", | 128 "isFramebuffer", |
124 "isProgram", | 129 "isProgram", |
125 "isRenderbuffer", | 130 "isRenderbuffer", |
126 "isShader", | 131 "isShader", |
127 "isTexture", | 132 "isTexture", |
128 "lineWidth", | 133 "lineWidth", |
129 "linkProgram", | 134 "linkProgram", |
130 "pixelStorei", | 135 "pixelStorei", |
131 "polygonOffset", | 136 "polygonOffset", |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 "vertexAttrib1f", | 173 "vertexAttrib1f", |
169 "vertexAttrib1fv", | 174 "vertexAttrib1fv", |
170 "vertexAttrib2f", | 175 "vertexAttrib2f", |
171 "vertexAttrib2fv", | 176 "vertexAttrib2fv", |
172 "vertexAttrib3f", | 177 "vertexAttrib3f", |
173 "vertexAttrib3fv", | 178 "vertexAttrib3fv", |
174 "vertexAttrib4f", | 179 "vertexAttrib4f", |
175 "vertexAttrib4fv", | 180 "vertexAttrib4fv", |
176 "vertexAttribPointer", | 181 "vertexAttribPointer", |
177 "viewport" | 182 "viewport" |
178 ] | 183 ]; |
179 | 184 |
180 function assertProperty(v, p) { | 185 // Properties to be ignored because they were added in versions of the |
| 186 // spec that are backward-compatible with this version |
| 187 var ignoredMethods = [ |
| 188 ]; |
| 189 |
| 190 function assertFunction(v, f) { |
181 try { | 191 try { |
182 if (v[p] == null) { | 192 if (typeof v[f] != "function") { |
183 testFailed("Property does not exist: " + p) | 193 testFailed("Property either does not exist or is not a function: " + f); |
184 return false; | 194 return false; |
185 } else { | 195 } else { |
186 return true; | 196 return true; |
187 } | 197 } |
188 } catch(e) { | 198 } catch(e) { |
189 testFailed("Trying to access the property '"+p+"' threw an error: "+e.toStri
ng()); | 199 testFailed("Trying to access the property '" + f + "' threw an error: "+e.to
String()); |
190 } | 200 } |
191 } | 201 } |
192 | 202 |
193 debug(""); | 203 debug(""); |
194 debug("Canvas.getContext"); | 204 debug("Canvas.getContext"); |
195 | 205 |
196 var wtu = WebGLTestUtils; | 206 var wtu = WebGLTestUtils; |
197 var canvas = document.getElementById("canvas"); | 207 var canvas = document.getElementById("canvas"); |
198 var gl = wtu.create3DContext(canvas); | 208 var gl = wtu.create3DContext(canvas); |
199 var passed = true; | 209 var passed = true; |
200 for (var i=0; i<methods.length; i++) { | 210 for (var i=0; i<methods.length; i++) { |
201 var r = assertProperty(gl, methods[i]); | 211 var r = assertFunction(gl, methods[i]); |
202 passed = passed && r; | 212 passed = passed && r; |
203 } | 213 } |
204 if (passed) { | 214 if (passed) { |
205 testPassed("All WebGL methods found."); | 215 testPassed("All WebGL methods found."); |
206 } | 216 } |
207 var extended = false; | 217 var extended = false; |
208 for (var i in gl) { | 218 for (var i in gl) { |
209 if (i.match(/^[a-z]/) && methods.indexOf(i) == -1) { | 219 if (typeof gl[i] == "function" && methods.indexOf(i) == -1 && ignoredMethods.i
ndexOf(i) == -1) { |
210 if (!extended) { | 220 if (!extended) { |
211 extended = true; | 221 extended = true; |
212 debug("Also found the following extra methods:"); | 222 testFailed("Also found the following extra methods:"); |
213 } | 223 } |
214 debug(i); | 224 testFailed(i); |
215 } | 225 } |
216 } | 226 } |
217 | 227 |
| 228 if (!extended) { |
| 229 testPassed("No extra methods found on WebGL context."); |
| 230 } |
| 231 |
218 debug(""); | 232 debug(""); |
219 var successfullyParsed = true; | 233 var successfullyParsed = true; |
220 </script> | 234 </script> |
221 <script src="../../resources/js-test-post.js"></script> | 235 <script src="../../resources/js-test-post.js"></script> |
222 | 236 |
223 </body> | 237 </body> |
224 </html> | 238 </html> |
OLD | NEW |