MarpaX-ESLIF-URI

 view release on metacpan or  search on metacpan

t/http.t  view on Meta::CPAN

#!perl -T
use strict;
use warnings FATAL => 'all';
use Test::More;
use Test::Differences;
use Data::Dumper::OneLine qw/Dumper/;

BEGIN {
    use_ok( 'MarpaX::ESLIF::URI' ) || print "Bail out!\n";
}

my %DATA =
  (
   #
   # Adapted from https://github.com/serut/vieassociative/blob/master/vendor/lusitanian/oauth/tests/Unit/Common/Http/Uri/UriTest.php
   #
   "http://example.com" => {
       scheme    => { origin => "http",                                 decoded => "http",                                 normalized => "http" },
       host      => { origin => "example.com",                          decoded => "example.com",                          normalized => "example.com" },
       path      => { origin => "",                                     decoded => "",                                     normalized => "/" },
   },
   "http://peehaa\@example.com" => {
       scheme    => { origin => "http",                                 decoded => "http",                                 normalized => "http" },
       host      => { origin => "example.com",                          decoded => "example.com",                          normalized => "example.com" },
       path      => { origin => "",                                     decoded => "",                                     normalized => "/" },
       userinfo  => { origin => "peehaa",                               decoded => "peehaa",                               normalized => "peehaa" },
   },
   "http://peehaa:pass\@example.com" => {
       scheme    => { origin => "http",                                 decoded => "http",                                 normalized => "http" },
       host      => { origin => "example.com",                          decoded => "example.com",                          normalized => "example.com" },
       path      => { origin => "",                                     decoded => "",                                     normalized => "/" },
       userinfo  => { origin => "peehaa:pass",                          decoded => "peehaa:pass",                          normalized => "peehaa:pass" },
   },
   #
   # Adapted from https://github.com/cpp-netlib/uri/blob/master/test/uri_parse_test.cpp
   #
   "http://www.example.com/path?qu\$ery" => {
       scheme    => { origin => "http",                                 decoded => "http",                                 normalized => "http" },
       host      => { origin => "www.example.com",                      decoded => "www.example.com",                      normalized => "www.example.com" },
       path      => { origin => "/path",                                decoded => "/path",                                normalized => "/path" },
       query     => { origin => "qu\$ery",                              decoded => "qu\$ery",                              normalized => "qu\$ery" },
   },
   "http://[1080:0:0:0:8:800:200C:417A]" => {
       scheme    => { origin => "http",                                 decoded => "http",                                 normalized => "http" },
       host      => { origin => "[1080:0:0:0:8:800:200C:417A]",         decoded => "[1080:0:0:0:8:800:200C:417A]",         normalized => "[1080:0:0:0:8:800:200c:417a]" },
       hostname  => { origin => "1080:0:0:0:8:800:200C:417A",           decoded => "1080:0:0:0:8:800:200C:417A",           normalized => "1080:0:0:0:8:800:200c:417a" },
       path      => { origin => "",                                     decoded => "",                                     normalized => "/" },
       ip        => { origin => "1080:0:0:0:8:800:200C:417A",           decoded => "1080:0:0:0:8:800:200C:417A",           normalized => "1080:0:0:0:8:800:200c:417a" },
       ipv6      => { origin => "1080:0:0:0:8:800:200C:417A",           decoded => "1080:0:0:0:8:800:200C:417A",           normalized => "1080:0:0:0:8:800:200c:417a" },
   },
   #
   # Adapted from http://www.gestioip.net/docu/ipv6_address_examples.html
   #
   "http://[2001:db8:a0b:12f0::1%25Eth0]:80/index.html" => {
       scheme    => { origin => "http",                                 decoded => "http",                                 normalized => "http" },
       host      => { origin => "[2001:db8:a0b:12f0::1%25Eth0]",        decoded => "[2001:db8:a0b:12f0::1%Eth0]",          normalized => "[2001:db8:a0b:12f0::1%25eth0]" },
       hostname  => { origin => "2001:db8:a0b:12f0::1%25Eth0",          decoded => "2001:db8:a0b:12f0::1%Eth0",            normalized => "2001:db8:a0b:12f0::1%25eth0" },
       path      => { origin => "/index.html",                          decoded => "/index.html",                          normalized => "/index.html" },
       ip        => { origin => "2001:db8:a0b:12f0::1%25Eth0",          decoded => "2001:db8:a0b:12f0::1%Eth0",            normalized => "2001:db8:a0b:12f0::1%25eth0" },
       ipv6      => { origin => "2001:db8:a0b:12f0::1",                 decoded => "2001:db8:a0b:12f0::1",                 normalized => "2001:db8:a0b:12f0::1" },
       zone      => { origin => "Eth0",                                 decoded => "Eth0",                                 normalized => "eth0" },
   },
   "http://[2001:db8:a0b:12f0::1%Eth0]:80/index.html" => {
       scheme    => { origin => "http",                                 decoded => "http",                                 normalized => "http" },
       host      => { origin => "[2001:db8:a0b:12f0::1%Eth0]",          decoded => "[2001:db8:a0b:12f0::1%Eth0]",          normalized => "[2001:db8:a0b:12f0::1%25eth0]" },



( run in 1.238 second using v1.01-cache-2.11-cpan-6aa56a78535 )