DOMite-Tests.st 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. Smalltalk createPackage: 'DOMite-Tests'!
  2. TestCase subclass: #DOMiteTest
  3. instanceVariableNames: 'fixtureDiv'
  4. package: 'DOMite-Tests'!
  5. !DOMiteTest methodsFor: 'fixture'!
  6. setUp
  7. fixtureDiv := document createElement: 'div'.
  8. document body appendChild: fixtureDiv.
  9. fixtureDiv setAttribute: 'id' to: 'fixture'
  10. !
  11. tearDown
  12. | lastChild |
  13. lastChild := document body lastChild.
  14. self assert: lastChild equals: fixtureDiv.
  15. document body removeChild: lastChild
  16. ! !
  17. !DOMiteTest methodsFor: 'testing'!
  18. testDefaultInsertElement
  19. Domite new insertDomite: (Domite newElement: 'p').
  20. self assert: (document body innerHTML endsWith: '<p></p>').
  21. document body removeChild: document body lastChild
  22. !
  23. testDefaultInsertString
  24. Domite new insertString: 'a foo in a bar'.
  25. self assert: (document body innerHTML endsWith: 'a foo in a bar').
  26. document body removeChild: document body lastChild
  27. !
  28. testDefaultInsertStringInFragment
  29. Domite new insertDomite: (Domite open insertString: 'a foo in a bar'; yourself).
  30. self assert: (document body innerHTML endsWith: 'a foo in a bar').
  31. document body removeChild: document body lastChild
  32. !
  33. testInsertElement
  34. | d |
  35. d := Domite fromElement: fixtureDiv.
  36. d insertDomite: (Domite newElement: 'p').
  37. self assert: (document body innerHTML endsWith: '><p></p></div>')
  38. !
  39. testInsertElementTwoLevel
  40. | d p s |
  41. d := Domite fromElement: fixtureDiv.
  42. p := Domite newElement: 'p'.
  43. d insertDomite: p.
  44. s := Domite newElement: 'span'.
  45. p insertDomite: s.
  46. s insertString: 'dom-mite'.
  47. self assert: (document body innerHTML endsWith: '><p><span>dom-mite</span></p></div>')
  48. !
  49. testInsertElementTwoLevelViaFragments
  50. | d p s |
  51. d := Domite fromElement: fixtureDiv.
  52. p := Domite newElement: 'p'.
  53. d insertDomite: (Domite open insertDomite: p; yourself).
  54. s := Domite newElement: 'span'.
  55. p insertDomite: (Domite open insertDomite: s; yourself).
  56. s insertDomite: (Domite open insertString: 'dom-mite'; yourself).
  57. self assert: (document body innerHTML endsWith: '><p><span>dom-mite</span></p></div>')
  58. !
  59. testInsertElementTwoLevelViaTwoLevelFragments
  60. | d p s |
  61. d := Domite fromElement: fixtureDiv.
  62. p := Domite newElement: 'p'.
  63. d insertDomite: (Domite open insertDomite: (Domite open insertDomite: p; yourself); yourself).
  64. s := Domite newElement: 'span'.
  65. p insertDomite: (Domite open insertDomite: (Domite open insertDomite: s; yourself); yourself).
  66. s insertDomite: (Domite open insertDomite: (Domite open insertString: 'dom-mite'; yourself); yourself).
  67. self assert: (document body innerHTML endsWith: '><p><span>dom-mite</span></p></div>')
  68. !
  69. testInsertString
  70. | d |
  71. d := Domite fromElement: fixtureDiv.
  72. d insertString: 'a foo in a bar'.
  73. self assert: (document body innerHTML endsWith: '>a foo in a bar</div>')
  74. !
  75. testInsertStringInFragment
  76. | d |
  77. d := Domite fromElement: fixtureDiv.
  78. d insertDomite: (Domite open insertString: 'a foo in a bar'; yourself).
  79. self assert: (document body innerHTML endsWith: '>a foo in a bar</div>')
  80. !
  81. testMultipleInserts
  82. | d p s |
  83. d := Domite fromElement: fixtureDiv.
  84. p := Domite newElement: 'p'.
  85. d insertDomite: p.
  86. s := Domite newElement: 'span'.
  87. d insertDomite: s.
  88. d insertString: 'dom-mite'.
  89. self assert: (document body innerHTML endsWith: '><p></p><span></span>dom-mite</div>')
  90. !
  91. testMultipleInsertsWithClear
  92. | d p s |
  93. d := Domite fromElement: fixtureDiv.
  94. p := Domite newElement: 'p'.
  95. d insertDomite: p.
  96. s := Domite newElement: 'span'.
  97. d insertDomite: s.
  98. d clearHere.
  99. d insertString: 'dom-mite'.
  100. d clearHere.
  101. d clearHere.
  102. self assert: (document body innerHTML endsWith: '></div>')
  103. !
  104. testMultipleInsertsWithClearInBetween
  105. | d p s |
  106. d := Domite fromElement: fixtureDiv.
  107. p := Domite newElement: 'p'.
  108. d insertDomite: p.
  109. s := Domite newElement: 'span'.
  110. d insertDomite: s.
  111. d clearHere.
  112. d insertString: 'dom-mite'.
  113. self assert: (document body innerHTML endsWith: '>dom-mite</div>')
  114. ! !