summaryrefslogtreecommitdiff
path: root/test/parallel/test-crypto-lazy-transform-writable.js
diff options
context:
space:
mode:
authorMatteo Collina <hello@matteocollina.com>2017-04-13 01:25:38 +0100
committerMatteo Collina <hello@matteocollina.com>2017-04-14 16:05:14 +0200
commit1ae172b272f17fe8bb82a0f79b8d7e0bc2fb17ec (patch)
treeb4c9ebd085e43cd60daff511edb84adbacd30ce5 /test/parallel/test-crypto-lazy-transform-writable.js
parent9dcf18a5c0449700598d26dd8b0d252c1eb6ce5d (diff)
downloadandroid-node-v8-1ae172b272f17fe8bb82a0f79b8d7e0bc2fb17ec.tar.gz
android-node-v8-1ae172b272f17fe8bb82a0f79b8d7e0bc2fb17ec.tar.bz2
android-node-v8-1ae172b272f17fe8bb82a0f79b8d7e0bc2fb17ec.zip
crypto: make LazyTransform compabile with Streams1
Makes LazyTransform writable by Streams1 by assigning .writable = true before the actual classes are loaded. Fixes: https://github.com/nodejs/node/issues/12269 PR-URL: https://github.com/nodejs/node/pull/12380 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'test/parallel/test-crypto-lazy-transform-writable.js')
-rw-r--r--test/parallel/test-crypto-lazy-transform-writable.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/parallel/test-crypto-lazy-transform-writable.js b/test/parallel/test-crypto-lazy-transform-writable.js
new file mode 100644
index 0000000000..2c4fbaf39a
--- /dev/null
+++ b/test/parallel/test-crypto-lazy-transform-writable.js
@@ -0,0 +1,34 @@
+'use strict';
+
+const common = require('../common');
+const assert = require('assert');
+const crypto = require('crypto');
+const Stream = require('stream');
+const util = require('util');
+
+const hasher1 = crypto.createHash('sha256');
+const hasher2 = crypto.createHash('sha256');
+
+// Calculate the expected result.
+hasher1.write(Buffer.from('hello world'));
+hasher1.end();
+
+const expected = hasher1.read().toString('hex');
+
+function OldStream() {
+ Stream.call(this);
+
+ this.readable = true;
+}
+util.inherits(OldStream, Stream);
+
+const stream = new OldStream();
+
+stream.pipe(hasher2).on('finish', common.mustCall(function() {
+ const hash = hasher2.read().toString('hex');
+ assert.strictEqual(expected, hash);
+}));
+
+stream.emit('data', Buffer.from('hello'));
+stream.emit('data', Buffer.from(' world'));
+stream.emit('end');