1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/bindings/parser/tests/test_arraybuffer.py Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,84 @@ 1.4 +import WebIDL 1.5 + 1.6 +def WebIDLTest(parser, harness): 1.7 + parser.parse(""" 1.8 + interface TestArrayBuffer { 1.9 + attribute ArrayBuffer bufferAttr; 1.10 + void bufferMethod(ArrayBuffer arg1, ArrayBuffer? arg2, ArrayBuffer[] arg3, sequence<ArrayBuffer> arg4); 1.11 + 1.12 + attribute ArrayBufferView viewAttr; 1.13 + void viewMethod(ArrayBufferView arg1, ArrayBufferView? arg2, ArrayBufferView[] arg3, sequence<ArrayBufferView> arg4); 1.14 + 1.15 + attribute Int8Array int8ArrayAttr; 1.16 + void int8ArrayMethod(Int8Array arg1, Int8Array? arg2, Int8Array[] arg3, sequence<Int8Array> arg4); 1.17 + 1.18 + attribute Uint8Array uint8ArrayAttr; 1.19 + void uint8ArrayMethod(Uint8Array arg1, Uint8Array? arg2, Uint8Array[] arg3, sequence<Uint8Array> arg4); 1.20 + 1.21 + attribute Uint8ClampedArray uint8ClampedArrayAttr; 1.22 + void uint8ClampedArrayMethod(Uint8ClampedArray arg1, Uint8ClampedArray? arg2, Uint8ClampedArray[] arg3, sequence<Uint8ClampedArray> arg4); 1.23 + 1.24 + attribute Int16Array int16ArrayAttr; 1.25 + void int16ArrayMethod(Int16Array arg1, Int16Array? arg2, Int16Array[] arg3, sequence<Int16Array> arg4); 1.26 + 1.27 + attribute Uint16Array uint16ArrayAttr; 1.28 + void uint16ArrayMethod(Uint16Array arg1, Uint16Array? arg2, Uint16Array[] arg3, sequence<Uint16Array> arg4); 1.29 + 1.30 + attribute Int32Array int32ArrayAttr; 1.31 + void int32ArrayMethod(Int32Array arg1, Int32Array? arg2, Int32Array[] arg3, sequence<Int32Array> arg4); 1.32 + 1.33 + attribute Uint32Array uint32ArrayAttr; 1.34 + void uint32ArrayMethod(Uint32Array arg1, Uint32Array? arg2, Uint32Array[] arg3, sequence<Uint32Array> arg4); 1.35 + 1.36 + attribute Float32Array float32ArrayAttr; 1.37 + void float32ArrayMethod(Float32Array arg1, Float32Array? arg2, Float32Array[] arg3, sequence<Float32Array> arg4); 1.38 + 1.39 + attribute Float64Array float64ArrayAttr; 1.40 + void float64ArrayMethod(Float64Array arg1, Float64Array? arg2, Float64Array[] arg3, sequence<Float64Array> arg4); 1.41 + }; 1.42 + """) 1.43 + 1.44 + results = parser.finish() 1.45 + 1.46 + iface = results[0] 1.47 + 1.48 + harness.ok(True, "TestArrayBuffer interface parsed without error") 1.49 + harness.check(len(iface.members), 22, "Interface should have twenty two members") 1.50 + 1.51 + members = iface.members 1.52 + 1.53 + def checkStuff(attr, method, t): 1.54 + harness.ok(isinstance(attr, WebIDL.IDLAttribute), "Expect an IDLAttribute") 1.55 + harness.ok(isinstance(method, WebIDL.IDLMethod), "Expect an IDLMethod") 1.56 + 1.57 + harness.check(str(attr.type), t, "Expect an ArrayBuffer type") 1.58 + harness.ok(attr.type.isSpiderMonkeyInterface(), "Should test as a js interface") 1.59 + 1.60 + (retType, arguments) = method.signatures()[0] 1.61 + harness.ok(retType.isVoid(), "Should have a void return type") 1.62 + harness.check(len(arguments), 4, "Expect 4 arguments") 1.63 + 1.64 + harness.check(str(arguments[0].type), t, "Expect an ArrayBuffer type") 1.65 + harness.ok(arguments[0].type.isSpiderMonkeyInterface(), "Should test as a js interface") 1.66 + 1.67 + harness.check(str(arguments[1].type), t + "OrNull", "Expect an ArrayBuffer type") 1.68 + harness.ok(arguments[1].type.inner.isSpiderMonkeyInterface(), "Should test as a js interface") 1.69 + 1.70 + harness.check(str(arguments[2].type), t + "Array", "Expect an ArrayBuffer type") 1.71 + harness.ok(arguments[2].type.inner.isSpiderMonkeyInterface(), "Should test as a js interface") 1.72 + 1.73 + harness.check(str(arguments[3].type), t + "Sequence", "Expect an ArrayBuffer type") 1.74 + harness.ok(arguments[3].type.inner.isSpiderMonkeyInterface(), "Should test as a js interface") 1.75 + 1.76 + 1.77 + checkStuff(members[0], members[1], "ArrayBuffer") 1.78 + checkStuff(members[2], members[3], "ArrayBufferView") 1.79 + checkStuff(members[4], members[5], "Int8Array") 1.80 + checkStuff(members[6], members[7], "Uint8Array") 1.81 + checkStuff(members[8], members[9], "Uint8ClampedArray") 1.82 + checkStuff(members[10], members[11], "Int16Array") 1.83 + checkStuff(members[12], members[13], "Uint16Array") 1.84 + checkStuff(members[14], members[15], "Int32Array") 1.85 + checkStuff(members[16], members[17], "Uint32Array") 1.86 + checkStuff(members[18], members[19], "Float32Array") 1.87 + checkStuff(members[20], members[21], "Float64Array")