Skip to content

Commit 292d017

Browse files
RafaelGSSrichardlau
authored andcommitted
test: add URL tests to fs-write
PR-URL: #51352 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: LiviaMedeiros <[email protected]>
1 parent 4a8a012 commit 292d017

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

‎test/fixtures/permission/fs-write.js‎

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ const regularFolder = process.env.ALLOWEDFOLDER;
1111
constregularFile=process.env.ALLOWEDFILE;
1212
constblockedFolder=process.env.BLOCKEDFOLDER;
1313
constblockedFile=process.env.BLOCKEDFILE;
14+
constblockedFileURL=require('url').pathToFileURL(process.env.BLOCKEDFILE);
1415
constrelativeProtectedFile=process.env.RELATIVEBLOCKEDFILE;
1516
constrelativeProtectedFolder=process.env.RELATIVEBLOCKEDFOLDER;
1617
constabsoluteProtectedFile=path.resolve(relativeProtectedFile);
@@ -30,6 +31,13 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder);
3031
permission: 'FileSystemWrite',
3132
resource: path.toNamespacedPath(blockedFile),
3233
});
34+
assert.throws(()=>{
35+
fs.writeFile(blockedFileURL,'example',()=>{});
36+
},common.expectsError({
37+
code: 'ERR_ACCESS_DENIED',
38+
permission: 'FileSystemWrite',
39+
resource: path.toNamespacedPath(blockedFile),
40+
}));
3341
assert.throws(()=>{
3442
fs.writeFile(relativeProtectedFile,'example',()=>{});
3543
},{
@@ -91,6 +99,13 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder);
9199
permission: 'FileSystemWrite',
92100
resource: path.toNamespacedPath(blockedFile),
93101
});
102+
assert.throws(()=>{
103+
fs.utimes(blockedFileURL,newDate(),newDate(),()=>{});
104+
},common.expectsError({
105+
code: 'ERR_ACCESS_DENIED',
106+
permission: 'FileSystemWrite',
107+
resource: path.toNamespacedPath(blockedFile),
108+
}));
94109
assert.throws(()=>{
95110
fs.utimes(relativeProtectedFile,newDate(),newDate(),()=>{});
96111
},{
@@ -117,6 +132,13 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder);
117132
permission: 'FileSystemWrite',
118133
resource: path.toNamespacedPath(blockedFile),
119134
});
135+
assert.throws(()=>{
136+
fs.lutimes(blockedFileURL,newDate(),newDate(),()=>{});
137+
},common.expectsError({
138+
code: 'ERR_ACCESS_DENIED',
139+
permission: 'FileSystemWrite',
140+
resource: path.toNamespacedPath(blockedFile),
141+
}));
120142
}
121143

122144
// fs.mkdir
@@ -169,6 +191,15 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder);
169191
permission: 'FileSystemWrite',
170192
resource: path.toNamespacedPath(blockedFile),
171193
});
194+
assert.throws(()=>{
195+
fs.rename(blockedFileURL,path.join(blockedFile,'renamed'),(err)=>{
196+
assert.ifError(err);
197+
});
198+
},common.expectsError({
199+
code: 'ERR_ACCESS_DENIED',
200+
permission: 'FileSystemWrite',
201+
resource: path.toNamespacedPath(blockedFile),
202+
}));
172203
assert.throws(()=>{
173204
fs.rename(relativeProtectedFile,path.join(relativeProtectedFile,'renamed'),(err)=>{
174205
assert.ifError(err);
@@ -263,6 +294,12 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder);
263294
code: 'ERR_ACCESS_DENIED',
264295
permission: 'FileSystemWrite',
265296
});
297+
assert.throws(()=>{
298+
fs.open(blockedFileURL,fs.constants.O_RDWR|0x10000000,common.mustNotCall());
299+
},{
300+
code: 'ERR_ACCESS_DENIED',
301+
permission: 'FileSystemWrite',
302+
});
266303
assert.rejects(async()=>{
267304
awaitfs.promises.open(blockedFile,fs.constants.O_RDWR|fs.constants.O_NOFOLLOW);
268305
},{
@@ -290,6 +327,12 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder);
290327
code: 'ERR_ACCESS_DENIED',
291328
permission: 'FileSystemWrite',
292329
});
330+
assert.throws(()=>{
331+
fs.chmod(blockedFileURL,0o755,common.mustNotCall());
332+
},{
333+
code: 'ERR_ACCESS_DENIED',
334+
permission: 'FileSystemWrite',
335+
});
293336
assert.rejects(async()=>{
294337
awaitfs.promises.chmod(blockedFile,0o755);
295338
},{
@@ -324,6 +367,12 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder);
324367
code: 'ERR_ACCESS_DENIED',
325368
permission: 'FileSystemWrite',
326369
});
370+
assert.throws(()=>{
371+
fs.appendFile(blockedFileURL,'new data',common.mustNotCall());
372+
},{
373+
code: 'ERR_ACCESS_DENIED',
374+
permission: 'FileSystemWrite',
375+
});
327376
assert.rejects(async()=>{
328377
awaitfs.promises.appendFile(blockedFile,'new data');
329378
},{
@@ -340,6 +389,12 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder);
340389
code: 'ERR_ACCESS_DENIED',
341390
permission: 'FileSystemWrite',
342391
});
392+
assert.throws(()=>{
393+
fs.chown(blockedFileURL,1541,999,common.mustNotCall());
394+
},{
395+
code: 'ERR_ACCESS_DENIED',
396+
permission: 'FileSystemWrite',
397+
});
343398
assert.rejects(async()=>{
344399
awaitfs.promises.chown(blockedFile,1541,999);
345400
},{
@@ -356,6 +411,12 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder);
356411
code: 'ERR_ACCESS_DENIED',
357412
permission: 'FileSystemWrite',
358413
});
414+
assert.throws(()=>{
415+
fs.lchown(blockedFileURL,1541,999,common.mustNotCall());
416+
},{
417+
code: 'ERR_ACCESS_DENIED',
418+
permission: 'FileSystemWrite',
419+
});
359420
assert.rejects(async()=>{
360421
awaitfs.promises.lchown(blockedFile,1541,999);
361422
},{
@@ -372,6 +433,12 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder);
372433
code: 'ERR_ACCESS_DENIED',
373434
permission: 'FileSystemWrite',
374435
});
436+
assert.throws(()=>{
437+
fs.link(blockedFileURL,path.join(blockedFolder,'/linked'),common.mustNotCall());
438+
},{
439+
code: 'ERR_ACCESS_DENIED',
440+
permission: 'FileSystemWrite',
441+
});
375442
assert.rejects(async()=>{
376443
awaitfs.promises.link(blockedFile,path.join(blockedFolder,'/linked'));
377444
},{
@@ -391,4 +458,13 @@ const absoluteProtectedFolder = path.resolve(relativeProtectedFolder);
391458
permission: 'FileSystemWrite',
392459
resource: path.toNamespacedPath(blockedFile),
393460
});
461+
assert.throws(()=>{
462+
fs.unlink(blockedFileURL,(err)=>{
463+
assert.ifError(err);
464+
});
465+
},{
466+
code: 'ERR_ACCESS_DENIED',
467+
permission: 'FileSystemWrite',
468+
resource: path.toNamespacedPath(blockedFile),
469+
});
394470
}

0 commit comments

Comments
(0)