forked from pharo-project/pharo
/
SpDropListAdapterTest.class.st
125 lines (93 loc) · 3.33 KB
/
SpDropListAdapterTest.class.st
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
Class {
#name : #SpDropListAdapterTest,
#superclass : #SpAbstractWidgetAdapterTest,
#category : #'Spec2-Backend-Tests'
}
{ #category : #accessing }
SpDropListAdapterTest >> classToTest [
^ SpDropListPresenter
]
{ #category : #accessing }
SpDropListAdapterTest >> initializeTestedInstance [
super initializeTestedInstance.
presenter items: #(10 20 30).
]
{ #category : #accessing }
SpDropListAdapterTest >> testAddingIconsShowTheIcon [
#(pharo add book) do: [ :each | self presenter addItemLabeled: each do: [ ] icon: (self iconNamed: each) ].
self presenter selectItem: #pharo.
self assert: self adapter selectedIndexes equals: #(4).
backendForTest assertIcon: self adapter displayedIcon equals: (self iconNamed: #pharo)
]
{ #category : #accessing }
SpDropListAdapterTest >> testDoesNotShowIcons [
backendForTest assertIcon: self adapter displayedIcon equals: nil.
]
{ #category : #accessing }
SpDropListAdapterTest >> testRemovingIconsAfterAddingThem [
#(pharo add book) do: [ :each | self presenter addItemLabeled: each do: [ ] icon: (self iconNamed: each) ].
self presenter selectItem: nil.
self presenter model removeAll.
#(pharo add book) do: [ :each | self presenter addItemLabeled: each do: [ ] icon: nil ].
self assert: self adapter selectedIndexes equals: #(1).
backendForTest assertIcon: self adapter displayedIcon equals: nil
]
{ #category : #accessing }
SpDropListAdapterTest >> testResetingSelectionResetsSelection [
self presenter selectItem: 10.
self presenter resetSelection.
self assert: self presenter selectedItem equals: nil.
self assert: self adapter selectedIndexes isEmpty
]
{ #category : #accessing }
SpDropListAdapterTest >> testSelectingASecondElementSelectsIt [
self presenter selectItem: 10.
self presenter selectItem: 20.
self assert: self presenter selectedItem equals: 20.
self assert: self adapter selectedIndexes equals: #(2)
]
{ #category : #accessing }
SpDropListAdapterTest >> testSelectingAnElementInWidgetUpdatePresenter [
self adapter selectIndex: 2.
self assert: self presenter selectedItem equals: 20.
self assert: self adapter selectedIndexes equals: #(2).
]
{ #category : #accessing }
SpDropListAdapterTest >> testSelectingAnElementSelectsIt [
self presenter selectItem: 10.
self assert: self presenter selectedItem equals: 10.
self assert: self adapter selectedIndexes equals: #(1)
]
{ #category : #accessing }
SpDropListAdapterTest >> testSelectionExecutesBlock [
| selected |
self presenter
dropListItems:
(#(10 20 30)
collect: [ :e |
SpDropListItem
on: e
do: [ selected := e ] ]).
self presenter selectItem: 20.
self assert: selected equals: 20
]
{ #category : #accessing }
SpDropListAdapterTest >> testSelectionStartsSelectingFirst [
self assert: self presenter selectedItem equals: 10.
self assert: self adapter selectedIndexes equals: #(1).
]
{ #category : #accessing }
SpDropListAdapterTest >> testSettingNilResetsGeneratesEvent [
| changed |
self presenter selectItem: 10.
self presenter whenSelectionChangedDo: [ changed := true ].
self presenter selectItem: nil.
self assert: changed
]
{ #category : #accessing }
SpDropListAdapterTest >> testSettingNilResetsSelection [
self presenter selectItem: 10.
self presenter selectItem: nil.
self assert: self presenter selectedItem equals: nil.
self assert: self adapter selectedIndexes isEmpty
]