rubySelenium 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|