Kaynağa Gözat

allow nodes that are not imported yet (fixes #1252)

master
Ulrich-Matthias Schäfer 8 ay önce
ebeveyn
işleme
9ed85cff5e
2 değiştirilmiş dosya ile 16 ekleme ve 2 silme
  1. 13
    0
      spec/spec/utils/adopter.js
  2. 3
    2
      src/utils/adopter.js

+ 13
- 0
spec/spec/utils/adopter.js Dosyayı Görüntüle

@@ -22,6 +22,7 @@ import {
import { mockAdopt, assignNewId, adopt } from '../../../src/utils/adopter.js'
import { buildFixtures } from '../../helpers.js'
import { globals, getWindow } from '../../../src/utils/window.js'
import { svg } from '../../../src/modules/core/namespaces.js'

const { any, createSpy, objectContaining } = jasmine

@@ -172,6 +173,18 @@ describe('adopter.js', () => {
// jasmine chucks on this when using the node directly
expect(node.outerHTML).toBe(div.outerHTML)
})

it('gracefully handles nodes that are not yet imported into the document', () => {
const otherDoc = globals.document.implementation.createDocument(
svg,
'svg'
)
const rect = otherDoc.createElementNS(svg, 'rect')

const node = nodeOrNew('rect', rect)

expect(node).toEqual(rect)
})
})

describe('register()/getClass()', () => {

+ 3
- 2
src/utils/adopter.js Dosyayı Görüntüle

@@ -43,8 +43,9 @@ export function makeInstance(element, isHTML = false) {

export function nodeOrNew(name, node) {
return node &&
node.ownerDocument &&
node instanceof node.ownerDocument.defaultView.Node
(node instanceof globals.window.Node ||
(node.ownerDocument &&
node instanceof node.ownerDocument.defaultView.Node))
? node
: create(name)
}

Loading…
İptal
Kaydet