mirror of https://github.com/lukechilds/node.git
Rasmus Andersson
15 years ago
committed by
Ryan Dahl
3 changed files with 149 additions and 0 deletions
@ -0,0 +1,56 @@ |
|||||
|
process.mixin(require("../common")); |
||||
|
|
||||
|
var async_completed = 0, async_expected = 0; |
||||
|
|
||||
|
// a. deep relative file symlink
|
||||
|
var dstPath = path.join(fixturesDir, 'cycles', 'root.js'); |
||||
|
var linkData1 = "../../cycles/root.js"; |
||||
|
var linkPath1 = path.join(fixturesDir, "nested-index", 'one', 'symlink1.js'); |
||||
|
try {fs.unlinkSync(linkPath1);}catch(e){} |
||||
|
fs.symlinkSync(linkData1, linkPath1); |
||||
|
|
||||
|
var linkData2 = "../one/symlink1.js"; |
||||
|
var linkPath2 = path.join(fixturesDir, "nested-index", 'two', 'symlink1-b.js'); |
||||
|
try {fs.unlinkSync(linkPath2);}catch(e){} |
||||
|
fs.symlinkSync(linkData2, linkPath2); |
||||
|
|
||||
|
// b. deep relative directory symlink
|
||||
|
var dstPath_b = path.join(fixturesDir, 'cycles', 'folder'); |
||||
|
var linkData1b = "../../cycles/folder"; |
||||
|
var linkPath1b = path.join(fixturesDir, "nested-index", 'one', 'symlink1-dir'); |
||||
|
try {fs.unlinkSync(linkPath1b);}catch(e){} |
||||
|
fs.symlinkSync(linkData1b, linkPath1b); |
||||
|
|
||||
|
var linkData2b = "../one/symlink1-dir"; |
||||
|
var linkPath2b = path.join(fixturesDir, "nested-index", 'two', 'symlink12-dir'); |
||||
|
try {fs.unlinkSync(linkPath2b);}catch(e){} |
||||
|
fs.symlinkSync(linkData2b, linkPath2b); |
||||
|
|
||||
|
assert.equal(fs.realpathSync(linkPath2), dstPath); |
||||
|
assert.equal(fs.realpathSync(linkPath2b), dstPath_b); |
||||
|
|
||||
|
async_expected++; |
||||
|
fs.realpath(linkPath2, function(err, rpath) { |
||||
|
if (err) throw err; |
||||
|
assert.equal(rpath, dstPath); |
||||
|
async_completed++; |
||||
|
}); |
||||
|
|
||||
|
async_expected++; |
||||
|
fs.realpath(linkPath2b, function(err, rpath) { |
||||
|
if (err) throw err; |
||||
|
assert.equal(rpath, dstPath_b); |
||||
|
async_completed++; |
||||
|
}); |
||||
|
|
||||
|
// todo: test shallow symlinks (file & dir)
|
||||
|
// todo: test non-symlinks (file & dir)
|
||||
|
// todo: test error on cyclic symlinks
|
||||
|
|
||||
|
process.addListener("exit", function () { |
||||
|
try {fs.unlinkSync(linkPath1);}catch(e){} |
||||
|
try {fs.unlinkSync(linkPath2);}catch(e){} |
||||
|
try {fs.unlinkSync(linkPath1b);}catch(e){} |
||||
|
try {fs.unlinkSync(linkPath2b);}catch(e){} |
||||
|
assert.equal(async_completed, async_expected); |
||||
|
}); |
Loading…
Reference in new issue