The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use Test::More;

use HTTP::AcceptLanguage;

plan skip_all => '$ENV{HTTP_ACCEPT_LANGUAGE_IANA} is undefine' unless $ENV{HTTP_ACCEPT_LANGUAGE_IANA};

require HTTP::Tiny;

my $res = HTTP::Tiny->new->get('http://www.iana.org/assignments/language-subtag-registry');
die 'Failed!' unless $res->{success};
die 'Failed!' unless $res->{content};

ok 1;
for my $line (split /\n/, $res->{content}) {
    chomp $line;
    next unless $line =~ /\A(?:Subtag|Tag): (.+)\z/;
    my $tag = $1;
    next if $tag =~ /\.\./; # skip to range registry

    my $parser    = HTTP::AcceptLanguage->new($tag);
    my @languages = $parser->languages;
    unless (scalar(@languages) == 1 && $languages[0] eq $tag) {
        ok 0, $tag;
    }
}

done_testing;