2024-12-11 21:54:30 +08:00
|
|
|
import {pathEscapeSegments, isUrl, toOriginUrl} from './url.ts';
|
2023-03-14 17:51:20 +08:00
|
|
|
|
|
|
|
test('pathEscapeSegments', () => {
|
|
|
|
expect(pathEscapeSegments('a/b/c')).toEqual('a/b/c');
|
|
|
|
expect(pathEscapeSegments('a/b/ c')).toEqual('a/b/%20c');
|
|
|
|
});
|
2024-03-08 23:15:58 +08:00
|
|
|
|
|
|
|
test('isUrl', () => {
|
|
|
|
expect(isUrl('https://example.com')).toEqual(true);
|
|
|
|
expect(isUrl('https://example.com/')).toEqual(true);
|
|
|
|
expect(isUrl('https://example.com/index.html')).toEqual(true);
|
|
|
|
expect(isUrl('/index.html')).toEqual(false);
|
|
|
|
});
|
2024-12-11 21:54:30 +08:00
|
|
|
|
|
|
|
test('toOriginUrl', () => {
|
|
|
|
const oldLocation = String(window.location);
|
|
|
|
for (const origin of ['https://example.com', 'https://example.com:3000']) {
|
|
|
|
window.location.assign(`${origin}/`);
|
|
|
|
expect(toOriginUrl('/')).toEqual(`${origin}/`);
|
|
|
|
expect(toOriginUrl('/org/repo.git')).toEqual(`${origin}/org/repo.git`);
|
|
|
|
expect(toOriginUrl('https://another.com')).toEqual(`${origin}/`);
|
|
|
|
expect(toOriginUrl('https://another.com/')).toEqual(`${origin}/`);
|
|
|
|
expect(toOriginUrl('https://another.com/org/repo.git')).toEqual(`${origin}/org/repo.git`);
|
|
|
|
expect(toOriginUrl('https://another.com:4000')).toEqual(`${origin}/`);
|
|
|
|
expect(toOriginUrl('https://another.com:4000/')).toEqual(`${origin}/`);
|
|
|
|
expect(toOriginUrl('https://another.com:4000/org/repo.git')).toEqual(`${origin}/org/repo.git`);
|
|
|
|
}
|
|
|
|
window.location.assign(oldLocation);
|
|
|
|
});
|