1
0

Test-Selenium-Remote-WebElement.t 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. use Test::Tester;
  2. use Test::More;
  3. use Test::MockObject::Extends;
  4. use Test::Selenium::Remote::WebElement;
  5. # Start off by faking a bunch of Selenium::Remote::WebElement calls succeeding
  6. my $successful_element = Test::Selenium::Remote::WebElement->new;
  7. $successful_element = Test::MockObject::Extends->new( $successful_element );
  8. $successful_element->set_true(qw/
  9. clear
  10. click
  11. submit
  12. is_selected
  13. is_enabled
  14. is_displayed
  15. send_keys
  16. /);
  17. $successful_element->set_list('get_tag_name','iframe');
  18. $successful_element->set_list('get_value','my_value');
  19. # Given input 'foo' to 'get_attribute', return 'my_foo';
  20. $successful_element->mock('get_attribute',sub { 'my_'.$_[1] } );
  21. check_test(
  22. sub { $successful_element->clear_ok },
  23. {
  24. ok => 1,
  25. name => "clear... no return value",
  26. diag => "",
  27. }
  28. );
  29. check_test(
  30. sub { $successful_element->clear_ok('test_name') },
  31. {
  32. ok => 1,
  33. name => "test_name... no return value",
  34. diag => "",
  35. }
  36. );
  37. check_test(
  38. sub { $successful_element->click_ok },
  39. {
  40. ok => 1,
  41. name => "click... no return value",
  42. diag => "",
  43. }
  44. );
  45. check_test(
  46. sub { $successful_element->submit_ok },
  47. {
  48. ok => 1,
  49. name => "submit... no return value",
  50. diag => "",
  51. }
  52. );
  53. check_test(
  54. sub { $successful_element->is_selected_ok },
  55. {
  56. ok => 1,
  57. name => "is_selected",
  58. diag => "",
  59. }
  60. );
  61. check_test(
  62. sub { $successful_element->is_enabled_ok },
  63. {
  64. ok => 1,
  65. name => "is_enabled",
  66. diag => "",
  67. }
  68. );
  69. check_test(
  70. sub { $successful_element->is_displayed_ok },
  71. {
  72. ok => 1,
  73. name => "is_displayed",
  74. diag => "",
  75. }
  76. );
  77. check_test(
  78. sub { $successful_element->send_keys_ok('Hello World', 'I sent keys') },
  79. {
  80. ok => 1,
  81. name => "I sent keys... no return value",
  82. diag => "",
  83. }
  84. );
  85. # tag_name_*
  86. {
  87. check_test(
  88. sub { $successful_element->tag_name_is('iframe','Got an iframe tag?') },
  89. {
  90. ok => 1,
  91. name => "Got an iframe tag?",
  92. diag => "",
  93. }
  94. );
  95. check_test(
  96. sub { $successful_element->tag_name_isnt('BOOM','Not BOOM.') },
  97. {
  98. ok => 1,
  99. name => "Not BOOM.",
  100. diag => "",
  101. }
  102. );
  103. check_test(
  104. sub { $successful_element->tag_name_like(qr/frame/,'Matches iframe tag?') },
  105. {
  106. ok => 1,
  107. name => "Matches iframe tag?",
  108. diag => "",
  109. }
  110. );
  111. check_test(
  112. sub { $successful_element->tag_name_unlike(qr/BOOM/,"tag_name doesn't match BOOM") },
  113. {
  114. ok => 1,
  115. name => "tag_name doesn't match BOOM",
  116. diag => "",
  117. }
  118. );
  119. }
  120. # value_*
  121. {
  122. check_test(
  123. sub { $successful_element->value_is('my_value','Got an my_value value?') },
  124. {
  125. ok => 1,
  126. name => "Got an my_value value?",
  127. diag => "",
  128. }
  129. );
  130. check_test(
  131. sub { $successful_element->value_isnt('BOOM','Not BOOM.') },
  132. {
  133. ok => 1,
  134. name => "Not BOOM.",
  135. diag => "",
  136. }
  137. );
  138. check_test(
  139. sub { $successful_element->value_like(qr/val/,'Matches my_value value?') },
  140. {
  141. ok => 1,
  142. name => "Matches my_value value?",
  143. diag => "",
  144. }
  145. );
  146. check_test(
  147. sub { $successful_element->value_unlike(qr/BOOM/,"value doesn't match BOOM") },
  148. {
  149. ok => 1,
  150. name => "value doesn't match BOOM",
  151. diag => "",
  152. }
  153. );
  154. }
  155. # attribute_is($attr_name,$match_str,$test_name);
  156. # attribute_isnt($attr_name,$match_str,$test_name);
  157. # attribute_like($attr_name,$match_re,$test_name);
  158. # attribute_unlike($attr_name,$match_re,$test_name);
  159. {
  160. local $TODO = 'not implemented yet.';
  161. check_test(
  162. sub { $successful_element->attribute_is('foo', 'my_foo', 'attribute_is matched') },
  163. {
  164. ok => 1,
  165. name => "attribute_is matched",
  166. diag => "",
  167. }
  168. );
  169. }
  170. # css_attribute_is($attr_name,$match_str,$test_name);
  171. # css_attribute_isnt($attr_name,$match_str,$test_name);
  172. # css_attribute_like($attr_name,$match_re,$test_name);
  173. # css_attribute_unlike($attr_name,$match_re,$test_name);
  174. done_testing();