@@ -6,9 +6,10 @@ import {
6
6
ElementTypes ,
7
7
InterpolationNode ,
8
8
AttributeNode ,
9
- ConstantTypes
9
+ ConstantTypes ,
10
+ Namespaces
10
11
} from '@vue/compiler-core'
11
- import { parserOptions , DOMNamespaces } from '../src/parserOptions'
12
+ import { parserOptions } from '../src/parserOptions'
12
13
13
14
describe ( 'DOM parser' , ( ) => {
14
15
describe ( 'Text' , ( ) => {
@@ -264,7 +265,7 @@ describe('DOM parser', () => {
264
265
265
266
expect ( element ) . toStrictEqual ( {
266
267
type : NodeTypes . ELEMENT ,
267
- ns : DOMNamespaces . HTML ,
268
+ ns : Namespaces . HTML ,
268
269
tag : 'img' ,
269
270
tagType : ElementTypes . ELEMENT ,
270
271
props : [ ] ,
@@ -324,21 +325,21 @@ describe('DOM parser', () => {
324
325
const ast = parse ( '<html>test</html>' , parserOptions )
325
326
const element = ast . children [ 0 ] as ElementNode
326
327
327
- expect ( element . ns ) . toBe ( DOMNamespaces . HTML )
328
+ expect ( element . ns ) . toBe ( Namespaces . HTML )
328
329
} )
329
330
330
331
test ( 'SVG namespace' , ( ) => {
331
332
const ast = parse ( '<svg>test</svg>' , parserOptions )
332
333
const element = ast . children [ 0 ] as ElementNode
333
334
334
- expect ( element . ns ) . toBe ( DOMNamespaces . SVG )
335
+ expect ( element . ns ) . toBe ( Namespaces . SVG )
335
336
} )
336
337
337
338
test ( 'MATH_ML namespace' , ( ) => {
338
339
const ast = parse ( '<math>test</math>' , parserOptions )
339
340
const element = ast . children [ 0 ] as ElementNode
340
341
341
- expect ( element . ns ) . toBe ( DOMNamespaces . MATH_ML )
342
+ expect ( element . ns ) . toBe ( Namespaces . MATH_ML )
342
343
} )
343
344
344
345
test ( 'SVG in MATH_ML namespace' , ( ) => {
@@ -350,8 +351,8 @@ describe('DOM parser', () => {
350
351
const elementAnnotation = elementMath . children [ 0 ] as ElementNode
351
352
const elementSvg = elementAnnotation . children [ 0 ] as ElementNode
352
353
353
- expect ( elementMath . ns ) . toBe ( DOMNamespaces . MATH_ML )
354
- expect ( elementSvg . ns ) . toBe ( DOMNamespaces . SVG )
354
+ expect ( elementMath . ns ) . toBe ( Namespaces . MATH_ML )
355
+ expect ( elementSvg . ns ) . toBe ( Namespaces . SVG )
355
356
} )
356
357
357
358
test ( 'html text/html in MATH_ML namespace' , ( ) => {
@@ -364,8 +365,8 @@ describe('DOM parser', () => {
364
365
const elementAnnotation = elementMath . children [ 0 ] as ElementNode
365
366
const element = elementAnnotation . children [ 0 ] as ElementNode
366
367
367
- expect ( elementMath . ns ) . toBe ( DOMNamespaces . MATH_ML )
368
- expect ( element . ns ) . toBe ( DOMNamespaces . HTML )
368
+ expect ( elementMath . ns ) . toBe ( Namespaces . MATH_ML )
369
+ expect ( element . ns ) . toBe ( Namespaces . HTML )
369
370
} )
370
371
371
372
test ( 'html application/xhtml+xml in MATH_ML namespace' , ( ) => {
@@ -377,8 +378,8 @@ describe('DOM parser', () => {
377
378
const elementAnnotation = elementMath . children [ 0 ] as ElementNode
378
379
const element = elementAnnotation . children [ 0 ] as ElementNode
379
380
380
- expect ( elementMath . ns ) . toBe ( DOMNamespaces . MATH_ML )
381
- expect ( element . ns ) . toBe ( DOMNamespaces . HTML )
381
+ expect ( elementMath . ns ) . toBe ( Namespaces . MATH_ML )
382
+ expect ( element . ns ) . toBe ( Namespaces . HTML )
382
383
} )
383
384
384
385
test ( 'mtext malignmark in MATH_ML namespace' , ( ) => {
@@ -390,8 +391,8 @@ describe('DOM parser', () => {
390
391
const elementText = elementMath . children [ 0 ] as ElementNode
391
392
const element = elementText . children [ 0 ] as ElementNode
392
393
393
- expect ( elementMath . ns ) . toBe ( DOMNamespaces . MATH_ML )
394
- expect ( element . ns ) . toBe ( DOMNamespaces . MATH_ML )
394
+ expect ( elementMath . ns ) . toBe ( Namespaces . MATH_ML )
395
+ expect ( element . ns ) . toBe ( Namespaces . MATH_ML )
395
396
} )
396
397
397
398
test ( 'mtext and not malignmark tag in MATH_ML namespace' , ( ) => {
@@ -400,8 +401,8 @@ describe('DOM parser', () => {
400
401
const elementText = elementMath . children [ 0 ] as ElementNode
401
402
const element = elementText . children [ 0 ] as ElementNode
402
403
403
- expect ( elementMath . ns ) . toBe ( DOMNamespaces . MATH_ML )
404
- expect ( element . ns ) . toBe ( DOMNamespaces . HTML )
404
+ expect ( elementMath . ns ) . toBe ( Namespaces . MATH_ML )
405
+ expect ( element . ns ) . toBe ( Namespaces . HTML )
405
406
} )
406
407
407
408
test ( 'foreignObject tag in SVG namespace' , ( ) => {
@@ -413,8 +414,8 @@ describe('DOM parser', () => {
413
414
const elementForeignObject = elementSvg . children [ 0 ] as ElementNode
414
415
const element = elementForeignObject . children [ 0 ] as ElementNode
415
416
416
- expect ( elementSvg . ns ) . toBe ( DOMNamespaces . SVG )
417
- expect ( element . ns ) . toBe ( DOMNamespaces . HTML )
417
+ expect ( elementSvg . ns ) . toBe ( Namespaces . SVG )
418
+ expect ( element . ns ) . toBe ( Namespaces . HTML )
418
419
} )
419
420
420
421
test ( 'desc tag in SVG namespace' , ( ) => {
@@ -423,8 +424,8 @@ describe('DOM parser', () => {
423
424
const elementDesc = elementSvg . children [ 0 ] as ElementNode
424
425
const element = elementDesc . children [ 0 ] as ElementNode
425
426
426
- expect ( elementSvg . ns ) . toBe ( DOMNamespaces . SVG )
427
- expect ( element . ns ) . toBe ( DOMNamespaces . HTML )
427
+ expect ( elementSvg . ns ) . toBe ( Namespaces . SVG )
428
+ expect ( element . ns ) . toBe ( Namespaces . HTML )
428
429
} )
429
430
430
431
test ( 'title tag in SVG namespace' , ( ) => {
@@ -433,26 +434,38 @@ describe('DOM parser', () => {
433
434
const elementTitle = elementSvg . children [ 0 ] as ElementNode
434
435
const element = elementTitle . children [ 0 ] as ElementNode
435
436
436
- expect ( elementSvg . ns ) . toBe ( DOMNamespaces . SVG )
437
- expect ( element . ns ) . toBe ( DOMNamespaces . HTML )
437
+ expect ( elementSvg . ns ) . toBe ( Namespaces . SVG )
438
+ expect ( element . ns ) . toBe ( Namespaces . HTML )
438
439
} )
439
440
440
441
test ( 'SVG in HTML namespace' , ( ) => {
441
442
const ast = parse ( '<html><svg></svg></html>' , parserOptions )
442
443
const elementHtml = ast . children [ 0 ] as ElementNode
443
444
const element = elementHtml . children [ 0 ] as ElementNode
444
445
445
- expect ( elementHtml . ns ) . toBe ( DOMNamespaces . HTML )
446
- expect ( element . ns ) . toBe ( DOMNamespaces . SVG )
446
+ expect ( elementHtml . ns ) . toBe ( Namespaces . HTML )
447
+ expect ( element . ns ) . toBe ( Namespaces . SVG )
447
448
} )
448
449
449
450
test ( 'MATH in HTML namespace' , ( ) => {
450
451
const ast = parse ( '<html><math></math></html>' , parserOptions )
451
452
const elementHtml = ast . children [ 0 ] as ElementNode
452
453
const element = elementHtml . children [ 0 ] as ElementNode
453
454
454
- expect ( elementHtml . ns ) . toBe ( DOMNamespaces . HTML )
455
- expect ( element . ns ) . toBe ( DOMNamespaces . MATH_ML )
455
+ expect ( elementHtml . ns ) . toBe ( Namespaces . HTML )
456
+ expect ( element . ns ) . toBe ( Namespaces . MATH_ML )
457
+ } )
458
+
459
+ test ( 'root ns' , ( ) => {
460
+ const ast = parse ( '<foreignObject><test/></foreignObject>' , {
461
+ ...parserOptions ,
462
+ ns : Namespaces . SVG
463
+ } )
464
+ const elementForieng = ast . children [ 0 ] as ElementNode
465
+ const element = elementForieng . children [ 0 ] as ElementNode
466
+
467
+ expect ( elementForieng . ns ) . toBe ( Namespaces . SVG )
468
+ expect ( element . ns ) . toBe ( Namespaces . HTML )
456
469
} )
457
470
} )
458
471
} )
0 commit comments