@@ -646,6 +646,118 @@ suite('MutationObserver', function() {
646646 } ) ;
647647 } ) ;
648648
649+ test ( 'insertAdjacentHTML beforebegin' , function ( ) {
650+ var a = document . createElement ( 'a' ) ;
651+ a . innerHTML = '<b></b><c></c>' ;
652+ var b = a . firstChild ;
653+ var c = a . lastChild ;
654+
655+ var observer = new MutationObserver ( function ( ) { } ) ;
656+ observer . observe ( a , {
657+ childList : true
658+ } ) ;
659+
660+ c . insertAdjacentHTML ( 'beforebegin' , '<d></d><e></e>' ) ;
661+
662+ assert . equal ( a . innerHTML , '<b></b><d></d><e></e><c></c>' ) ;
663+ var d = b . nextSibling ;
664+ var e = d . nextSibling ;
665+
666+ var records = observer . takeRecords ( ) ;
667+ assert . equal ( records . length , 1 ) ;
668+ expectMutationRecord ( records [ 0 ] , {
669+ type : 'childList' ,
670+ target : a ,
671+ addedNodes : [ d , e ] ,
672+ previousSibling : b ,
673+ nextSibling : c
674+ } ) ;
675+ } ) ;
676+
677+ test ( 'insertAdjacentHTML afterbegin' , function ( ) {
678+ var a = document . createElement ( 'a' ) ;
679+ a . innerHTML = '<b></b><c></c>' ;
680+ var b = a . firstChild ;
681+ var c = a . lastChild ;
682+
683+ var observer = new MutationObserver ( function ( ) { } ) ;
684+ observer . observe ( a , {
685+ childList : true
686+ } ) ;
687+
688+ a . insertAdjacentHTML ( 'afterbegin' , '<d></d><e></e>' ) ;
689+
690+ assert . equal ( a . innerHTML , '<d></d><e></e><b></b><c></c>' ) ;
691+ var d = a . firstChild ;
692+ var e = d . nextSibling ;
693+
694+ var records = observer . takeRecords ( ) ;
695+ assert . equal ( records . length , 1 ) ;
696+ expectMutationRecord ( records [ 0 ] , {
697+ type : 'childList' ,
698+ target : a ,
699+ addedNodes : [ d , e ] ,
700+ previousSibling : null ,
701+ nextSibling : b
702+ } ) ;
703+ } ) ;
704+
705+ test ( 'insertAdjacentHTML beforeend' , function ( ) {
706+ var a = document . createElement ( 'a' ) ;
707+ a . innerHTML = '<b></b><c></c>' ;
708+ var b = a . firstChild ;
709+ var c = a . lastChild ;
710+
711+ var observer = new MutationObserver ( function ( ) { } ) ;
712+ observer . observe ( a , {
713+ childList : true
714+ } ) ;
715+
716+ a . insertAdjacentHTML ( 'beforeend' , '<d></d><e></e>' ) ;
717+
718+ assert . equal ( a . innerHTML , '<b></b><c></c><d></d><e></e>' ) ;
719+ var d = c . nextSibling ;
720+ var e = d . nextSibling ;
721+
722+ var records = observer . takeRecords ( ) ;
723+ assert . equal ( records . length , 1 ) ;
724+ expectMutationRecord ( records [ 0 ] , {
725+ type : 'childList' ,
726+ target : a ,
727+ addedNodes : [ d , e ] ,
728+ previousSibling : c ,
729+ nextSibling : null
730+ } ) ;
731+ } ) ;
732+
733+ test ( 'insertAdjacentHTML afterend' , function ( ) {
734+ var a = document . createElement ( 'a' ) ;
735+ a . innerHTML = '<b></b><c></c>' ;
736+ var b = a . firstChild ;
737+ var c = a . lastChild ;
738+
739+ var observer = new MutationObserver ( function ( ) { } ) ;
740+ observer . observe ( a , {
741+ childList : true
742+ } ) ;
743+
744+ b . insertAdjacentHTML ( 'afterend' , '<d></d><e></e>' ) ;
745+
746+ assert . equal ( a . innerHTML , '<b></b><d></d><e></e><c></c>' ) ;
747+ var d = b . nextSibling ;
748+ var e = d . nextSibling ;
749+
750+ var records = observer . takeRecords ( ) ;
751+ assert . equal ( records . length , 1 ) ;
752+ expectMutationRecord ( records [ 0 ] , {
753+ type : 'childList' ,
754+ target : a ,
755+ addedNodes : [ d , e ] ,
756+ previousSibling : b ,
757+ nextSibling : c
758+ } ) ;
759+ } ) ;
760+
649761 } ) ;
650762
651763} ) ;
0 commit comments