123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- var tape = require('tape')
- , EE = require('events').EventEmitter
- , util = require('util')
- , isStream = require('./')
- , isReadable = require('./').isReadable
- , isWritable = require('./').isWritable
- , isDuplex = require('./').isDuplex
- , CoreStreams = require('stream')
- , ReadableStream10 = require('./readable-stream-1.0/')
- , ReadableStream11 = require('./readable-stream-1.1/')
- function test (pass, type, stream) {
- tape('isStream(' + type + ')', function (t) {
- t.plan(1)
- t.ok(pass === isStream(stream), type)
- })
- }
- function testReadable (pass, type, stream) {
- tape('isReadable(' + type + ')', function (t) {
- t.plan(1)
- t.ok(pass === isReadable(stream), type)
- })
- }
- function testWritable (pass, type, stream) {
- tape('isWritable(' + type + ')', function (t) {
- t.plan(1)
- t.ok(pass === isWritable(stream), type)
- })
- }
- function testDuplex (pass, type, stream) {
- tape('isDuplex(' + type + ')', function (t) {
- t.plan(1)
- t.ok(pass === isDuplex(stream), type)
- })
- }
- [ undefined, null, '', true, false, 0, 1, 1.0, 'string', {}, function foo () {} ].forEach(function (o) {
- test(false, 'non-stream / primitive: ' + (JSON.stringify(o) || (o && o.toString()) || o), o)
- })
- test(false, 'fake stream obj', { pipe: function () {} })
- ;(function () {
- // looks like a stream!
- function Stream () {
- EE.call(this)
- }
- util.inherits(Stream, EE)
- Stream.prototype.pipe = function () {}
- Stream.Stream = Stream
- test(false, 'fake stream "new Stream()"', new Stream())
- }())
- test(true, 'CoreStreams.Stream', new (CoreStreams.Stream)())
- test(true, 'CoreStreams.Readable', new (CoreStreams.Readable)())
- test(true, 'CoreStreams.Writable', new (CoreStreams.Writable)())
- test(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
- test(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
- test(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
- test(true, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
- test(true, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
- test(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
- test(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
- test(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
- test(true, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
- test(true, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
- test(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
- test(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
- test(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
- testReadable(false, 'CoreStreams.Stream', new (CoreStreams.Stream)())
- testReadable(true, 'CoreStreams.Readable', new (CoreStreams.Readable)())
- testReadable(false, 'CoreStreams.Writable', new (CoreStreams.Writable)())
- testReadable(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
- testReadable(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
- testReadable(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
- testReadable(true, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
- testReadable(false, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
- testReadable(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
- testReadable(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
- testReadable(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
- testReadable(true, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
- testReadable(false, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
- testReadable(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
- testReadable(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
- testReadable(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
- testWritable(false, 'CoreStreams.Stream', new (CoreStreams.Stream)())
- testWritable(false, 'CoreStreams.Readable', new (CoreStreams.Readable)())
- testWritable(true, 'CoreStreams.Writable', new (CoreStreams.Writable)())
- testWritable(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
- testWritable(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
- testWritable(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
- testWritable(false, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
- testWritable(true, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
- testWritable(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
- testWritable(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
- testWritable(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
- testWritable(false, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
- testWritable(true, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
- testWritable(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
- testWritable(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
- testWritable(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
- testDuplex(false, 'CoreStreams.Stream', new (CoreStreams.Stream)())
- testDuplex(false, 'CoreStreams.Readable', new (CoreStreams.Readable)())
- testDuplex(false, 'CoreStreams.Writable', new (CoreStreams.Writable)())
- testDuplex(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
- testDuplex(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
- testDuplex(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
- testDuplex(false, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
- testDuplex(false, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
- testDuplex(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
- testDuplex(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
- testDuplex(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
- testDuplex(false, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
- testDuplex(false, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
- testDuplex(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
- testDuplex(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
- testDuplex(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
- ;[ CoreStreams, ReadableStream10, ReadableStream11 ].forEach(function (p) {
- [ 'Stream', 'Readable', 'Writable', 'Duplex', 'Transform', 'PassThrough' ].forEach(function (k) {
- if (!p[k])
- return
- function SubStream () {
- p[k].call(this)
- }
- util.inherits(SubStream, p[k])
- test(true, 'Stream subclass: ' + p.name + '.' + k, new SubStream())
- })
- })
|