123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- var fs = require('fs');
- var test = require('tap').test;
- var glob = require('../');
- test('mock fs', function(t) {
- var stat = fs.stat
- var statSync = fs.statSync
- var readdir = fs.readdir
- var readdirSync = fs.readdirSync
- function fakeStat(path) {
- var ret
- switch (path.toLowerCase()) {
- case '/tmp': case '/tmp/':
- ret = { isDirectory: function() { return true } }
- break
- case '/tmp/a':
- ret = { isDirectory: function() { return false } }
- break
- }
- return ret
- }
- fs.stat = function(path, cb) {
- var f = fakeStat(path);
- if (f) {
- process.nextTick(function() {
- cb(null, f)
- })
- } else {
- stat.call(fs, path, cb)
- }
- }
- fs.statSync = function(path) {
- return fakeStat(path) || statSync.call(fs, path)
- }
- function fakeReaddir(path) {
- var ret
- switch (path.toLowerCase()) {
- case '/tmp': case '/tmp/':
- ret = [ 'a', 'A' ]
- break
- case '/':
- ret = ['tmp', 'tMp', 'tMP', 'TMP']
- }
- return ret
- }
- fs.readdir = function(path, cb) {
- var f = fakeReaddir(path)
- if (f)
- process.nextTick(function() {
- cb(null, f)
- })
- else
- readdir.call(fs, path, cb)
- }
- fs.readdirSync = function(path) {
- return fakeReaddir(path) || readdirSync.call(fs, path)
- }
- t.pass('mocked')
- t.end()
- })
- test('nocase, nomagic', function(t) {
- var n = 2
- var want = [ '/TMP/A',
- '/TMP/a',
- '/tMP/A',
- '/tMP/a',
- '/tMp/A',
- '/tMp/a',
- '/tmp/A',
- '/tmp/a' ]
- glob('/tmp/a', { nocase: true }, function(er, res) {
- if (er)
- throw er
- t.same(res.sort(), want)
- if (--n === 0) t.end()
- })
- glob('/tmp/A', { nocase: true }, function(er, res) {
- if (er)
- throw er
- t.same(res.sort(), want)
- if (--n === 0) t.end()
- })
- })
- test('nocase, with some magic', function(t) {
- t.plan(2)
- var want = [ '/TMP/A',
- '/TMP/a',
- '/tMP/A',
- '/tMP/a',
- '/tMp/A',
- '/tMp/a',
- '/tmp/A',
- '/tmp/a' ]
- glob('/tmp/*', { nocase: true }, function(er, res) {
- if (er)
- throw er
- t.same(res.sort(), want)
- })
- glob('/tmp/*', { nocase: true }, function(er, res) {
- if (er)
- throw er
- t.same(res.sort(), want)
- })
- })
|