| // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| library typed_arrays_arraybuffer_test; |
| import '../../pkg/unittest/lib/unittest.dart'; |
| import '../../pkg/unittest/lib/html_config.dart'; |
| import 'dart:html'; |
| |
| main() { |
| useHtmlConfiguration(); |
| |
| // Only perform tests if ArrayBuffer is supported. |
| if (!ArrayBuffer.supported) { |
| return; |
| } |
| |
| test('constructor', () { |
| var a = new ArrayBuffer(100); |
| expect(a.byteLength, 100); |
| }); |
| |
| test('slice1', () { |
| var a = new ArrayBuffer(100); |
| var s = a.slice(10, 40); |
| expect(s.byteLength, 30); |
| }); |
| |
| test('slice2', () { |
| var a = new ArrayBuffer(100); |
| var s = a.slice(10, 400); |
| expect(s.byteLength, 90); // indexes clamped to valid range. |
| }); |
| |
| test('slice3', () { |
| var a = new ArrayBuffer(100); |
| var s = a.slice(50, 10); |
| expect(s.byteLength, 0); // end before start becomes empty range. |
| }); |
| |
| test('slice4', () { |
| var a = new ArrayBuffer(100); |
| var s = a.slice(-90, -30); |
| expect(s.byteLength, 60); // negative indexes measure from end. |
| }); |
| } |