# t/license.t
use strict;
use warnings;
use Test::More;
use_ok( 'ExtUtils::ModuleMaker' );
use_ok( 'ExtUtils::ModuleMaker::Licenses::Standard' );
use_ok( 'ExtUtils::ModuleMaker::Auxiliary', qw( licensetest ) );


{   # apache
    licensetest( 'ExtUtils::ModuleMaker', 'apache',
        qr/Apache Software License/s );
}

{   # apache_1_1
    licensetest( 'ExtUtils::ModuleMaker', 'apache_1_1',
        qr/Apache Software License.*Version 1\.1/s );
}

{   # artistic
    licensetest( 'ExtUtils::ModuleMaker', 'artistic',
        qr/The Artistic License.*Preamble/s );
}

{   # artistic_agg
    licensetest( 'ExtUtils::ModuleMaker', 'artistic_agg',
        qr/The Artistic License.*Preamble.*Aggregation of this Package with a commercial distribution/s );
}

{   # bsd
    licensetest( 'ExtUtils::ModuleMaker', 'bsd',
        qr/The BSD License\s+Copyright/s );
}

{   # gpl
    licensetest( 'ExtUtils::ModuleMaker', 'gpl',
        qr/The General Public License \(GPL\)\s+Version 2, June 1991/s );
}

{   # gpl_2
    licensetest( 'ExtUtils::ModuleMaker', 'gpl_2',
        qr/The General Public License \(GPL\)\s+Version 2, June 1991/s );
}

{   # ibm
    licensetest( 'ExtUtils::ModuleMaker', 'ibm',
        qr/IBM Public License Version \(1\.0\)/s );
}

{   # ibm_1_0
    licensetest( 'ExtUtils::ModuleMaker', 'ibm_1_0',
        qr/IBM Public License Version \(1\.0\)/s );
}

{   # intel
    licensetest( 'ExtUtils::ModuleMaker', 'intel',
        qr/The Intel Open Source License for CDSA\/CSSM Implementation\s+\(BSD License with Export Notice\)/s );
}

{   # jabber
    licensetest( 'ExtUtils::ModuleMaker', 'jabber',
        qr/Jabber Open Source License \(Version 1\.0\)/s );
}

{   # jabber_1_0
    licensetest( 'ExtUtils::ModuleMaker', 'jabber_1_0',
        qr/Jabber Open Source License \(Version 1\.0\)/s );
}

{   # lgpl
    licensetest( 'ExtUtils::ModuleMaker', 'lgpl',
        qr/The GNU Lesser General Public License \(LGPL\)\s+Version 2\.1, February 1999/s );
}

{   # lgpl_2_1
    licensetest( 'ExtUtils::ModuleMaker', 'lgpl_2_1',
        qr/The GNU Lesser General Public License \(LGPL\)\s+Version 2\.1, February 1999/s );
}

{   # libpng
    licensetest( 'ExtUtils::ModuleMaker', 'libpng',
        qr/The zlib\/libpng License/s );
}

{   # mit
    licensetest( 'ExtUtils::ModuleMaker', 'mit',
        qr/The MIT License\s+Copyright/s );
}

{   # mitre
    licensetest( 'ExtUtils::ModuleMaker', 'mitre',
        qr/MITRE Collaborative Virtual Workspace License \(CVW License\)/s );
}

{   # mozilla
    licensetest( 'ExtUtils::ModuleMaker', 'mozilla',
        qr/Mozilla Public License 1\.1 \(MPL 1\.1\)/s );
}

{   # mozilla_1_0
    licensetest( 'ExtUtils::ModuleMaker', 'mozilla_1_0',
        qr/Mozilla Public License \(Version 1\.0\)\s+1\. Definitions\./s );
}

{   # mozilla_1_1
    licensetest( 'ExtUtils::ModuleMaker', 'mozilla_1_1',
        qr/Mozilla Public License 1\.1 \(MPL 1\.1\)/s );
}

