@ -1,4 +1,4 @@
import { a ssert, describe , it } from 'vitest' ;
import { a fterAll, a ssert, beforeAll , describe , it } from 'vitest' ;
import '../../src/compiler/compile/nodes/Slot.js' ; // this needs to come first to force ESM to load things in a specific order to prevent circular dependency errors
import '../../src/compiler/compile/nodes/Slot.js' ; // this needs to come first to force ESM to load things in a specific order to prevent circular dependency errors
import {
import {
CONTENTEDITABLE _BINDINGS ,
CONTENTEDITABLE _BINDINGS ,
@ -9,7 +9,7 @@ import {
} from '../../src/compiler/compile/utils/contenteditable.js' ;
} from '../../src/compiler/compile/utils/contenteditable.js' ;
import get _name _from _filename from '../../src/compiler/compile/utils/get_name_from_filename.js' ;
import get _name _from _filename from '../../src/compiler/compile/utils/get_name_from_filename.js' ;
import { trim _end , trim _start } from '../../src/compiler/utils/trim.js' ;
import { trim _end , trim _start } from '../../src/compiler/utils/trim.js' ;
import { split _css _unit } from '../../src/runtime/internal/utils.js' ;
import { split _css _unit , srcset _url _equal } from '../../src/runtime/internal/utils.js' ;
describe ( 'utils' , ( ) => {
describe ( 'utils' , ( ) => {
describe ( 'trim' , ( ) => {
describe ( 'trim' , ( ) => {
@ -116,4 +116,52 @@ describe('utils', () => {
} ) ;
} ) ;
} ) ;
} ) ;
} ) ;
} ) ;
describe ( 'srcset_url_equal' , ( ) => {
function create _element ( srcset ) {
return /** @type {HTMLImageElement} */ ( {
srcset
} ) ;
}
let old _document ;
beforeAll ( ( ) => {
const host = 'https://svelte.dev' ;
let _href = '' ;
old _document = global . document ;
global . document = /** @type {any} */ ( {
createElement : ( ) =>
/** @type {any} */ ( {
get href ( ) {
return _href ;
} ,
set href ( value ) {
_href = host + value ;
}
} )
} ) ;
} ) ;
afterAll ( ( ) => {
global . document = old _document ;
} ) ;
it ( 'should return true if urls are equal' , ( ) => {
assert . ok ( srcset _url _equal ( create _element ( 'a' ) , 'a' ) ) ;
assert . ok ( srcset _url _equal ( create _element ( 'a 1x' ) , 'a 1x' ) ) ;
assert . ok ( srcset _url _equal ( create _element ( 'a 1x, b 2x' ) , 'a 1x, b 2x' ) ) ;
assert . ok ( srcset _url _equal ( create _element ( 'a 1x, b 2x' ) , 'a 1x, b 2x' ) ) ;
} ) ;
it ( 'should return true if urls are equal (abs/rel URLs)' , ( ) => {
assert . ok ( srcset _url _equal ( create _element ( 'https://svelte.dev/a' ) , '/a' ) ) ;
assert . ok ( srcset _url _equal ( create _element ( '/a' ) , 'https://svelte.dev/a' ) ) ;
} ) ;
it ( 'should return false if urls are different' , ( ) => {
assert . notOk ( srcset _url _equal ( create _element ( 'a 1x' ) , 'b 1x' ) ) ;
assert . notOk ( srcset _url _equal ( create _element ( 'a 2x' ) , 'a 1x' ) ) ;
} ) ;
} ) ;
} ) ;
} ) ;