zena 1.2.7 → 1.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. data/History.txt +80 -25
  2. data/Rakefile +2 -2
  3. data/app/controllers/columns_controller.rb +2 -2
  4. data/app/controllers/nodes_controller.rb +22 -29
  5. data/app/controllers/user_sessions_controller.rb +35 -10
  6. data/app/controllers/users_controller.rb +2 -2
  7. data/app/controllers/versions_controller.rb +2 -2
  8. data/app/models/group.rb +15 -1
  9. data/app/models/node.rb +109 -8
  10. data/app/models/role.rb +4 -0
  11. data/app/models/site.rb +64 -58
  12. data/app/models/template.rb +1 -1
  13. data/app/models/user.rb +135 -29
  14. data/app/models/user_session.rb +0 -1
  15. data/app/models/virtual_class.rb +11 -6
  16. data/app/views/columns/_form.html.erb +3 -1
  17. data/app/views/columns/_li.html.erb +1 -1
  18. data/app/views/columns/create.rjs +1 -1
  19. data/app/views/groups/_form.rhtml +16 -13
  20. data/app/views/relations/_form.erb +18 -6
  21. data/app/views/sites/_form.erb +12 -6
  22. data/app/views/users/_form.rhtml +23 -8
  23. data/app/views/users/_li.rhtml +14 -3
  24. data/app/views/users/index.rhtml +1 -1
  25. data/app/views/virtual_classes/_form.erb +12 -2
  26. data/app/views/zafu/default/Node-+login.zafu +8 -1
  27. data/app/views/zafu/default/Node-+search.zafu +1 -1
  28. data/bricks/acls/lib/bricks/acls.rb +1 -0
  29. data/bricks/acls/zena/migrate/20130903150356_longer_names_for_acl.rb +9 -0
  30. data/bricks/acls/zena/test/integration/acl_integration_test.rb +2 -2
  31. data/bricks/currency/lib/bricks/currency.rb +120 -0
  32. data/bricks/currency/zena/test/unit/currency_test.rb +43 -0
  33. data/bricks/fs_skin/lib/bricks/fs_skin.rb +1 -1
  34. data/bricks/fs_skin/zena/skins/blog/Node-+search.zafu +1 -1
  35. data/bricks/fs_skin/zena/skins/blog/Node.zafu +1 -1
  36. data/bricks/fs_skin/zena/test/unit/fs_skin_view_test.rb +35 -0
  37. data/bricks/pdf/lib/bricks/pdf.rb +1 -1
  38. data/bricks/sphinx/lib/bricks/sphinx.rb +2 -0
  39. data/bricks/sphinx/zena/init.rb +14 -0
  40. data/bricks/tags/zena/test/zafu/tags.yml +5 -1
  41. data/bricks/worker/lib/bricks/worker.rb +3 -2
  42. data/bricks/zena/zena/migrate/20130829093753_add_versioned_flag_to_column.rb +10 -0
  43. data/bricks/zena/zena/migrate/20130903084909_count_login_attempts.rb +11 -0
  44. data/bricks/zena/zena/migrate/20131104153126_index_fullpath.rb +10 -0
  45. data/bricks/zena/zena/migrate/20131104210011_rebuild_fullpath_after_change.rb +10 -0
  46. data/bricks/zena/zena/migrate/20131105160420_add_skin_id_to_sites.rb +9 -0
  47. data/bricks/zena/zena/migrate/20131105175822_add_profile_to_users.rb +11 -0
  48. data/bricks/zena/zena/migrate/20140213120038_fix_idx_scope.rb +13 -0
  49. data/bricks/zena/zena/migrate/20140628140247_add_site_readonly.rb +9 -0
  50. data/config/bricks.yml +8 -4
  51. data/config/gems.yml +5 -3
  52. data/db/init/base/skins/default/Node-+login.zafu +8 -1
  53. data/db/init/base/skins/default/Node-+search.zafu +1 -1
  54. data/lib/bricks/loader.rb +5 -5
  55. data/lib/gettext_strings.rb +3 -0
  56. data/lib/tasks/zena.rake +25 -22
  57. data/lib/zafu/process/context.rb +4 -0
  58. data/lib/zena/acts/secure_node.rb +3 -3
  59. data/lib/zena/app.rb +1 -0
  60. data/lib/zena/deploy.rb +1 -1
  61. data/lib/zena/deploy/template.rb +1 -1
  62. data/lib/zena/foxy_parser.rb +5 -2
  63. data/lib/zena/info.rb +1 -1
  64. data/lib/zena/site_worker.rb +2 -2
  65. data/lib/zena/test_controller.rb +5 -2
  66. data/lib/zena/use/action.rb +9 -2
  67. data/lib/zena/use/ajax.rb +20 -4
  68. data/lib/zena/use/ancestry.rb +89 -15
  69. data/lib/zena/use/authlogic.rb +8 -2
  70. data/lib/zena/use/context.rb +1 -0
  71. data/lib/zena/use/display.rb +1 -97
  72. data/lib/zena/use/forms.rb +28 -8
  73. data/lib/zena/use/html_tags.rb +16 -7
  74. data/lib/zena/use/i18n.rb +1 -1
  75. data/lib/zena/use/prop_eval.rb +6 -1
  76. data/lib/zena/use/query_node.rb +69 -4
  77. data/lib/zena/use/recursion.rb +1 -1
  78. data/lib/zena/use/refactor.rb +5 -2
  79. data/lib/zena/use/relations.rb +1 -0
  80. data/lib/zena/use/rendering.rb +7 -4
  81. data/lib/zena/use/test_helper.rb +8 -4
  82. data/lib/zena/use/upload.rb +14 -0
  83. data/lib/zena/use/urls.rb +39 -23
  84. data/lib/zena/use/version_hash.rb +5 -2
  85. data/lib/zena/use/workflow.rb +116 -70
  86. data/lib/zena/use/zafu_eval.rb +41 -0
  87. data/lib/zena/use/zafu_safe_definitions.rb +1 -0
  88. data/lib/zena/use/zafu_templates.rb +32 -26
  89. data/lib/zena/use/zazen.rb +8 -7
  90. data/locale/app.pot +5 -1
  91. data/locale/de/LC_MESSAGES/zena.mo +0 -0
  92. data/locale/de/zena.po +385 -281
  93. data/locale/en/LC_MESSAGES/zena.mo +0 -0
  94. data/locale/en/zena.po +378 -271
  95. data/locale/fr/LC_MESSAGES/zena.mo +0 -0
  96. data/locale/fr/zena.po +387 -272
  97. data/locale/it/LC_MESSAGES/zena.mo +0 -0
  98. data/locale/it/zena.po +433 -404
  99. data/locale/zena.pot +362 -268
  100. data/public/javascripts/grid.js +280 -104
  101. data/public/javascripts/zena.js +43 -15
  102. data/public/stylesheets/admin.css +8 -2
  103. data/public/stylesheets/grid.css +5 -2
  104. data/public/stylesheets/popup.css +1 -1
  105. data/test/fixtures/files/TestNode.zafu +51 -0
  106. data/test/functional/nodes_controller_test.rb +20 -5
  107. data/test/functional/user_sessions_controller_test.rb +41 -6
  108. data/test/functional/users_controller_test.rb +1 -2
  109. data/test/integration/navigation_test.rb +22 -4
  110. data/test/integration/query_node/basic.yml +7 -0
  111. data/test/integration/query_node/complex.yml +1 -1
  112. data/test/integration/query_node/errors.yml +1 -1
  113. data/test/integration/query_node/filters.yml +34 -1
  114. data/test/integration/query_node/relations.yml +6 -13
  115. data/test/integration/query_node_test.rb +22 -3
  116. data/test/integration/zafu_compiler/action.yml +1 -1
  117. data/test/integration/zafu_compiler/alias_site.yml +52 -0
  118. data/test/integration/zafu_compiler/complex.yml +1 -1
  119. data/test/integration/zafu_compiler/complex_ok.yml +5 -5
  120. data/test/integration/zafu_compiler/context.yml +1 -1
  121. data/test/integration/zafu_compiler/display.yml +56 -5
  122. data/test/integration/zafu_compiler/forms.yml +35 -2
  123. data/test/integration/zafu_compiler/meta.yml +4 -0
  124. data/test/integration/zafu_compiler/rubyless.yml +1 -1
  125. data/test/integration/zafu_compiler/safe_definitions.yml +4 -0
  126. data/test/integration/zafu_compiler/security.yml +10 -0
  127. data/test/integration/zafu_compiler/site.yml +5 -1
  128. data/test/integration/zafu_compiler/urls.yml +8 -2
  129. data/test/integration/zafu_compiler/zafu_attributes.yml +2 -1
  130. data/test/integration/zafu_compiler/zazen.yml +4 -0
  131. data/test/integration/zafu_compiler_test.rb +47 -4
  132. data/test/selenium/Grid/grid1.rsel +8 -8
  133. data/test/sites/complex/sites.yml +2 -2
  134. data/test/sites/complex/users.yml +1 -0
  135. data/test/sites/zena/columns.yml +4 -0
  136. data/test/sites/zena/sites.yml +1 -0
  137. data/test/sites/zena/users.yml +1 -0
  138. data/test/unit/node_test.rb +53 -5
  139. data/test/unit/note_test.rb +1 -1
  140. data/test/unit/relation_proxy_test.rb +20 -0
  141. data/test/unit/role_test.rb +2 -0
  142. data/test/unit/site_test.rb +28 -6
  143. data/test/unit/user_test.rb +332 -1
  144. data/test/unit/virtual_class_test.rb +55 -0
  145. data/test/unit/workflow_test.rb +175 -0
  146. data/test/unit/zena/use/ancestry_test.rb +52 -10
  147. data/test/unit/zena/use/prop_eval_test.rb +44 -0
  148. data/test/unit/zena/use/rendering_test.rb +48 -2
  149. data/test/unit/zena/use/upload_test.rb +15 -13
  150. data/test/unit/zena/use/urls_test.rb +1 -0
  151. data/vendor/plugins/ar_mysql_full_text/lib/ar_mysql_full_text.rb +39 -25
  152. data/zena.gemspec +69 -307
  153. metadata +143 -368
  154. data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run 2.tmCommand +0 -24
  155. data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run Context.tmCommand +0 -58
  156. data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run Focused Should.tmCommand +0 -88
  157. data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run.tmCommand +0 -27
  158. data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/YAML to Shoulda.tmCommand +0 -23
  159. data/vendor/TextMate/Ruby Shoulda.tmbundle/Preferences/Symbol List: Context.tmPreferences +0 -19
  160. data/vendor/TextMate/Ruby Shoulda.tmbundle/Preferences/Symbol List: Should.tmPreferences +0 -19
  161. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory attributes for.tmSnippet +0 -16
  162. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory build.tmSnippet +0 -16
  163. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory.tmSnippet +0 -16
  164. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_define with class.tmSnippet +0 -18
  165. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_define.tmSnippet +0 -18
  166. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_next.tmSnippet +0 -16
  167. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_sequence.tmSnippet +0 -18
  168. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_bad_value.tmSnippet +0 -16
  169. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_contains.tmSnippet +0 -16
  170. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_does_not_contain.tmSnippet +0 -16
  171. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_good_value.tmSnippet +0 -16
  172. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_same_elements.tmSnippet +0 -16
  173. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_save.tmSnippet +0 -16
  174. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_sent_email.tmSnippet +0 -18
  175. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_valid.tmSnippet +0 -16
  176. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/association.tmSnippet +0 -17
  177. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/attribute.tmSnippet +0 -17
  178. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/before_should block.tmSnippet +0 -18
  179. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block get.tmSnippet +0 -22
  180. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block post.tmSnippet +0 -23
  181. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block with setup.tmSnippet +0 -25
  182. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/setup.tmSnippet +0 -18
  183. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should block with before proc.tmSnippet +0 -18
  184. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should block.tmSnippet +0 -18
  185. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_allow_values_for.tmSnippet +0 -16
  186. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_assign_to.tmSnippet +0 -16
  187. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_be_restful denied.tmSnippet +0 -20
  188. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_be_restful.tmSnippet +0 -20
  189. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_belong_to.tmSnippet +0 -16
  190. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_change by.tmSnippet +0 -16
  191. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_change from to.tmSnippet +0 -16
  192. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_at_least.tmSnippet +0 -16
  193. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_in_range.tmSnippet +0 -16
  194. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_is.tmSnippet +0 -16
  195. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_value_in_range.tmSnippet +0 -16
  196. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_eventually.tmSnippet +0 -18
  197. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_filter_params.tmSnippet +0 -16
  198. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_and_belong_to_many.tmSnippet +0 -16
  199. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_class_methods.tmSnippet +0 -16
  200. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_db_column.tmSnippet +0 -16
  201. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_db_columns.tmSnippet +0 -16
  202. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_index.tmSnippet +0 -16
  203. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_indices.tmSnippet +0 -16
  204. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_instance_methods.tmSnippet +0 -16
  205. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_many.tmSnippet +0 -16
  206. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_named_scope.tmSnippet +0 -16
  207. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_one.tmSnippet +0 -16
  208. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_readonly_attributes.tmSnippet +0 -16
  209. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_allow_mass_assignment_of.tmSnippet +0 -16
  210. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_allow_values_for.tmSnippet +0 -16
  211. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_assign_to.tmSnippet +0 -16
  212. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_change.tmSnippet +0 -16
  213. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_set_the_flash.tmSnippet +0 -16
  214. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_redirect_to.tmSnippet +0 -16
  215. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_a_form.tmSnippet +0 -16
  216. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_template.tmSnippet +0 -16
  217. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_with_layout.tmSnippet +0 -16
  218. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_without_layout.tmSnippet +0 -16
  219. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_respond_with.tmSnippet +0 -16
  220. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_respond_with_content_type.tmSnippet +0 -16
  221. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_return_from_session.tmSnippet +0 -16
  222. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_route.tmSnippet +0 -16
  223. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_set_the_flash_to.tmSnippet +0 -16
  224. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_acceptance_of.tmSnippet +0 -16
  225. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_numericality_of.tmSnippet +0 -16
  226. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_presence_of.tmSnippet +0 -16
  227. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_uniqueness_of with scope.tmSnippet +0 -16
  228. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_uniqueness_of.tmSnippet +0 -16
  229. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/catch_exception.rb +0 -39
  230. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/run_script.rb +0 -104
  231. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/stdin_dialog.rb +0 -14
  232. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/test.rb +0 -17
  233. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/todo.txt +0 -13
  234. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/bin/yaml_to_shoulda.rb +0 -25
  235. data/vendor/TextMate/Ruby Shoulda.tmbundle/Syntaxes/Ruby on Rails (Shoulda).tmLanguage +0 -166
  236. data/vendor/TextMate/Ruby Shoulda.tmbundle/info.plist +0 -304
  237. data/vendor/TextMate/Zena.tmbundle/Commands/Run all yaml tests.tmCommand +0 -37
  238. data/vendor/TextMate/Zena.tmbundle/Commands/Run focused yaml test.tmCommand +0 -52
  239. data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/catch_exception.rb +0 -39
  240. data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/run_script.rb +0 -118
  241. data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/stdin_dialog.rb +0 -14
  242. data/vendor/TextMate/Zena.tmbundle/info.plist +0 -17
  243. data/vendor/plugins/selenium-on-rails/CHANGELOG +0 -125
  244. data/vendor/plugins/selenium-on-rails/LICENSE-2.0.txt +0 -202
  245. data/vendor/plugins/selenium-on-rails/README.md +0 -202
  246. data/vendor/plugins/selenium-on-rails/Rakefile +0 -38
  247. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumController.html +0 -265
  248. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumHelper.html +0 -148
  249. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails.html +0 -126
  250. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/FixtureLoader.html +0 -231
  251. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/PartialsSupport.html +0 -195
  252. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/Paths.html +0 -295
  253. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/RSelenese.html +0 -219
  254. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/Renderer.html +0 -156
  255. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/Selenese.html +0 -179
  256. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/SuiteRenderer.html +0 -223
  257. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/TestBuilder.html +0 -441
  258. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/TestBuilderAccessors.html +0 -3098
  259. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/TestBuilderActions.html +0 -2080
  260. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/TestBuilderUserAccessors.html +0 -116
  261. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/TestBuilderUserActions.html +0 -116
  262. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRailsConfig.html +0 -150
  263. data/vendor/plugins/selenium-on-rails/doc/files/CHANGELOG.html +0 -422
  264. data/vendor/plugins/selenium-on-rails/doc/files/README.html +0 -321
  265. data/vendor/plugins/selenium-on-rails/doc/files/lib/controllers/selenium_controller_rb.html +0 -108
  266. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_helper_rb.html +0 -101
  267. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/acceptance_test_runner_rb.html +0 -222
  268. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/fixture_loader_rb.html +0 -109
  269. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/partials_support_rb.html +0 -111
  270. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/paths_rb.html +0 -101
  271. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/renderer_rb.html +0 -101
  272. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/rselenese_rb.html +0 -118
  273. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/selenese_rb.html +0 -101
  274. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/suite_renderer_rb.html +0 -101
  275. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/test_builder_accessors_rb.html +0 -114
  276. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/test_builder_actions_rb.html +0 -113
  277. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/test_builder_rb.html +0 -120
  278. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails_config_rb.html +0 -108
  279. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails_rb.html +0 -115
  280. data/vendor/plugins/selenium-on-rails/doc/fr_class_index.html +0 -42
  281. data/vendor/plugins/selenium-on-rails/doc/fr_file_index.html +0 -43
  282. data/vendor/plugins/selenium-on-rails/doc/fr_method_index.html +0 -182
  283. data/vendor/plugins/selenium-on-rails/doc/index.html +0 -24
  284. data/vendor/plugins/selenium-on-rails/doc/rdoc-style.css +0 -208
  285. data/vendor/plugins/selenium-on-rails/generators/selenium/USAGE +0 -19
  286. data/vendor/plugins/selenium-on-rails/generators/selenium/selenium_generator.rb +0 -50
  287. data/vendor/plugins/selenium-on-rails/generators/selenium/templates/rhtml.rhtml +0 -16
  288. data/vendor/plugins/selenium-on-rails/generators/selenium/templates/rselenese.rhtml +0 -14
  289. data/vendor/plugins/selenium-on-rails/generators/selenium/templates/selenese.rhtml +0 -11
  290. data/vendor/plugins/selenium-on-rails/init.rb +0 -15
  291. data/vendor/plugins/selenium-on-rails/lib/controllers/selenium_controller.rb +0 -122
  292. data/vendor/plugins/selenium-on-rails/lib/controllers/switch_environment_controller.rb +0 -16
  293. data/vendor/plugins/selenium-on-rails/lib/selenium_helper.rb +0 -8
  294. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails.rb +0 -11
  295. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/acceptance_test_runner.rb +0 -215
  296. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/fixture_loader.rb +0 -57
  297. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/partials_support.rb +0 -36
  298. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/paths.rb +0 -61
  299. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/renderer.rb +0 -20
  300. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/rselenese.rb +0 -44
  301. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/selenese.rb +0 -87
  302. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/suite_renderer.rb +0 -56
  303. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/test_builder.rb +0 -116
  304. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/test_builder_accessors.rb +0 -1002
  305. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/test_builder_actions.rb +0 -514
  306. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/test_builder_user_accessors.rb.example +0 -91
  307. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/test_builder_user_actions.rb.example +0 -24
  308. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails_config.rb +0 -30
  309. data/vendor/plugins/selenium-on-rails/lib/views/layouts/layout.rhtml +0 -18
  310. data/vendor/plugins/selenium-on-rails/lib/views/record.rhtml +0 -5
  311. data/vendor/plugins/selenium-on-rails/lib/views/selenium_helper.rb +0 -9
  312. data/vendor/plugins/selenium-on-rails/lib/views/setup.rhtml +0 -67
  313. data/vendor/plugins/selenium-on-rails/lib/views/test_suite.rhtml +0 -26
  314. data/vendor/plugins/selenium-on-rails/routes.rb +0 -24
  315. data/vendor/plugins/selenium-on-rails/selenium-core/Blank.html +0 -7
  316. data/vendor/plugins/selenium-on-rails/selenium-core/InjectedRemoteRunner.html +0 -8
  317. data/vendor/plugins/selenium-on-rails/selenium-core/RemoteRunner.html +0 -110
  318. data/vendor/plugins/selenium-on-rails/selenium-core/SeleniumLog.html +0 -109
  319. data/vendor/plugins/selenium-on-rails/selenium-core/TestPrompt.html +0 -145
  320. data/vendor/plugins/selenium-on-rails/selenium-core/TestRunner-splash.html +0 -55
  321. data/vendor/plugins/selenium-on-rails/selenium-core/TestRunner.hta +0 -177
  322. data/vendor/plugins/selenium-on-rails/selenium-core/TestRunner.html +0 -177
  323. data/vendor/plugins/selenium-on-rails/selenium-core/domviewer/butmin.gif +0 -0
  324. data/vendor/plugins/selenium-on-rails/selenium-core/domviewer/butplus.gif +0 -0
  325. data/vendor/plugins/selenium-on-rails/selenium-core/domviewer/domviewer.css +0 -298
  326. data/vendor/plugins/selenium-on-rails/selenium-core/domviewer/domviewer.html +0 -16
  327. data/vendor/plugins/selenium-on-rails/selenium-core/domviewer/selenium-domviewer.js +0 -205
  328. data/vendor/plugins/selenium-on-rails/selenium-core/icons/all.png +0 -0
  329. data/vendor/plugins/selenium-on-rails/selenium-core/icons/continue.png +0 -0
  330. data/vendor/plugins/selenium-on-rails/selenium-core/icons/continue_disabled.png +0 -0
  331. data/vendor/plugins/selenium-on-rails/selenium-core/icons/pause.png +0 -0
  332. data/vendor/plugins/selenium-on-rails/selenium-core/icons/pause_disabled.png +0 -0
  333. data/vendor/plugins/selenium-on-rails/selenium-core/icons/selected.png +0 -0
  334. data/vendor/plugins/selenium-on-rails/selenium-core/icons/step.png +0 -0
  335. data/vendor/plugins/selenium-on-rails/selenium-core/icons/step_disabled.png +0 -0
  336. data/vendor/plugins/selenium-on-rails/selenium-core/iedoc-core.xml +0 -1759
  337. data/vendor/plugins/selenium-on-rails/selenium-core/iedoc.xml +0 -1800
  338. data/vendor/plugins/selenium-on-rails/selenium-core/lib/cssQuery/cssQuery-p.js +0 -6
  339. data/vendor/plugins/selenium-on-rails/selenium-core/lib/cssQuery/src/cssQuery-level2.js +0 -142
  340. data/vendor/plugins/selenium-on-rails/selenium-core/lib/cssQuery/src/cssQuery-level3.js +0 -150
  341. data/vendor/plugins/selenium-on-rails/selenium-core/lib/cssQuery/src/cssQuery-standard.js +0 -53
  342. data/vendor/plugins/selenium-on-rails/selenium-core/lib/cssQuery/src/cssQuery.js +0 -356
  343. data/vendor/plugins/selenium-on-rails/selenium-core/lib/prototype.js +0 -2006
  344. data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/builder.js +0 -101
  345. data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/controls.js +0 -815
  346. data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/dragdrop.js +0 -915
  347. data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/effects.js +0 -958
  348. data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/scriptaculous.js +0 -47
  349. data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/slider.js +0 -283
  350. data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/unittest.js +0 -383
  351. data/vendor/plugins/selenium-on-rails/selenium-core/lib/snapsie.js +0 -91
  352. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/find_matching_child.js +0 -69
  353. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/htmlutils.js +0 -1616
  354. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/injection.html +0 -72
  355. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-api.js +0 -3184
  356. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-browserbot.js +0 -2300
  357. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-browserdetect.js +0 -153
  358. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-commandhandlers.js +0 -377
  359. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-executionloop.js +0 -175
  360. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-logging.js +0 -148
  361. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-remoterunner.js +0 -695
  362. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-testrunner.js +0 -1362
  363. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-version.js +0 -5
  364. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/ui-doc.html +0 -803
  365. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/ui-element.js +0 -1537
  366. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/ui-map-sample.js +0 -979
  367. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/user-extensions.js +0 -3
  368. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/user-extensions.js.sample +0 -75
  369. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/xmlextras.js +0 -153
  370. data/vendor/plugins/selenium-on-rails/selenium-core/selenium-logo.png +0 -0
  371. data/vendor/plugins/selenium-on-rails/selenium-core/selenium-test.css +0 -43
  372. data/vendor/plugins/selenium-on-rails/selenium-core/selenium.css +0 -316
  373. data/vendor/plugins/selenium-on-rails/selenium-core/xpath/dom.js +0 -566
  374. data/vendor/plugins/selenium-on-rails/selenium-core/xpath/javascript-xpath-0.1.11.js +0 -2816
  375. data/vendor/plugins/selenium-on-rails/selenium-core/xpath/util.js +0 -549
  376. data/vendor/plugins/selenium-on-rails/selenium-core/xpath/xmltoken.js +0 -149
  377. data/vendor/plugins/selenium-on-rails/selenium-core/xpath/xpath.js +0 -2450
  378. data/vendor/plugins/selenium-on-rails/tasks/test_acceptance.rake +0 -8
  379. data/vendor/plugins/selenium-on-rails/test/fixtures/config.yml +0 -37
  380. data/vendor/plugins/selenium-on-rails/test/fixtures/selenium.yml +0 -27
  381. data/vendor/plugins/selenium-on-rails/test/paths_test.rb +0 -72
  382. data/vendor/plugins/selenium-on-rails/test/renderer_test.rb +0 -157
  383. data/vendor/plugins/selenium-on-rails/test/rselenese_test.rb +0 -708
  384. data/vendor/plugins/selenium-on-rails/test/selenese_test.rb +0 -242
  385. data/vendor/plugins/selenium-on-rails/test/selenium_controller_test.rb +0 -67
  386. data/vendor/plugins/selenium-on-rails/test/selenium_on_rails_config_test.rb +0 -43
  387. data/vendor/plugins/selenium-on-rails/test/selenium_support_test.rb +0 -35
  388. data/vendor/plugins/selenium-on-rails/test/setup_test.rb +0 -31
  389. data/vendor/plugins/selenium-on-rails/test/suite_renderer_test.rb +0 -109
  390. data/vendor/plugins/selenium-on-rails/test/switch_environment_controller_test.rb +0 -17
  391. data/vendor/plugins/selenium-on-rails/test/test_builder_functions_authortest.rb +0 -51
  392. data/vendor/plugins/selenium-on-rails/test/test_helper.rb +0 -101
  393. data/vendor/plugins/selenium-on-rails/test_data/_partial.rsel +0 -1
  394. data/vendor/plugins/selenium-on-rails/test_data/own_layout.html +0 -12
  395. data/vendor/plugins/selenium-on-rails/test_data/partials/_html.html +0 -6
  396. data/vendor/plugins/selenium-on-rails/test_data/partials/_nesting.rsel +0 -2
  397. data/vendor/plugins/selenium-on-rails/test_data/partials/_rhtml.rhtml +0 -6
  398. data/vendor/plugins/selenium-on-rails/test_data/partials/_rsel.rsel +0 -1
  399. data/vendor/plugins/selenium-on-rails/test_data/partials/_sel.sel +0 -5
  400. data/vendor/plugins/selenium-on-rails/test_data/partials/all_partials.rsel +0 -5
  401. data/vendor/plugins/selenium-on-rails/test_data/rhtml.rhtml +0 -7
  402. data/vendor/plugins/selenium-on-rails/test_data/rselenese.rsel +0 -8
  403. data/vendor/plugins/selenium-on-rails/test_data/selenese.sel +0 -7
  404. data/vendor/plugins/selenium-on-rails/test_data/suite_one/subsuite/suite_one_subsuite_testcase.sel +0 -1
  405. data/vendor/plugins/selenium-on-rails/test_data/suite_one/suite_one_testcase1.sel +0 -1
  406. data/vendor/plugins/selenium-on-rails/test_data/suite_one/suite_one_testcase2.sel +0 -1
  407. data/vendor/plugins/selenium-on-rails/test_data/suite_two/suite_two_testcase.sel +0 -1
