Smalltalk createPackage: 'DOMite-Tests'! TestCase subclass: #DOMiteTest instanceVariableNames: 'fixtureDiv' package: 'DOMite-Tests'! !DOMiteTest methodsFor: 'fixture'! setUp fixtureDiv := document createElement: 'div'. document body appendChild: fixtureDiv. fixtureDiv setAttribute: 'id' to: 'fixture'. fixtureDiv innerHTML: 'sentinel' ! tearDown | lastChild | lastChild := document body lastChild. self assert: lastChild equals: fixtureDiv. document body removeChild: lastChild ! ! !DOMiteTest methodsFor: 'testing'! testDefaultInsertElement Domite new << (Domite newElement: 'p'). self assert: (document body innerHTML endsWith: '

'). document body removeChild: document body lastChild ! testDefaultInsertString Domite new << 'a foo in a bar'. self assert: (document body innerHTML endsWith: 'a foo in a bar'). document body removeChild: document body lastChild ! testDefaultInsertStringInFragment Domite new << (Domite newStream << 'a foo in a bar'). self assert: (document body innerHTML endsWith: 'a foo in a bar'). document body removeChild: document body lastChild ! testFromBadSelectorIsInvalid | d | d := Domite fromSelector: '#goo'. self assert: d isInvalid. d := Domite fromSelector: 'body'. self deny: d isInvalid. d := Domite fromSelector: 'html body div#fixture'. self deny: d isInvalid ! testInsertElement | d | d := Domite fromSelector: 'html body div#fixture'. d << (Domite newElement: 'p'). self assert: (document body innerHTML endsWith: '>sentinel

') ! testInsertElementTwoLevel | d p s | d := Domite fromElement: fixtureDiv. p := Domite newElement: 'p'. d << p. s := Domite newElement: 'span'. p << s. s << 'dom-mite'. self assert: (document body innerHTML endsWith: '>sentinel

dom-mite

') ! testInsertElementTwoLevelViaFragments | d p s | d := Domite fromSelector: '#fixture'. p := Domite newElement: 'p'. d << (Domite newStream << p). s := Domite newElement: 'span'. p << (Domite newStream << s). s << (Domite newStream << 'dom-mite'). self assert: (document body innerHTML endsWith: '>sentinel

dom-mite

') ! testInsertElementTwoLevelViaTwoLevelFragments | d p s | d := Domite fromElement: fixtureDiv. p := Domite newElement: 'p'. d << (Domite newStream << (Domite newStream << p)). s := Domite newElement: 'span'. p << (Domite newStream << (Domite newStream << s)). s << (Domite newStream << (Domite newStream << 'dom-mite')). self assert: (document body innerHTML endsWith: '>sentinel

dom-mite

') ! testInsertString | d | d := Domite fromElement: fixtureDiv. d << 'a foo in a bar'. self assert: (document body innerHTML endsWith: '>sentinela foo in a bar') ! testInsertStringInFragment | d | d := Domite fromSelector: '#fixture'. d << (Domite newStream << 'a foo in a bar'). self assert: (document body innerHTML endsWith: '>sentinela foo in a bar') ! testMultipleInserts | d p s | d := Domite fromElement: fixtureDiv. p := Domite newElement: 'p'. d << p. s := Domite newElement: 'span'. d << s. d << 'dom-mite'. self assert: (document body innerHTML endsWith: '>sentinel

dom-mite') ! testMultipleInsertsWithClear | d p s | d := Domite fromSelector: '#fixture'. p := Domite newElement: 'p'. d << p. s := Domite newElement: 'span'. d << s. d resetContents. d << 'dom-mite'. d resetContents. d resetContents. self assert: (document body innerHTML endsWith: '>') ! testMultipleInsertsWithClearInBetween | d p s | d := Domite fromElement: fixtureDiv. p := Domite newElement: 'p'. d << p. s := Domite newElement: 'span'. d << s. d resetContents. d << 'dom-mite'. self assert: (document body innerHTML endsWith: '>dom-mite') ! !