rubySelenium 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. data/bin/rubyselenium-seed +25 -0
  2. data/documentation/output/css/style.css +36 -0
  3. data/documentation/output/documentation.html +197 -0
  4. data/documentation/output/files/rdoc/classes/Batch_Generator.html +274 -0
  5. data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000062.html +19 -0
  6. data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000063.html +26 -0
  7. data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000064.html +22 -0
  8. data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000065.html +20 -0
  9. data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000066.html +23 -0
  10. data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000067.html +18 -0
  11. data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000068.html +20 -0
  12. data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000069.html +18 -0
  13. data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000070.html +23 -0
  14. data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000071.html +20 -0
  15. data/documentation/output/files/rdoc/classes/GenerateCommand.html +137 -0
  16. data/documentation/output/files/rdoc/classes/GenerateCommand.src/M000001.html +54 -0
  17. data/documentation/output/files/rdoc/classes/HTML_File_Generator.html +229 -0
  18. data/documentation/output/files/rdoc/classes/HTML_File_Generator.src/M000072.html +23 -0
  19. data/documentation/output/files/rdoc/classes/HTML_File_Generator.src/M000073.html +20 -0
  20. data/documentation/output/files/rdoc/classes/HTML_File_Generator.src/M000074.html +18 -0
  21. data/documentation/output/files/rdoc/classes/HTML_File_Generator.src/M000075.html +19 -0
  22. data/documentation/output/files/rdoc/classes/HTML_File_Generator.src/M000076.html +18 -0
  23. data/documentation/output/files/rdoc/classes/HTML_File_Generator.src/M000077.html +18 -0
  24. data/documentation/output/files/rdoc/classes/HTML_File_Generator.src/M000078.html +18 -0
  25. data/documentation/output/files/rdoc/classes/MissingConfigurationFile.html +111 -0
  26. data/documentation/output/files/rdoc/classes/MissingRubyTestFiles.html +111 -0
  27. data/documentation/output/files/rdoc/classes/RubySelenium.html +1523 -0
  28. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000002.html +20 -0
  29. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000003.html +18 -0
  30. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000004.html +18 -0
  31. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000005.html +18 -0
  32. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000006.html +18 -0
  33. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000007.html +18 -0
  34. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000008.html +18 -0
  35. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000009.html +18 -0
  36. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000010.html +18 -0
  37. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000011.html +18 -0
  38. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000012.html +18 -0
  39. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000013.html +18 -0
  40. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000014.html +18 -0
  41. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000015.html +18 -0
  42. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000016.html +18 -0
  43. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000017.html +18 -0
  44. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000018.html +18 -0
  45. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000019.html +18 -0
  46. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000020.html +18 -0
  47. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000021.html +18 -0
  48. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000022.html +18 -0
  49. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000023.html +18 -0
  50. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000024.html +18 -0
  51. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000025.html +18 -0
  52. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000026.html +18 -0
  53. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000027.html +18 -0
  54. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000028.html +18 -0
  55. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000029.html +18 -0
  56. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000030.html +18 -0
  57. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000031.html +18 -0
  58. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000032.html +18 -0
  59. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000033.html +18 -0
  60. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000034.html +18 -0
  61. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000035.html +18 -0
  62. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000036.html +18 -0
  63. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000037.html +18 -0
  64. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000038.html +18 -0
  65. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000039.html +18 -0
  66. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000040.html +18 -0
  67. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000041.html +18 -0
  68. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000042.html +18 -0
  69. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000043.html +18 -0
  70. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000044.html +18 -0
  71. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000045.html +18 -0
  72. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000046.html +18 -0
  73. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000047.html +18 -0
  74. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000048.html +18 -0
  75. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000049.html +18 -0
  76. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000050.html +18 -0
  77. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000051.html +18 -0
  78. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000052.html +18 -0
  79. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000053.html +18 -0
  80. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000054.html +18 -0
  81. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000055.html +18 -0
  82. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000056.html +21 -0
  83. data/documentation/output/files/rdoc/classes/RubySelenium.src/M000057.html +20 -0
  84. data/documentation/output/files/rdoc/classes/RubySeleniumConfig.html +182 -0
  85. data/documentation/output/files/rdoc/classes/RubySeleniumConfig.src/M000093.html +22 -0
  86. data/documentation/output/files/rdoc/classes/RubySeleniumConfig.src/M000094.html +27 -0
  87. data/documentation/output/files/rdoc/classes/RubySeleniumConfig.src/M000095.html +25 -0
  88. data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.html +334 -0
  89. data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000079.html +18 -0
  90. data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000080.html +18 -0
  91. data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000081.html +18 -0
  92. data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000082.html +18 -0
  93. data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000083.html +18 -0
  94. data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000084.html +18 -0
  95. data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000085.html +21 -0
  96. data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000086.html +21 -0
  97. data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000087.html +21 -0
  98. data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000088.html +21 -0
  99. data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000089.html +21 -0
  100. data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000090.html +21 -0
  101. data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000091.html +21 -0
  102. data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000092.html +21 -0
  103. data/documentation/output/files/rdoc/classes/String.html +137 -0
  104. data/documentation/output/files/rdoc/classes/String.src/M000096.html +20 -0
  105. data/documentation/output/files/rdoc/classes/Templates.html +184 -0
  106. data/documentation/output/files/rdoc/classes/Templates.src/M000058.html +20 -0
  107. data/documentation/output/files/rdoc/classes/Templates.src/M000059.html +18 -0
  108. data/documentation/output/files/rdoc/classes/Templates.src/M000060.html +18 -0
  109. data/documentation/output/files/rdoc/classes/Templates.src/M000061.html +18 -0
  110. data/documentation/output/files/rdoc/created.rid +1 -0
  111. data/documentation/output/files/rdoc/files/lib/RubySeleniumGenerator_rb.html +101 -0
  112. data/documentation/output/files/rdoc/files/lib/RubySelenium_rb.html +352 -0
  113. data/documentation/output/files/rdoc/fr_class_index.html +36 -0
  114. data/documentation/output/files/rdoc/fr_file_index.html +28 -0
  115. data/documentation/output/files/rdoc/fr_method_index.html +122 -0
  116. data/documentation/output/files/rdoc/index.html +24 -0
  117. data/documentation/output/files/rdoc/rdoc-style.css +208 -0
  118. data/documentation/output/images/background.jpg +0 -0
  119. data/documentation/output/images/blanklogo_noswirl.jpg +0 -0
  120. data/documentation/output/images/blanklogo_withswirl.jpg +0 -0
  121. data/documentation/output/images/left1.jpg +0 -0
  122. data/documentation/output/images/left1bg.jpg +0 -0
  123. data/documentation/output/images/mainbackground.jpg +0 -0
  124. data/documentation/output/images/menudivider.jpg +0 -0
  125. data/documentation/output/images/tempheadline.jpg +0 -0
  126. data/documentation/output/images/templogo.jpg +0 -0
  127. data/documentation/output/images/toplogobg.jpg +0 -0
  128. data/documentation/output/images/welcome.jpg +0 -0
  129. data/documentation/output/index.html +108 -0
  130. data/documentation/output/menu/my_menu.css +1 -0
  131. data/documentation/output/menu/my_menu.js +1 -0
  132. data/documentation/src/css/style.css +36 -0
  133. data/documentation/src/documentation.template.txt +51 -0
  134. data/documentation/src/files/rdoc/classes/Batch_Generator.html +274 -0
  135. data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000062.html +19 -0
  136. data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000063.html +26 -0
  137. data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000064.html +22 -0
  138. data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000065.html +20 -0
  139. data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000066.html +23 -0
  140. data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000067.html +18 -0
  141. data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000068.html +20 -0
  142. data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000069.html +18 -0
  143. data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000070.html +23 -0
  144. data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000071.html +20 -0
  145. data/documentation/src/files/rdoc/classes/GenerateCommand.html +137 -0
  146. data/documentation/src/files/rdoc/classes/GenerateCommand.src/M000001.html +54 -0
  147. data/documentation/src/files/rdoc/classes/HTML_File_Generator.html +229 -0
  148. data/documentation/src/files/rdoc/classes/HTML_File_Generator.src/M000072.html +23 -0
  149. data/documentation/src/files/rdoc/classes/HTML_File_Generator.src/M000073.html +20 -0
  150. data/documentation/src/files/rdoc/classes/HTML_File_Generator.src/M000074.html +18 -0
  151. data/documentation/src/files/rdoc/classes/HTML_File_Generator.src/M000075.html +19 -0
  152. data/documentation/src/files/rdoc/classes/HTML_File_Generator.src/M000076.html +18 -0
  153. data/documentation/src/files/rdoc/classes/HTML_File_Generator.src/M000077.html +18 -0
  154. data/documentation/src/files/rdoc/classes/HTML_File_Generator.src/M000078.html +18 -0
  155. data/documentation/src/files/rdoc/classes/MissingConfigurationFile.html +111 -0
  156. data/documentation/src/files/rdoc/classes/MissingRubyTestFiles.html +111 -0
  157. data/documentation/src/files/rdoc/classes/RubySelenium.html +1523 -0
  158. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000002.html +20 -0
  159. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000003.html +18 -0
  160. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000004.html +18 -0
  161. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000005.html +18 -0
  162. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000006.html +18 -0
  163. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000007.html +18 -0
  164. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000008.html +18 -0
  165. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000009.html +18 -0
  166. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000010.html +18 -0
  167. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000011.html +18 -0
  168. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000012.html +18 -0
  169. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000013.html +18 -0
  170. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000014.html +18 -0
  171. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000015.html +18 -0
  172. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000016.html +18 -0
  173. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000017.html +18 -0
  174. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000018.html +18 -0
  175. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000019.html +18 -0
  176. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000020.html +18 -0
  177. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000021.html +18 -0
  178. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000022.html +18 -0
  179. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000023.html +18 -0
  180. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000024.html +18 -0
  181. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000025.html +18 -0
  182. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000026.html +18 -0
  183. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000027.html +18 -0
  184. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000028.html +18 -0
  185. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000029.html +18 -0
  186. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000030.html +18 -0
  187. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000031.html +18 -0
  188. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000032.html +18 -0
  189. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000033.html +18 -0
  190. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000034.html +18 -0
  191. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000035.html +18 -0
  192. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000036.html +18 -0
  193. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000037.html +18 -0
  194. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000038.html +18 -0
  195. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000039.html +18 -0
  196. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000040.html +18 -0
  197. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000041.html +18 -0
  198. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000042.html +18 -0
  199. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000043.html +18 -0
  200. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000044.html +18 -0
  201. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000045.html +18 -0
  202. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000046.html +18 -0
  203. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000047.html +18 -0
  204. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000048.html +18 -0
  205. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000049.html +18 -0
  206. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000050.html +18 -0
  207. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000051.html +18 -0
  208. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000052.html +18 -0
  209. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000053.html +18 -0
  210. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000054.html +18 -0
  211. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000055.html +18 -0
  212. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000056.html +21 -0
  213. data/documentation/src/files/rdoc/classes/RubySelenium.src/M000057.html +20 -0
  214. data/documentation/src/files/rdoc/classes/RubySeleniumConfig.html +182 -0
  215. data/documentation/src/files/rdoc/classes/RubySeleniumConfig.src/M000093.html +22 -0
  216. data/documentation/src/files/rdoc/classes/RubySeleniumConfig.src/M000094.html +27 -0
  217. data/documentation/src/files/rdoc/classes/RubySeleniumConfig.src/M000095.html +25 -0
  218. data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.html +334 -0
  219. data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000079.html +18 -0
  220. data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000080.html +18 -0
  221. data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000081.html +18 -0
  222. data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000082.html +18 -0
  223. data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000083.html +18 -0
  224. data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000084.html +18 -0
  225. data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000085.html +21 -0
  226. data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000086.html +21 -0
  227. data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000087.html +21 -0
  228. data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000088.html +21 -0
  229. data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000089.html +21 -0
  230. data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000090.html +21 -0
  231. data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000091.html +21 -0
  232. data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000092.html +21 -0
  233. data/documentation/src/files/rdoc/classes/String.html +137 -0
  234. data/documentation/src/files/rdoc/classes/String.src/M000096.html +20 -0
  235. data/documentation/src/files/rdoc/classes/Templates.html +184 -0
  236. data/documentation/src/files/rdoc/classes/Templates.src/M000058.html +20 -0
  237. data/documentation/src/files/rdoc/classes/Templates.src/M000059.html +18 -0
  238. data/documentation/src/files/rdoc/classes/Templates.src/M000060.html +18 -0
  239. data/documentation/src/files/rdoc/classes/Templates.src/M000061.html +18 -0
  240. data/documentation/src/files/rdoc/created.rid +1 -0
  241. data/documentation/src/files/rdoc/files/lib/RubySeleniumGenerator_rb.html +101 -0
  242. data/documentation/src/files/rdoc/files/lib/RubySelenium_rb.html +352 -0
  243. data/documentation/src/files/rdoc/fr_class_index.html +36 -0
  244. data/documentation/src/files/rdoc/fr_file_index.html +28 -0
  245. data/documentation/src/files/rdoc/fr_method_index.html +122 -0
  246. data/documentation/src/files/rdoc/index.html +24 -0
  247. data/documentation/src/files/rdoc/rdoc-style.css +208 -0
  248. data/documentation/src/images/background.jpg +0 -0
  249. data/documentation/src/images/blanklogo_noswirl.jpg +0 -0
  250. data/documentation/src/images/blanklogo_withswirl.jpg +0 -0
  251. data/documentation/src/images/left1.jpg +0 -0
  252. data/documentation/src/images/left1bg.jpg +0 -0
  253. data/documentation/src/images/mainbackground.jpg +0 -0
  254. data/documentation/src/images/menudivider.jpg +0 -0
  255. data/documentation/src/images/tempheadline.jpg +0 -0
  256. data/documentation/src/images/templogo.jpg +0 -0
  257. data/documentation/src/images/toplogobg.jpg +0 -0
  258. data/documentation/src/images/welcome.jpg +0 -0
  259. data/documentation/src/index.template.txt +50 -0
  260. data/documentation/src/keywords/documentation_user_guide_content.keyword.txt +134 -0
  261. data/documentation/src/keywords/generic_browser_title.keyword.txt +1 -0
  262. data/documentation/src/keywords/generic_published.keyword.rb +1 -0
  263. data/documentation/src/keywords/index_content.keyword.txt +51 -0
  264. data/documentation/src/menu/default_menu/default_menu.css +44 -0
  265. data/documentation/src/menu/default_menu/default_menu.html.txt +28 -0
  266. data/documentation/src/menu/default_menu/default_menu.js +19 -0
  267. data/documentation/src/menu/menu_config.txt +1 -0
  268. data/documentation/src/menu/my_menu/my_menu.html.txt +15 -0
  269. data/lib/RubySelenium.rb +1088 -0
  270. data/lib/RubySeleniumGenerator.rb +570 -0
  271. data/rubySelenium.gemspec +48 -0
  272. data/unittests/TODO.txt +10 -0
  273. data/unittests/all_tests.rb +5 -0
  274. data/unittests/rubySeleniumConfig.txt +41 -0
  275. data/unittests/test-structure/001_MyFirstTest.rb +15 -0
  276. data/unittests/test-structure/002_MySecondTest.rb +15 -0
  277. data/unittests/test-structure/003_MyThirdTest.rb +15 -0
  278. data/unittests/test-structure/execute_all_tests.rb +2 -0
  279. data/unittests/test-structure/generate_all_tests.rb +2 -0
  280. data/unittests/test-structure/rubySeleniumConfig.txt +41 -0
  281. data/unittests/test_batch_generator.rb +58 -0
  282. data/unittests/test_command_line_execution.rb +17 -0
  283. data/unittests/test_config_file.rb +28 -0
  284. data/unittests/test_html_file_creation.rb +93 -0
  285. data/unittests/test_selenium_core_api.rb +108 -0
  286. metadata +374 -0