@@ -1,242 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper'
2
-
3
- class SeleneseTest < Test::Unit::TestCase
4
-
5
- def setup
6
- @view = TestView.new
7
- @view.extend(SeleniumOnRails::PathsTestHelper)
8
- @sel = SeleniumOnRails::Selenese.new(@view)
9
- end
10
-
11
- def render_selenese(page_title, input)
12
- create_sel_file_from(input, "html.sel")
13
-
14
- @sel.render ActionView::Template.new(test_path_for("html.sel")), {'page_title' => page_title}
15
- end
16
-
17
- def create_sel_file_from(input, name)
18
- File.open(test_path_for(name), 'w+') { |index_file| index_file << input }
19
- end
20
-
21
- def test_path_for(name)
22
- "#{File.expand_path(File.dirname(__FILE__) + "/../test_data")}/#{name}"
23
- end
24
-
25
- def assert_selenese expected, name, input
26
- assert_text_equal expected, render_selenese(name, input)
27
- end
28
-
29
- def test_empty
30
- expected = <<END
31
- <table>
32
- <tr><th colspan="3">Empty</th></tr>
33
- </table>
34
- END
35
- input = ''
36
- assert_selenese expected, 'Empty', ''
37
- end
38
-
39
- def test_one_line
40
- expected = <<END
41
- <table>
42
- <tr><th colspan="3">One line</th></tr>
43
- <tr><td>open</td><td>/</td><td>&nbsp;</td></tr>
44
- </table>
45
- END
46
- input = '|open|/|'
47
- assert_selenese expected, 'One line', input
48
- end
49
-
50
- def test_comments_only
51
- expected = <<END
52
- <p>Comment <strong>1</strong></p>
53
-
54
-
55
- <p>Comment 2</p>
56
- <table>
57
- <tr><th colspan="3">Only comments</th></tr>
58
- </table>
59
- END
60
- input = <<END
61
- Comment *1*
62
-
63
- Comment 2
64
-
65
- END
66
- assert_selenese expected, 'Only comments', input
67
- end
68
-
69
- def test_commands_only
70
- expected = <<END
71
- <table>
72
- <tr><th colspan="3">Only commands</th></tr>
73
- <tr><td>goBack</td><td>&nbsp;</td><td>&nbsp;</td></tr>
74
- <tr><td>open</td><td>/foo</td><td>&nbsp;</td></tr>
75
- <tr><td>fireEvent</td><td>textField</td><td>focus</td></tr>
76
- </table>
77
- END
78
- input = <<END
79
-
80
- |goBack |
81
-
82
- |open| /foo |
83
- | fireEvent | textField | focus |
84
-
85
-
86
- END
87
- assert_selenese expected, 'Only commands', input
88
- end
89
-
90
- def test_commands_and_comments
91
- expected = <<END
92
- <table>
93
- <tr><th colspan="3">Commands and comments</th></tr>
94
- <tr><td>goBack</td><td>&nbsp;</td><td>&nbsp;</td></tr>
95
- <tr><td>fireEvent</td><td>textField</td><td>focus</td></tr>
96
- </table>
97
- <p>Comment 1</p>
98
-
99
-
100
- <p>Comment <strong>2</strong></p>
101
- END
102
- input = <<END
103
-
104
- |goBack |
105
-
106
- | fireEvent | textField| focus|
107
- Comment 1
108
-
109
- Comment *2*
110
-
111
- END
112
- assert_selenese expected, 'Commands and comments', input
113
- end
114
-
115
- def test_comments_and_commands
116
- expected = <<END
117
- <p>Comment 1</p>
118
-
119
- <p>Comment <strong>2</strong></p>
120
- <table>
121
- <tr><th colspan="3">Comments and commands</th></tr>
122
- <tr><td>goBack</td><td>&nbsp;</td><td>&nbsp;</td></tr>
123
- <tr><td>fireEvent</td><td>textField</td><td>focus</td></tr>
124
- </table>
125
- END
126
- input = <<END
127
- Comment 1
128
-
129
- Comment *2*
130
- |goBack |
131
-
132
- | fireEvent | textField|focus|
133
-
134
- END
135
- assert_selenese expected, 'Comments and commands', input
136
- end
137
-
138
- def test_comments_commands_comments
139
- expected = <<END
140
- <p>Comment 1</p>
141
- <p>Comment <strong>2</strong></p>
142
- <table>
143
- <tr><th colspan="3">Comments, commands and comments</th></tr>
144
- <tr><td>goBack</td><td>&nbsp;</td><td>&nbsp;</td></tr>
145
- <tr><td>fireEvent</td><td>textField</td><td>focus</td></tr>
146
- </table>
147
- <p>Comment 3</p>
148
- END
149
-
150
- input = <<END
151
- Comment 1
152
-
153
- Comment *2*
154
- |goBack |
155
- | fireEvent | textField| focus|
156
- Comment 3
157
- END
158
- assert_selenese expected, 'Comments, commands and comments', input
159
- end
160
-
161
- def test_command_html_entity_escaping
162
- expected = <<END
163
- <table>
164
- <tr><th colspan="3">HTML escaping</th></tr>
165
- <tr><td>type</td><td>nameField</td><td>&lt;&gt;&amp;</td></tr>
166
- </table>
167
- END
168
- input = '|type|nameField|<>&|'
169
- assert_selenese expected, 'HTML escaping', input
170
- end
171
-
172
- def test_partial_support
173
- expected = <<END
174
- <table>
175
- <tr><th colspan="3">Partial support</th></tr>
176
- <tr><td>type</td><td>partial</td><td>Selenese partial</td></tr>
177
- </table>
178
- END
179
- input = '|includePartial|override|'
180
- partial = '|type|partial|Selenese partial|'
181
- create_sel_file_from(partial, "_override.sel")
182
-
183
- assert_selenese(expected, 'Partial support', input)
184
-
185
- File.delete(test_path_for("_override.sel"))
186
- end
187
-
188
- def test_partial_support_with_local_assigns
189
- expected = <<END_EXPECTED
190
- <table>
191
- <tr><th colspan="3">Partial support with local assigns</th></tr>
192
- <tr><td>type</td><td>assigns</td><td>a=hello,b=world!,c_123ABC=</td></tr>
193
- <tr><td>type</td><td>assigns</td><td>a=a b c d,b=,c_123ABC=hello</td></tr>
194
- </table>
195
- END_EXPECTED
196
-
197
- input = <<END_INPUT
198
- |includePartial|override|a=hello|b=world!|
199
- |includePartial|override|a = a b c d|b=|c_123ABC= hello |
200
- END_INPUT
201
-
202
- partial = <<END_PARTIAL
203
- <table><tr><th>whatever</th></tr>
204
- <tr><td>type</td><td>assigns</td><td>
205
- a=<%= a if defined? a%>,
206
- b=<%= b if defined? b%>,
207
- c_123ABC=<%= c_123ABC if defined? c_123ABC%>
208
- </td></tr>
209
- </table>
210
- END_PARTIAL
211
-
212
- create_sel_file_from(partial, "_override.html")
213
-
214
- assert_selenese(expected, 'Partial support with local assigns', input)
215
-
216
- File.delete(test_path_for("_override.html"))
217
- end
218
-
219
- def test_raised_when_more_than_three_columns
220
- assert_raise RuntimeError, 'There might only be a maximum of three cells!' do
221
- render_selenese 'name', '|col1|col2|col3|col4|'
222
- end
223
- end
224
-
225
- def test_raised_when_more_than_one_set_of_commands
226
- assert_raise RuntimeError, 'You cannot have comments in the middle of commands!' do
227
- input = <<END
228
- comment
229
- |command|
230
- comment
231
- |command|
232
- END
233
- render_selenese 'name', input
234
- end
235
- end
236
-
237
- def test_raised_when_incorrect_partial_format
238
- assert_raise RuntimeError, "Invalid format 'invalid'. Should be '|includePartial|partial|var1=value|var2=value|." do
239
- render_selenese 'name', '|includePartial|partial|a=valid|invalid|'
240
- end
241
- end
242
- end
@@ -1,67 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper'
2
- require 'mocha'
3
-
4
- class SeleniumControllerTest < Test::Unit::TestCase
5
-
6
- def setup
7
- @controller = SeleniumController.new
8
- @controller.extend(SeleniumOnRails::PathsTestHelper)
9
- ActionController::Routing::Routes.draw
10
- SeleniumController.any_instance.stubs(:layout_path).returns(false)
11
- @request = ActionController::TestRequest.new
12
- @response = ActionController::TestResponse.new
13
- @result_dir = File.join(File.dirname(__FILE__), "..", "test_result")
14
-
15
- @suite = <<EOS
16
- <script>
17
- </script>
18
- <table>
19
- <tr><td bgcolor="#ccffcc"><a href="/selenium/tests/foo.sel">Foo</a></td></tr>
20
- <tr><td bgcolor="#ccffcc"><a href="/selenium/tests/bar.sel">Bar</a></td></tr>
21
- </table>
22
- EOS
23
- end
24
-
25
- def teardown
26
- FileUtils.rm_rf @result_dir
27
- end
28
-
29
- def test_record_with_result
30
- @controller.instance_variable_set(:@result_dir, @result_dir)
31
-
32
- post :record, :suite => @suite, "testTable.1" => "<table></table>", "testTable.2" => "<table></table>"
33
-
34
- cur_result_dir = File.join(@result_dir, "default")
35
- assert File.directory?(cur_result_dir)
36
- assert_equal ["blank.html", "index.html", "suite.html", "test1.html", "test2.html"],
37
- Dir.glob("#{cur_result_dir}/*.html").map{|path| File.basename(path)}.sort
38
-
39
- expected = <<EOS
40
- <html>
41
- <head>
42
- <link rel="stylesheet" type="text/css" href="selenium-test.css">
43
- </head>
44
- <body>
45
- <table>
46
- <tr><td bgcolor="#ccffcc"><a href="test1.html" target="testcase">Foo</a></td></tr>
47
- <tr><td bgcolor="#ccffcc"><a href="test2.html" target="testcase">Bar</a></td></tr>
48
- </table>
49
- </body></html>
50
- EOS
51
- assert_equal expected, File.read("#{cur_result_dir}/suite.html")
52
- end
53
-
54
- def test_result_hash
55
- post :record, :suite => @suite, "testTable.1" => "<table></table>", "testTable.2" => "<table></table>",
56
- :result => 'Failed', :numTestFailures => "906", :numTestPasses => "1079", :numCommandFailures => '1027',
57
- :numCommandErrors => '57', :numCommandPasses => '3', :totalTime => "A long time"
58
-
59
- assert_equal 'Failed', assigns['result']['result']
60
- assert_equal '906', assigns['result']['numTestFailures']
61
- assert_equal '1079', assigns['result']['numTestPasses']
62
- assert_equal '1027', assigns['result']['numCommandFailures']
63
- assert_equal '57', assigns['result']['numCommandErrors']
64
- assert_equal '3', assigns['result']['numCommandPasses']
65
- assert_equal 'A long time', assigns['result']['totalTime']
66
- end
67
- end
@@ -1,43 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper'
2
- require 'mocha'
3
-
4
- class SeleniumOnRailsConfig
5
- def self.reset_config
6
- @@configs = nil
7
- end
8
- end
9
-
10
- class SeleniumOnRailsConfigTest < Test::Unit::TestCase
11
-
12
- def setup
13
- SeleniumOnRailsConfig.reset_config
14
- @selenium_file = File.join(RAILS_ROOT, 'config', 'selenium.yml')
15
- @config_file = File.expand_path(File.dirname(__FILE__) + '/../config.yml')
16
- @selenium_content = File.read(File.dirname(__FILE__) + '/fixtures/selenium.yml')
17
- @config_content = File.read(File.dirname(__FILE__) + '/fixtures/config.yml')
18
- end
19
-
20
- def test_get_selenium_yaml
21
- File.expects(:exist?).with(@selenium_file).returns(true)
22
- IO.expects(:read).with(@selenium_file).returns(@selenium_content)
23
- IO.expects(:read).with(@config_file).never
24
- IO.expects(:exist?).with(@config_file).never
25
-
26
- assert_equal ["test_cache"], SeleniumOnRailsConfig.get(:environments)
27
- assert_equal({"firefox"=>"script/openfirefox"}, SeleniumOnRailsConfig.get(:browsers))
28
- end
29
-
30
- def test_get_when_config_yml_exists_but_selenium_yaml_not
31
- File.expects(:exist?).with(@selenium_file).returns(false)
32
- File.expects(:exist?).with(@config_file).returns(true)
33
- IO.expects(:read).with(@config_file).returns(@config_content)
34
- IO.expects(:read).with(@selenium_file).never
35
-
36
- assert_equal ["test"], SeleniumOnRailsConfig.get(:environments)
37
- expected_config = {"safari"=>"/Applications/Safari.app/Contents/MacOS/Safari",
38
- "firefox"=>"/Applications/Firefox.app/Contents/MacOS/firefox-bin"}
39
-
40
- assert_equal(expected_config, SeleniumOnRailsConfig.get(:browsers))
41
- end
42
-
43
- end
@@ -1,35 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper'
2
-
3
- class SeleniumSupportTest < Test::Unit::TestCase
4
- def setup
5
- @controller = SeleniumController.new
6
- @controller.extend(SeleniumOnRails::PathsTestHelper)
7
- ActionController::Routing::Routes.draw
8
- @request = ActionController::TestRequest.new
9
- @response = ActionController::TestResponse.new
10
- end
11
-
12
- def test_route
13
- get :support_file, :filename => 'TestRunner.html' #initialize the controller
14
- assert_equal 'http://test.host/selenium/TestRunner.html',
15
- @controller.url_for(:controller => 'selenium', :action => 'support_file', :filename => 'TestRunner.html')
16
- end
17
-
18
- def test_test_runner_existance
19
- get :support_file, :filename => 'TestRunner.html'
20
- assert_response :success
21
- assert @response.body.include?('Selenium')
22
- end
23
-
24
- def test_default_file
25
- get :support_file, :filename => ''
26
- assert_redirected_to :filename => 'TestRunner.html', :test => 'tests'
27
- end
28
-
29
- def test_missing_file
30
- get :support_file, :filename => 'missing.html'
31
- assert_response 404
32
- assert_equal 'Not found', @response.body
33
- end
34
-
35
- end
@@ -1,31 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper'
2
- require 'mocha'
3
- RAILS_ROOT = File.expand_path(File.dirname(__FILE__) + "/")
4
-
5
- class SetupTest < Test::Unit::TestCase
6
- def setup
7
- @controller = SeleniumController.new
8
- @controller.extend(SeleniumOnRails::PathsTestHelper)
9
- SeleniumController.any_instance.stubs(:clear_tables).returns([])
10
- SeleniumController.any_instance.stubs(:layout_path).returns(false)
11
- ActionController::Routing::Routes.draw
12
- @request = ActionController::TestRequest.new
13
- @response = ActionController::TestResponse.new
14
- end
15
-
16
- def test_session_reset
17
- @request.session['key'] = 'value'
18
- get :setup
19
- assert_nil session['key']
20
- assert_response :success
21
- assert_tag :content => 'The session is wiped clean.'
22
- end
23
-
24
- def test_session_no_reset
25
- @request.session['key'] = 'value'
26
- get :setup, :keep_session => true
27
- assert_equal 'value', session['key']
28
- assert_response :success
29
- assert_no_tag :content => 'The session is wiped clean.'
30
- end
31
- end
@@ -1,109 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper'
2
-
3
- class SuiteRendererTest < Test::Unit::TestCase
4
- def setup
5
- @controller = SeleniumController.new
6
- @controller.extend(SeleniumOnRails::PathsTestHelper)
7
- ActionController::Routing::Routes.draw
8
- @request = ActionController::TestRequest.new
9
- @response = ActionController::TestResponse.new
10
- @controller.layout_override =<<END
11
- <html><head><title>test layout</title></head><body>
12
- @content_for_layout
13
- </body></html>
14
- END
15
- end
16
-
17
- def test_empty_suite
18
- get :test_file, :testname => 'empty_suite'
19
-
20
- assert_response :success
21
- assert_tag :tag => "title", :content => "test layout"
22
- assert_tag :tag => "script", :attributes => {:type => "text/javascript"}
23
- assert_tag :tag => "select", :attributes => {:onchange => "openSuite(this)"},
24
- :descendant => {:tag => "option", :attributes => {:value => "header"}, :content => "Suites:"},
25
- :descendant => {:tag => "option", :attributes => {:value => ""}, :content => ".."}
26
-
27
- assert_tag :tag => "table",
28
- :descendant => {:tag => "th", :content => "Empty suite"}
29
- end
30
-
31
- def test_root_suite
32
- _test_root_suite ''
33
- end
34
-
35
- def test_test_suite_html
36
- #TestSuite.html is the default name the Selenium Runner tries to run
37
- _test_root_suite 'TestSuite.html'
38
- end
39
-
40
- def _test_root_suite testname
41
- get :test_file, :testname => testname
42
- assert_response :success
43
-
44
- assert_tag :tag => "title", :content => "test layout"
45
- assert_tag :tag => "script", :attributes => {:type => "text/javascript"}
46
- assert_tag :tag => "select", :attributes => {:onchange => "openSuite(this)"},
47
- :descendant => {:tag => "option", :attributes => {:value => "header"}, :content => "Suites:"},
48
- :descendant => {:tag => "option", :attributes => {:value => "/partials"}, :content => "Partials"},
49
- :descendant => {:tag => "option", :attributes => {:value => "/suite_one"}, :content => "Suite one"},
50
- :descendant => {:tag => "option", :attributes => {:value => "/suite_two"}, :content => "Suite two"},
51
- :descendant => {:tag => "option", :attributes => {:value => "/suite_one/subsuite"}, :content => "Suite one.Subsuite"}
52
-
53
- assert_tag :tag => "table",
54
- :descendant => {:tag => "th", :content => "All test cases"},
55
- :descendant => {:tag => "td", :content => "Html"},
56
- :descendant => {:tag => "td", :content => "Own layout"},
57
- :descendant => {:tag => "td", :content => "Rhtml"},
58
- :descendant => {:tag => "td", :content => "Rselenese"},
59
- :descendant => {:tag => "td", :content => "Selenese"},
60
- :descendant => {:tag => "td", :content => "Partials.All partials"},
61
- :descendant => {:tag => "td", :content => "Suite one.Suite one testcase1"},
62
- :descendant => {:tag => "td", :content => "Suite one.Suite one testcase2"},
63
- :descendant => {:tag => "td", :content => "Suite one.Subsuite.Suite one subsuite testcase"},
64
- :descendant => {:tag => "td", :content => "Suite two.Suite two testcase"}
65
- end
66
-
67
- def test_suite_one
68
- get :test_file, :testname => 'suite_one'
69
-
70
- assert_response :success
71
- assert_tag :tag => "title", :content => "test layout"
72
- assert_tag :tag => "script", :attributes => {:type => "text/javascript"}
73
- assert_tag :tag => "select", :attributes => {:onchange => "openSuite(this)"},
74
- :descendant => {:tag => "option", :attributes => {:value => "header"}, :content => "Suites:"},
75
- :descendant => {:tag => "option", :attributes => {:value => ""}, :content => ".."},
76
- :descendant => {:tag => "option", :attributes => {:value => "/suite_one/subsuite"}, :content => "Subsuite"}
77
-
78
- assert_tag :tag => "table",
79
- :descendant => {:tag => "th", :content => "Suite one"},
80
- :descendant => {:tag => "td", :content => "Suite one testcase1"},
81
- :descendant => {:tag => "td", :content => "Suite one testcase2"},
82
- :descendant => {:tag => "td", :content => "Subsuite.Suite one subsuite testcase"}
83
- end
84
-
85
- def test_sub_suite
86
- get :test_file, :testname => 'suite_one/subsuite'
87
-
88
- assert_response :success
89
- assert_tag :tag => "title", :content => "test layout"
90
- assert_tag :tag => "script", :attributes => {:type => "text/javascript"}
91
- assert_tag :tag => "select", :attributes => {:onchange => "openSuite(this)"},
92
- :descendant => {:tag => "option", :attributes => {:value => "header"}, :content => "Suites:"},
93
- :descendant => {:tag => "option", :attributes => {:value => "/suite_one"}, :content => ".."}
94
-
95
- assert_tag :tag => "table",
96
- :descendant => {:tag => "th", :content => "Subsuite"},
97
- :descendant => {:tag => "td", :content => "Suite one subsuite testcase"}
98
- end
99
-
100
- def test_missing_tests_directory
101
- def @controller.selenium_tests_path
102
- File.join(File.dirname(__FILE__), 'invalid')
103
- end
104
- get :test_file, :testname => ''
105
- assert_response 404
106
- assert_equal "Did not find the Selenium tests path (#{File.join(File.dirname(__FILE__), 'invalid')}). Run script/generate selenium", @response.body
107
- end
108
-
109
- end