NAME

    Test::Deep::URI - Easier testing of URIs for Test::Deep

SYNOPSIS

      use Test::Deep;
      use Test::Deep::URI;
    
      $testing_url = "http://site.com/path?a=1&b=2";
      cmp_deeply(
        $testing_url,
        all(
          uri("http://site.com/path?a=1&b=2"),
          # or
          uri("//site.com/path?a=1&b=2"),
          # or
          uri("/path?b=2&a=1"),
        )
      );

DESCRIPTION

    Test::Deep::URI provides the function uri($expected) for Test::Deep.
    Use it in combination with cmp_deeply to test against partial URIs.

    In particular I wrote this because I was tired of stumbling across unit
    tests that failed because http://site.com/?foo=1&bar=2 didn't match
    http://site.com/?bar=2&foo=1. This helper is smart enough to compare
    query_form parameters separately, while still enforcing the order of
    values for duplicate parameters.

FUNCTIONS

    uri($expected)

      Exported by default.

      $expected should be a string that can be passed to URI->new().

ERRATA

    I've mostly been using this with URLs, but it's built around URI and
    should work with all types. Let me know if something doesn't work.

AUTHOR

    Nigel Gregoire <nigelgregoire@gmail.com>

COPYRIGHT

    Copyright 2016 - Nigel Gregoire

LICENSE

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

SEE ALSO

    Test::Deep

    Test::Deep::JSON

    Test::Deep::Filter