@@ -0,0 +1,48 @@
1
+ require 'rubygems'
2
+
3
+ spec = Gem::Specification.new do |s|
4
+
5
+ #### Basic information.
6
+
7
+ s.name = 'rubySelenium'
8
+ s.version = "0.0.8"
9
+ s.summary = <<-EOF
10
+ rubySelenium is a wrapper around Selenium that generates the FitRunner style HTML
11
+ on the fly so you can write selenium scripts programmatically.
12
+ EOF
13
+ s.description = <<-EOF
14
+ rubySelenium allows you to write Selenium scripts programmatically and allows you to
15
+ add dynamic dates and data as well as allowing for a data driven approach, but most of
16
+ all eases the creation and maintainability of scripts through functional decomposition.
17
+ BugFixes in this release:
18
+ 1. Complete re-write
19
+ EOF
20
+
21
+ #### Dependencies and requirements.
22
+
23
+ #### Which files are to be included in this gem? Everything! (Except CVS directories.)
24
+
25
+ s.files = Dir.glob("**/*").delete_if { |item| item.include?("CVS") }
26
+
27
+ #### C code extensions.
28
+
29
+ #### Load-time details: library and application (you will need one or both).
30
+
31
+ s.require_path = 'lib' # Use these for libraries.
32
+ #s.autorequire = 'rubySelenium'
33
+
34
+ s.bindir = "bin" # Use these for applications.
35
+ s.executables = ["rubyselenium-seed"]
36
+ s.default_executable = "rubyselenium-seed"
37
+
38
+ #### Documentation and testing.
39
+
40
+ s.has_rdoc = true
41
+
42
+ #### Author and project details.
43
+
44
+ s.author = "Kingsley Hendrickse"
45
+ s.email = "kingsley@icecode.org"
46
+ s.homepage = "HTTP://rubySelenium.rubyforge.org"
47
+ s.rubyforge_project = "rubySelenium"
48
+ end
@@ -0,0 +1,10 @@
1
+ <-- done 1. command line options for generate
2
+ <-- done 2. go command
3
+ <-- done 3. execute_all_test command
4
+ <-- done 4. test id, value, api stuff
5
+
6
+
7
+ other
8
+ 1. selenium -> watir convertor
9
+ 2. datahandler --> ostruct
10
+ <-- done 3. eclipse
@@ -0,0 +1,5 @@
1
+ require 'test_selenium_core_api'
2
+ require 'test_html_file_creation'
3
+ require 'test_batch_generator'
4
+ require 'test_command_line_execution'
5
+ require 'test_config_file'
@@ -0,0 +1,41 @@
1
+ # These configurations are only used when running locally on your machine
2
+ # and don't apply for running on a remote server in automated test mode.
3
+
4
+ # GENERATE_LOCATION
5
+ # This sets the location that rubySelenium will generate the html.
6
+ # set it with the full path to the folder you want the tests to be generated into.
7
+ # e.g. C:/IBM/workspaces/SecureMessaging1/FunctionalTests/WebContent/tests/Ruby
8
+
9
+ GENERATE_LOCATION = .
10
+
11
+ # TEST_LOCATION
12
+ # This sets the location that rubySelenium should look for when running
13
+ # the tests locally. It should point to the url of where the tests live on
14
+ # your local server.
15
+ #
16
+ # e.g. if you navigate to
17
+ # http://localhost:9081/Selenium/tests/Ruby/tests/seleniumTestRunner.html
18
+ # to find your tests then you should set this property to
19
+ # http://localhost:9081/Selenium/tests/Ruby
20
+
21
+ TEST_LOCATION = http://localhost:9081/Selenium/tests/rubySeleniumScripts
22
+
23
+ # LOGGING
24
+ # This turns the log output on or off when using the generate command.
25
+ # When you run the generate command all the html is generated - this is
26
+ # for use when hooked up to the remote cruisecontrol driven automation.
27
+ # The logs show all the ruby code that is executed in order to create the html.
28
+ #
29
+ # set it to true or false to turn it on or off
30
+
31
+ LOGGING = true
32
+
33
+ # IE_LOCATION
34
+ # This is the location of your Internet Explorer executable (iexplore.exe)
35
+
36
+ IE_LOCATION = C:/Program Files/Internet Explorer/IEXPLORE.EXE
37
+
38
+ # FF_LOCATION
39
+ # This is the location of your Firefox executable (firefox.exe)
40
+
41
+ FF_LOCATION = C:/Program Files/Mozilla Firefox/firefox.exe
@@ -0,0 +1,15 @@
1
+ require '../../lib/RubySelenium'
2
+
3
+ # Create new RubySelenium instance
4
+ s = RubySelenium.new("001_MyFirstTest")
5
+
6
+ # begin test
7
+ # happy path for requesting a quote with some investment details
8
+ s.open("http://www.google.com")
9
+ s.verifyTextPresent("welcome page")
10
+ s.click("logoutUser")
11
+ s.verifyTextPresent("logged out now")
12
+ s.complete
13
+ s.go
14
+
15
+
@@ -0,0 +1,15 @@
1
+ require '../../lib/RubySelenium'
2
+
3
+ # Create new RubySelenium instance
4
+ s = RubySelenium.new("002_MySecondTest")
5
+
6
+ # begin test
7
+ # happy path for requesting a quote with some investment details
8
+ s.open("http://www.google.com")
9
+ s.verifyTextPresent("welcome page")
10
+ s.click("logoutUser")
11
+ s.verifyTextPresent("logged out now")
12
+ s.complete
13
+ s.go
14
+
15
+
@@ -0,0 +1,15 @@
1
+ require '../../lib/RubySelenium'
2
+
3
+ # Create new RubySelenium instance
4
+ s = RubySelenium.new("003_MyThirdTest")
5
+
6
+ # begin test
7
+ # happy path for requesting a quote with some investment details
8
+ s.open("http://www.google.com")
9
+ s.verifyTextPresent("welcome page")
10
+ s.click("logoutUser")
11
+ s.verifyTextPresent("logged out now")
12
+ s.complete
13
+ s.go
14
+
15
+
@@ -0,0 +1,2 @@
1
+ require '../../lib/RubySelenium'
2
+ Batch_Generator.new.go
@@ -0,0 +1,2 @@
1
+ require '../../lib/RubySelenium'
2
+ Batch_Generator.new.create_all_test_files
@@ -0,0 +1,41 @@
1
+ # These configurations are only used when running locally on your machine
2
+ # and don't apply for running on a remote server in automated test mode.
3
+
4
+ # GENERATE_LOCATION
5
+ # This sets the location that rubySelenium will generate the html.
6
+ # set it with the full path to the folder you want the tests to be generated into.
7
+ # e.g. C:/IBM/workspaces/SecureMessaging1/FunctionalTests/WebContent/tests/Ruby
8
+
9
+ GENERATE_LOCATION = ./tests
10
+
11
+ # TEST_LOCATION
12
+ # This sets the location that rubySelenium should look for when running
13
+ # the tests locally. It should point to the url of where the tests live on
14
+ # your local server.
15
+ #
16
+ # e.g. if you navigate to
17
+ # http://localhost:9081/Selenium/tests/Ruby/tests/seleniumTestRunner.html
18
+ # to find your tests then you should set this property to
19
+ # http://localhost:9081/Selenium/tests/Ruby
20
+
21
+ TEST_LOCATION = http://localhost:9081/Selenium/tests/rubySeleniumScripts
22
+
23
+ # LOGGING
24
+ # This turns the log output on or off when using the generate command.
25
+ # When you run the generate command all the html is generated - this is
26
+ # for use when hooked up to the remote cruisecontrol driven automation.
27
+ # The logs show all the ruby code that is executed in order to create the html.
28
+ #
29
+ # set it to true or false to turn it on or off
30
+
31
+ LOGGING = true
32
+
33
+ # IE_LOCATION
34
+ # This is the location of your Internet Explorer executable (iexplore.exe)
35
+
36
+ IE_LOCATION = C:/Program Files/Internet Explorer/IEXPLORE.EXE
37
+
38
+ # FF_LOCATION
39
+ # This is the location of your Firefox executable (firefox.exe)
40
+
41
+ FF_LOCATION = C:/Program Files/Mozilla Firefox/firefox.exe
@@ -0,0 +1,58 @@
1
+ require 'test/unit'
2
+ require '../lib/RubySelenium'
3
+
4
+ class Test_Batch_Generator < Test::Unit::TestCase
5
+
6
+ def setup
7
+ @batch_generator = Batch_Generator.new("test-structure")
8
+ end
9
+
10
+ def test_build_tests_list_returns_error_on_missing_tests
11
+ assert_raises(MissingRubyTestFiles){ Batch_Generator.new("test-structure/missing-tests").build_tests_list }
12
+ end
13
+
14
+ def test_build_tests_list_returns_list_of_tests
15
+ expected_test_list = ["test-structure/001_MyFirstTest.rb", "test-structure/002_MySecondTest.rb", "test-structure/003_MyThirdTest.rb"]
16
+ assert_equal expected_test_list, @batch_generator.build_tests_list
17
+ end
18
+
19
+ def test_build_tests_array_returns_list_of_tests
20
+ file_1_content = ["require '../../lib/RubySelenium'\n", "\n", "# Create new RubySelenium instance\n", "s = RubySelenium.new(\"001_MyFirstTest\")\n", "\n", "# begin test\n", "# happy path for requesting a quote with some investment details\n", "s.open(\"http://www.google.com\")\n", "s.verifyTextPresent(\"welcome page\")\n", "s.click(\"logoutUser\")\n", "s.verifyTextPresent(\"logged out now\")\n", "s.complete\n", "s.go\n", "\n", "\n"]
21
+ file_2_content = ["require '../../lib/RubySelenium'\n", "\n", "# Create new RubySelenium instance\n", "s = RubySelenium.new(\"002_MySecondTest\")\n", "\n", "# begin test\n", "# happy path for requesting a quote with some investment details\n", "s.open(\"http://www.google.com\")\n", "s.verifyTextPresent(\"welcome page\")\n", "s.click(\"logoutUser\")\n", "s.verifyTextPresent(\"logged out now\")\n", "s.complete\n", "s.go\n", "\n", "\n"]
22
+ file_3_content = ["require '../../lib/RubySelenium'\n", "\n", "# Create new RubySelenium instance\n", "s = RubySelenium.new(\"003_MyThirdTest\")\n", "\n", "# begin test\n", "# happy path for requesting a quote with some investment details\n", "s.open(\"http://www.google.com\")\n", "s.verifyTextPresent(\"welcome page\")\n", "s.click(\"logoutUser\")\n", "s.verifyTextPresent(\"logged out now\")\n", "s.complete\n", "s.go\n", "\n", "\n"]
23
+ assert_equal file_1_content, @batch_generator.build_tests_array[0]
24
+ assert_equal file_2_content, @batch_generator.build_tests_array[1]
25
+ assert_equal file_3_content, @batch_generator.build_tests_array[2]
26
+ end
27
+
28
+ def test_remove_go_commands_from_tests_array
29
+ file_1_content = ["require '../../lib/RubySelenium'\n", "\n", "# Create new RubySelenium instance\n", "s = RubySelenium.new(\"001_MyFirstTest\")\n", "\n", "# begin test\n", "# happy path for requesting a quote with some investment details\n", "s.open(\"http://www.google.com\")\n", "s.verifyTextPresent(\"welcome page\")\n", "s.click(\"logoutUser\")\n", "s.verifyTextPresent(\"logged out now\")\n", "s.complete\n", "\n", "\n"]
30
+ file_2_content = ["require '../../lib/RubySelenium'\n", "\n", "# Create new RubySelenium instance\n", "s = RubySelenium.new(\"002_MySecondTest\")\n", "\n", "# begin test\n", "# happy path for requesting a quote with some investment details\n", "s.open(\"http://www.google.com\")\n", "s.verifyTextPresent(\"welcome page\")\n", "s.click(\"logoutUser\")\n", "s.verifyTextPresent(\"logged out now\")\n", "s.complete\n", "\n", "\n"]
31
+ file_3_content = ["require '../../lib/RubySelenium'\n", "\n", "# Create new RubySelenium instance\n", "s = RubySelenium.new(\"003_MyThirdTest\")\n", "\n", "# begin test\n", "# happy path for requesting a quote with some investment details\n", "s.open(\"http://www.google.com\")\n", "s.verifyTextPresent(\"welcome page\")\n", "s.click(\"logoutUser\")\n", "s.verifyTextPresent(\"logged out now\")\n", "s.complete\n", "\n", "\n"]
32
+ assert_equal file_1_content, @batch_generator.remove_go_commands_from_tests_array[0]
33
+ assert_equal file_2_content, @batch_generator.remove_go_commands_from_tests_array[1]
34
+ assert_equal file_3_content, @batch_generator.remove_go_commands_from_tests_array[2]
35
+ end
36
+
37
+ def test_generate_test_suite_for_all_files_returns_html
38
+ test_suite_content = "<html>\n<head>\n<meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\">\n<title>Portal Framework Functional Testing</title>\n</head>\n<body>\n<table cellpadding=\"1\" cellspacing=\"1\" border=\"1\">\n<tbody>\n<tr><td><b>seleniumTestSuite</b></td></tr>\n<tr><td><a href=\"001_MyFirstTest.html\">001_MyFirstTest</a></td></tr>\n<tr><td><a href=\"002_MySecondTest.html\">002_MySecondTest</a></td></tr>\n<tr><td><a href=\"003_MyThirdTest.html\">003_MyThirdTest</a></td></tr>\n\n</tbody>\n</table>\n</body>\n</html>\n"
39
+ assert_equal test_suite_content, @batch_generator.generate_test_suite_for_all_files
40
+ end
41
+
42
+ def test_find_html_contents_of_generation_directory
43
+ html_file = ["./my_first_file.html","./my_second_file.html","./my_third_file.html"]
44
+ html_file.each{|file| File.open(file, "w"){|f| f.puts "test-file"}}
45
+ assert_equal html_file, @batch_generator.find_html_contents_of_generation_directory
46
+ html_file.each{|f| File.delete(f)}
47
+ end
48
+
49
+ def test_generate_all_tests_ruby_file_generates_tests
50
+ generated_files = ["001_MyFirstTest.html", "002_MySecondTest.html", "003_MyThirdTest.html", "seleniumTestRunner.html", "seleniumTestSuite.html"]
51
+ Dir.chdir("test-structure"){system("ruby generate_all_tests.rb")}
52
+ generated_files.each{|f| assert File.exists?("test-structure/tests/#{f}"), "#{f} not found" ; File.delete("test-structure/tests/#{f}")}
53
+ # Test generated_log.txt is generated when logging set to true
54
+ assert File.exists?("test-structure/generate_log.txt"), "Generate_log.txt not found"
55
+ File.delete("test-structure/generate_log.txt")
56
+ end
57
+
58
+ end
@@ -0,0 +1,17 @@
1
+ require 'test/unit'
2
+ require '../lib/RubySelenium'
3
+
4
+ class Test_Command_Line_Execution < Test::Unit::TestCase
5
+
6
+ def test_generate_all_tests_ruby_file_generates_tests
7
+ generated_files = ["001_MyFirstTest.html", "002_MySecondTest.html", "003_MyThirdTest.html", "seleniumTestRunner.html", "seleniumTestSuite.html"]
8
+ Dir.chdir("test-structure"){system("ruby generate_all_tests.rb -g command-line-generation")}
9
+ generated_files.each{|f| assert File.exists?("test-structure/command-line-generation/#{f}"), "#{f} not found" ; File.delete("test-structure/command-line-generation/#{f}")}
10
+ # Test generated_log.txt is generated when logging set to true
11
+ assert File.exists?("test-structure/generate_log.txt"), "Generate_log.txt not found"
12
+ File.delete("test-structure/generate_log.txt")
13
+ end
14
+
15
+
16
+
17
+ end
@@ -0,0 +1,28 @@
1
+ require 'test/unit'
2
+ require '../lib/RubySelenium'
3
+
4
+ class Test_Config_File < Test::Unit::TestCase
5
+
6
+ def setup
7
+ @config = RubySeleniumConfig.new("test-structure/rubySeleniumConfig.txt")
8
+ end
9
+
10
+ def test_config_handles_missing_config_file
11
+ assert_raises(MissingConfigurationFile){ RubySeleniumConfig.new("missing_rubySeleniumConfig.txt")}
12
+ end
13
+
14
+ def test_parse_config_file_returns_raw_config_data
15
+ config_data = ["GENERATE_LOCATION = ./tests", "TEST_LOCATION = http://localhost:9081/Selenium/tests/rubySeleniumScripts", "LOGGING = true", "IE_LOCATION = C:/Program Files/Internet Explorer/IEXPLORE.EXE", "FF_LOCATION = C:/Program Files/Mozilla Firefox/firefox.exe"]
16
+ assert_equal config_data, @config.parse_config_file
17
+ end
18
+
19
+ def test_properties_file_returns_properties_hash
20
+ properties = @config.properties
21
+ assert_equal "C:/Program Files/Mozilla Firefox/firefox.exe", properties['FF_LOCATION'].value
22
+ assert_equal "C:/Program Files/Internet Explorer/IEXPLORE.EXE", properties['IE_LOCATION'].value
23
+ assert_equal "http://localhost:9081/Selenium/tests/rubySeleniumScripts", properties['TEST_LOCATION'].value
24
+ assert_equal "true", properties['LOGGING'].value
25
+ assert_equal "./tests", properties['GENERATE_LOCATION'].value
26
+ end
27
+
28
+ end
@@ -0,0 +1,93 @@
1
+ require 'test/unit'
2
+ require '../lib/RubySelenium'
3
+
4
+ class Test_HTML_File_Generator < Test::Unit::TestCase
5
+
6
+ def teardown
7
+ ["001_create_test_file_from_generator.html",
8
+ "002_create_test_file_from_go_command.html",
9
+ "seleniumTestRunner.html",
10
+ "seleniumTestSuite.html",
11
+ ].each{|file| if File.exists?(file) then File.delete(file) end }
12
+ end
13
+
14
+ def test_generate_single_script_returns_correct_html
15
+ selenium = RubySelenium.new("001_initialize_test_file")
16
+ selenium.open("http://rubyselenium.rubyforge.org")
17
+ selenium.verifyTitle("rubySelenium")
18
+ script_content = HTML_File_Generator.new(selenium.ruby_selenium_script).generate_single_script
19
+ content = ['<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">',
20
+ '<html>',
21
+ '<head>',
22
+ '<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">',
23
+ '<title>001_initialize_test_file</title>',
24
+ '</head>',
25
+ '<body>',
26
+ '<table cellpadding="1" cellspacing="1" border="1">',
27
+ '<tbody>',
28
+ '<tr>',
29
+ '<td rowspan="1" colspan="3">001_initialize_test_file<br>',
30
+ '</td>',
31
+ '</tr>',
32
+ '<tr><td>open</td><td>http://rubyselenium.rubyforge.org</td><td>&nbsp;</td></tr>',
33
+ '<tr><td>verifyTitle</td><td>rubySelenium</td><td>&nbsp;</td></tr>',
34
+ '</tbody>',
35
+ '</table>',
36
+ '</body>',
37
+ '</html><table>',
38
+ '<tr>',
39
+ '<td><b>Selenium Id</b></td>',
40
+ '<td id="SeleniumKey"></td>',
41
+ '</tr>',
42
+ '</table>']
43
+ content.each_with_index{|line,i| assert_equal line + "\n", script_content.to_a[i]}
44
+ end
45
+
46
+ def test_that_create_single_script_file_creates_the_html_file
47
+ selenium = RubySelenium.new("001_create_test_file_from_generator")
48
+ selenium.open("http://rubyselenium.rubyforge.org")
49
+ selenium.verifyTitle("rubySelenium")
50
+ script_content = HTML_File_Generator.new(selenium.ruby_selenium_script).create_single_script_file
51
+ assert File.exists?("001_create_test_file_from_generator.html")
52
+ end
53
+
54
+ def test_that_generate_test_runner_returns_correct_html
55
+ selenium = RubySelenium.new("002_generate_test_runner")
56
+ expected_test_runner_content = ["<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n", "<html>\n", "<head>\n", "<meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\" />\n", "\n", "<title>Selenium Functional Test Runner</title>\n", "<script language=\"JavaScript\" type=\"text/javascript\" src=\"../../../html-xpath/html-xpath-patched.js\"></script>\n", "<script language=\"JavaScript\" type=\"text/javascript\" src=\"../../../selenium-browserbot.js\"></script>\n", "<script language=\"JavaScript\" type=\"text/javascript\" src=\"../../../selenium-api.js\"></script>\n", "<script language=\"JavaScript\" type=\"text/javascript\" src=\"../../../selenium-commandhandlers.js\"></script>\n", "<script language=\"JavaScript\" type=\"text/javascript\" src=\"../../../selenium-executionloop.js\"></script>\n", "<script language=\"JavaScript\" type=\"text/javascript\" src=\"../../../selenium-fitrunner.js\"></script>\n", "<script language=\"JavaScript\" type=\"text/javascript\" src=\"../../../selenium-logging.js\"></script>\n", "<script language=\"JavaScript\" type=\"text/javascript\" src=\"../../../htmlutils.js\"></script>\n", "<script language=\"JavaScript\" type=\"text/javascript\" src=\"../../../selenium-domviewer.js\"></script>\n", "<script language=\"JavaScript\" type=\"text/javascript\" src=\"../../../xpath.js\"></script>\n", "<script language=\"JavaScript\" type=\"text/javascript\" src=\"../../../user-extensions.js\"></script>\n", "<link rel=\"stylesheet\" type=\"text/css\" href=\"../../../selenium.css\" />\n", "</head>\n", "\n", "<body onload=\"start();\">\n", "\n", "<table class=\"layout\">\n", "<form action=\"\" name=\"controlPanel\">\n", "\n", "<!-- Suite, Test, Control Panel -->\n", "\n", "<tr class=\"selenium\">\n", "<td width=\"25%\" height=\"30%\" rowspan=\"2\"><iframe name=\"testSuiteFrame\" id=\"testSuiteFrame\" src=\"seleniumTestSuite.html\"></iframe></td>\n", "<td width=\"50%\" height=\"30%\" rowspan=\"2\"><iframe name=\"testFrame\" id=\"testFrame\"></iframe></td>\n", "<th width=\"25%\" height=\"1\" class=\"header\">\n", "<h1><a href=\"http://selenium.thoughtworks.com\" title=\"The Selenium Project\">Selenium</a> TestRunner</h1>\n", "</th>\n", "</tr>\n", "\n", "<tr class=\"selenium\">\n", "<td width=\"25%\" height=\"30%\" id=\"controlPanel\">\n", "\n", "<table id=\"controls\">\n", "<tr>\n", "<td>\n", "<b>Run:</b>\n", "<button type=\"button\" id=\"runTest\" onclick=\"runSingleTest();\"><em>Selected</em> Test</button>\n", "<button type=\"button\" id=\"runSuite\" onclick=\"startTestSuite();\"><strong>All</strong> Tests</button>\n", "</td>\n", "</tr>\n", "<tr>\n", "<td>\n", "<b>Mode:</b>\n", "<label><input id=\"modeRun\" type=\"radio\" name=\"runMode\" value=\"0\" checked=\"checked\"/>Run</label>\n", "<label><input id=\"modeWalk\" type=\"radio\" name=\"runMode\" value=\"500\" />Walk</label>\n", "<label><input id=\"modeStep\" type=\"radio\" name=\"runMode\" value=\"-1\" />Step</label>\n", "</td>\n", "</tr>\n", "<tr>\n", "<td>\n", "<button type=\"button\" id=\"domViewer1\" onclick=\"newRoot=getIframeDocument(getElementById('myiframe'));window.open('../../domviewer.html');return false;\">View DOM</button>\n", "<button type=\"button\" id=\"continueTest\" disabled=\"disabled\">Next/Continue</button>\n", "</td>\n", "</tr>\n", "</table>\n", "\n", "<table id=\"stats\" align=\"center\">\n", "<tr>\n", "<td colspan=\"2\" align=\"right\">Elapsed:</td>\n", "<td id=\"elapsedTime\" colspan=\"2\">00.00</td>\n", "</tr>\n", "<tr>\n", "<th colspan=\"2\">Tests</th>\n", "<th colspan=\"2\">Commands</th>\n", "</tr>\n", "<tr>\n", "<td class=\"count\" id=\"testRuns\">0</td>\n", "<td>run</td>\n", "<td class=\"count\" id=\"commandPasses\">0</td>\n", "<td>passed</td>\n", "</tr>\n", "<tr>\n", "<td class=\"count\" id=\"testFailures\">0</td>\n", "<td>failed</td>\n", "<td class=\"count\" id=\"commandFailures\">0</td>\n", "<td>failed</td>\n", "</tr>\n", "<tr>\n", "<td colspan=\"2\"></td>\n", "<td class=\"count\" id=\"commandErrors\">0</td>\n", "<td>incomplete</td>\n", "</tr>\n", "</table>\n", "</td>\n", "</tr>\n", "\n", "<!-- AUT -->\n", "<tr>\n", "<td colspan=\"3\" height=\"70%\"><iframe name=\"myiframe\" id=\"myiframe\" src=\"../../../TestRunner-splash.html\"></iframe></td>\n","</tr>\n","</form>\n", "</table>\n", "\n", "<div id=\"logging-console\">\n", "<h1>Javascript Log Console (<a id=\"closeLog\" href=\"javascript:LOG.hide()\">Close</a> <a href=\"javascript:LOG.clear();LOG.hide();\">Clear</a>)</h1>\n", "<ul id=\"log-list\"/>\n", "</div>\n", "<script language=\"javascript\">\n", "LOG = new Logger(LEVEL_WARN);\n", "LOG.hide();\n", "</script>\n", "</body>\n", "</html>\n"]
57
+ test_runner_content = HTML_File_Generator.new(selenium.ruby_selenium_script).generate_test_runner
58
+ expected_test_runner_content.each_with_index{|line,i| assert_equal line, test_runner_content.to_a[i]}
59
+ end
60
+
61
+ def test_that_create_test_runner_file_creates_the_html_file
62
+ # Have to pass a RubySelenium object into HTML Generator class - but to make the testRunner we don't need it - it's just there to satisfy dependency
63
+ selenium = RubySelenium.new("seleniumTestRunner.html")
64
+ script_content = HTML_File_Generator.new(selenium.ruby_selenium_script).create_test_runner_file
65
+ assert File.exists?("seleniumTestRunner.html")
66
+ end
67
+
68
+ def test_that_generate_test_suite_returns_correct_html
69
+ selenium = RubySelenium.new("002_generate_test_suite")
70
+ expected_test_suite_content = ["<html>\n", "<head>\n", "<meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\">\n", "<title>Portal Framework Functional Testing</title>\n", "</head>\n", "<body>\n", "<table cellpadding=\"1\" cellspacing=\"1\" border=\"1\">\n", "<tbody>\n", "<tr><td><b>seleniumTestSuite</b></td></tr>\n", "<tr><td><a href=\"002_generate_test_suite.html\">002_generate_test_suite</a></td></tr>\n", "</tbody>\n", "</table>\n", "</body>\n", "</html>\n"]
71
+ test_suite_content = HTML_File_Generator.new(selenium.ruby_selenium_script).generate_test_suite
72
+ expected_test_suite_content.each_with_index{|line,i| assert_equal line, test_suite_content.to_a[i]}
73
+ end
74
+
75
+ def test_that_create_test_suite_file_creates_the_html_file
76
+ # Have to pass a RubySelenium object into HTML Generator class - but to make the testRunner we don't need it - it's just there to satisfy dependency
77
+ selenium = RubySelenium.new("seleniumTestSuite.html")
78
+ script_content = HTML_File_Generator.new(selenium.ruby_selenium_script).create_test_suite_file
79
+ assert File.exists?("seleniumTestSuite.html")
80
+ end
81
+
82
+ def test_that_generate_command_creates_the_html_files_required_to_run_single_script
83
+ selenium = RubySelenium.new("002_create_test_file_from_go_command")
84
+ selenium.open("http://rubyselenium.rubyforge.org")
85
+ selenium.verifyTitle("rubySelenium")
86
+ selenium.complete
87
+ assert File.exists?("002_create_test_file_from_go_command.html")
88
+ assert File.exists?("seleniumTestRunner.html")
89
+ end
90
+
91
+
92
+
93
+ end
@@ -0,0 +1,108 @@
1
+ require 'test/unit'
2
+ require '../lib/RubySelenium'
3
+
4
+ class Test_Selenium_Core_API < Test::Unit::TestCase
5
+
6
+ def setup
7
+ @selenium = RubySelenium.new("selenium_test_script")
8
+ end
9
+
10
+ def test_string_class_manipulation_returns_nbsp_on_empty_value
11
+ assert_equal "<tr><td>command</td><td>target</td><td>&nbsp;</td></tr>", "command"._h("target", " ")
12
+ assert_equal "<tr><td>command</td><td>target</td><td>&nbsp;</td></tr>", "command"._h("target", "")
13
+ assert_equal "<tr><td>command</td><td>target</td><td>&nbsp;</td></tr>", "command"._h("target", nil)
14
+ end
15
+
16
+ def test_string_class_manipulation_returns_empty_value_on_empty_value_keyword
17
+ assert_equal "<tr><td>command</td><td>target</td><td></td></tr>", "command"._h("target", "[empty]")
18
+ end
19
+
20
+ def test_string_class_manipulation_returns_empty_target_on_empty_target_keyword
21
+ assert_equal "<tr><td>command</td><td></td><td>value</td></tr>", "command"._h("[empty]", "value")
22
+ assert_equal "<tr><td>command</td><td></td><td></td></tr>", "command"._h("[empty]", "[empty]")
23
+ end
24
+
25
+ def test_selenium_actions_return_correct_html
26
+ assert_equal "<tr><td>open</td><td>http://rubyselenium.rubyforge.org</td><td>&nbsp;</td></tr>", @selenium.open("http://rubyselenium.rubyforge.org")[0].command
27
+ assert_equal "<tr><td>type</td><td>input_field</td><td>input_value</td></tr>", @selenium.type("input_field", "input_value")[1].command
28
+ assert_equal "<tr><td>typeAndWait</td><td>input_field</td><td>input_value</td></tr>", @selenium.typeAndWait("input_field", "input_value")[2].command
29
+ assert_equal "<tr><td>click</td><td>click_button</td><td>&nbsp;</td></tr>", @selenium.click("click_button")[3].command
30
+ assert_equal "<tr><td>clickAndWait</td><td>click_button</td><td>&nbsp;</td></tr>", @selenium.clickAndWait("click_button")[4].command
31
+ assert_equal "<tr><td>select</td><td>drop_down</td><td>option_1</td></tr>", @selenium.select("drop_down", "option_1")[5].command
32
+ assert_equal "<tr><td>selectAndWait</td><td>drop_down</td><td>option_1</td></tr>", @selenium.selectAndWait("drop_down", "option_1")[6].command
33
+ assert_equal "<tr><td>selectWindow</td><td>window</td><td>&nbsp;</td></tr>", @selenium.selectWindow("window")[7].command
34
+ assert_equal "<tr><td>pause</td><td>5000</td><td>&nbsp;</td></tr>", @selenium.pause("5000")[8].command
35
+ assert_equal "<tr><td>waitForValue</td><td>finish_indication</td><td>is_finished</td></tr>", @selenium.waitForValue("finish_indication", "is_finished")[9].command
36
+ assert_equal "<tr><td>goBack</td><td></td><td></td></tr>", @selenium.goBack[10].command
37
+ assert_equal "<tr><td>close</td><td></td><td></td></tr>", @selenium.close[11].command
38
+ assert_equal "<tr><td>store</td><td>Kingsley</td><td>first_name</td></tr>", @selenium.store("Kingsley", "first_name")[12].command
39
+ assert_equal "<tr><td>storeValue</td><td>user_name</td><td>user_id</td></tr>", @selenium.storeValue("user_name", "user_id")[13].command
40
+ assert_equal "<tr><td>storeText</td><td>current_date</td><td>expected_start_date</td></tr>", @selenium.storeText("current_date", "expected_start_date")[14].command
41
+ end
42
+
43
+ def test_selenium_checks_return_correct_html
44
+ assert_equal "<tr><td>verifyLocation</td><td>/mypage</td><td>&nbsp;</td></tr>", @selenium.verifyLocation("/mypage")[0].command
45
+ assert_equal "<tr><td>assertLocation</td><td>/mypage</td><td>&nbsp;</td></tr>", @selenium.assertLocation("/mypage")[1].command
46
+ assert_equal "<tr><td>verifyTitle</td><td>/mypage</td><td>&nbsp;</td></tr>", @selenium.verifyTitle("/mypage")[2].command
47
+ assert_equal "<tr><td>assertTitle</td><td>/mypage</td><td>&nbsp;</td></tr>", @selenium.assertTitle("/mypage")[3].command
48
+ assert_equal "<tr><td>verifyValue</td><td>drop_down</td><td>option_1</td></tr>", @selenium.verifyValue("drop_down", "option_1")[4].command
49
+ assert_equal "<tr><td>assertValue</td><td>drop_down</td><td>option_1</td></tr>", @selenium.assertValue("drop_down", "option_1")[5].command
50
+ assert_equal "<tr><td>verifySelected</td><td>selected_item</td><td>selected_value</td></tr>", @selenium.verifySelected("selected_item", "selected_value")[6].command
51
+ assert_equal "<tr><td>assertSelected</td><td>selected_item</td><td>selected_value</td></tr>", @selenium.assertSelected("selected_item", "selected_value")[7].command
52
+ assert_equal "<tr><td>verifySelectOptions</td><td>drop_down</td><td>John Smith,Dave Bird</td></tr>", @selenium.verifySelectOptions("drop_down", "John Smith,Dave Bird")[8].command
53
+ assert_equal "<tr><td>assertSelectOptions</td><td>drop_down</td><td>John Smith,Dave Bird</td></tr>", @selenium.assertSelectOptions("drop_down", "John Smith,Dave Bird")[9].command
54
+ assert_equal "<tr><td>verifyText</td><td>status_message</td><td>Successful</td></tr>", @selenium.verifyText("status_message", "Successful")[10].command
55
+ assert_equal "<tr><td>assertText</td><td>status_message</td><td>Successful</td></tr>", @selenium.assertText("status_message", "Successful")[11].command
56
+ assert_equal "<tr><td>verifyAttribute</td><td>txt1@class</td><td>big_and_bold</td></tr>", @selenium.verifyAttribute("txt1@class", "big_and_bold")[12].command
57
+ assert_equal "<tr><td>assertAttribute</td><td>txt1@class</td><td>big_and_bold</td></tr>", @selenium.assertAttribute("txt1@class", "big_and_bold")[13].command
58
+ assert_equal "<tr><td>verifyTextPresent</td><td>You are now logged in.</td><td>&nbsp;</td></tr>", @selenium.verifyTextPresent("You are now logged in.")[14].command
59
+ assert_equal "<tr><td>assertTextPresent</td><td>You are now logged in.</td><td>&nbsp;</td></tr>", @selenium.assertTextPresent("You are now logged in.")[15].command
60
+ assert_equal "<tr><td>verifyTextNotPresent</td><td>You are now logged in.</td><td>&nbsp;</td></tr>", @selenium.verifyTextNotPresent("You are now logged in.")[16].command
61
+ assert_equal "<tr><td>assertTextNotPresent</td><td>You are now logged in.</td><td>&nbsp;</td></tr>", @selenium.assertTextNotPresent("You are now logged in.")[17].command
62
+ assert_equal "<tr><td>verifyElementPresent</td><td>submit_button</td><td>&nbsp;</td></tr>", @selenium.verifyElementPresent("submit_button")[18].command
63
+ assert_equal "<tr><td>assertElementPresent</td><td>submit_button</td><td>&nbsp;</td></tr>", @selenium.assertElementPresent("submit_button")[19].command
64
+ assert_equal "<tr><td>verifyElementNotPresent</td><td>cancel_button</td><td>&nbsp;</td></tr>", @selenium.verifyElementNotPresent("cancel_button")[20].command
65
+ assert_equal "<tr><td>assertElementNotPresent</td><td>cancel_button</td><td>&nbsp;</td></tr>", @selenium.assertElementNotPresent("cancel_button")[21].command
66
+ assert_equal "<tr><td>verifyTable</td><td>myTable.1.6</td><td>Submitted</td></tr>", @selenium.verifyTable("myTable.1.6", "Submitted")[22].command
67
+ assert_equal "<tr><td>assertTable</td><td>myTable.1.6</td><td>Submitted</td></tr>", @selenium.assertTable("myTable.1.6", "Submitted")[23].command
68
+ assert_equal "<tr><td>verifyVisible</td><td>postcode</td><td>&nbsp;</td></tr>", @selenium.verifyVisible("postcode")[24].command
69
+ assert_equal "<tr><td>assertVisible</td><td>postcode</td><td>&nbsp;</td></tr>", @selenium.assertVisible("postcode")[25].command
70
+ assert_equal "<tr><td>verifyNotVisible</td><td>postcode</td><td>&nbsp;</td></tr>", @selenium.verifyNotVisible("postcode")[26].command
71
+ assert_equal "<tr><td>assertNotVisible</td><td>postcode</td><td>&nbsp;</td></tr>", @selenium.assertNotVisible("postcode")[27].command
72
+ assert_equal "<tr><td>verifyEditable</td><td>shape</td><td>&nbsp;</td></tr>", @selenium.verifyEditable("shape")[28].command
73
+ assert_equal "<tr><td>assertEditable</td><td>shape</td><td>&nbsp;</td></tr>", @selenium.assertEditable("shape")[29].command
74
+ assert_equal "<tr><td>verifyNotEditable</td><td>shape</td><td>&nbsp;</td></tr>", @selenium.verifyNotEditable("shape")[30].command
75
+ assert_equal "<tr><td>assertNotEditable</td><td>shape</td><td>&nbsp;</td></tr>", @selenium.assertNotEditable("shape")[31].command
76
+ assert_equal "<tr><td>verifyAlert</td><td>Invalid Phone Number</td><td>&nbsp;</td></tr>", @selenium.verifyAlert("Invalid Phone Number")[32].command
77
+ assert_equal "<tr><td>assertAlert</td><td>Invalid Phone Number</td><td>&nbsp;</td></tr>", @selenium.assertAlert("Invalid Phone Number")[33].command
78
+ assert_equal "<tr><td>verifyConfirmation</td><td>Invalid Phone Number</td><td>&nbsp;</td></tr>", @selenium.verifyConfirmation("Invalid Phone Number")[34].command
79
+ assert_equal "<tr><td>assertConfirmation</td><td>Invalid Phone Number</td><td>&nbsp;</td></tr>", @selenium.assertConfirmation("Invalid Phone Number")[35].command
80
+ assert_equal "<tr><td>chooseCancelOnNextConfirmation</td><td></td><td></td></tr>", @selenium.chooseCancelOnNextConfirmation[36].command
81
+ end
82
+
83
+ def test_ruby_selenium_script_returns_script
84
+ selenium = RubySelenium.new("001_initialize_test_file")
85
+ selenium.open("http://rubyselenium.rubyforge.org")
86
+ selenium.verifyTitle("rubySelenium")
87
+ assert_equal "001_initialize_test_file", selenium.ruby_selenium_script.name
88
+ assert_equal "<tr><td>open</td><td>http://rubyselenium.rubyforge.org</td><td>&nbsp;</td></tr>", selenium.ruby_selenium_script.commands[0].command
89
+ assert_equal "<tr><td>verifyTitle</td><td>rubySelenium</td><td>&nbsp;</td></tr>", selenium.ruby_selenium_script.commands[1].command
90
+ end
91
+
92
+ def test_selenium_locators_return_correct_values
93
+ assert_equal "<tr><td>type</td><td>id=input_field_id</td><td>input_value</td></tr>", @selenium.type("id=input_field_id", "input_value")[0].command
94
+ assert_equal "<tr><td>type</td><td>name=input_field_name</td><td>input_value</td></tr>", @selenium.type("name=input_field_name", "input_value")[1].command
95
+ assert_equal "<tr><td>type</td><td>dom=document.forms['myForm'].myDropdown</td><td>input_value</td></tr>", @selenium.type("dom=document.forms['myForm'].myDropdown", "input_value")[2].command
96
+ assert_equal "<tr><td>type</td><td>xpath=//img[@alt='The image alt text']</td><td>input_value</td></tr>", @selenium.type("xpath=//img[@alt='The image alt text']", "input_value")[3].command
97
+ assert_equal "<tr><td>type</td><td>link=link_text</td><td>input_value</td></tr>", @selenium.type("link=link_text", "input_value")[4].command
98
+ end
99
+
100
+ def test_selenium_select_identifiers_return_correct_values
101
+ assert_equal "<tr><td>select</td><td>drop_down</td><td>label=label_1</td></tr>", @selenium.select("drop_down", "label=label_1")[0].command
102
+ assert_equal "<tr><td>select</td><td>drop_down</td><td>value=value_1</td></tr>", @selenium.select("drop_down", "value=value_1")[1].command
103
+ assert_equal "<tr><td>select</td><td>drop_down</td><td>id=id_1</td></tr>", @selenium.select("drop_down", "id=id_1")[2].command
104
+ assert_equal "<tr><td>select</td><td>drop_down</td><td>index=0</td></tr>", @selenium.select("drop_down", "index=0")[3].command
105
+ end
106
+
107
+
108
+ end