/
MDLNestedListTest.cls
118 lines (101 loc) · 5.28 KB
/
MDLNestedListTest.cls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
"Filed out from Dolphin Smalltalk 7"!
SGTAbstractSeasideTestCase subclass: #MDLNestedListTest
instanceVariableNames: 'list'
classVariableNames: ''
poolDictionaries: ''
classInstanceVariableNames: ''!
MDLNestedListTest guid: (GUID fromString: '{ad2a1ded-4e9a-4d30-8cba-f15bb45391a0}')!
MDLNestedListTest comment: ''!
!MDLNestedListTest categoriesForClass!Material-Design-Lite-Widgets-Tests-List! !
!MDLNestedListTest methodsFor!
childrenBlockForSampleElements ^ [ :each | self recursivelyFind: each in: self sampleElements ]!
recursivelyFind: each in: dictionary ^ dictionary at: each ifPresent: [ :res | res isDictionary ifTrue: [ res keys ] ifFalse: [ res ] ] ifAbsent: [ dictionary valuesDo: [ :coll | coll isDictionary ifTrue: [ (self recursivelyFind: each in: coll) ifNotEmpty: [ :res | ^ res ] ] ]. #() ]!
sampleElements ^ OrderedDictionary with: 1 -> #(2 3 4) with: 5 -> #(6 7 8) with: 9 -> (OrderedDictionary with: 10 -> #(11 12 13) with: 14 -> #(15 16 17))!
setUp super setUp. list := MDLNestedList new!
testElementsDisplayListWithLastElementSelected list elements: (1 to: list listMaxSize * 2 ). list selectedEntity: list listMaxSize * 2. self assert: list elementsDisplayList size equals: list listMaxSize!
testElementsDisplayListWithLessThanListSize list elements: (1 to: list listMaxSize). self assert: list elementsDisplayList size equals: list listMaxSize!
testElementsDisplayListWithMoreThanListSize list elements: (1 to: list listMaxSize * 2 ). self assert: list elementsDisplayList size equals: list listMaxSize!
testIconBlockIsRenderedIfNeeded list elements: self sampleElements keys. list iconBlock: [ :item :html | html mdlIcon: 'mood' ]. self assert: [ :html | html render: list ] generatedIncludes: '<i class="material-icons">mood</i>'. list iconBlock: nil. self deny: [ :html | html render: list ] generatedIncludes: '<i class="material-icons">mood</i>'.!
testIndexOfRootElementContainingSelectedEntity list elements: self sampleElements keys. list childrenBlock: self childrenBlockForSampleElements. list selectedEntity: 1. self assert: list indexOfRootElementContainingSelectedEntity equals: 1. list selectedEntity: 5. self assert: list indexOfRootElementContainingSelectedEntity equals: 2!
testIndexOfRootElementContainingSelectedEntityAtSecondLevel list elements: self sampleElements keys. list childrenBlock: self childrenBlockForSampleElements. list selectedEntity: 2. self assert: list indexOfRootElementContainingSelectedEntity equals: 1. list selectedEntity: 8. self assert: list indexOfRootElementContainingSelectedEntity equals: 2!
testIndexOfRootElementContainingSelectedEntityAtThirdLevel list elements: self sampleElements keys. list childrenBlock: self childrenBlockForSampleElements. list selectedEntity: 12. self assert: list indexOfRootElementContainingSelectedEntity equals: 3!
testIndexOfRootElementContainingSelectedEntityIfSelectedEntityIsNil list elements: self sampleElements keys. list childrenBlock: self childrenBlockForSampleElements. list selectedEntity: nil. self assert: list indexOfRootElementContainingSelectedEntity equals: 0!
testJsOnLoadHook list onLoadHook: 'console.log("test")' js. self assert: (list jsOnLoadHook isKindOf: JSStream). self assert: list jsOnLoadHook contents equals: 'console.log("test")'. list onLoadHook: 'console.log("test")'. self assert: (list jsOnLoadHook isKindOf: JSStream). self assert: list jsOnLoadHook contents equals: 'console.log("test")'!
testRightIconBlockIsRenderedIfNeeded list elements: self sampleElements keys. list rightIconBlock: [ :item :html | html mdlIcon: 'mood' ]. self assert: [ :html | html render: list ] generatedIncludes: '<i class="material-icons">mood</i>'. list rightIconBlock: nil. self deny: [ :html | html render: list ] generatedIncludes: '<i class="material-icons">mood</i>'.!
testWithResearchField list displayResearchField: false. list withResearchField. self assert: list displayResearchField! !
!MDLNestedListTest categoriesFor: #childrenBlockForSampleElements!helpers!public! !
!MDLNestedListTest categoriesFor: #recursivelyFind:in:!helpers!public! !
!MDLNestedListTest categoriesFor: #sampleElements!helpers!public! !
!MDLNestedListTest categoriesFor: #setUp!public!running! !
!MDLNestedListTest categoriesFor: #testElementsDisplayListWithLastElementSelected!public!tests! !
!MDLNestedListTest categoriesFor: #testElementsDisplayListWithLessThanListSize!public!tests! !
!MDLNestedListTest categoriesFor: #testElementsDisplayListWithMoreThanListSize!public!tests! !
!MDLNestedListTest categoriesFor: #testIconBlockIsRenderedIfNeeded!public!tests! !
!MDLNestedListTest categoriesFor: #testIndexOfRootElementContainingSelectedEntity!public!tests! !
!MDLNestedListTest categoriesFor: #testIndexOfRootElementContainingSelectedEntityAtSecondLevel!public!tests! !
!MDLNestedListTest categoriesFor: #testIndexOfRootElementContainingSelectedEntityAtThirdLevel!public!tests! !
!MDLNestedListTest categoriesFor: #testIndexOfRootElementContainingSelectedEntityIfSelectedEntityIsNil!public!tests! !
!MDLNestedListTest categoriesFor: #testJsOnLoadHook!public!tests! !
!MDLNestedListTest categoriesFor: #testRightIconBlockIsRenderedIfNeeded!public!tests! !
!MDLNestedListTest categoriesFor: #testWithResearchField!public!tests! !