| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../http/tests/inspector/resources/inspector-test.js"></script> |
| <script src="resources/shaderProgram-utilities.js"></script> |
| <script id="vertex-shader" type="x-shader/x-vertex"> |
| void main(void) { |
| gl_Position = vec4(0.0, 0.0, 0.0, 1.0); |
| } |
| </script> |
| <script id="fragment-shader" type="x-shader/x-fragment"> |
| precision mediump float; |
| |
| void main(void) { |
| gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0); |
| } |
| </script> |
| <script> |
| function load() { |
| createProgram("webgl"); |
| linkProgram("vertex-shader", "fragment-shader"); |
| |
| runTest(); |
| } |
| |
| function test() { |
| let suite = InspectorTest.createAsyncSuite("Canvas.getShaderSource"); |
| |
| suite.addTestCase({ |
| name: "Canvas.requestShaderSource.vertexShader", |
| description: "Tests requesting the source code of a program's vertex shader.", |
| test(resolve, reject) { |
| let shaderProgram = WI.canvasManager.shaderPrograms[0]; |
| if (!shaderProgram) { |
| reject("Missing shader program") |
| return; |
| } |
| |
| CanvasAgent.requestShaderSource(shaderProgram.identifier, CanvasAgent.ShaderType.Vertex) |
| .then(({content}) => InspectorTest.log(content)) |
| .then(resolve, reject); |
| } |
| }); |
| |
| suite.addTestCase({ |
| name: "Canvas.requestShaderSource.fragmentShader", |
| description: "Tests requesting the source code of a program's fragment shader.", |
| test(resolve, reject) { |
| let shaderProgram = WI.canvasManager.shaderPrograms[0]; |
| if (!shaderProgram) { |
| reject("Missing shader program") |
| return; |
| } |
| |
| CanvasAgent.requestShaderSource(shaderProgram.identifier, CanvasAgent.ShaderType.Fragment) |
| .then(({content}) => InspectorTest.log(content)) |
| .then(resolve, reject); |
| } |
| }); |
| |
| suite.addTestCase({ |
| name: "Canvas.requestShaderSource.invalidProgramId", |
| description: "Invalid program identifiers should cause an error.", |
| test(resolve, reject) { |
| const programId = "INVALID_PROGRAM_ID"; |
| const shaderType = "INVALID_SHADER_TYPE"; |
| CanvasAgent.requestShaderSource(programId, shaderType, (error) => { |
| InspectorTest.expectThat(error, "Should produce an error."); |
| InspectorTest.log("Error: " + error); |
| resolve(); |
| }); |
| } |
| }); |
| |
| suite.addTestCase({ |
| name: "Canvas.requestShaderSource.invalidShaderType", |
| description: "Invalid shader types should cause an error.", |
| test(resolve, reject) { |
| let shaderProgram = WI.canvasManager.shaderPrograms[0]; |
| if (!shaderProgram) { |
| reject("Missing shader program") |
| return; |
| } |
| |
| const shaderType = "INVALID_SHADER_TYPE"; |
| CanvasAgent.requestShaderSource(shaderProgram.identifier, shaderType, (error) => { |
| InspectorTest.expectThat(error, "Should produce an error."); |
| InspectorTest.log("Error: " + error); |
| resolve(); |
| }); |
| } |
| }); |
| |
| suite.runTestCasesAndFinish(); |
| } |
| </script> |
| </head> |
| <body onload="load()"> |
| <p>Test compilation of shaders after being attached to a program, with and without syntax errors.</p> |
| </body> |
| </html> |