---
name: "Test::XML::Twig"
section: "3pm"
platform: "linux"
package: "libtest-xml-perl"
version: "0.08-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Test::XML::Twig"
---

# Test::XML::Twig(3pm)

Test XML::Twig handlers

## NAME

Test::XML::Twig - Test XML::Twig handlers

## SYNOPSIS

```
  use Test::XML::Twig tests => 2;
  use My::Twig qw( handler );
  test_twig_handler(
      \&handler,
      '<foo/>', '<bar/>',
      'turns foo to bar',
  );
  test_twig_handlers(
      { twig_handlers => { 'foo' => \&handler } },
      '<foo/>', '<bar/>',
      'turns foo into bar',
  );
```

## DESCRIPTION

This module is for testing XML::Twig handlers.

## FUNCTIONS

All functions are exported.

- get\_twig ( INPUT \[, ARGS \] )

  Return a parsed twig of INPUT, or undef on parse failure.  Optionally, ARGS may be supplied as a set of hash-like parameters to be passed into the twig constructor.

- test\_twig\_handler ( HANDLER, INPUT, EXPECTED, TESTNAME \[, COND \] )

  Parse INPUT, using HANDLER as a *twig\_handler* (i.e: it gets called after the parse tree has been built).  Tests that the result is the same as EXPECTED (which can be either a string of XML or a quoted regex). HANDLER must be a code ref.

  Optionally, COND can be supplied.  Instead of the handler being called with the root element of INPUT, COND will be used with **first\_child()** to select an alternative element.

  Returns true / false depending upon test success.

- test\_twig\_handlers ( ARGS, INPUT, EXPECTED, TESTNAME )

  This is similar to **test\_twig\_handler()**, but with more flexibility.  The first argument, ARGS, is a hash reference which can be used to specify any of the ordinary parameters to twig's constructor.  This lets you test things like *start\_tag\_handlers*, as well as multiple *twig\_handler*s together.

## SEE ALSO

Test::More, Test::XML, XML::Twig.

## AUTHOR

Dominic Mitchell, \<cpan2 (at) semantico.com\>

## COPYRIGHT AND LICENSE

Copyright 2002 by semantico

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
