This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.

Test: ../../resources/webgl_test_files/conformance/misc/null-object-behaviour.html
[ 1: PASS ] Program Compiled
[ 2: PASS ] Shader Compiled
[ 3: FAIL ] context.compileShader(undefined) should throw an exception. Was undefined.
[ 4: FAIL ] context.linkProgram(undefined) should throw an exception. Was undefined.
[ 5: FAIL ] context.attachShader(undefined, undefined) should throw an exception. Was undefined.
[ 6: FAIL ] context.attachShader(program, undefined) should throw an exception. Was undefined.
[ 7: FAIL ] context.attachShader(undefined, shader) should throw an exception. Was undefined.
[ 8: FAIL ] context.detachShader(program, undefined) should throw an exception. Was undefined.
[ 9: FAIL ] context.detachShader(undefined, shader) should throw an exception. Was undefined.
[ 10: FAIL ] context.shaderSource(undefined, undefined) should throw an exception. Was undefined.
[ 11: FAIL ] context.shaderSource(undefined, 'foo') should throw an exception. Was undefined.
[ 12: FAIL ] context.bindAttribLocation(undefined, 0, 'foo') should throw an exception. Was undefined.
[ 13: PASS ] context.bindBuffer(context.ARRAY_BUFFER, 0) threw exception TypeError: Argument 2 ('buffer') to WebGLRenderingContext.bindBuffer must be an instance of WebGLBuffer.
[ 14: PASS ] context.bindFramebuffer(context.FRAMEBUFFER, 0) threw exception TypeError: Argument 2 ('framebuffer') to WebGLRenderingContext.bindFramebuffer must be an instance of WebGLFramebuffer.
[ 15: PASS ] context.bindRenderbuffer(context.RENDERBUFFER, 0) threw exception TypeError: Argument 2 ('renderbuffer') to WebGLRenderingContext.bindRenderbuffer must be an instance of WebGLRenderbuffer.
[ 16: PASS ] context.bindTexture(context.TEXTURE_2D, 0) threw exception TypeError: Argument 2 ('texture') to WebGLRenderingContext.bindTexture must be an instance of WebGLTexture.
[ 17: FAIL ] getError expected: NO_ERROR. Was INVALID_VALUE : after evaluating: context.bindBuffer(context.ARRAY_BUFFER, null)
[ 18: PASS ] getError was expected value: NO_ERROR : after evaluating: context.bindFramebuffer(context.FRAMEBUFFER, null)
[ 19: PASS ] getError was expected value: NO_ERROR : after evaluating: context.bindRenderbuffer(context.RENDERBUFFER, null)
[ 20: PASS ] getError was expected value: NO_ERROR : after evaluating: context.bindTexture(context.TEXTURE_2D, null)
[ 21: PASS ] getError was expected value: NO_ERROR : after evaluating: context.bindBuffer(context.ARRAY_BUFFER, undefined)
[ 22: PASS ] getError was expected value: NO_ERROR : after evaluating: context.bindFramebuffer(context.FRAMEBUFFER, undefined)
[ 23: PASS ] getError was expected value: NO_ERROR : after evaluating: context.bindRenderbuffer(context.RENDERBUFFER, undefined)
[ 24: PASS ] getError was expected value: NO_ERROR : after evaluating: context.bindTexture(context.TEXTURE_2D, undefined)
[ 25: PASS ] getError was expected value: INVALID_OPERATION : after evaluating: context.framebufferRenderbuffer(context.FRAMEBUFFER, context.DEPTH_ATTACHMENT, context.RENDERBUFFER, null)
[ 26: PASS ] getError was expected value: INVALID_OPERATION : after evaluating: context.framebufferTexture2D(context.FRAMEBUFFER, context.COLOR_ATTACHMENT0, context.TEXTURE_2D, null, 0)
[ 27: FAIL ] context.getProgramParameter(undefined, 0) should throw an exception. Was null.
[ 28: FAIL ] context.getProgramInfoLog(undefined, 0) should throw an exception. Was null.
[ 29: FAIL ] context.getShaderParameter(undefined, 0) should throw an exception. Was null.
[ 30: FAIL ] context.getShaderInfoLog(undefined, 0) should throw an exception. Was null.
[ 31: FAIL ] context.getShaderSource(undefined) should throw an exception. Was null.
[ 32: FAIL ] context.getUniform(undefined, null) should throw an exception. Was null.
[ 33: FAIL ] context.getUniformLocation(undefined, 'foo') should throw an exception. Was null.
[ 34: FAIL ] getError expected: NO_ERROR. Was INVALID_VALUE : after evaluating: context.bufferData(context.ARRAY_BUFFER, 1, context.STATIC_DRAW)
[ 35: PASS ] getError was expected value: NO_ERROR : after evaluating: context.getBufferParameter(context.ARRAY_BUFFER, context.BUFFER_SIZE)
[ 36: PASS ] getError was expected value: NO_ERROR : after evaluating: context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, 1, 1, 0, context.RGBA, context.UNSIGNED_BYTE, new Uint8Array([0,0,0,0]))
[ 37: PASS ] getError was expected value: NO_ERROR : after evaluating: context.texParameteri(context.TEXTURE_2D, context.TEXTURE_MIN_FILTER, context.NEAREST)
[ 38: PASS ] getError was expected value: NO_ERROR : after evaluating: context.getTexParameter(context.TEXTURE_2D, context.TEXTURE_MIN_FILTER)
[ 39: PASS ] getError was expected value: INVALID_OPERATION : after evaluating: context.bufferData(context.ARRAY_BUFFER, 1, context.STATIC_DRAW)
[ 40: PASS ] getError was expected value: INVALID_OPERATION : after evaluating: context.getBufferParameter(context.ARRAY_BUFFER, context.BUFFER_SIZE)
[ 41: PASS ] getError was expected value: INVALID_OPERATION : after evaluating: context.texImage2D(context.TEXTURE_2D, 0, context.RGBA, 1, 1, 0, context.RGBA, context.UNSIGNED_BYTE, new Uint8Array([0,0,0,0]))
[ 42: PASS ] getError was expected value: INVALID_OPERATION : after evaluating: context.texParameteri(context.TEXTURE_2D, context.TEXTURE_MIN_FILTER, context.NEAREST)
[ 43: PASS ] getError was expected value: INVALID_OPERATION : after evaluating: context.getTexParameter(context.TEXTURE_2D, context.TEXTURE_MIN_FILTER)
[ 44: PASS ] successfullyParsed is true
[ FAIL ] 19 failures reported

