diff --git a/tests/src/Test/Html/SelectorTests.elm b/tests/src/Test/Html/SelectorTests.elm index cf822b35..c0bdc6db 100644 --- a/tests/src/Test/Html/SelectorTests.elm +++ b/tests/src/Test/Html/SelectorTests.elm @@ -8,7 +8,7 @@ import Html import Html.Attributes as Attr import Test exposing (..) import Test.Html.Query as Query -import Test.Html.Selector exposing (..) +import Test.Html.Selector as Selector all : Test @@ -17,6 +17,7 @@ all = [ bug13 , textSelectors , exactTextSelectors + , selectorAll ] @@ -32,14 +33,25 @@ bug13 = , Html.text "Text2" ] |> Query.fromHtml - |> Query.has [ text "Text1", text "Text2" ] + |> Query.has + [ Selector.text "Text1" + , Selector.text "Text2" + ] , test "the welcome

says hello!" <| \() -> Html.div [] - [ Html.h1 [ Attr.title "greeting", Attr.class "me" ] [ Html.text "Hello!" ] ] + [ Html.h1 + [ Attr.title "greeting" + , Attr.class "me" + ] + [ Html.text "Hello!" ] + ] |> Query.fromHtml - |> Query.find [ attribute (Attr.title "greeting") ] - |> Query.has [ text "Hello!", class "me" ] + |> Query.find [ Selector.attribute (Attr.title "greeting") ] + |> Query.has + [ Selector.text "Hello!" + , Selector.class "me" + ] ] @@ -56,7 +68,7 @@ textSelectors = in Html.div [] textNodes |> Query.fromHtml - |> Query.has [ text str ] + |> Query.has [ Selector.text str ] , fuzz3 (list string) (list string) (list string) "Finds multiple results" <| \before strings after -> let @@ -67,7 +79,7 @@ textSelectors = in Html.div [] textNodes |> Query.fromHtml - |> Query.has (List.map text strings) + |> Query.has (List.map Selector.text strings) , fuzz3 (list string) string (list string) "Finds a submatch" <| \before str after -> let @@ -78,7 +90,7 @@ textSelectors = in Html.div [] textNodes |> Query.fromHtml - |> Query.has [ text str ] + |> Query.has [ Selector.text str ] ] @@ -100,7 +112,7 @@ exactTextSelectors = in Html.div [] textNodes |> Query.fromHtml - |> Query.has [ exactText str ] + |> Query.has [ Selector.exactText str ] , fuzz3 (list string) (list string) (list string) "Finds multiple results" <| \before strings after -> let @@ -111,7 +123,7 @@ exactTextSelectors = in Html.div [] textNodes |> Query.fromHtml - |> Query.has (List.map exactText strings) + |> Query.has (List.map Selector.exactText strings) , fuzz3 (list nonemptyString) nonemptyString (list nonemptyString) "Doesn't find a submatch" <| \before str after -> let @@ -136,12 +148,82 @@ exactTextSelectors = in Html.div [] textNodes |> Query.fromHtml - |> Query.hasNot [ exactText str2 ] + |> Query.hasNot [ Selector.exactText str2 ] , test "Trimming is not happening" <| \() -> Html.div [] [ Html.text """ We like whitespace """ ] |> Query.fromHtml - |> Query.hasNot [ exactText "We like whitespace" ] + |> Query.hasNot [ Selector.exactText "We like whitespace" ] + ] + + +selectorAll : Test +selectorAll = + describe "Selector.all" + [ test "passes if empty" <| + \() -> + Html.fieldset [ Attr.disabled False ] + [ Html.button [ Attr.disabled True ] + [ Html.text "Reply" + ] + ] + |> Query.fromHtml + |> Query.has [ Selector.all [] ] + , test "passes if single selector matches" <| + \() -> + Html.fieldset [ Attr.disabled False ] + [ Html.button [ Attr.disabled True ] + [ Html.text "Reply" + ] + ] + |> Query.fromHtml + |> Query.has + [ Selector.all + [ Selector.tag "fieldset" + ] + ] + , test "passes if all selectors match" <| + \() -> + Html.fieldset [ Attr.disabled False ] + [ Html.button [ Attr.disabled True ] + [ Html.text "Reply" + ] + ] + |> Query.fromHtml + |> Query.has + [ Selector.all + [ Selector.tag "fieldset" + , Selector.attribute (Attr.disabled False) + ] + ] + , test "fails if some but not all selectors match (regression for #213)" <| + \() -> + Html.fieldset [ Attr.disabled False ] + [ Html.button [ Attr.disabled True ] + [ Html.text "Reply" + ] + ] + |> Query.fromHtml + |> Query.hasNot + [ Selector.all + [ Selector.tag "fieldset" + , Selector.attribute (Attr.disabled True) + ] + ] + , test "fails if no selectors match" <| + \() -> + Html.fieldset [ Attr.disabled False ] + [ Html.button [ Attr.disabled True ] + [ Html.text "Reply" + ] + ] + |> Query.fromHtml + |> Query.hasNot + [ Selector.all + [ Selector.tag "strong" + , Selector.attribute (Attr.disabled True) + ] + ] ]