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 import => ['!pass'];

plan tests => 7;

{
    use Dancer;
    use File::Spec;
    use Dancer::Plugin::MobileDevice;
    setting show_errors => 1;

    set views => File::Spec->catfile('t', 'views');
    
    get '/' => sub {
        template 'index';
    };
}

use Dancer::Test;

sub resp_for_agent($$$) {
    my( $agent, $result, $comment ) = @_;

    # for Dancer 1.x
    $ENV{HTTP_USER_AGENT} = $agent;

    # for Dancer 2.x
    is dancer_response( GET => '/', undef,
        { HTTP_USER_AGENT => $agent } )->{content} => $result, $comment;
} 

# expose a bug
set layout => 'main';

resp_for_agent $_, "main\nis_mobile_device: 0\n\n",
        "main layout for non-mobile agent $_" for qw/ Mozilla Opera /;

# no default layout
set layout => undef;

resp_for_agent 'Android' 
    => "is_mobile_device: 1\n", 
    "No layout used unless asked to";

# this is a bit dirty
if ( $Dancer::VERSION < 2 ) {
    my $settings = Dancer::Config::settings();
    $settings->{plugins}{MobileDevice}{mobile_layout} = 'mobile';
}
else {
    config->{plugins}{MobileDevice}{mobile_layout} = 'mobile';
}

resp_for_agent 'Android' =>
    "mobile\nis_mobile_device: 1\n\n",
    "mobile layout is set for mobile agents when desired";


resp_for_agent 'Mozilla',
    "is_mobile_device: 0\n", 
    "no layout for non-mobile agents";

set layout => 'main';

resp_for_agent 'Android' =>
    "mobile\nis_mobile_device: 1\n\n", 
    "mobile layout is set for mobile agents still";

resp_for_agent 'Mozilla' =>
    "main\nis_mobile_device: 0\n\n", 
    "main layout for non-mobile agents";