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.
- data/bin/rubyselenium-seed +25 -0
- data/documentation/output/css/style.css +36 -0
- data/documentation/output/documentation.html +197 -0
- data/documentation/output/files/rdoc/classes/Batch_Generator.html +274 -0
- data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000062.html +19 -0
- data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000063.html +26 -0
- data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000064.html +22 -0
- data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000065.html +20 -0
- data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000066.html +23 -0
- data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000067.html +18 -0
- data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000068.html +20 -0
- data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000069.html +18 -0
- data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000070.html +23 -0
- data/documentation/output/files/rdoc/classes/Batch_Generator.src/M000071.html +20 -0
- data/documentation/output/files/rdoc/classes/GenerateCommand.html +137 -0
- data/documentation/output/files/rdoc/classes/GenerateCommand.src/M000001.html +54 -0
- data/documentation/output/files/rdoc/classes/HTML_File_Generator.html +229 -0
- data/documentation/output/files/rdoc/classes/HTML_File_Generator.src/M000072.html +23 -0
- data/documentation/output/files/rdoc/classes/HTML_File_Generator.src/M000073.html +20 -0
- data/documentation/output/files/rdoc/classes/HTML_File_Generator.src/M000074.html +18 -0
- data/documentation/output/files/rdoc/classes/HTML_File_Generator.src/M000075.html +19 -0
- data/documentation/output/files/rdoc/classes/HTML_File_Generator.src/M000076.html +18 -0
- data/documentation/output/files/rdoc/classes/HTML_File_Generator.src/M000077.html +18 -0
- data/documentation/output/files/rdoc/classes/HTML_File_Generator.src/M000078.html +18 -0
- data/documentation/output/files/rdoc/classes/MissingConfigurationFile.html +111 -0
- data/documentation/output/files/rdoc/classes/MissingRubyTestFiles.html +111 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.html +1523 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000002.html +20 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000003.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000004.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000005.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000006.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000007.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000008.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000009.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000010.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000011.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000012.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000013.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000014.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000015.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000016.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000017.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000018.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000019.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000020.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000021.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000022.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000023.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000024.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000025.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000026.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000027.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000028.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000029.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000030.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000031.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000032.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000033.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000034.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000035.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000036.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000037.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000038.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000039.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000040.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000041.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000042.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000043.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000044.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000045.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000046.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000047.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000048.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000049.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000050.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000051.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000052.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000053.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000054.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000055.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000056.html +21 -0
- data/documentation/output/files/rdoc/classes/RubySelenium.src/M000057.html +20 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumConfig.html +182 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumConfig.src/M000093.html +22 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumConfig.src/M000094.html +27 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumConfig.src/M000095.html +25 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.html +334 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000079.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000080.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000081.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000082.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000083.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000084.html +18 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000085.html +21 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000086.html +21 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000087.html +21 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000088.html +21 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000089.html +21 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000090.html +21 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000091.html +21 -0
- data/documentation/output/files/rdoc/classes/RubySeleniumGenerator.src/M000092.html +21 -0
- data/documentation/output/files/rdoc/classes/String.html +137 -0
- data/documentation/output/files/rdoc/classes/String.src/M000096.html +20 -0
- data/documentation/output/files/rdoc/classes/Templates.html +184 -0
- data/documentation/output/files/rdoc/classes/Templates.src/M000058.html +20 -0
- data/documentation/output/files/rdoc/classes/Templates.src/M000059.html +18 -0
- data/documentation/output/files/rdoc/classes/Templates.src/M000060.html +18 -0
- data/documentation/output/files/rdoc/classes/Templates.src/M000061.html +18 -0
- data/documentation/output/files/rdoc/created.rid +1 -0
- data/documentation/output/files/rdoc/files/lib/RubySeleniumGenerator_rb.html +101 -0
- data/documentation/output/files/rdoc/files/lib/RubySelenium_rb.html +352 -0
- data/documentation/output/files/rdoc/fr_class_index.html +36 -0
- data/documentation/output/files/rdoc/fr_file_index.html +28 -0
- data/documentation/output/files/rdoc/fr_method_index.html +122 -0
- data/documentation/output/files/rdoc/index.html +24 -0
- data/documentation/output/files/rdoc/rdoc-style.css +208 -0
- data/documentation/output/images/background.jpg +0 -0
- data/documentation/output/images/blanklogo_noswirl.jpg +0 -0
- data/documentation/output/images/blanklogo_withswirl.jpg +0 -0
- data/documentation/output/images/left1.jpg +0 -0
- data/documentation/output/images/left1bg.jpg +0 -0
- data/documentation/output/images/mainbackground.jpg +0 -0
- data/documentation/output/images/menudivider.jpg +0 -0
- data/documentation/output/images/tempheadline.jpg +0 -0
- data/documentation/output/images/templogo.jpg +0 -0
- data/documentation/output/images/toplogobg.jpg +0 -0
- data/documentation/output/images/welcome.jpg +0 -0
- data/documentation/output/index.html +108 -0
- data/documentation/output/menu/my_menu.css +1 -0
- data/documentation/output/menu/my_menu.js +1 -0
- data/documentation/src/css/style.css +36 -0
- data/documentation/src/documentation.template.txt +51 -0
- data/documentation/src/files/rdoc/classes/Batch_Generator.html +274 -0
- data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000062.html +19 -0
- data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000063.html +26 -0
- data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000064.html +22 -0
- data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000065.html +20 -0
- data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000066.html +23 -0
- data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000067.html +18 -0
- data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000068.html +20 -0
- data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000069.html +18 -0
- data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000070.html +23 -0
- data/documentation/src/files/rdoc/classes/Batch_Generator.src/M000071.html +20 -0
- data/documentation/src/files/rdoc/classes/GenerateCommand.html +137 -0
- data/documentation/src/files/rdoc/classes/GenerateCommand.src/M000001.html +54 -0
- data/documentation/src/files/rdoc/classes/HTML_File_Generator.html +229 -0
- data/documentation/src/files/rdoc/classes/HTML_File_Generator.src/M000072.html +23 -0
- data/documentation/src/files/rdoc/classes/HTML_File_Generator.src/M000073.html +20 -0
- data/documentation/src/files/rdoc/classes/HTML_File_Generator.src/M000074.html +18 -0
- data/documentation/src/files/rdoc/classes/HTML_File_Generator.src/M000075.html +19 -0
- data/documentation/src/files/rdoc/classes/HTML_File_Generator.src/M000076.html +18 -0
- data/documentation/src/files/rdoc/classes/HTML_File_Generator.src/M000077.html +18 -0
- data/documentation/src/files/rdoc/classes/HTML_File_Generator.src/M000078.html +18 -0
- data/documentation/src/files/rdoc/classes/MissingConfigurationFile.html +111 -0
- data/documentation/src/files/rdoc/classes/MissingRubyTestFiles.html +111 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.html +1523 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000002.html +20 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000003.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000004.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000005.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000006.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000007.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000008.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000009.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000010.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000011.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000012.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000013.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000014.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000015.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000016.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000017.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000018.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000019.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000020.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000021.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000022.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000023.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000024.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000025.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000026.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000027.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000028.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000029.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000030.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000031.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000032.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000033.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000034.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000035.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000036.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000037.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000038.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000039.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000040.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000041.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000042.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000043.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000044.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000045.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000046.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000047.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000048.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000049.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000050.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000051.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000052.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000053.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000054.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000055.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000056.html +21 -0
- data/documentation/src/files/rdoc/classes/RubySelenium.src/M000057.html +20 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumConfig.html +182 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumConfig.src/M000093.html +22 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumConfig.src/M000094.html +27 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumConfig.src/M000095.html +25 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.html +334 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000079.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000080.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000081.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000082.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000083.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000084.html +18 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000085.html +21 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000086.html +21 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000087.html +21 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000088.html +21 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000089.html +21 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000090.html +21 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000091.html +21 -0
- data/documentation/src/files/rdoc/classes/RubySeleniumGenerator.src/M000092.html +21 -0
- data/documentation/src/files/rdoc/classes/String.html +137 -0
- data/documentation/src/files/rdoc/classes/String.src/M000096.html +20 -0
- data/documentation/src/files/rdoc/classes/Templates.html +184 -0
- data/documentation/src/files/rdoc/classes/Templates.src/M000058.html +20 -0
- data/documentation/src/files/rdoc/classes/Templates.src/M000059.html +18 -0
- data/documentation/src/files/rdoc/classes/Templates.src/M000060.html +18 -0
- data/documentation/src/files/rdoc/classes/Templates.src/M000061.html +18 -0
- data/documentation/src/files/rdoc/created.rid +1 -0
- data/documentation/src/files/rdoc/files/lib/RubySeleniumGenerator_rb.html +101 -0
- data/documentation/src/files/rdoc/files/lib/RubySelenium_rb.html +352 -0
- data/documentation/src/files/rdoc/fr_class_index.html +36 -0
- data/documentation/src/files/rdoc/fr_file_index.html +28 -0
- data/documentation/src/files/rdoc/fr_method_index.html +122 -0
- data/documentation/src/files/rdoc/index.html +24 -0
- data/documentation/src/files/rdoc/rdoc-style.css +208 -0
- data/documentation/src/images/background.jpg +0 -0
- data/documentation/src/images/blanklogo_noswirl.jpg +0 -0
- data/documentation/src/images/blanklogo_withswirl.jpg +0 -0
- data/documentation/src/images/left1.jpg +0 -0
- data/documentation/src/images/left1bg.jpg +0 -0
- data/documentation/src/images/mainbackground.jpg +0 -0
- data/documentation/src/images/menudivider.jpg +0 -0
- data/documentation/src/images/tempheadline.jpg +0 -0
- data/documentation/src/images/templogo.jpg +0 -0
- data/documentation/src/images/toplogobg.jpg +0 -0
- data/documentation/src/images/welcome.jpg +0 -0
- data/documentation/src/index.template.txt +50 -0
- data/documentation/src/keywords/documentation_user_guide_content.keyword.txt +134 -0
- data/documentation/src/keywords/generic_browser_title.keyword.txt +1 -0
- data/documentation/src/keywords/generic_published.keyword.rb +1 -0
- data/documentation/src/keywords/index_content.keyword.txt +51 -0
- data/documentation/src/menu/default_menu/default_menu.css +44 -0
- data/documentation/src/menu/default_menu/default_menu.html.txt +28 -0
- data/documentation/src/menu/default_menu/default_menu.js +19 -0
- data/documentation/src/menu/menu_config.txt +1 -0
- data/documentation/src/menu/my_menu/my_menu.html.txt +15 -0
- data/lib/RubySelenium.rb +1088 -0
- data/lib/RubySeleniumGenerator.rb +570 -0
- data/rubySelenium.gemspec +48 -0
- data/unittests/TODO.txt +10 -0
- data/unittests/all_tests.rb +5 -0
- data/unittests/rubySeleniumConfig.txt +41 -0
- data/unittests/test-structure/001_MyFirstTest.rb +15 -0
- data/unittests/test-structure/002_MySecondTest.rb +15 -0
- data/unittests/test-structure/003_MyThirdTest.rb +15 -0
- data/unittests/test-structure/execute_all_tests.rb +2 -0
- data/unittests/test-structure/generate_all_tests.rb +2 -0
- data/unittests/test-structure/rubySeleniumConfig.txt +41 -0
- data/unittests/test_batch_generator.rb +58 -0
- data/unittests/test_command_line_execution.rb +17 -0
- data/unittests/test_config_file.rb +28 -0
- data/unittests/test_html_file_creation.rb +93 -0
- data/unittests/test_selenium_core_api.rb +108 -0
- 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
|
data/unittests/TODO.txt
ADDED
|
@@ -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,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> </td></tr>',
|
|
33
|
+
'<tr><td>verifyTitle</td><td>rubySelenium</td><td> </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> </td></tr>", "command"._h("target", " ")
|
|
12
|
+
assert_equal "<tr><td>command</td><td>target</td><td> </td></tr>", "command"._h("target", "")
|
|
13
|
+
assert_equal "<tr><td>command</td><td>target</td><td> </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> </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> </td></tr>", @selenium.click("click_button")[3].command
|
|
30
|
+
assert_equal "<tr><td>clickAndWait</td><td>click_button</td><td> </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> </td></tr>", @selenium.selectWindow("window")[7].command
|
|
34
|
+
assert_equal "<tr><td>pause</td><td>5000</td><td> </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> </td></tr>", @selenium.verifyLocation("/mypage")[0].command
|
|
45
|
+
assert_equal "<tr><td>assertLocation</td><td>/mypage</td><td> </td></tr>", @selenium.assertLocation("/mypage")[1].command
|
|
46
|
+
assert_equal "<tr><td>verifyTitle</td><td>/mypage</td><td> </td></tr>", @selenium.verifyTitle("/mypage")[2].command
|
|
47
|
+
assert_equal "<tr><td>assertTitle</td><td>/mypage</td><td> </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> </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> </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> </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> </td></tr>", @selenium.assertTextNotPresent("You are now logged in.")[17].command
|
|
62
|
+
assert_equal "<tr><td>verifyElementPresent</td><td>submit_button</td><td> </td></tr>", @selenium.verifyElementPresent("submit_button")[18].command
|
|
63
|
+
assert_equal "<tr><td>assertElementPresent</td><td>submit_button</td><td> </td></tr>", @selenium.assertElementPresent("submit_button")[19].command
|
|
64
|
+
assert_equal "<tr><td>verifyElementNotPresent</td><td>cancel_button</td><td> </td></tr>", @selenium.verifyElementNotPresent("cancel_button")[20].command
|
|
65
|
+
assert_equal "<tr><td>assertElementNotPresent</td><td>cancel_button</td><td> </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> </td></tr>", @selenium.verifyVisible("postcode")[24].command
|
|
69
|
+
assert_equal "<tr><td>assertVisible</td><td>postcode</td><td> </td></tr>", @selenium.assertVisible("postcode")[25].command
|
|
70
|
+
assert_equal "<tr><td>verifyNotVisible</td><td>postcode</td><td> </td></tr>", @selenium.verifyNotVisible("postcode")[26].command
|
|
71
|
+
assert_equal "<tr><td>assertNotVisible</td><td>postcode</td><td> </td></tr>", @selenium.assertNotVisible("postcode")[27].command
|
|
72
|
+
assert_equal "<tr><td>verifyEditable</td><td>shape</td><td> </td></tr>", @selenium.verifyEditable("shape")[28].command
|
|
73
|
+
assert_equal "<tr><td>assertEditable</td><td>shape</td><td> </td></tr>", @selenium.assertEditable("shape")[29].command
|
|
74
|
+
assert_equal "<tr><td>verifyNotEditable</td><td>shape</td><td> </td></tr>", @selenium.verifyNotEditable("shape")[30].command
|
|
75
|
+
assert_equal "<tr><td>assertNotEditable</td><td>shape</td><td> </td></tr>", @selenium.assertNotEditable("shape")[31].command
|
|
76
|
+
assert_equal "<tr><td>verifyAlert</td><td>Invalid Phone Number</td><td> </td></tr>", @selenium.verifyAlert("Invalid Phone Number")[32].command
|
|
77
|
+
assert_equal "<tr><td>assertAlert</td><td>Invalid Phone Number</td><td> </td></tr>", @selenium.assertAlert("Invalid Phone Number")[33].command
|
|
78
|
+
assert_equal "<tr><td>verifyConfirmation</td><td>Invalid Phone Number</td><td> </td></tr>", @selenium.verifyConfirmation("Invalid Phone Number")[34].command
|
|
79
|
+
assert_equal "<tr><td>assertConfirmation</td><td>Invalid Phone Number</td><td> </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> </td></tr>", selenium.ruby_selenium_script.commands[0].command
|
|
89
|
+
assert_equal "<tr><td>verifyTitle</td><td>rubySelenium</td><td> </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
|