You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.3 KiB
80 lines
2.3 KiB
/** |
|
* Copyright (c) 2013 Yahoo! Inc. All rights reserved. |
|
* |
|
* Copyrights licensed under the MIT License. See the accompanying LICENSE file |
|
* for terms. |
|
*/ |
|
|
|
/*global describe, it, beforeEach, before, after */ |
|
|
|
var expect = require('chai').expect; |
|
var Path = require('../../lib/Path.js'); |
|
|
|
|
|
describe('Path', function () { |
|
describe('validate', function () { |
|
it('should reject null, undefined and empty string', function () { |
|
expect(function () { |
|
Path.validate(); |
|
}).to.throw('non-empty string'); |
|
expect(function () { |
|
Path.validate(null); |
|
}).to.throw('non-empty string'); |
|
expect(function () { |
|
Path.validate(''); |
|
}).to.throw('non-empty string'); |
|
}); |
|
|
|
it('should reject path does not start with /.', function () { |
|
expect(function () { |
|
Path.validate('abc'); |
|
}).to.throw('start with /'); |
|
}); |
|
|
|
it('should reject path ends with /.', function () { |
|
expect(function () { |
|
Path.validate('/abc/'); |
|
}).to.throw('end with /'); |
|
}); |
|
|
|
it('should reject path contains empty node.', function () { |
|
expect(function () { |
|
Path.validate('//a'); |
|
}).to.throw('empty'); |
|
}); |
|
|
|
it('should reject relative path.', function () { |
|
expect(function () { |
|
Path.validate('/.'); |
|
}).to.throw('relative path'); |
|
|
|
expect(function () { |
|
Path.validate('/./a'); |
|
}).to.throw('relative path'); |
|
|
|
expect(function () { |
|
Path.validate('/..'); |
|
}).to.throw('relative path'); |
|
|
|
expect(function () { |
|
Path.validate('/../a'); |
|
}).to.throw('relative path'); |
|
}); |
|
|
|
it('should accept dot in the the path name', function () { |
|
expect(function () { |
|
Path.validate('/a.b'); |
|
}).to.not.throw('relative path'); |
|
|
|
expect(function () { |
|
Path.validate('/a..b'); |
|
}).to.not.throw('relative path'); |
|
}); |
|
|
|
it('should accept root path', function () { |
|
expect(function () { |
|
Path.validate('/'); |
|
}).to.not.throw('relative path'); |
|
}); |
|
}); |
|
});
|
|
|