Brownie

 view release on metacpan or  search on metacpan

t/driver/mechanize/headers.t  view on Meta::CPAN

use Brownie::Driver::Mechanize;

my $driver = Brownie::Driver::Mechanize->new;

my $body = '<html><body>ok</body></html>';

my $httpd = Test::Fake::HTTPD->new(timeout => 30);
$httpd->run(sub { [ 200, [ 'Content-Type' => 'text/html; charset=utf-8' ], [ $body ] ] });

subtest 'Headers' => sub {
    $driver->visit($httpd->endpoint);

    subtest 'status_code' => sub {
        is $driver->status_code => '200';
    };

    subtest 'response_headers' => sub {
        my $headers = $driver->response_headers;
        isa_ok $headers => 'HTTP::Headers';

        my $ct = $headers->header('Content-Type');

t/driver/mechanize/navigation.t  view on Meta::CPAN


my $driver = Brownie::Driver::Mechanize->new;

my $body = <<__HTTPD__;
<html><body>ok</body></html>
__HTTPD__

my $httpd = Test::Fake::HTTPD->new(timeout => 30);
$httpd->run(sub { [ 200, [ 'Content-Type' => 'text/html' ], [ $body ] ] });

my $base_url  = $httpd->endpoint;
my $other_url = $base_url->clone;
$other_url->path('/foo/bar');

subtest 'Navigation' => sub {
    subtest 'visit' => sub {
        lives_ok { $driver->visit($base_url) };
    };

    subtest 'current_url' => sub {
        for my $url ($base_url, $other_url) {

t/driver/mechanize/pages.t  view on Meta::CPAN

<html>
  <head><title>test title</title></head>
  <body>Hello Brownie</body>
</html>
__HTTPD__

my $httpd = Test::Fake::HTTPD->new(timeout => 30);
$httpd->run(sub { [ 200, [ 'Content-Type' => 'text/html' ], [ $body ] ] });

subtest 'Pages' => sub {
    $driver->visit($httpd->endpoint);

    subtest 'title' => sub {
        is $driver->title => 'test title';
    };

    subtest 'source' => sub {
        my $data = $driver->source;
        like $data => qr!<html>!s;
        like $data => qr!</html>!s;
        like $data => qr!Hello Brownie!;

t/driver/selenium_server/navigation.t  view on Meta::CPAN


my $driver = Brownie::Driver::SeleniumServer->new;

my $body = <<__HTTPD__;
<html><body>ok</body></html>
__HTTPD__

my $httpd = Test::Fake::HTTPD->new(timeout => 30);
$httpd->run(sub { [ 200, [ 'Content-Type' => 'text/html' ], [ $body ] ] });

my $base_url  = $httpd->endpoint;

subtest 'Navigation' => sub {
    my @path = qw(
        /foo/bar
        /baz/quux
    );

    subtest 'visit' => sub {
        lives_ok { $driver->visit($base_url) };
    };

t/driver/selenium_server/pages.t  view on Meta::CPAN

<html>
  <head><title>test title</title></head>
  <body>Hello Brownie</body>
</html>
__HTTPD__

my $httpd = Test::Fake::HTTPD->new(timeout => 30);
$httpd->run(sub { [ 200, [ 'Content-Type' => 'text/html' ], [ $body ] ] });

subtest 'Pages' => sub {
    $driver->visit($httpd->endpoint);

    subtest 'title' => sub {
        is $driver->title => 'test title';
    };

    subtest 'source' => sub {
        my $data = $driver->source;
        like $data => qr!<html!s;
        like $data => qr!</html>!s;
        like $data => qr!Hello Brownie!;

t/driver/selenium_server/scripting.t  view on Meta::CPAN

my $driver = Brownie::Driver::SeleniumServer->new;

my $body = <<__HTTPD__;
<html><body>ok</body></html>
__HTTPD__

my $httpd = Test::Fake::HTTPD->new(timeout => 30);
$httpd->run(sub { [ 200, [ 'Content-Type' => 'text/html' ], [ $body ] ] });

subtest 'Scripting' => sub {
    $driver->visit($httpd->endpoint);

    subtest 'execute_script' => sub {
        lives_ok { $driver->execute_script("document.title='execute_script'") };
        is $driver->title => 'execute_script';
    };

    subtest 'evaluate_script' => sub {
        my $got;
        lives_ok { $got = $driver->evaluate_script('1 + 2') };
        is $got => 3;

t/node/mechanize/accessor.t  view on Meta::CPAN

    <form>
      <input type="text" name="text" id="text" value="text value"/>
    </form>
  </body>
</html>
__HTTPD__

my $httpd = Test::Fake::HTTPD->new(timeout => 30);
$httpd->run(sub { [ 200, [ 'Content-Type' => 'text/html; charset=utf-8' ], [ $body ] ] });

my $base_url = $httpd->endpoint;

subtest 'Accessor' => sub {
    $driver->visit($base_url);
    my $doc = $driver->find('/html');

    subtest 'text element' => sub {
        my $elem = $doc->find('h1');

        is $elem->tag_name      => 'h1';
        is $elem->text          => 'Heading 1';

t/node/mechanize/finder.t  view on Meta::CPAN

    <div id="parent">
      <p>inner paragraph</p>
    </div>
  </body>
</html>
__HTTPD__

my $httpd = Test::Fake::HTTPD->new(timeout => 30);
$httpd->run(sub { [ 200, [ 'Content-Type' => 'text/html; charset=utf-8' ], [ $body ] ] });

my $base_url = $httpd->endpoint;

subtest 'Finder' => sub {
    $driver->visit($base_url);
    my $doc = $driver->find('/html');

    subtest 'using XPath' => sub {
        subtest 'all' => sub {
            is scalar($doc->all('//li'))                => 5;
            is scalar($doc->all('//li[@class="even"]')) => 2;

t/node/mechanize/state.t  view on Meta::CPAN

      <input type="radio" name="radio" id="radio1" value="radio1" checked="checked"/>
      <input type="radio" name="radio" id="radio2" value="radio2"/>
   </form>
  </body>
</html>
__HTTPD__

my $httpd = Test::Fake::HTTPD->new(timeout => 30);
$httpd->run(sub { [ 200, [ 'Content-Type' => 'text/html; charset=utf-8' ], [ $body ] ] });

my $base_url = $httpd->endpoint;

subtest 'State' => sub {
    $driver->visit($base_url);
    my $doc = $driver->find('/html');

    subtest 'visibility' => sub {
        ok $doc->find('h1')->is_displayed;

        ok $doc->find('head')->is_not_displayed;
        ok $doc->find('script')->is_not_displayed;

t/node/selenium_server/accessor.t  view on Meta::CPAN

    <form>
      <input type="text" name="text" id="text" value="text value"/>
    </form>
  </body>
</html>
__HTTPD__

my $httpd = Test::Fake::HTTPD->new(timeout => 30);
$httpd->run(sub { [ 200, [ 'Content-Type' => 'text/html; charset=utf-8' ], [ $body ] ] });

my $base_url = $httpd->endpoint;

subtest 'Accessor' => sub {
    $driver->visit($base_url);
    my $doc = $driver->find('/html');

    subtest 'text element' => sub {
        my $elem = $doc->find('h1');

        is $elem->tag_name      => 'h1';
        is $elem->text          => 'Heading 1';

t/node/selenium_server/finder.t  view on Meta::CPAN

    <div id="parent">
      <p>inner paragraph</p>
    </div>
  </body>
</html>
__HTTPD__

my $httpd = Test::Fake::HTTPD->new(timeout => 30);
$httpd->run(sub { [ 200, [ 'Content-Type' => 'text/html; charset=utf-8' ], [ $body ] ] });

my $base_url = $httpd->endpoint;

subtest 'Finder' => sub {
    $driver->visit($base_url);
    my $doc = $driver->find('/html');

    subtest 'using XPath' => sub {
        subtest 'all' => sub {
            is scalar($doc->all('//li'))                => 5;
            is scalar($doc->all('//li[@class="even"]')) => 2;

t/node/selenium_server/state.t  view on Meta::CPAN

      <input type="radio" name="radio" id="radio1" value="radio1" checked="checked"/>
      <input type="radio" name="radio" id="radio2" value="radio2"/>
   </form>
  </body>
</html>
__HTTPD__

my $httpd = Test::Fake::HTTPD->new(timeout => 30);
$httpd->run(sub { [ 200, [ 'Content-Type' => 'text/html; charset=utf-8' ], [ $body ] ] });

my $base_url = $httpd->endpoint;

subtest 'State' => sub {
    $driver->visit($base_url);
    my $doc = $driver->find('/html');

    subtest 'visibility' => sub {
        ok $doc->find('h1')->is_displayed;

        ok $doc->find('head')->is_not_displayed;
        ok $doc->find('script')->is_not_displayed;

t/session/external_server.t  view on Meta::CPAN

use Test::More;
use Brownie::Session;
use Test::Fake::HTTPD;

subtest 'use external app' => sub {
    my $httpd = Test::Fake::HTTPD->new(timeout => 30);
    $httpd->run(sub {
        return [ 200, [ 'Content-Type' => 'text/html' ], [ 'OK' ] ];
    });

    my $bs = Brownie::Session->new(app_host => $httpd->endpoint);
    ok $bs->app_host;
    is $bs->app_host => $httpd->endpoint;

    $bs->visit('/');
    is $bs->current_url => $bs->app_host . '/';
    is $bs->status_code => 200;
    is $bs->body        => 'OK';
};

done_testing;

t/session/mechanize/click_link.t  view on Meta::CPAN

    </p>
  </body>
</html>
__HTTPD__

    [ 200, [ 'Content-Type' => 'text/html;charset=utf-8' ], [$body] ];
};

my $bs = Brownie::Session->new(driver => 'Mechanize', app => $app);

my @endpoints = (
    ['link_id',       '/id'],
    ['Text of Link',  '/text'],
    ['Title of Link', '/title'],
    ['Alt of Image',  '/img/alt'],
);

subtest 'click_link' => sub {
    for (@endpoints) {
        my ($locator, $path) = @$_;
        $bs->visit('/');

        is $bs->current_path => '/';
        ok $bs->click_link($locator);
        is $bs->current_path => $path;
    }
};

subtest 'click_link_or_button' => sub {
    for (@endpoints) {
        my ($locator, $path) = @$_;
        $bs->visit('/');

        is $bs->current_path => '/';
        ok $bs->click_link_or_button($locator);
        is $bs->current_path => $path;
    }
};

done_testing;

t/session/selenium_server/click_link.t  view on Meta::CPAN

    </p>
  </body>
</html>
__HTTPD__

    [ 200, [ 'Content-Type' => 'text/html;charset=utf-8' ], [$body] ];
};

my $bs = Brownie::Session->new(driver => 'SeleniumServer', app => $app);

my @endpoints = (
    ['link_id',       '/id'],
    ['Text of Link',  '/text'],
    ['Title of Link', '/title'],
    ['Alt of Image',  '/img/alt'],
);

subtest 'click_link' => sub {
    for (@endpoints) {
        my ($locator, $path) = @$_;
        $bs->visit('/');

        is $bs->current_path => '/';
        ok $bs->click_link($locator);
        is $bs->current_path => $path;
    }
};

subtest 'click_link_or_button' => sub {
    for (@endpoints) {
        my ($locator, $path) = @$_;
        $bs->visit('/');

        is $bs->current_path => '/';
        ok $bs->click_link_or_button($locator);
        is $bs->current_path => $path;
    }
};

done_testing;

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.791 second using v1.00-cache-2.02-grep-82fe00e-cpan-4673cadbf75 )