|
@@ -7,210 +7,227 @@ use Test::Selenium::Remote::WebElement;
|
|
|
|
|
|
|
|
# Start off by faking a bunch of Selenium::Remote::WebElement calls succeeding
|
|
# Start off by faking a bunch of Selenium::Remote::WebElement calls succeeding
|
|
|
my $successful_element = Test::Selenium::Remote::WebElement->new;
|
|
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->set_list('get_tag_name','iframe');
|
|
|
|
|
-$successful_element->set_list('get_value','my_value');
|
|
|
|
|
-$successful_element->set_list('get_text','my_text');
|
|
|
|
|
|
|
+$successful_element = Test::MockObject::Extends->new($successful_element);
|
|
|
|
|
|
|
|
-# 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 => "",
|
|
|
|
|
- }
|
|
|
|
|
|
|
+$successful_element->set_true(
|
|
|
|
|
+ qw/
|
|
|
|
|
+ clear
|
|
|
|
|
+ click
|
|
|
|
|
+ submit
|
|
|
|
|
+ is_selected
|
|
|
|
|
+ is_enabled
|
|
|
|
|
+ is_displayed
|
|
|
|
|
+ send_keys
|
|
|
|
|
+ /
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
-check_test(
|
|
|
|
|
- sub { $successful_element->clear_ok('test_name') },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "test_name... no return value",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
-);
|
|
|
|
|
|
|
+$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"} );
|
|
|
|
|
|
|
|
-check_test(
|
|
|
|
|
- sub { $successful_element->click_ok },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "click... no return value",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
-);
|
|
|
|
|
|
|
+# Given input 'foo' to 'get_attribute', return 'my_foo';
|
|
|
|
|
+$successful_element->mock( 'get_attribute', sub { 'my_' . $_[1] } );
|
|
|
|
|
|
|
|
-check_test(
|
|
|
|
|
- sub { $successful_element->submit_ok },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "submit... no return value",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
-);
|
|
|
|
|
|
|
+# check_test(
|
|
|
|
|
+# sub { $successful_element->clear_ok },
|
|
|
|
|
+# {
|
|
|
|
|
+# ok => 1,
|
|
|
|
|
+# name => "clear... no return value",
|
|
|
|
|
+# diag => "",
|
|
|
|
|
+# }
|
|
|
|
|
+# );
|
|
|
|
|
|
|
|
-check_test(
|
|
|
|
|
- sub { $successful_element->is_selected_ok },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "is_selected",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
-);
|
|
|
|
|
|
|
+# check_test(
|
|
|
|
|
+# sub { $successful_element->clear_ok('test_name') },
|
|
|
|
|
+# {
|
|
|
|
|
+# ok => 1,
|
|
|
|
|
+# name => "test_name... no return value",
|
|
|
|
|
+# diag => "",
|
|
|
|
|
+# }
|
|
|
|
|
+# );
|
|
|
|
|
|
|
|
-check_test(
|
|
|
|
|
- sub { $successful_element->is_enabled_ok },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "is_enabled",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
-);
|
|
|
|
|
|
|
+# check_test(
|
|
|
|
|
+# sub { $successful_element->click_ok },
|
|
|
|
|
+# {
|
|
|
|
|
+# ok => 1,
|
|
|
|
|
+# name => "click... no return value",
|
|
|
|
|
+# diag => "",
|
|
|
|
|
+# }
|
|
|
|
|
+# );
|
|
|
|
|
|
|
|
-check_test(
|
|
|
|
|
- sub { $successful_element->is_displayed_ok },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "is_displayed",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
-);
|
|
|
|
|
|
|
+# check_test(
|
|
|
|
|
+# sub { $successful_element->submit_ok },
|
|
|
|
|
+# {
|
|
|
|
|
+# ok => 1,
|
|
|
|
|
+# name => "submit... no return value",
|
|
|
|
|
+# diag => "",
|
|
|
|
|
+# }
|
|
|
|
|
+# );
|
|
|
|
|
|
|
|
-check_test(
|
|
|
|
|
- sub { $successful_element->send_keys_ok('Hello World', 'I sent keys') },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "I sent keys... 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_*
|
|
# tag_name_*
|
|
|
{
|
|
{
|
|
|
check_test(
|
|
check_test(
|
|
|
- sub { $successful_element->tag_name_is('iframe','Got an iframe tag?') },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "Got an iframe tag?",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ sub {
|
|
|
|
|
+ $successful_element->tag_name_is( 'iframe', 'Got an iframe tag?' );
|
|
|
|
|
+ },
|
|
|
|
|
+ { ok => 1,
|
|
|
|
|
+ name => "Got an iframe tag?",
|
|
|
|
|
+ diag => "",
|
|
|
|
|
+ }
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
check_test(
|
|
check_test(
|
|
|
- sub { $successful_element->tag_name_isnt('BOOM','Not BOOM.') },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "Not BOOM.",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ sub { $successful_element->tag_name_isnt( 'BOOM', 'Not BOOM.' ) },
|
|
|
|
|
+ { ok => 1,
|
|
|
|
|
+ name => "Not BOOM.",
|
|
|
|
|
+ diag => "",
|
|
|
|
|
+ }
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
check_test(
|
|
check_test(
|
|
|
- sub { $successful_element->tag_name_like(qr/frame/,'Matches iframe tag?') },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "Matches iframe tag?",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ sub {
|
|
|
|
|
+ $successful_element->tag_name_like( qr/frame/,
|
|
|
|
|
+ 'Matches iframe tag?' );
|
|
|
|
|
+ },
|
|
|
|
|
+ { ok => 1,
|
|
|
|
|
+ name => "Matches iframe tag?",
|
|
|
|
|
+ diag => "",
|
|
|
|
|
+ }
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
check_test(
|
|
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 => "",
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ 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_*
|
|
# value_*
|
|
|
{
|
|
{
|
|
|
check_test(
|
|
check_test(
|
|
|
- sub { $successful_element->value_is('my_value','Got an my_value value?') },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "Got an my_value value?",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ sub {
|
|
|
|
|
+ $successful_element->value_is( 'my_value',
|
|
|
|
|
+ 'Got an my_value value?' );
|
|
|
|
|
+ },
|
|
|
|
|
+ { ok => 1,
|
|
|
|
|
+ name => "Got an my_value value?",
|
|
|
|
|
+ diag => "",
|
|
|
|
|
+ }
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
check_test(
|
|
check_test(
|
|
|
- sub { $successful_element->value_isnt('BOOM','Not BOOM.') },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "Not BOOM.",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ sub { $successful_element->value_isnt( 'BOOM', 'Not BOOM.' ) },
|
|
|
|
|
+ { ok => 1,
|
|
|
|
|
+ name => "Not BOOM.",
|
|
|
|
|
+ diag => "",
|
|
|
|
|
+ }
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
check_test(
|
|
check_test(
|
|
|
- sub { $successful_element->value_like(qr/val/,'Matches my_value value?') },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "Matches my_value value?",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ sub {
|
|
|
|
|
+ $successful_element->value_like( qr/val/,
|
|
|
|
|
+ 'Matches my_value value?' );
|
|
|
|
|
+ },
|
|
|
|
|
+ { ok => 1,
|
|
|
|
|
+ name => "Matches my_value value?",
|
|
|
|
|
+ diag => "",
|
|
|
|
|
+ }
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
check_test(
|
|
check_test(
|
|
|
- sub { $successful_element->value_unlike(qr/BOOM/,"value doesn't match BOOM") },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "value doesn't match BOOM",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ sub {
|
|
|
|
|
+ $successful_element->value_unlike( qr/BOOM/,
|
|
|
|
|
+ "value doesn't match BOOM" );
|
|
|
|
|
+ },
|
|
|
|
|
+ { ok => 1,
|
|
|
|
|
+ name => "value doesn't match BOOM",
|
|
|
|
|
+ diag => "",
|
|
|
|
|
+ }
|
|
|
);
|
|
);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
# text_*
|
|
# text_*
|
|
|
{
|
|
{
|
|
|
check_test(
|
|
check_test(
|
|
|
- sub { $successful_element->text_is('my_text','Got an my_text value?') },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "Got an my_text value?",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ 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(
|
|
check_test(
|
|
|
- sub { $successful_element->text_isnt('BOOM','Not BOOM.') },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "Not BOOM.",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ sub { $successful_element->text_isnt( 'BOOM', 'Not BOOM.' ) },
|
|
|
|
|
+ { ok => 1,
|
|
|
|
|
+ name => "Not BOOM.",
|
|
|
|
|
+ diag => "",
|
|
|
|
|
+ }
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
check_test(
|
|
check_test(
|
|
|
- sub { $successful_element->text_like(qr/tex/,'Matches my_text value?') },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "Matches my_text value?",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ sub {
|
|
|
|
|
+ $successful_element->text_like( qr/tex/,
|
|
|
|
|
+ 'Matches my_text value?' );
|
|
|
|
|
+ },
|
|
|
|
|
+ { ok => 1,
|
|
|
|
|
+ name => "Matches my_text value?",
|
|
|
|
|
+ diag => "",
|
|
|
|
|
+ }
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
check_test(
|
|
check_test(
|
|
|
- sub { $successful_element->text_unlike(qr/BOOM/,"text doesn't match BOOM") },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "text doesn't match BOOM",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ sub {
|
|
|
|
|
+ $successful_element->text_unlike( qr/BOOM/,
|
|
|
|
|
+ "text doesn't match BOOM" );
|
|
|
|
|
+ },
|
|
|
|
|
+ { ok => 1,
|
|
|
|
|
+ name => "text doesn't match BOOM",
|
|
|
|
|
+ diag => "",
|
|
|
|
|
+ }
|
|
|
);
|
|
);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -221,12 +238,14 @@ check_test(
|
|
|
{
|
|
{
|
|
|
local $TODO = 'not implemented yet.';
|
|
local $TODO = 'not implemented yet.';
|
|
|
check_test(
|
|
check_test(
|
|
|
- sub { $successful_element->attribute_is('foo', 'my_foo', 'attribute_is matched') },
|
|
|
|
|
- {
|
|
|
|
|
- ok => 1,
|
|
|
|
|
- name => "attribute_is matched",
|
|
|
|
|
- diag => "",
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ sub {
|
|
|
|
|
+ $successful_element->attribute_is( 'foo', 'my_foo',
|
|
|
|
|
+ 'attribute_is matched' );
|
|
|
|
|
+ },
|
|
|
|
|
+ { ok => 1,
|
|
|
|
|
+ name => "attribute_is matched",
|
|
|
|
|
+ diag => "",
|
|
|
|
|
+ }
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
}
|
|
}
|