Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / walkdir / test / sync.js
diff --git a/legacy-libs/walkdir/test/sync.js b/legacy-libs/walkdir/test/sync.js
new file mode 100644 (file)
index 0000000..db2d072
--- /dev/null
@@ -0,0 +1,52 @@
+var test = require('tape'),
+walkdir = require('../walkdir.js');
+
+var expectedPaths = {
+'dir/foo/x':'file',
+'dir/foo/a':'dir',
+'dir/foo/a/y':'file',
+'dir/foo/a/b':'dir',
+'dir/foo/a/b/z':'file',
+'dir/foo/a/b/c':'dir',
+'dir/foo/a/b/c/w':'file'
+};
+
+test('sync',function(t){
+  var paths = [],
+  files = [],
+  dirs = [];
+
+  var pathResult = walkdir.sync(__dirname+'/dir/foo',function(path){
+    console.log('path: ',path);
+    paths.push(path);
+  });
+
+  t.ok(pathResult instanceof Array,'if return object is not specified should be an array');
+
+  t.equals(Object.keys(expectedPaths).length,paths.length,'should have found the same number of paths as expected');
+
+
+  Object.keys(expectedPaths).forEach(function(v,k){
+
+      t.ok(paths.indexOf(__dirname+'/'+v) > -1,v+' should be found');
+  });
+
+  t.deepEquals(paths,pathResult,'paths should be equal to pathResult');
+
+  t.end();
+});
+
+test('sync return object',function(t){
+
+  var pathResult = walkdir.sync(__dirname+'/dir/foo',{return_object:true});
+
+  t.ok(!(pathResult instanceof Array),'if return object is not specified should be an array');
+
+  t.equals(Object.keys(expectedPaths).length,Object.keys(pathResult).length,'should find the same number of paths as expected');
+
+  Object.keys(expectedPaths).forEach(function(v,k){
+      t.ok(pathResult[__dirname+'/'+v],'should  find path in result object');
+  });
+
+  t.end();
+});