DOMite-Tests.st 3.9 KB

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