The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w

use strict;
use warnings;

use Test::More tests => 11;
BEGIN { use_ok('POEx::URI') };

use URI;

my( $uri, $uri2, $base, $rel );

##
$uri = URI->new( 'poe://kernel/session' );
is( $uri->canonical, 'poe://kernel/session/', 'kernel + session' );

$uri = URI->new( 'event', 'poe' );
is( $uri->canonical, 'poe:event', 'event' );

$uri = URI->new( 'poe:event' );
is( $uri->canonical, 'poe:event', 'scheme:event' );

$uri = URI->new( 'session/event', 'poe' );
is( $uri->canonical, 'poe:session/event', 'session+event' );

$uri = URI->new( '/session/event', 'poe' );
is( $uri->canonical, 'poe:session/event', '/session+event' );

$uri = URI->new( 'poe:/session/event' );
is( $uri->canonical, 'poe:session/event', 'scheme:/session+event' );


$uri->event(undef);
is( $uri->canonical, 'poe:session/', "session" );

$uri->event( 'event' );

##
$uri->kernel( "SOME-KERNEL" );
is( $uri->canonical, "poe://SOME-KERNEL/session/event", 
                        "No port: is kernel" );

$uri->port( 33100 );
is( $uri->canonical, "poe://some-kernel:33100/session/event", 
                    "Upper->lower case kernel");


$uri->host( 'HELLO.world.com' );
$uri->port( 603 );
is( $uri->canonical, "poe://hello.world.com/session/event", 
                "lower-case host / default port");