blob: 31dd1b753ac0c4f1f3c5e46c9258a4f2a54a3ce3 [file] [log] [blame]
/*
* Copyright 2012 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.gwt.typedarrays.shared;
import com.google.gwt.junit.client.GWTTestCase;
/**
* Test {@link DataView} implementations.
*/
public class DataViewTest extends GWTTestCase {
public void testBasic() {
if (!TypedArrays.isSupported()) {
// TODO: some way of showing test as skipped in this case?
return;
}
int len = 40;
ArrayBuffer buf = TypedArrays.createArrayBuffer(len);
assertEquals(len, buf.byteLength());
DataView view = TypedArrays.createDataView(buf);
assertSame(buf, view.buffer());
assertEquals(len, view.byteLength());
assertEquals(0, view.byteOffset());
// check that it is initialized to zeros
for (int i = 0; i < len; ++i) {
assertEquals(0, view.getUint8(i));
}
// store some data
view.setUint8(0, 0x01);
view.setUint8(1, 0x20);
view.setUint8(2, 0x04);
view.setUint8(3, 0x80);
// read it out as bytes
assertEquals(0x01, view.getUint8(0));
assertEquals(0x20, view.getUint8(1));
assertEquals(0x04, view.getUint8(2));
assertEquals(0x80, view.getUint8(3));
assertEquals(0x01, view.getInt8(0));
assertEquals(0x20, view.getInt8(1));
assertEquals(0x04, view.getInt8(2));
assertEquals(-128, view.getInt8(3));
// read it out as 16-bit values
assertEquals(0x0120, view.getUint16(0));
assertEquals(0x0480, view.getUint16(2));
assertEquals(0x2001, view.getUint16(0, true));
assertEquals(0x8004, view.getUint16(2, true));
assertEquals(0x0120, view.getInt16(0));
assertEquals(0x0480, view.getInt16(2));
assertEquals(0x2001, view.getInt16(0, true));
assertEquals((short) 0x8004, view.getInt16(2, true));
// read it out as 32-bit values
assertEquals(0x01200480L, view.getUint32(0));
assertEquals(0x80042001L, view.getUint32(0, true));
assertEquals(0x01200480, view.getInt32(0));
assertEquals(0x80042001, view.getInt32(0, true));
}
@Override
public String getModuleName() {
// returns null for a pure Java test
return null;
}
}