aboutsummaryrefslogtreecommitdiffhomepage
path: root/node_modules/arraybuffer.slice/test/slice-buffer.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/arraybuffer.slice/test/slice-buffer.js')
-rw-r--r--node_modules/arraybuffer.slice/test/slice-buffer.js227
1 files changed, 227 insertions, 0 deletions
diff --git a/node_modules/arraybuffer.slice/test/slice-buffer.js b/node_modules/arraybuffer.slice/test/slice-buffer.js
new file mode 100644
index 0000000..4778da6
--- /dev/null
+++ b/node_modules/arraybuffer.slice/test/slice-buffer.js
@@ -0,0 +1,227 @@
+/*
+ * Test dependencies
+ */
+
+var sliceBuffer = require('../index.js');
+var expect = require('expect.js');
+
+/**
+ * Tests
+ */
+
+describe('sliceBuffer', function() {
+ describe('using standard slice', function() {
+ it('should slice correctly with only start provided', function() {
+ var abv = new Uint8Array(10);
+ for (var i = 0; i < abv.length; i++) {
+ abv[i] = i;
+ }
+
+ var sliced = sliceBuffer(abv.buffer, 3);
+ var sabv = new Uint8Array(sliced);
+ for (var i = 3, ii = 0; i < abv.length; i++, ii++) {
+ expect(abv[i]).to.equal(sabv[ii]);
+ }
+ });
+
+ it('should slice correctly with start and end provided', function() {
+ var abv = new Uint8Array(10);
+ for (var i = 0; i < abv.length; i++) {
+ abv[i] = i;
+ }
+
+ var sliced = sliceBuffer(abv.buffer, 3, 8);
+ var sabv = new Uint8Array(sliced);
+ for (var i = 3, ii = 0; i < 8; i++, ii++) {
+ expect(abv[i]).to.equal(sabv[ii]);
+ }
+ });
+
+ it('should slice correctly with negative start', function() {
+ var abv = new Uint8Array(10);
+ for (var i = 0; i < abv.length; i++) {
+ abv[i] = i;
+ }
+
+ var sliced = sliceBuffer(abv.buffer, -3);
+ var sabv = new Uint8Array(sliced);
+ for (var i = abv.length - 3, ii = 0; i < abv.length; i++, ii++) {
+ expect(abv[i]).to.equal(sabv[ii]);
+ }
+ });
+
+ it('should slice correctly with negative end', function() {
+ var abv = new Uint8Array(10);
+ for (var i = 0; i < abv.length; i++) {
+ abv[i] = i;
+ }
+
+ var sliced = sliceBuffer(abv.buffer, 0, -3);
+ var sabv = new Uint8Array(sliced);
+ for (var i = 0, ii = 0; i < abv.length - 3; i++, ii++) {
+ expect(abv[i]).to.equal(sabv[ii]);
+ }
+ });
+
+ it('should slice correctly with negative start and end', function() {
+ var abv = new Uint8Array(10);
+ for (var i = 0; i < abv.length; i++) {
+ abv[i] = i;
+ }
+
+ var sliced = sliceBuffer(abv.buffer, -6, -3);
+ var sabv = new Uint8Array(sliced);
+ for (var i = abv.length - 6, ii = 0; i < abv.length - 3; i++, ii++) {
+ expect(abv[i]).to.equal(sabv[ii]);
+ }
+ });
+
+ it('should slice correctly with equal start and end', function() {
+ var abv = new Uint8Array(10);
+ for (var i = 0; i < abv.length; i++) {
+ abv[i] = i;
+ }
+
+ var sliced = sliceBuffer(abv.buffer, 1, 1);
+ expect(sliced.byteLength).to.equal(0);
+ });
+
+ it('should slice correctly when end larger than buffer', function() {
+ var abv = new Uint8Array(10);
+ for (var i = 0; i < abv.length; i++) {
+ abv[i] = i;
+ }
+
+ var sliced = sliceBuffer(abv.buffer, 0, 100);
+ expect(new Uint8Array(sliced)).to.eql(abv);
+ });
+
+ it('shoud slice correctly when start larger than end', function() {
+ var abv = new Uint8Array(10);
+ for (var i = 0; i < abv.length; i++) {
+ abv[i] = i;
+ }
+
+ var sliced = sliceBuffer(abv.buffer, 6, 5);
+ expect(sliced.byteLength).to.equal(0);
+ });
+ });
+
+ describe('using fallback', function() {
+ it('should slice correctly with only start provided', function() {
+ var abv = new Uint8Array(10);
+ for (var i = 0; i < abv.length; i++) {
+ abv[i] = i;
+ }
+ var ab = abv.buffer;
+ ab.slice = undefined;
+
+ var sliced = sliceBuffer(ab, 3);
+ var sabv = new Uint8Array(sliced);
+ for (var i = 3, ii = 0; i < abv.length; i++, ii++) {
+ expect(abv[i]).to.equal(sabv[ii]);
+ }
+ });
+
+ it('should slice correctly with start and end provided', function() {
+ var abv = new Uint8Array(10);
+ for (var i = 0; i < abv.length; i++) {
+ abv[i] = i;
+ }
+ var ab = abv.buffer;
+ ab.slice = undefined;
+
+
+ var sliced = sliceBuffer(ab, 3, 8);
+ var sabv = new Uint8Array(sliced);
+ for (var i = 3, ii = 0; i < 8; i++, ii++) {
+ expect(abv[i]).to.equal(sabv[ii]);
+ }
+ });
+
+ it('should slice correctly with negative start', function() {
+ var abv = new Uint8Array(10);
+ for (var i = 0; i < abv.length; i++) {
+ abv[i] = i;
+ }
+ var ab = abv.buffer;
+ ab.slice = undefined;
+
+
+ var sliced = sliceBuffer(ab, -3);
+ var sabv = new Uint8Array(sliced);
+ for (var i = abv.length - 3, ii = 0; i < abv.length; i++, ii++) {
+ expect(abv[i]).to.equal(sabv[ii]);
+ }
+ });
+
+ it('should slice correctly with negative end', function() {
+ var abv = new Uint8Array(10);
+ for (var i = 0; i < abv.length; i++) {
+ abv[i] = i;
+ }
+ var ab = abv.buffer;
+ ab.slice = undefined;
+
+ var sliced = sliceBuffer(ab, 0, -3);
+ var sabv = new Uint8Array(sliced);
+ for (var i = 0, ii = 0; i < abv.length - 3; i++, ii++) {
+ expect(abv[i]).to.equal(sabv[ii]);
+ }
+ });
+
+ it('should slice correctly with negative start and end', function() {
+ var abv = new Uint8Array(10);
+ for (var i = 0; i < abv.length; i++) {
+ abv[i] = i;
+ }
+ var ab = abv.buffer;
+ ab.slice = undefined;
+
+ var sliced = sliceBuffer(ab, -6, -3);
+ var sabv = new Uint8Array(sliced);
+ for (var i = abv.length - 6, ii = 0; i < abv.length - 3; i++, ii++) {
+ expect(abv[i]).to.equal(sabv[ii]);
+ }
+ });
+
+ it('should slice correctly with equal start and end', function() {
+ var abv = new Uint8Array(10);
+ for (var i = 0; i < abv.length; i++) {
+ abv[i] = i;
+ }
+ var ab = abv.buffer;
+ ab.slice = undefined;
+
+ var sliced = sliceBuffer(ab, 1, 1);
+ expect(sliced.byteLength).to.equal(0);
+ });
+
+ it('should slice correctly when end larger than buffer', function() {
+ var abv = new Uint8Array(10);
+ for (var i = 0; i < abv.length; i++) {
+ abv[i] = i;
+ }
+ var ab = abv.buffer;
+ ab.slice = undefined;
+
+ var sliced = sliceBuffer(ab, 0, 100);
+ var sabv = new Uint8Array(sliced);
+ for (var i = 0; i < abv.length; i++) {
+ expect(abv[i]).to.equal(sabv[i]);
+ }
+ });
+
+ it('shoud slice correctly when start larger than end', function() {
+ var abv = new Uint8Array(10);
+ for (var i = 0; i < abv.length; i++) {
+ abv[i] = i;
+ }
+ var ab = abv.buffer;
+ ab.slice = undefined;
+
+ var sliced = sliceBuffer(ab, 6, 5);
+ expect(sliced.byteLength).to.equal(0);
+ });
+ });
+});