urlExtension.test.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { getUrlExtension } from '../src/utilities/urlExtension.js';
  2. describe( 'getUrlExtension', () => {
  3. it.each( [
  4. 'https://nasa.gov/foo/bar.baz/tileset.json',
  5. 'https://nasa.gov/foo/bar.baz/tileset.json?foo=bar',
  6. 'https://nasa.gov/foo/bar.baz/tileset.json?a.b=c.d',
  7. 'https://nasa.gov/foo/bar.baz/tileset.json?a.b=c.d#e.f',
  8. 'https://nasa.gov/tileset.json',
  9. 'https://nasa.gov//tileset.json',
  10. 'file:///Users/JaneScientist/code/3DTilesRendererJS/example/b3dmExample.json',
  11. 'foo.json',
  12. '/foo/bar.json',
  13. 'foo.json?a=b',
  14. '/foo.json',
  15. '/foo/bar.json',
  16. 'png.svg.json'
  17. ] )( 'parses extensions (%s)', url => {
  18. expect( getUrlExtension( url ) ).toBe( 'json' );
  19. } );
  20. it.each( [
  21. 'https://nasa.gov',
  22. 'https://nasa.gov/',
  23. 'https://nasa.gov/tileset',
  24. 'https://nasa.gov/foo/bar.baz/tileset?foo=bar',
  25. 'https://nasa.gov/foo/bar.baz/tileset?a.b=c.d',
  26. 'https://nasa.gov/tileset',
  27. 'https://nasa.gov/tileset.',
  28. 'Pleiades',
  29. '.',
  30. '..',
  31. '',
  32. undefined,
  33. ] )( 'returns null for values that are not URLs with extensions (%s)', url => {
  34. expect( getUrlExtension( url ) ).toBeNull();
  35. } );
  36. } );