URLprocessor

 view release on metacpan or  search on metacpan

t/URLprocessor.t  view on Meta::CPAN

# Parameters
my $params = $url->params_hash;
is($params->{'param'}, 'val', "params_hash(): param=val");
is($params->{'param2'}, 'http://cpan.org', "params_hash(): param2=http://cpan.org");
is($url->param_value(undef), undef, "param_value(undef): undef");
is($url->param_value('param'), 'val', "param_value('param'): val");
is($url->param_value('param22'), undef, "param_value('param22'): undef");
$url->param_del('param2');
is($url->param_value('param2'), undef, "param_del('param2')-> param_value('param2'): undef");
$url->param_del('param');
is($url->params_string, '', "params_string(): ''");
$url->param_add('param', 'value');
is($url->param_value('param'), 'value', "param_add('param', 'value') -> param_value('param'): value");
is($url->param_exist('notexistparam'), 0, "param_exist('notexistparam'): 0");
is($url->param_exist('param'), 1, "param_exist('param'): 1");
is($url->params_string, 'param=value', "params_string(): 'param=value'");
$url->param_add('param2', 'value2');
$url->param_add('param3', 'value3');
print "URL params with delimiter '|': ", $url->params_string('|'), "\n";
print "URL params: with default delimiter", $url->params_string, "\n";
print "\n";


# Fragment
is($url->fragment, 'some_fragment', "fragment(): some_fragment");
$url->fragment(undef);
is($url->fragment, undef, "fragment(undef) -> fragment(): undef");
$url->fragment('some_fragment2');
is($url->fragment, 'some_fragment2', "fragment('some_fragment2') -> fragment(): some_fragment2");
print "\n";


# URL validation methods
is($url->valid_status, 1, 'valid_status(): 1');
is($url->valid_msg, 'OK', 'valid_msg(): OK');
if ($url->valid_status == 1) {
	print "URL: ", $url->url, "\n";
} else {
	print "ERROR: URL is not valid\n";
}
print "\n";

$url_str ='HTTP://www.cpan.org/#some_fragment'; 
print "URL2=$url_str\n";
my $url2 = URLprocessor->new($url_str);
is($url2->login, undef, "login(): undef");
is($url2->passwd, undef, "passwd(): undef");
is($url2->port, undef, "port(): undef");
is($url2->param_exist('someparam'), 0, "param_exist('someparam'): 0");
is($url2->localpath, '/', "localpath(): ''");
is($url2->fragment, 'some_fragment', "fragment(): some_fragment");
is($url2->valid_status, 1, 'valid_status(): 1');
is($url2->valid_msg, 'OK', 'valid_msg(): OK');
print 'URL2: '.$url2->url."\n";
print "\n";




# Test private methods:
print "\nTest split method\n";
_test_split_url($url2);

print "\nTest parse global part method\n";
_test_parse_global_part($url2);

print "\nTest parse local part method\n";
_test_parse_local_part($url2);
print "\n";

print "\nTest parse params function\n";
_test_parse_params($url2);
print "\n";




########################### tests

sub _test_split_url {
	my $self = shift;
	# 1 - only global part.
	# 2 - global and local parts.
	# 0 - something is wrong.
	my $urls = {
		'http://www.cpan.org' => 1,
		'http://www.cpan.org/' => 2,
		'http://www.cpan.org/path/' => 2,
		'http://www.cpan.org/path/?p1=v1&p2=v2' => 2,
		'http://www.cpan.org/path/?p1=v1&p2=http://cpan.org' => 2,
		'http:///www.cpan.org/path/?p1=v1&p2=http://cpan.org' => 0,
		'http:///www.cpan.org' => 0,
		'http://' => 0,
		'http:///' => 0,
	};
	
	while (my($url, $v) = each %{$urls}) {
		$self->{URL} = $url;
		my ($global_p, $local_p) = $self->_split_url;
		if (!defined $global_p and !defined $local_p and $v == 0) {
			is(1, 1, "($url) is bad");
			
		} elsif (!defined $global_p and defined $local_p) {
			is('undef,def', 'def,def', "ERROR - ($url) global is undef, local is defined!");
			
		} elsif (defined $global_p and !defined $local_p and $v == 1) {
			is(1, 1, "($url) only global part is defined");
			
		} elsif (defined $global_p and defined $local_p and $v == 2) {
			is(1, 1, "($url) both parts are defined");
			
		} else {
			is('?', '???', "ERROR - ($url) is bad!");
		}
	}
}


sub _test_parse_global_part {
	my $self = shift;
	my $urls = {



( run in 2.185 seconds using v1.01-cache-2.11-cpan-71847e10f99 )