@@ -8,7 +8,7 @@ import Html
8
8
import Html.Attributes as Attr
9
9
import Test exposing (..)
10
10
import Test.Html.Query as Query
11
- import Test.Html.Selector exposing (..)
11
+ import Test.Html.Selector as Selector
12
12
13
13
14
14
all : Test
17
17
[ bug13
18
18
, textSelectors
19
19
, exactTextSelectors
20
+ , selectorAll
20
21
]
21
22
22
23
@@ -32,14 +33,25 @@ bug13 =
32
33
, Html . text " Text2"
33
34
]
34
35
|> Query . fromHtml
35
- |> Query . has [ text " Text1" , text " Text2" ]
36
+ |> Query . has
37
+ [ Selector . text " Text1"
38
+ , Selector . text " Text2"
39
+ ]
36
40
, test " the welcome <h1> says hello!" <|
37
41
\ () ->
38
42
Html . div []
39
- [ Html . h1 [ Attr . title " greeting" , Attr . class " me" ] [ Html . text " Hello!" ] ]
43
+ [ Html . h1
44
+ [ Attr . title " greeting"
45
+ , Attr . class " me"
46
+ ]
47
+ [ Html . text " Hello!" ]
48
+ ]
40
49
|> Query . fromHtml
41
- |> Query . find [ attribute ( Attr . title " greeting" ) ]
42
- |> Query . has [ text " Hello!" , class " me" ]
50
+ |> Query . find [ Selector . attribute ( Attr . title " greeting" ) ]
51
+ |> Query . has
52
+ [ Selector . text " Hello!"
53
+ , Selector . class " me"
54
+ ]
43
55
]
44
56
45
57
@@ -56,7 +68,7 @@ textSelectors =
56
68
in
57
69
Html . div [] textNodes
58
70
|> Query . fromHtml
59
- |> Query . has [ text str ]
71
+ |> Query . has [ Selector . text str ]
60
72
, fuzz3 ( list string) ( list string) ( list string) " Finds multiple results" <|
61
73
\ before strings after ->
62
74
let
@@ -67,7 +79,7 @@ textSelectors =
67
79
in
68
80
Html . div [] textNodes
69
81
|> Query . fromHtml
70
- |> Query . has ( List . map text strings)
82
+ |> Query . has ( List . map Selector . text strings)
71
83
, fuzz3 ( list string) string ( list string) " Finds a submatch" <|
72
84
\ before str after ->
73
85
let
@@ -78,7 +90,7 @@ textSelectors =
78
90
in
79
91
Html . div [] textNodes
80
92
|> Query . fromHtml
81
- |> Query . has [ text str ]
93
+ |> Query . has [ Selector . text str ]
82
94
]
83
95
84
96
@@ -100,7 +112,7 @@ exactTextSelectors =
100
112
in
101
113
Html . div [] textNodes
102
114
|> Query . fromHtml
103
- |> Query . has [ exactText str ]
115
+ |> Query . has [ Selector . exactText str ]
104
116
, fuzz3 ( list string) ( list string) ( list string) " Finds multiple results" <|
105
117
\ before strings after ->
106
118
let
@@ -111,7 +123,7 @@ exactTextSelectors =
111
123
in
112
124
Html . div [] textNodes
113
125
|> Query . fromHtml
114
- |> Query . has ( List . map exactText strings)
126
+ |> Query . has ( List . map Selector . exactText strings)
115
127
, fuzz3 ( list nonemptyString) nonemptyString ( list nonemptyString) " Doesn't find a submatch" <|
116
128
\ before str after ->
117
129
let
@@ -136,12 +148,82 @@ exactTextSelectors =
136
148
in
137
149
Html . div [] textNodes
138
150
|> Query . fromHtml
139
- |> Query . hasNot [ exactText str2 ]
151
+ |> Query . hasNot [ Selector . exactText str2 ]
140
152
, test " Trimming is not happening" <|
141
153
\ () ->
142
154
Html . div [] [ Html . text """
143
155
We like whitespace
144
156
""" ]
145
157
|> Query . fromHtml
146
- |> Query . hasNot [ exactText " We like whitespace" ]
158
+ |> Query . hasNot [ Selector . exactText " We like whitespace" ]
159
+ ]
160
+
161
+
162
+ selectorAll : Test
163
+ selectorAll =
164
+ describe " Selector.all"
165
+ [ test " passes if empty" <|
166
+ \ () ->
167
+ Html . fieldset [ Attr . disabled False ]
168
+ [ Html . button [ Attr . disabled True ]
169
+ [ Html . text " Reply"
170
+ ]
171
+ ]
172
+ |> Query . fromHtml
173
+ |> Query . has [ Selector . all [] ]
174
+ , test " passes if single selector matches" <|
175
+ \ () ->
176
+ Html . fieldset [ Attr . disabled False ]
177
+ [ Html . button [ Attr . disabled True ]
178
+ [ Html . text " Reply"
179
+ ]
180
+ ]
181
+ |> Query . fromHtml
182
+ |> Query . has
183
+ [ Selector . all
184
+ [ Selector . tag " fieldset"
185
+ ]
186
+ ]
187
+ , test " passes if all selectors match" <|
188
+ \ () ->
189
+ Html . fieldset [ Attr . disabled False ]
190
+ [ Html . button [ Attr . disabled True ]
191
+ [ Html . text " Reply"
192
+ ]
193
+ ]
194
+ |> Query . fromHtml
195
+ |> Query . has
196
+ [ Selector . all
197
+ [ Selector . tag " fieldset"
198
+ , Selector . attribute ( Attr . disabled False )
199
+ ]
200
+ ]
201
+ , test " fails if some but not all selectors match (regression for #213)" <|
202
+ \ () ->
203
+ Html . fieldset [ Attr . disabled False ]
204
+ [ Html . button [ Attr . disabled True ]
205
+ [ Html . text " Reply"
206
+ ]
207
+ ]
208
+ |> Query . fromHtml
209
+ |> Query . hasNot
210
+ [ Selector . all
211
+ [ Selector . tag " fieldset"
212
+ , Selector . attribute ( Attr . disabled True )
213
+ ]
214
+ ]
215
+ , test " fails if no selectors match" <|
216
+ \ () ->
217
+ Html . fieldset [ Attr . disabled False ]
218
+ [ Html . button [ Attr . disabled True ]
219
+ [ Html . text " Reply"
220
+ ]
221
+ ]
222
+ |> Query . fromHtml
223
+ |> Query . hasNot
224
+ [ Selector . all
225
+ [ Selector . tag " strong"
226
+ , Selector . attribute ( Attr . disabled True )
227
+ ]
228
+ ]
147
229
]
0 commit comments