]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/umask/test/simple.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / node_modules / umask / test / simple.js
1 'use strict';
2
3 var umask = require('..');
4
5 var Code = require('code');
6 var Lab = require('lab');
7 var lab = Lab.script();
8 exports.lab = lab;
9
10 var describe = lab.describe;
11 var it = lab.it;
12 var expect = Code.expect;
13
14 describe('validates umask', function () {
15     // signature of validator: validate(obj, key, val)
16     // store valid value in obj[key]
17     // return false if invalid
18
19     it('accepts numbers', function (done) {
20         var o = {},
21             result = false;
22
23         result = umask.validate(o, 'umask', 0);
24         expect(result).to.equal(true);
25         expect(o.umask).to.equal(0);
26
27         result = umask.validate(o, 'umask', 511);
28         expect(result).to.equal(true);
29         expect(o.umask).to.equal(511);
30         done();
31     });
32
33     it('accepts strings', function (done) {
34         var o = {},
35             result;
36
37         result = umask.validate(o, 'umask', "0");
38         expect(result).to.equal(true);
39         expect(o.umask).to.equal(0);
40
41         result = umask.validate(o, 'umask', "0777");
42         expect(result).to.equal(true);
43         expect(o.umask).to.equal(511);
44
45         done();
46     });
47
48     it('rejects other types', function (done) {
49         expect(umask.validate(undefined, undefined, false)).to.equal(false);
50         expect(umask.validate(undefined, undefined, {})).to.equal(false);
51
52         done();
53     });
54
55     it('rejects non-octalish strings', function (done) {
56         expect(umask.validate(undefined, undefined, "1")).to.equal(false);
57
58         done();
59     });
60
61     it('rejects NaN strings', function (done) {
62         expect(umask.validate(undefined, undefined, NaN)).to.equal(false);
63
64         done();
65     });
66 });
67
68 describe('umask to string', function () {
69     it("converts umask to string", function (done) {
70         expect(umask.toString(0)).to.equal("0000");
71         expect(umask.toString(1)).to.equal("0001");
72         expect(umask.toString(7)).to.equal("0007");
73         expect(umask.toString(8)).to.equal("0010");
74         expect(umask.toString(511)).to.equal("0777");
75         expect(umask.toString(18)).to.equal("0022");
76         expect(umask.toString(16)).to.equal("0020");
77         done();
78     });
79 });
80
81 describe('umask from string', function () {
82     it('converts valid values', function (done) {
83         expect(umask.fromString("0000")).to.equal(0);
84         expect(umask.fromString("0")).to.equal(0);
85         expect(umask.fromString("0777")).to.equal(511);
86         expect(umask.fromString("0024")).to.equal(20);
87
88         expect(umask.fromString(0)).to.equal(0);
89         expect(umask.fromString(20)).to.equal(20);
90         expect(umask.fromString(21)).to.equal(21);
91         expect(umask.fromString(511)).to.equal(511);
92
93         done();
94     });
95
96     it('converts valid values', function (done) {
97         expect(umask.fromString("0000")).to.equal(0);
98         expect(umask.fromString("0")).to.equal(0);
99         expect(umask.fromString("010")).to.equal(8);
100         expect(umask.fromString("0777")).to.equal(511);
101         expect(umask.fromString("0024")).to.equal(20);
102
103         expect(umask.fromString("8")).to.equal(8);
104         expect(umask.fromString("9")).to.equal(9);
105         expect(umask.fromString("18")).to.equal(18);
106         expect(umask.fromString("16")).to.equal(16);
107
108         expect(umask.fromString(0)).to.equal(0);
109         expect(umask.fromString(20)).to.equal(20);
110         expect(umask.fromString(21)).to.equal(21);
111         expect(umask.fromString(511)).to.equal(511);
112
113         expect(umask.fromString(0.1)).to.equal(0);
114         expect(umask.fromString(511.1)).to.equal(511);
115
116         done();
117     });
118
119     it('errors on empty string', function (done) {
120         umask.fromString("", function (err, val) {
121             expect(err.message).to.equal('Expected octal string, got "", defaulting to "0022"');
122             expect(val).to.equal(18);
123             done();
124         });
125     });
126
127     it('errors on invalid octal string', function (done) {
128         umask.fromString("099", function (err, val) {
129             expect(err.message).to.equal('Expected octal string, got "099", defaulting to "0022"');
130             expect(val).to.equal(18);
131             done();
132         });
133     });
134
135     it('errors when non-string, non-number (boolean)', function (done) {
136         umask.fromString(false, function (err, val) {
137             expect(err.message).to.equal('Expected number or octal string, got false, defaulting to "0022"');
138             expect(val).to.equal(18);
139             done();
140         });
141     });
142
143     it('errors when non-string, non-number (object)', function (done) {
144         umask.fromString({}, function (err, val) {
145             expect(err.message).to.equal('Expected number or octal string, got {}, defaulting to "0022"');
146             expect(val).to.equal(18);
147             done();
148         });
149     });
150
151     it('errors when out of range (<0)', function (done) {
152         umask.fromString(-1, function (err, val) {
153             expect(err.message).to.equal('Must be in range 0..511 (0000..0777), got -1');
154             expect(val).to.equal(18);
155             done();
156         });
157     });
158
159     it('errors when out of range (>511)', function (done) {
160         umask.fromString(512, function (err, val) {
161             expect(err.message).to.equal('Must be in range 0..511 (0000..0777), got 512');
162             expect(val).to.equal(18);
163             done();
164         });
165     });
166 });