NAME
Brownie - Browser integration framework inspired by Capybara
SYNOPSIS
OO-Style
use Test::More;
use Brownie::Session;
# external server
my $session = Brownie::Session->new(
    driver   => 'Mechanize',
    app_host => 'http://app.example.com:5000',
);
# PSGI app
my $session = Brownie::Session->new(
    driver => 'Mechanize',
    app    => sub { ...(PSGI app)... },
);
# PSGI file
my $session = Brownie::Session->new(
    driver => 'Mechanize',
    app    => 'app.psgi',
);
$session->visit('/');
is $session->title => 'Some Title';
$session->fill_in('User Name' => 'brownie');
$session->fill_in('Email Address' => 'brownie@example.com');
$session->click_button('Login');
like $session->source => qr/Welcome (.+)/;
$session->fill_in(q => 'Brownie');
$session->click_link_or_button('Search');
like $session->title => qr/Search result of Brownie/i;
done_testing;
DSL-Style
use Brownie::DSL;
# external server
Brownie->driver('Mechanize');
Brownie->app_host('http://app.example.com:5000');
# PSGI app
Brownie->driver('Mechanize');
Brownie->app(sub { ...(PSGI app)... });
# psgi file
Brownie->driver('Mechanize');
Brownie->app('app.psgi');
visit('/');
is page->title, 'Some Title';
fill_in('User Name' => 'brownie');
fill_in('Email Address' => 'brownie@example.com');
click_button('Login');
like page->source => qr/Welcome (.+)/;
fill_in(q => 'Brownie');
lick_link_or_button('Search');
like page->title => qr/Search result of Brownie/i;
done_testing;
DESCRIPTION
Brownie is browser integrtion framework. It is inspired by Capybara (Ruby).
VOCABULARY
visit($url)current_urlcurrent_pathtitlesourcescreenshot($filename)click_link($locator)click_button($locator)click_on($locator)fill_in($locator, $value)choose($locator)check($locator)uncheck($locator)select($locator)unselect($locator)attach_file($locator, $filename)execute_script($javascript)evaluate_script($javascript)find($locator)all($locator)
AUTHOR
NAKAGAWA Masaki <masaki@cpan.org>
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.