<html>
<head>
<script src="../../../resources/js-test.js"></script>
<script src="resources/webgl-test.js"></script>
</head>
<body>
<div id="description"></div>
<div id="console"></div>

<script>
description("Test all permutations of WebGLArray setters to make sure values don't get truncated");

debug('Regression test for <a href="https://bugs.webkit.org/show_bug.cgi?id=33350">https://bugs.webkit.org/show_bug.cgi?id=33350</a> : <code>WebGLArray subclasses do the wrong conversion in indexSetter</code>');

var webGLArray = null;
var array = null;

function testSetters(typeName, low, high) {
    var type = window[typeName];
    webGLArray = new type(2);
    array = [low, high];
    debug("Testing " + typeName);
    webGLArray.set(array);
    shouldBe("webGLArray", "array");
    shouldBe("webGLArray[0]", "array[0]");
    shouldBe("webGLArray[1]", "array[1]");
    webGLArray[0] = 0;
    webGLArray[1] = 0;
    shouldBe("webGLArray[0]", "0");
    shouldBe("webGLArray[1]", "0");
    webGLArray[0] = array[0];
    shouldBe("webGLArray[0]", "array[0]");
    webGLArray[1] = array[1];
    shouldBe("webGLArray[1]", "array[1]");

    // Verify set() behaves correctly with shared underlying buffer. 
    array = [0, 1, 2, 3, 4, 5];
    webGLArray = new type(6);
    webGLArray.set(array);
    array = webGLArray.subarray(2, 4);
    array[0] = 88;
    array[1] = 99;
    shouldBe("webGLArray[2]", "88");
    shouldBe("webGLArray[3]", "99");
    // pre-overlap
    webGLArray.set(array, 1);
    shouldBe("webGLArray[1]", "88");
    shouldBe("webGLArray[2]", "99");
    shouldBe("array[0]", "99");
    shouldBe("array[1]", "99");
    array[1] = 77;
    // post-overlap
    webGLArray.set(array, 3);
    shouldBe("webGLArray[3]", "99");
    shouldBe("webGLArray[4]", "77");
    shouldBe("array[0]", "99");
    shouldBe("array[1]", "99");
}

testSetters("Int8Array", -128, 127);
testSetters("Uint8Array", 0, 255);
testSetters("Int16Array", -32768, 32767);
testSetters("Uint16Array", 0, 65535);
testSetters("Int32Array", -2147483648, 2147483647);
testSetters("Uint32Array", 0, 4294967295);
testSetters("Float32Array", -2.5, 3.5);
</script>
</body>
</html>
