use strict;
my $driver = Brownie::Driver::SeleniumServer->new;
my $body = <<__HTTPD__;
<html>
<head>
<title>test title</title>
</head>
<body>
<script type="text/javascript">var num = 1 + 1;</script>
<h1>Heading 1</h1>
<form>
<input type="hidden" name="hidden" id="hidden" value="value"/>
<input type="checkbox" name="check" id="check1" value="check1" checked="checked"/>
<input type="checkbox" name="check" id="check2" value="check2"/>
<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;
ok $doc->find('#hidden')->is_not_displayed;
};
subtest 'selection' => sub {
ok $doc->find('#check1')->is_checked;
ok $doc->find('#radio1')->is_checked;
ok $doc->find('#check2')->is_not_checked;
ok $doc->find('#radio2')->is_not_checked;
};
};
done_testing;