HTML-DeferableCSS

 view release on metacpan or  search on metacpan

t/defer.t  view on Meta::CPAN

subtest "deferred_link_html with defer and inline disabled" => sub {

    my $css = HTML::DeferableCSS->new(
        css_root => 't/etc/css',
        aliases  => {
            reset => 'reset',
            test  => 'foo',
            nope  => undef,
        },
        inline_max => 0,
        defer_css  => 0,
    );

    isa_ok $css, 'HTML::DeferableCSS';

    is $css->deferred_link_html('nope'), "", "disabled link";

    is $css->deferred_link_html('test'), $css->link_html('test'),
        'deferred_link_html';

    is $css->deferred_link_html('test', 'test', 'nope'), $css->link_html('test'),
        'deferred_link_html (duplicates removed)';

};

subtest "deferred_link_html with defer disabled" => sub {

    my $css = HTML::DeferableCSS->new(
        css_root => 't/etc/css',
        aliases  => {
            reset => 'reset',
            test  => 'foo',
        },
        defer_css  => 0,
    );

    isa_ok $css, 'HTML::DeferableCSS';

    is $css->deferred_link_html('test'), $css->link_or_inline_html('test'),
        'deferred_link_html';

};

subtest "deferred_link_html with inline disabled" => sub {

    my $css = HTML::DeferableCSS->new(
        css_root => 't/etc/css',
        aliases  => {
            reset => 'reset',
            test  => 'foo',
        },
        inline_max => 0,
    );

    isa_ok $css, 'HTML::DeferableCSS';

    ok $css->preload_script, 'preload script exists';

    my $link = $css->link_html('test');

    ok my $cdata = $css->preload_script->slurp_raw, 'got script content';


    my $html = $css->deferred_link_html('test');


    is $html, '<link rel="preload" as="style" href="/foo.css" onload="this.onload=null;this.rel=\'stylesheet\'"><noscript>' . $link . '</noscript><script>' . $cdata . '</script>',
        'deferred_link_html';

};

subtest "deferred_link_html with inline disabled, simple mode" => sub {

    my $css = HTML::DeferableCSS->new(
        css_root => 't/etc/css',
        aliases  => {
            reset => 'reset',
            test  => 'foo',
        },
        inline_max => 0,
        simple     => 1,
        include_noscript => 0,
    );

    isa_ok $css, 'HTML::DeferableCSS';

    ok $css->simple, 'simple mode';

    my $html = $css->deferred_link_html('test');

    is $html, '<link rel="preload" as="style" href="/foo.css">' .
        q{<link rel="stylesheet" href="/foo.css" media="print" onload="this.media='all';this.onload=null;">},
        'deferred_link_html';

};

done_testing;



( run in 3.978 seconds using v1.01-cache-2.11-cpan-df04353d9ac )