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.
39 lines
931 B
39 lines
931 B
'use strict' |
|
|
|
const test = require('tape') |
|
const fastURI = require('..') |
|
|
|
test('parse preserves reserved path escapes as data', (t) => { |
|
const components = fastURI.parse('http://example.com/a%2Fb/public/%2e%2e/admin') |
|
|
|
t.equal(components.path, '/a%2Fb/public/%2E%2E/admin') |
|
t.end() |
|
}) |
|
|
|
test('normalize preserves percent-encoded path separators and dot segments', (t) => { |
|
t.equal( |
|
fastURI.normalize('http://example.com/public/%2e%2e/admin'), |
|
'http://example.com/public/%2E%2E/admin' |
|
) |
|
|
|
t.equal( |
|
fastURI.normalize('http://example.com/a%2Fb'), |
|
'http://example.com/a%2Fb' |
|
) |
|
|
|
t.end() |
|
}) |
|
|
|
test('equal does not treat reserved path escapes as live path syntax', (t) => { |
|
t.equal( |
|
fastURI.equal('http://example.com/public/%2e%2e/admin', 'http://example.com/admin', {}), |
|
false |
|
) |
|
|
|
t.equal( |
|
fastURI.equal('http://example.com/a%2Fb', 'http://example.com/a/b', {}), |
|
false |
|
) |
|
|
|
t.end() |
|
})
|
|
|