use strict;
use Test::Base;

use HTTP::MobileAgent::Plugin::RoamingZone;

plan tests => 3 * blocks;

filters {
    input    => [qw/chomp/],
    expected => [qw/chomp/],
};

run {
    local %ENV;

    my $block = shift;
    my ($ua,$data)          = map { $_ eq 'UNDEF' ? undef : $_ eq 'NULL' ? '' : $_ } split(/\n/,$block->input);
    my ($code,$name,$is_os) = map { $_ eq 'UNDEF' ? undef : $_ eq 'NULL' ? '' : $_ } split(/\n/,$block->expected);
 
    $ENV{'HTTP_USER_AGENT'} = $ua;
    my $key                 = $ua =~ /^DoCoMo/   ? 'HTTP_X_DCMROAMING' :
                              $ua =~ /^SoftBank/ ? 'HTTP_X_JPHONE_REGION' :
                                                   'HTTP_X_UP_DEVCAP_ZONE';
    $ENV{$key}              = $data;

    my $ma = HTTP::MobileAgent->new;

    is ( $ma->zone_code,  $code  );
    is ( $ma->zone_name,  $name  );
    is ( $ma->is_oversea, $is_os );
};


__END__
=== DoCoMo No Data
--- input
DoCoMo/2.0 P903i(c100;TB;W24H12)
UNDEF
--- expected
440
Japan
0

=== DoCoMo No Data
--- input
DoCoMo/2.0 P903i(c100;TB;W24H12)
NULL
--- expected
440
Japan
0

=== DoCoMo Greece
--- input
DoCoMo/2.0 P903i(c100;TB;W24H12)
 202
--- expected
202
Greece
1

=== DoCoMo Haiti
--- input
DoCoMo/2.0 P903i(c100;TB;W24H12)
 372
--- expected
372
Haiti (Republic of)
1

=== SoftBank No Data
--- input
SoftBank/1.0/910T/TJ001/SN351774012575317 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1
UNDEF
--- expected
440
Japan
0

=== SoftBank No Data
--- input
SoftBank/1.0/910T/TJ001/SN351774012575317 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1
NULL
--- expected
440
Japan
0

=== SoftBank Japan
--- input
SoftBank/1.0/910T/TJ001/SN351774012575317 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1
44020
--- expected
44020
Japan
0

=== SoftBank Oversea
--- input
SoftBank/1.0/910T/TJ001/SN351774012575317 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1
fffff
--- expected
fffff
Unknown
1

=== EZWEB No Data
--- input
KDDI-SA3D UP.Browser/6.2_7.2.7.1.K.1.5.123 (GUI) MMP/2.0
NULL
--- expected
12304
Japan
0

=== EZWEB No Data
--- input
KDDI-SA3D UP.Browser/6.2_7.2.7.1.K.1.5.123 (GUI) MMP/2.0
UNDEF
--- expected
12304
Japan
0

=== EZWEB Japan? (Need more information)
--- input
KDDI-SA3D UP.Browser/6.2_7.2.7.1.K.1.5.123 (GUI) MMP/2.0
12304
--- expected
12304
Japan
0

=== EZWEB Other case? (Need more information)
--- input
KDDI-SA3D UP.Browser/6.2_7.2.7.1.K.1.5.123 (GUI) MMP/2.0
12345
--- expected
12345
Japan
0