| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 |
- use Test::Tester;
- use Test::More;
- use Test::MockObject::Extends;
- use Test::Selenium::Remote::WebElement;
- # Start off by faking a bunch of Selenium::Remote::WebElement calls succeeding
- my $successful_element = Test::Selenium::Remote::WebElement->new;
- $successful_element = Test::MockObject::Extends->new($successful_element);
- $successful_element->set_true(
- qw/
- clear
- click
- submit
- is_selected
- is_enabled
- is_displayed
- send_keys
- /
- );
- $successful_element->mock( 'get_tag_name', sub {'iframe'} );
- $successful_element->mock( 'get_value', sub {'my_value'} );
- $successful_element->mock( 'get_text', sub {"my_text\nis fantastic"} );
- # Given input 'foo' to 'get_attribute', return 'my_foo';
- $successful_element->mock( 'get_attribute', sub { 'my_' . $_[1] } );
- # check_test(
- # sub { $successful_element->clear_ok },
- # {
- # ok => 1,
- # name => "clear... no return value",
- # diag => "",
- # }
- # );
- # check_test(
- # sub { $successful_element->clear_ok('test_name') },
- # {
- # ok => 1,
- # name => "test_name... no return value",
- # diag => "",
- # }
- # );
- # check_test(
- # sub { $successful_element->click_ok },
- # {
- # ok => 1,
- # name => "click... no return value",
- # diag => "",
- # }
- # );
- # check_test(
- # sub { $successful_element->submit_ok },
- # {
- # ok => 1,
- # name => "submit... no return value",
- # diag => "",
- # }
- # );
- # check_test(
- # sub { $successful_element->is_selected_ok },
- # {
- # ok => 1,
- # name => "is_selected",
- # diag => "",
- # }
- # );
- # check_test(
- # sub { $successful_element->is_enabled_ok },
- # {
- # ok => 1,
- # name => "is_enabled",
- # diag => "",
- # }
- # );
- # check_test(
- # sub { $successful_element->is_displayed_ok },
- # {
- # ok => 1,
- # name => "is_displayed",
- # diag => "",
- # }
- # );
- # check_test(
- # sub { $successful_element->send_keys_ok('Hello World', 'I sent keys') },
- # {
- # ok => 1,
- # name => "I sent keys... no return value",
- # diag => "",
- # }
- # );
- # tag_name_*
- {
- check_test(
- sub {
- $successful_element->tag_name_is( 'iframe', 'Got an iframe tag?' );
- },
- { ok => 1,
- name => "Got an iframe tag?",
- diag => "",
- }
- );
- check_test(
- sub { $successful_element->tag_name_isnt( 'BOOM', 'Not BOOM.' ) },
- { ok => 1,
- name => "Not BOOM.",
- diag => "",
- }
- );
- check_test(
- sub {
- $successful_element->tag_name_like( qr/frame/,
- 'Matches iframe tag?' );
- },
- { ok => 1,
- name => "Matches iframe tag?",
- diag => "",
- }
- );
- check_test(
- sub {
- $successful_element->tag_name_unlike( qr/BOOM/,
- "tag_name doesn't match BOOM" );
- },
- { ok => 1,
- name => "tag_name doesn't match BOOM",
- diag => "",
- }
- );
- }
- # value_*
- {
- check_test(
- sub {
- $successful_element->value_is( 'my_value',
- 'Got an my_value value?' );
- },
- { ok => 1,
- name => "Got an my_value value?",
- diag => "",
- }
- );
- check_test(
- sub { $successful_element->value_isnt( 'BOOM', 'Not BOOM.' ) },
- { ok => 1,
- name => "Not BOOM.",
- diag => "",
- }
- );
- check_test(
- sub {
- $successful_element->value_like( qr/val/,
- 'Matches my_value value?' );
- },
- { ok => 1,
- name => "Matches my_value value?",
- diag => "",
- }
- );
- check_test(
- sub {
- $successful_element->value_unlike( qr/BOOM/,
- "value doesn't match BOOM" );
- },
- { ok => 1,
- name => "value doesn't match BOOM",
- diag => "",
- }
- );
- }
- # text_*
- {
- check_test(
- sub {
- $successful_element->text_is( "my_text\nis fantastic",
- 'Got an my_text value?' );
- },
- { ok => 1,
- name => "Got an my_text value?",
- diag => "",
- }
- );
- check_test(
- sub { $successful_element->text_isnt( 'BOOM', 'Not BOOM.' ) },
- { ok => 1,
- name => "Not BOOM.",
- diag => "",
- }
- );
- check_test(
- sub {
- $successful_element->text_like( qr/tex/,
- 'Matches my_text value?' );
- },
- { ok => 1,
- name => "Matches my_text value?",
- diag => "",
- }
- );
- check_test(
- sub {
- $successful_element->text_unlike( qr/BOOM/,
- "text doesn't match BOOM" );
- },
- { ok => 1,
- name => "text doesn't match BOOM",
- diag => "",
- }
- );
- }
- # attribute_is($attr_name,$match_str,$test_name);
- # attribute_isnt($attr_name,$match_str,$test_name);
- # attribute_like($attr_name,$match_re,$test_name);
- # attribute_unlike($attr_name,$match_re,$test_name);
- {
- local $TODO = 'not implemented yet.';
- check_test(
- sub {
- $successful_element->attribute_is( 'foo', 'my_foo',
- 'attribute_is matched' );
- },
- { ok => 1,
- name => "attribute_is matched",
- diag => "",
- }
- );
- }
- # css_attribute_is($attr_name,$match_str,$test_name);
- # css_attribute_isnt($attr_name,$match_str,$test_name);
- # css_attribute_like($attr_name,$match_re,$test_name);
- # css_attribute_unlike($attr_name,$match_re,$test_name);
- done_testing();
|