• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2const common = require('../common');
3const fixtures = require('../common/fixtures');
4const assert = require('assert');
5const fs = require('fs');
6
7const string_dir = fs.realpathSync(fixtures.fixturesDir);
8const buffer_dir = Buffer.from(string_dir);
9
10const encodings = ['ascii', 'utf8', 'utf16le', 'ucs2',
11                   'base64', 'binary', 'hex'];
12const expected = {};
13encodings.forEach((encoding) => {
14  expected[encoding] = buffer_dir.toString(encoding);
15});
16
17
18// test sync version
19let encoding;
20for (encoding in expected) {
21  const expected_value = expected[encoding];
22  let result;
23
24  result = fs.realpathSync(string_dir, { encoding });
25  assert.strictEqual(result, expected_value);
26
27  result = fs.realpathSync(string_dir, encoding);
28  assert.strictEqual(result, expected_value);
29
30  result = fs.realpathSync(buffer_dir, { encoding });
31  assert.strictEqual(result, expected_value);
32
33  result = fs.realpathSync(buffer_dir, encoding);
34  assert.strictEqual(result, expected_value);
35}
36
37let buffer_result;
38buffer_result = fs.realpathSync(string_dir, { encoding: 'buffer' });
39assert.deepStrictEqual(buffer_result, buffer_dir);
40
41buffer_result = fs.realpathSync(string_dir, 'buffer');
42assert.deepStrictEqual(buffer_result, buffer_dir);
43
44buffer_result = fs.realpathSync(buffer_dir, { encoding: 'buffer' });
45assert.deepStrictEqual(buffer_result, buffer_dir);
46
47buffer_result = fs.realpathSync(buffer_dir, 'buffer');
48assert.deepStrictEqual(buffer_result, buffer_dir);
49
50// test async version
51for (encoding in expected) {
52  const expected_value = expected[encoding];
53
54  fs.realpath(
55    string_dir,
56    { encoding },
57    common.mustCall((err, res) => {
58      assert.ifError(err);
59      assert.strictEqual(res, expected_value);
60    })
61  );
62  fs.realpath(string_dir, encoding, common.mustCall((err, res) => {
63    assert.ifError(err);
64    assert.strictEqual(res, expected_value);
65  }));
66  fs.realpath(
67    buffer_dir,
68    { encoding },
69    common.mustCall((err, res) => {
70      assert.ifError(err);
71      assert.strictEqual(res, expected_value);
72    })
73  );
74  fs.realpath(buffer_dir, encoding, common.mustCall((err, res) => {
75    assert.ifError(err);
76    assert.strictEqual(res, expected_value);
77  }));
78}
79
80fs.realpath(string_dir, { encoding: 'buffer' }, common.mustCall((err, res) => {
81  assert.ifError(err);
82  assert.deepStrictEqual(res, buffer_dir);
83}));
84
85fs.realpath(string_dir, 'buffer', common.mustCall((err, res) => {
86  assert.ifError(err);
87  assert.deepStrictEqual(res, buffer_dir);
88}));
89
90fs.realpath(buffer_dir, { encoding: 'buffer' }, common.mustCall((err, res) => {
91  assert.ifError(err);
92  assert.deepStrictEqual(res, buffer_dir);
93}));
94
95fs.realpath(buffer_dir, 'buffer', common.mustCall((err, res) => {
96  assert.ifError(err);
97  assert.deepStrictEqual(res, buffer_dir);
98}));
99