diff options
Diffstat (limited to 'tools/addon-sdk-1.4/packages/api-utils/tests/test-file.js')
-rw-r--r-- | tools/addon-sdk-1.4/packages/api-utils/tests/test-file.js | 276 |
1 files changed, 0 insertions, 276 deletions
diff --git a/tools/addon-sdk-1.4/packages/api-utils/tests/test-file.js b/tools/addon-sdk-1.4/packages/api-utils/tests/test-file.js deleted file mode 100644 index 5b1314a..0000000 --- a/tools/addon-sdk-1.4/packages/api-utils/tests/test-file.js +++ /dev/null @@ -1,276 +0,0 @@ -var file = require("file"); -var url = require("url"); -var byteStreams = require("byte-streams"); -var textStreams = require("text-streams"); - -const ERRORS = { - FILE_NOT_FOUND: /^path does not exist: .+$/, - NOT_A_DIRECTORY: /^path is not a directory: .+$/, - NOT_A_FILE: /^path is not a file: .+$/, -}; - -var myurl = module.uri; -var mydir = myurl.slice(0, -("test-file.js".length)); -var otherdir = mydir + "modules/"; - -exports.testDirName = function(test) { - var aDir = url.toFilename(otherdir); - test.assertEqual(file.dirname(aDir), - aDir.slice(0, aDir.lastIndexOf("modules")-1), - "file.dirname() of dir should return parent dir"); - - aDir = url.toFilename(myurl); - test.assertEqual(file.dirname(aDir), - aDir.slice(0, aDir.lastIndexOf("test-file")-1), - "file.dirname() of file should return its dir"); - - while (aDir) - aDir = file.dirname(aDir); - test.assertEqual(aDir, "", - "dirname should return empty string when dir has no parent"); -}; - -exports.testBasename = function(test) { - // Get the top-most path -- the path with no basename. E.g., on Unix-like - // systems this will be /. We'll use it below to build up some test paths. - // We have to go to this trouble because file.join() needs a legal path as a - // base case; join("foo", "bar") doesn't work unfortunately. - var topPath = url.toFilename(myurl); - var parentPath = file.dirname(topPath); - while (parentPath) { - topPath = parentPath; - parentPath = file.dirname(topPath); - } - - var path = topPath; - test.assertEqual(file.basename(path), "", - "basename should work on paths with no components"); - - path = file.join(path, "foo"); - test.assertEqual(file.basename(path), "foo", - "basename should work on paths with a single component"); - - path = file.join(path, "bar"); - test.assertEqual(file.basename(path), "bar", - "basename should work on paths with multiple components"); -}; - -exports.testList = function(test) { - var list = file.list(url.toFilename(otherdir)); - var found = [true for each (name in list) - if (name == "add.js")]; - if (found.length > 1) - test.fail("a dir can't contain two files of the same name!"); - test.assertEqual(found[0], true, "file.list() should work"); - - test.assertRaises( - function() { file.list(url.toFilename(module.uri)); }, - ERRORS.NOT_A_DIRECTORY, - "file.list() on non-dir should raise error" - ); - - test.assertRaises( - function() { file.list(url.toFilename(mydir + "foo/")); }, - ERRORS.FILE_NOT_FOUND, - "file.list() on nonexistent dir should raise error" - ); -}; - -exports.testRead = function(test) { - var filename = url.toFilename(module.uri); - var contents = file.read(filename); - test.assertMatches(contents, /file\.read\(\) should work/, - "file.read() should work"); - - test.assertRaises( - function() { file.read(filename + "blah"); }, - ERRORS.FILE_NOT_FOUND, - "file.read() on nonexistent file should raise error" - ); - - test.assertRaises( - function() { file.read(url.toFilename(otherdir)); }, - ERRORS.NOT_A_FILE, - "file.read() on dir should raise error" - ); -}; - -exports.testJoin = function(test) { - var filename = url.toFilename(myurl); - var baseDir = file.dirname(filename); - - test.assertEqual(file.join(baseDir, "test-file.js"), - filename, - "file.join() should work"); -}; - -exports.testOpenNonexistentForRead = function (test) { - var filename = dataFileFilename(test); - test.assertRaises(function () file.open(filename), - ERRORS.FILE_NOT_FOUND, - "file.open() on nonexistent file should raise error"); - test.assertRaises(function () file.open(filename, "r"), - ERRORS.FILE_NOT_FOUND, - "file.open('r') on nonexistent file should raise error"); - test.assertRaises(function () file.open(filename, "zzz"), - ERRORS.FILE_NOT_FOUND, - "file.open('zzz') on nonexistent file should raise error"); -}; - -exports.testOpenNonexistentForWrite = function (test) { - var filename = dataFileFilename(test); - - var stream = file.open(filename, "w"); - stream.close(); - - test.assert(file.exists(filename), - "file.exists() should return true after file.open('w')"); - file.remove(filename); - test.assert(!file.exists(filename), - "file.exists() should return false after file.remove()"); - - stream = file.open(filename, "rw"); - stream.close(); - - test.assert(file.exists(filename), - "file.exists() should return true after file.open('rw')"); - file.remove(filename); - test.assert(!file.exists(filename), - "file.exists() should return false after file.remove()"); -}; - -exports.testOpenDirectory = function (test) { - var dir = file.dirname(url.toFilename(module.uri)); - test.assertRaises(function () file.open(dir), - ERRORS.NOT_A_FILE, - "file.open() on directory should raise error"); - test.assertRaises(function () file.open(dir, "w"), - ERRORS.NOT_A_FILE, - "file.open('w') on directory should raise error"); -}; - -exports.testOpenTypes = function (test) { - var filename = dataFileFilename(test); - - // Do the opens first to create the data file. - var stream = file.open(filename, "w"); - test.assert(stream instanceof textStreams.TextWriter, - "open(w) should return a TextWriter"); - stream.close(); - - stream = file.open(filename, "wb"); - test.assert(stream instanceof byteStreams.ByteWriter, - "open(wb) should return a ByteWriter"); - stream.close(); - - stream = file.open(filename); - test.assert(stream instanceof textStreams.TextReader, - "open() should return a TextReader"); - stream.close(); - - stream = file.open(filename, "r"); - test.assert(stream instanceof textStreams.TextReader, - "open(r) should return a TextReader"); - stream.close(); - - stream = file.open(filename, "b"); - test.assert(stream instanceof byteStreams.ByteReader, - "open(b) should return a ByteReader"); - stream.close(); - - stream = file.open(filename, "rb"); - test.assert(stream instanceof byteStreams.ByteReader, - "open(rb) should return a ByteReader"); - stream.close(); - - file.remove(filename); -}; - -exports.testMkpathRmdir = function (test) { - var basePath = file.dirname(url.toFilename(module.uri)); - var dirs = []; - for (var i = 0; i < 3; i++) - dirs.push("test-file-dir"); - var paths = []; - for (var i = 0; i < dirs.length; i++) { - var args = [basePath].concat(dirs.slice(0, i + 1)); - paths.unshift(file.join.apply(null, args)); - } - for (i = 0; i < paths.length; i++) { - test.assert(!file.exists(paths[i]), - "Sanity check: path should not exist: " + paths[i]); - } - file.mkpath(paths[0]); - test.assert(file.exists(paths[0]), "mkpath should create path: " + paths[0]); - for (i = 0; i < paths.length; i++) { - file.rmdir(paths[i]); - test.assert(!file.exists(paths[i]), - "rmdir should remove path: " + paths[i]); - } -}; - -exports.testMkpathTwice = function (test) { - var dir = file.dirname(url.toFilename(module.uri)); - var path = file.join(dir, "test-file-dir"); - test.assert(!file.exists(path), - "Sanity check: path should not exist: " + path); - file.mkpath(path); - test.assert(file.exists(path), "mkpath should create path: " + path); - file.mkpath(path); - test.assert(file.exists(path), - "After second mkpath, path should still exist: " + path); - file.rmdir(path); - test.assert(!file.exists(path), "rmdir should remove path: " + path); -}; - -exports.testMkpathExistingNondirectory = function (test) { - var fname = dataFileFilename(test); - file.open(fname, "w").close(); - test.assert(file.exists(fname), "File should exist"); - test.assertRaises(function () file.mkpath(fname), - /^The path already exists and is not a directory: .+$/, - "mkpath on file should raise error"); - file.remove(fname); -}; - -exports.testRmdirNondirectory = function (test) { - var fname = dataFileFilename(test); - file.open(fname, "w").close(); - test.assert(file.exists(fname), "File should exist"); - test.assertRaises(function () file.rmdir(fname), - ERRORS.NOT_A_DIRECTORY, - "rmdir on file should raise error"); - file.remove(fname); - test.assert(!file.exists(fname), "File should not exist"); - test.assertRaises(function () file.rmdir(fname), - ERRORS.FILE_NOT_FOUND, - "rmdir on non-existing file should raise error"); -}; - -exports.testRmdirNonempty = function (test) { - var dir = file.dirname(url.toFilename(module.uri)); - var path = file.join(dir, "test-file-dir"); - test.assert(!file.exists(path), - "Sanity check: path should not exist: " + path); - file.mkpath(path); - var filePath = file.join(path, "file"); - file.open(filePath, "w").close(); - test.assert(file.exists(filePath), - "Sanity check: path should exist: " + filePath); - test.assertRaises(function () file.rmdir(path), - /^The directory is not empty: .+$/, - "rmdir on non-empty directory should raise error"); - file.remove(filePath); - file.rmdir(path); - test.assert(!file.exists(path), "Path should not exist"); -}; - -// Returns the name of a file that should be used to test writing and reading. -function dataFileFilename(test) { - var dir = file.dirname(url.toFilename(module.uri)); - var fname = file.join(dir, "test-file-data"); - test.assert(!file.exists(fname), - "Sanity check: the file that this test assumes does not " + - "exist should really not exist!"); - return fname; -} |