diff options
-rw-r--r-- | src/util.ml | 4 | ||||
-rw-r--r-- | src/util.mli | 2 | ||||
-rw-r--r-- | test/util_test.ml | 7 |
3 files changed, 8 insertions, 5 deletions
diff --git a/src/util.ml b/src/util.ml index 141d25b..f8c3c27 100644 --- a/src/util.ml +++ b/src/util.ml @@ -7,8 +7,8 @@ let find_xml_child name xml = | _ -> false in match xml with - | Xml.Element (_, _, children) -> List.find find_aux children - | Xml.PCData _ -> raise Not_found + | Xml.Element (_, _, children) -> Vylist.find find_aux children + | Xml.PCData _ -> None (* Dirty pretty printer *) let string_of_path path = diff --git a/src/util.mli b/src/util.mli index f3699d3..ec0bb73 100644 --- a/src/util.mli +++ b/src/util.mli @@ -1,3 +1,3 @@ -val find_xml_child : string -> Xml.xml -> Xml.xml +val find_xml_child : string -> Xml.xml -> Xml.xml option val string_of_path : string list -> string diff --git a/test/util_test.ml b/test/util_test.ml index ecc4b49..3625957 100644 --- a/test/util_test.ml +++ b/test/util_test.ml @@ -5,11 +5,14 @@ let test_find_xml_child_existent test_ctxt = let elem = Xml.Element ("foo", [], [Xml.Element ("bar", [], []); Xml.PCData "baz"]) - in assert_equal (Xml.tag (find_xml_child "bar" elem)) "bar" + in + match (find_xml_child "bar" elem) with + | None -> assert_failure "find_xml_child returned None" + | Some x -> assert_equal (Xml.tag x) "bar" let test_find_xml_child_nonexistent test_ctxt = let elem = Xml.Element ("foo", [], [Xml.Element ("quux", [], [])]) in - assert_raises Not_found (fun () -> find_xml_child "bar" elem) + assert_equal (find_xml_child "bar" elem) None let test_string_of_path test_ctxt = let path = ["foo"; "bar"; "baz"] in |