{   # mpl
    licensetest( 'ExtUtils::ModuleMaker', 'mpl',
        qr/Mozilla Public License 1\.1 \(MPL 1\.1\)/s );
}

{   # mpl_1_0
    licensetest( 'ExtUtils::ModuleMaker', 'mpl_1_0',
        qr/Mozilla Public License \(Version 1\.0\)\s+1\. Definitions\./s );
}

{   # mpl_1_1
    licensetest( 'ExtUtils::ModuleMaker', 'mpl_1_1',
        qr/Mozilla Public License 1\.1 \(MPL 1\.1\)/s );
}

{   # nethack
    licensetest( 'ExtUtils::ModuleMaker', 'nethack',
        qr/Nethack General Public License/s );
}

{   # nokia
    licensetest( 'ExtUtils::ModuleMaker', 'nokia',
        qr/Nokia Open Source License \(NOKOS License\) Version 1\.0a/s );
}

{   # nokia_1_0a
    licensetest( 'ExtUtils::ModuleMaker', 'nokia_1_0a',
        qr/Nokia Open Source License \(NOKOS License\) Version 1\.0a/s );
}

{   # nokos
    licensetest( 'ExtUtils::ModuleMaker', 'nokos',
        qr/Nokia Open Source License \(NOKOS License\) Version 1\.0a/s );
}

{   # nokos_1_0a
    licensetest( 'ExtUtils::ModuleMaker', 'nokos_1_0a',
        qr/Nokia Open Source License \(NOKOS License\) Version 1\.0a/s );
}

{   # perl
    licensetest( 'ExtUtils::ModuleMaker', 'perl',
        qr/Terms of Perl itself.*GNU General Public License.*Artistic License/s );
}

{   # python
    licensetest( 'ExtUtils::ModuleMaker', 'python',
        qr/Python License\s+CNRI OPEN SOURCE LICENSE AGREEMENT/s );
}

{   # q
    licensetest( 'ExtUtils::ModuleMaker', 'q',
        qr/The Q Public License\s+Version 1\.0/s );
}

{   # q_1_0
    licensetest( 'ExtUtils::ModuleMaker', 'q_1_0',
        qr/The Q Public License\s+Version 1\.0/s );
}

{   # r_bsd
    licensetest( 'ExtUtils::ModuleMaker', 'r_bsd',
        qr/The BSD License\s+The following/s );
}

{   # ricoh
    licensetest( 'ExtUtils::ModuleMaker', 'ricoh',
        qr/Ricoh Source Code Public License \(Version 1\.0\)/s );
}

{   # ricoh_1_0
    licensetest( 'ExtUtils::ModuleMaker', 'ricoh_1_0',
        qr/Ricoh Source Code Public License \(Version 1\.0\)/s );
}

{   # sissl
    licensetest( 'ExtUtils::ModuleMaker', 'sissl',
        qr/Sun Internet Standards Source License \(SISSL\)/s );
}

{   # sleepycat
    licensetest( 'ExtUtils::ModuleMaker', 'sleepycat',
        qr/The Sleepycat License/s );
}

{   # sun
    licensetest( 'ExtUtils::ModuleMaker', 'sun',
        qr/Sun Internet Standards Source License \(SISSL\)/s );
}

{   # vovida
    licensetest( 'ExtUtils::ModuleMaker', 'vovida',
        qr/Vovida Software License v\. 1\.0/s );
}

{   # vovida_1_0
    licensetest( 'ExtUtils::ModuleMaker', 'vovida_1_0',
        qr//s );
}

{   # zlib
    licensetest( 'ExtUtils::ModuleMaker', 'zlib',
        qr/The zlib\/libpng License/s );
}

my $self = ExtUtils::ModuleMaker::Licenses::Standard->interact();
isa_ok($self, 'ExtUtils::ModuleMaker::Licenses::Standard');

my $license = ExtUtils::ModuleMaker::Licenses::Standard::Custom_Licenses();
like($license->{COPYRIGHT}, qr/The full text/s, "Custom_Licenses() returned expected text");

done_testing();

