zena 1.1.3 → 1.2.0

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 (392) hide show
  1. data/History.txt +23 -1
  2. data/MIT-LICENSE +2 -2
  3. data/README.rdoc +2 -15
  4. data/app/controllers/acls_controller.rb +1 -1
  5. data/app/controllers/documents_controller.rb +12 -3
  6. data/app/controllers/nodes_controller.rb +1 -3
  7. data/app/controllers/sites_controller.rb +7 -0
  8. data/app/controllers/versions_controller.rb +1 -1
  9. data/app/controllers/virtual_classes_controller.rb +7 -8
  10. data/app/models/acl.rb +3 -2
  11. data/app/models/relation_proxy.rb +2 -1
  12. data/app/models/role.rb +16 -0
  13. data/app/models/site.rb +48 -0
  14. data/app/models/text_document.rb +2 -1
  15. data/app/models/user.rb +2 -1
  16. data/app/models/zip.rb +2 -1
  17. data/app/views/acls/index.rhtml +11 -1
  18. data/app/views/documents/show.rhtml +1 -1
  19. data/app/views/relations/_add.erb +2 -2
  20. data/app/views/relations/_form.erb +5 -2
  21. data/app/views/relations/_li.erb +4 -1
  22. data/app/views/relations/index.erb +3 -3
  23. data/app/views/sites/_form.erb +1 -1
  24. data/app/views/sites/_job.erb +4 -0
  25. data/app/views/sites/index.erb +1 -1
  26. data/app/views/sites/jobs.erb +10 -0
  27. data/app/views/templates/document_create_tabs/_file.rhtml +3 -0
  28. data/app/views/zafu/default/Node-+search.zafu +2 -2
  29. data/bricks/acls/zena/init.rb +2 -1
  30. data/bricks/acls/zena/test/integration/acl_integration_test.rb +5 -5
  31. data/bricks/acls/zena/test/sites/erebus/acls.yml +2 -2
  32. data/bricks/acls/zena/test/unit/acl_test.rb +2 -2
  33. data/bricks/grid/lib/bricks/grid.rb +110 -0
  34. data/bricks/grid/zena/init.rb +4 -0
  35. data/bricks/math/lib/bricks/math.rb +1 -0
  36. data/bricks/pdf/lib/bricks/pdf.rb +10 -1
  37. data/bricks/sphinx/zena/tasks.rb +8 -40
  38. data/bricks/spreadsheet/README +31 -0
  39. data/bricks/spreadsheet/lib/bricks/spreadsheet.rb +293 -0
  40. data/bricks/spreadsheet/zena/init.rb +3 -0
  41. data/bricks/spreadsheet/zena/test/sites/zena/links.yml +11 -0
  42. data/bricks/spreadsheet/zena/test/unit/xlsx_test.rb +5 -0
  43. data/bricks/spreadsheet/zena/test/zafu/README +27 -0
  44. data/bricks/spreadsheet/zena/test/zafu/spreadsheet.yml +19 -0
  45. data/bricks/worker/lib/bricks/worker.rb +11 -5
  46. data/bricks/worker/zena/init.rb +8 -0
  47. data/bricks/worker/zena/migrate/20120501091514_add_site_id_to_jobs.rb +9 -0
  48. data/bricks/zena/zena/migrate/01_base.rb +0 -7
  49. data/bricks/zena/zena/migrate/20111214112233_add_comment_to_relations.rb +9 -0
  50. data/config/bricks.yml +15 -1
  51. data/config/environments/production.rb +2 -2
  52. data/config/gems.yml +6 -1
  53. data/doc/zafu_changes.yml +1 -1
  54. data/lib/tasks/zena.rake +6 -2
  55. data/lib/zena/app.rb +1 -1
  56. data/lib/zena/code/default_syntax.rb +5 -1
  57. data/lib/zena/db_helper/mysql.rb +5 -1
  58. data/lib/zena/deploy/app_init.rhtml +11 -7
  59. data/lib/zena/deploy/awstats.conf.rhtml +1 -1
  60. data/lib/zena/deploy/start_stop.rhtml +5 -5
  61. data/lib/zena/deploy/vhost.rhtml +16 -2
  62. data/lib/zena/deploy.rb +5 -3
  63. data/lib/zena/info.rb +1 -1
  64. data/lib/zena/parser/zazen_rules.rb +7 -7
  65. data/lib/zena/remote/node.rb +7 -0
  66. data/lib/zena/routes.rb +4 -5
  67. data/lib/zena/test_controller.rb +18 -1
  68. data/lib/zena/use/action.rb +13 -4
  69. data/lib/zena/use/ajax.rb +10 -4
  70. data/lib/zena/use/authlogic.rb +1 -1
  71. data/lib/zena/use/calendar.rb +4 -0
  72. data/lib/zena/use/conditional.rb +3 -0
  73. data/lib/zena/use/dates.rb +44 -4
  74. data/lib/zena/use/display.rb +45 -15
  75. data/lib/zena/use/forms.rb +59 -30
  76. data/lib/zena/use/query_builder.rb +12 -12
  77. data/lib/zena/use/recursion.rb +1 -1
  78. data/lib/zena/use/rendering.rb +18 -17
  79. data/lib/zena/use/urls.rb +2 -1
  80. data/lib/zena/use/zafu_safe_definitions.rb +0 -9
  81. data/lib/zena/use/zafu_templates.rb +2 -2
  82. data/lib/zena/use/zazen.rb +1 -3
  83. data/lib/zena/use.rb +13 -2
  84. data/lib/zena.rb +8 -2
  85. data/public/images/bullet_back.png +0 -0
  86. data/public/javascripts/grid.js +535 -0
  87. data/public/javascripts/tablekit.js +0 -0
  88. data/public/javascripts/window.js +0 -0
  89. data/public/javascripts/zena.js +17 -7
  90. data/public/stylesheets/admin.css +5 -1
  91. data/public/stylesheets/grid.css +19 -0
  92. data/test/fixtures/files/TestNode.zafu +123 -311
  93. data/test/fixtures/files/translations_fr.yml +6 -1
  94. data/test/functional/acls_controller_test.rb +2 -2
  95. data/test/functional/nodes_controller_test.rb +17 -11
  96. data/test/functional/virtual_classes_controller_test.rb +1 -1
  97. data/test/integration/query_node/basic.yml +9 -0
  98. data/test/integration/query_node/dates.yml +1 -1
  99. data/test/integration/zafu_compiler/ajax.yml +9 -9
  100. data/test/integration/zafu_compiler/basic.yml +0 -24
  101. data/test/integration/zafu_compiler/dates.yml +24 -7
  102. data/test/integration/zafu_compiler/display.yml +45 -2
  103. data/test/integration/zafu_compiler/errors.yml +0 -6
  104. data/test/integration/zafu_compiler/forms.yml +41 -3
  105. data/test/integration/zafu_compiler/query.yml +29 -3
  106. data/test/integration/zafu_compiler/roles.yml +0 -4
  107. data/test/integration/zafu_compiler/safe_definitions.yml +1 -1
  108. data/test/integration/zafu_compiler_test.rb +11 -3
  109. data/test/selenium/Add/add3.rsel +8 -8
  110. data/test/selenium/Drop/drop1.rsel +12 -12
  111. data/test/selenium/Drop/drop2.rsel +14 -14
  112. data/test/selenium/Drop/drop3.rsel +21 -21
  113. data/test/selenium/Drop/drop4.rsel +1 -1
  114. data/test/selenium/Edit/edit2.rsel +9 -9
  115. data/test/selenium/Edit/edit4.rsel +55 -0
  116. data/test/selenium/Edit/edit5.rsel +41 -0
  117. data/test/selenium/Edit/edit6.rsel +53 -0
  118. data/test/selenium/Filter/0setup.rsel +12 -0
  119. data/test/selenium/Filter/filter1.rsel +9 -0
  120. data/test/selenium/Filter/filter2.rsel +9 -0
  121. data/test/selenium/Form/form1.rsel +1 -1
  122. data/test/selenium/Form/form2.rsel +1 -1
  123. data/test/selenium/Form/form3.rsel +15 -0
  124. data/test/selenium/Grid/0setup.rsel +13 -0
  125. data/test/selenium/Grid/grid1.rsel +11 -0
  126. data/test/selenium/Swap/0setup.rsel +12 -0
  127. data/test/selenium/Swap/swap1.rsel +13 -0
  128. data/test/selenium/Swap/swap2.rsel +11 -0
  129. data/test/selenium/Toggle/toggle1.rsel +6 -6
  130. data/test/sites/zena/versions.yml +1 -1
  131. data/test/unit/relation_proxy_test.rb +36 -0
  132. data/test/unit/site_test.rb +10 -2
  133. data/test/unit/zena/use/rendering_test.rb +7 -6
  134. data/test/unit/zena/use/zazen_test.rb +1 -2
  135. data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run 2.tmCommand +24 -0
  136. data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run Context.tmCommand +58 -0
  137. data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run Focused Should.tmCommand +88 -0
  138. data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/Run.tmCommand +27 -0
  139. data/vendor/TextMate/Ruby Shoulda.tmbundle/Commands/YAML to Shoulda.tmCommand +23 -0
  140. data/vendor/TextMate/Ruby Shoulda.tmbundle/Preferences/Symbol List: Context.tmPreferences +19 -0
  141. data/vendor/TextMate/Ruby Shoulda.tmbundle/Preferences/Symbol List: Should.tmPreferences +19 -0
  142. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory attributes for.tmSnippet +16 -0
  143. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory build.tmSnippet +16 -0
  144. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory.tmSnippet +16 -0
  145. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_define with class.tmSnippet +18 -0
  146. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_define.tmSnippet +18 -0
  147. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_next.tmSnippet +16 -0
  148. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/Factory_sequence.tmSnippet +18 -0
  149. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_bad_value.tmSnippet +16 -0
  150. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_contains.tmSnippet +16 -0
  151. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_does_not_contain.tmSnippet +16 -0
  152. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_good_value.tmSnippet +16 -0
  153. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_same_elements.tmSnippet +16 -0
  154. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_save.tmSnippet +16 -0
  155. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_sent_email.tmSnippet +18 -0
  156. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/assert_valid.tmSnippet +16 -0
  157. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/association.tmSnippet +17 -0
  158. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/attribute.tmSnippet +17 -0
  159. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/before_should block.tmSnippet +18 -0
  160. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block get.tmSnippet +22 -0
  161. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block post.tmSnippet +23 -0
  162. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/context block with setup.tmSnippet +25 -0
  163. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/setup.tmSnippet +18 -0
  164. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should block with before proc.tmSnippet +18 -0
  165. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should block.tmSnippet +18 -0
  166. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_allow_values_for.tmSnippet +16 -0
  167. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_assign_to.tmSnippet +16 -0
  168. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_be_restful denied.tmSnippet +20 -0
  169. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_be_restful.tmSnippet +20 -0
  170. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_belong_to.tmSnippet +16 -0
  171. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_change by.tmSnippet +16 -0
  172. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_change from to.tmSnippet +16 -0
  173. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_at_least.tmSnippet +16 -0
  174. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_in_range.tmSnippet +16 -0
  175. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_length_is.tmSnippet +16 -0
  176. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_ensure_value_in_range.tmSnippet +16 -0
  177. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_eventually.tmSnippet +18 -0
  178. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_filter_params.tmSnippet +16 -0
  179. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_and_belong_to_many.tmSnippet +16 -0
  180. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_class_methods.tmSnippet +16 -0
  181. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_db_column.tmSnippet +16 -0
  182. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_db_columns.tmSnippet +16 -0
  183. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_index.tmSnippet +16 -0
  184. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_indices.tmSnippet +16 -0
  185. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_instance_methods.tmSnippet +16 -0
  186. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_many.tmSnippet +16 -0
  187. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_named_scope.tmSnippet +16 -0
  188. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_one.tmSnippet +16 -0
  189. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_have_readonly_attributes.tmSnippet +16 -0
  190. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_allow_mass_assignment_of.tmSnippet +16 -0
  191. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_allow_values_for.tmSnippet +16 -0
  192. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_assign_to.tmSnippet +16 -0
  193. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_change.tmSnippet +16 -0
  194. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_not_set_the_flash.tmSnippet +16 -0
  195. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_redirect_to.tmSnippet +16 -0
  196. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_a_form.tmSnippet +16 -0
  197. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_template.tmSnippet +16 -0
  198. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_with_layout.tmSnippet +16 -0
  199. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_render_without_layout.tmSnippet +16 -0
  200. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_respond_with.tmSnippet +16 -0
  201. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_respond_with_content_type.tmSnippet +16 -0
  202. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_return_from_session.tmSnippet +16 -0
  203. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_route.tmSnippet +16 -0
  204. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_set_the_flash_to.tmSnippet +16 -0
  205. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_acceptance_of.tmSnippet +16 -0
  206. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_numericality_of.tmSnippet +16 -0
  207. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_presence_of.tmSnippet +16 -0
  208. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_uniqueness_of with scope.tmSnippet +16 -0
  209. data/vendor/TextMate/Ruby Shoulda.tmbundle/Snippets/should_validate_uniqueness_of.tmSnippet +16 -0
  210. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/catch_exception.rb +39 -0
  211. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/run_script.rb +104 -0
  212. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/stdin_dialog.rb +14 -0
  213. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/test.rb +17 -0
  214. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/RubyMate/todo.txt +13 -0
  215. data/vendor/TextMate/Ruby Shoulda.tmbundle/Support/bin/yaml_to_shoulda.rb +25 -0
  216. data/vendor/TextMate/Ruby Shoulda.tmbundle/Syntaxes/Ruby on Rails (Shoulda).tmLanguage +166 -0
  217. data/vendor/TextMate/Ruby Shoulda.tmbundle/info.plist +304 -0
  218. data/vendor/TextMate/Zena.tmbundle/Commands/Run all yaml tests.tmCommand +37 -0
  219. data/vendor/TextMate/Zena.tmbundle/Commands/Run focused yaml test.tmCommand +52 -0
  220. data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/catch_exception.rb +39 -0
  221. data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/run_script.rb +118 -0
  222. data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/stdin_dialog.rb +14 -0
  223. data/vendor/TextMate/Zena.tmbundle/info.plist +17 -0
  224. data/vendor/plugins/selenium-on-rails/CHANGELOG +125 -0
  225. data/vendor/plugins/selenium-on-rails/LICENSE-2.0.txt +202 -0
  226. data/vendor/plugins/selenium-on-rails/README.md +202 -0
  227. data/vendor/plugins/selenium-on-rails/Rakefile +38 -0
  228. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumController.html +265 -0
  229. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumHelper.html +148 -0
  230. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/FixtureLoader.html +231 -0
  231. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/PartialsSupport.html +195 -0
  232. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/Paths.html +295 -0
  233. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/RSelenese.html +219 -0
  234. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/Renderer.html +156 -0
  235. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/Selenese.html +179 -0
  236. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/SuiteRenderer.html +223 -0
  237. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/TestBuilder.html +441 -0
  238. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/TestBuilderAccessors.html +3098 -0
  239. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/TestBuilderActions.html +2080 -0
  240. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/TestBuilderUserAccessors.html +116 -0
  241. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/TestBuilderUserActions.html +116 -0
  242. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails.html +126 -0
  243. data/vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRailsConfig.html +150 -0
  244. data/vendor/plugins/selenium-on-rails/doc/files/CHANGELOG.html +422 -0
  245. data/vendor/plugins/selenium-on-rails/doc/files/README.html +321 -0
  246. data/vendor/plugins/selenium-on-rails/doc/files/lib/controllers/selenium_controller_rb.html +108 -0
  247. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_helper_rb.html +101 -0
  248. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/acceptance_test_runner_rb.html +222 -0
  249. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/fixture_loader_rb.html +109 -0
  250. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/partials_support_rb.html +111 -0
  251. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/paths_rb.html +101 -0
  252. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/renderer_rb.html +101 -0
  253. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/rselenese_rb.html +118 -0
  254. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/selenese_rb.html +101 -0
  255. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/suite_renderer_rb.html +101 -0
  256. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/test_builder_accessors_rb.html +114 -0
  257. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/test_builder_actions_rb.html +113 -0
  258. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails/test_builder_rb.html +120 -0
  259. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails_config_rb.html +108 -0
  260. data/vendor/plugins/selenium-on-rails/doc/files/lib/selenium_on_rails_rb.html +115 -0
  261. data/vendor/plugins/selenium-on-rails/doc/fr_class_index.html +42 -0
  262. data/vendor/plugins/selenium-on-rails/doc/fr_file_index.html +43 -0
  263. data/vendor/plugins/selenium-on-rails/doc/fr_method_index.html +182 -0
  264. data/vendor/plugins/selenium-on-rails/doc/index.html +24 -0
  265. data/vendor/plugins/selenium-on-rails/doc/rdoc-style.css +208 -0
  266. data/vendor/plugins/selenium-on-rails/generators/selenium/USAGE +19 -0
  267. data/vendor/plugins/selenium-on-rails/generators/selenium/selenium_generator.rb +50 -0
  268. data/vendor/plugins/selenium-on-rails/generators/selenium/templates/rhtml.rhtml +16 -0
  269. data/vendor/plugins/selenium-on-rails/generators/selenium/templates/rselenese.rhtml +14 -0
  270. data/vendor/plugins/selenium-on-rails/generators/selenium/templates/selenese.rhtml +11 -0
  271. data/vendor/plugins/selenium-on-rails/init.rb +15 -0
  272. data/vendor/plugins/selenium-on-rails/lib/controllers/selenium_controller.rb +122 -0
  273. data/vendor/plugins/selenium-on-rails/lib/controllers/switch_environment_controller.rb +16 -0
  274. data/vendor/plugins/selenium-on-rails/lib/selenium_helper.rb +8 -0
  275. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/acceptance_test_runner.rb +215 -0
  276. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/fixture_loader.rb +57 -0
  277. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/partials_support.rb +36 -0
  278. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/paths.rb +61 -0
  279. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/renderer.rb +20 -0
  280. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/rselenese.rb +44 -0
  281. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/selenese.rb +87 -0
  282. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/suite_renderer.rb +56 -0
  283. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/test_builder.rb +116 -0
  284. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/test_builder_accessors.rb +1002 -0
  285. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/test_builder_actions.rb +514 -0
  286. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/test_builder_user_accessors.rb.example +91 -0
  287. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails/test_builder_user_actions.rb.example +24 -0
  288. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails.rb +11 -0
  289. data/vendor/plugins/selenium-on-rails/lib/selenium_on_rails_config.rb +30 -0
  290. data/vendor/plugins/selenium-on-rails/lib/views/layouts/layout.rhtml +18 -0
  291. data/vendor/plugins/selenium-on-rails/lib/views/record.rhtml +5 -0
  292. data/vendor/plugins/selenium-on-rails/lib/views/selenium_helper.rb +9 -0
  293. data/vendor/plugins/selenium-on-rails/lib/views/setup.rhtml +67 -0
  294. data/vendor/plugins/selenium-on-rails/lib/views/test_suite.rhtml +26 -0
  295. data/vendor/plugins/selenium-on-rails/routes.rb +24 -0
  296. data/vendor/plugins/selenium-on-rails/selenium-core/Blank.html +7 -0
  297. data/vendor/plugins/selenium-on-rails/selenium-core/InjectedRemoteRunner.html +8 -0
  298. data/vendor/plugins/selenium-on-rails/selenium-core/RemoteRunner.html +110 -0
  299. data/vendor/plugins/selenium-on-rails/selenium-core/SeleniumLog.html +109 -0
  300. data/vendor/plugins/selenium-on-rails/selenium-core/TestPrompt.html +145 -0
  301. data/vendor/plugins/selenium-on-rails/selenium-core/TestRunner-splash.html +55 -0
  302. data/vendor/plugins/selenium-on-rails/selenium-core/TestRunner.hta +177 -0
  303. data/vendor/plugins/selenium-on-rails/selenium-core/TestRunner.html +177 -0
  304. data/vendor/plugins/selenium-on-rails/selenium-core/domviewer/butmin.gif +0 -0
  305. data/vendor/plugins/selenium-on-rails/selenium-core/domviewer/butplus.gif +0 -0
  306. data/vendor/plugins/selenium-on-rails/selenium-core/domviewer/domviewer.css +298 -0
  307. data/vendor/plugins/selenium-on-rails/selenium-core/domviewer/domviewer.html +16 -0
  308. data/vendor/plugins/selenium-on-rails/selenium-core/domviewer/selenium-domviewer.js +205 -0
  309. data/vendor/plugins/selenium-on-rails/selenium-core/icons/all.png +0 -0
  310. data/vendor/plugins/selenium-on-rails/selenium-core/icons/continue.png +0 -0
  311. data/vendor/plugins/selenium-on-rails/selenium-core/icons/continue_disabled.png +0 -0
  312. data/vendor/plugins/selenium-on-rails/selenium-core/icons/pause.png +0 -0
  313. data/vendor/plugins/selenium-on-rails/selenium-core/icons/pause_disabled.png +0 -0
  314. data/vendor/plugins/selenium-on-rails/selenium-core/icons/selected.png +0 -0
  315. data/vendor/plugins/selenium-on-rails/selenium-core/icons/step.png +0 -0
  316. data/vendor/plugins/selenium-on-rails/selenium-core/icons/step_disabled.png +0 -0
  317. data/vendor/plugins/selenium-on-rails/selenium-core/iedoc-core.xml +1759 -0
  318. data/vendor/plugins/selenium-on-rails/selenium-core/iedoc.xml +1800 -0
  319. data/vendor/plugins/selenium-on-rails/selenium-core/lib/cssQuery/cssQuery-p.js +6 -0
  320. data/vendor/plugins/selenium-on-rails/selenium-core/lib/cssQuery/src/cssQuery-level2.js +142 -0
  321. data/vendor/plugins/selenium-on-rails/selenium-core/lib/cssQuery/src/cssQuery-level3.js +150 -0
  322. data/vendor/plugins/selenium-on-rails/selenium-core/lib/cssQuery/src/cssQuery-standard.js +53 -0
  323. data/vendor/plugins/selenium-on-rails/selenium-core/lib/cssQuery/src/cssQuery.js +356 -0
  324. data/vendor/plugins/selenium-on-rails/selenium-core/lib/prototype.js +2006 -0
  325. data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/builder.js +101 -0
  326. data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/controls.js +815 -0
  327. data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/dragdrop.js +915 -0
  328. data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/effects.js +958 -0
  329. data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/scriptaculous.js +47 -0
  330. data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/slider.js +283 -0
  331. data/vendor/plugins/selenium-on-rails/selenium-core/lib/scriptaculous/unittest.js +383 -0
  332. data/vendor/plugins/selenium-on-rails/selenium-core/lib/snapsie.js +91 -0
  333. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/find_matching_child.js +69 -0
  334. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/htmlutils.js +1616 -0
  335. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/injection.html +72 -0
  336. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-api.js +3184 -0
  337. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-browserbot.js +2300 -0
  338. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-browserdetect.js +153 -0
  339. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-commandhandlers.js +377 -0
  340. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-executionloop.js +175 -0
  341. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-logging.js +148 -0
  342. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-remoterunner.js +695 -0
  343. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-testrunner.js +1362 -0
  344. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/selenium-version.js +5 -0
  345. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/ui-doc.html +803 -0
  346. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/ui-element.js +1537 -0
  347. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/ui-map-sample.js +979 -0
  348. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/user-extensions.js +3 -0
  349. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/user-extensions.js.sample +75 -0
  350. data/vendor/plugins/selenium-on-rails/selenium-core/scripts/xmlextras.js +153 -0
  351. data/vendor/plugins/selenium-on-rails/selenium-core/selenium-logo.png +0 -0
  352. data/vendor/plugins/selenium-on-rails/selenium-core/selenium-test.css +43 -0
  353. data/vendor/plugins/selenium-on-rails/selenium-core/selenium.css +316 -0
  354. data/vendor/plugins/selenium-on-rails/selenium-core/xpath/dom.js +566 -0
  355. data/vendor/plugins/selenium-on-rails/selenium-core/xpath/javascript-xpath-0.1.11.js +2816 -0
  356. data/vendor/plugins/selenium-on-rails/selenium-core/xpath/util.js +549 -0
  357. data/vendor/plugins/selenium-on-rails/selenium-core/xpath/xmltoken.js +149 -0
  358. data/vendor/plugins/selenium-on-rails/selenium-core/xpath/xpath.js +2450 -0
  359. data/vendor/plugins/selenium-on-rails/tasks/test_acceptance.rake +8 -0
  360. data/vendor/plugins/selenium-on-rails/test/fixtures/config.yml +37 -0
  361. data/vendor/plugins/selenium-on-rails/test/fixtures/selenium.yml +27 -0
  362. data/vendor/plugins/selenium-on-rails/test/paths_test.rb +72 -0
  363. data/vendor/plugins/selenium-on-rails/test/renderer_test.rb +157 -0
  364. data/vendor/plugins/selenium-on-rails/test/rselenese_test.rb +708 -0
  365. data/vendor/plugins/selenium-on-rails/test/selenese_test.rb +242 -0
  366. data/vendor/plugins/selenium-on-rails/test/selenium_controller_test.rb +67 -0
  367. data/vendor/plugins/selenium-on-rails/test/selenium_on_rails_config_test.rb +43 -0
  368. data/vendor/plugins/selenium-on-rails/test/selenium_support_test.rb +35 -0
  369. data/vendor/plugins/selenium-on-rails/test/setup_test.rb +31 -0
  370. data/vendor/plugins/selenium-on-rails/test/suite_renderer_test.rb +109 -0
  371. data/vendor/plugins/selenium-on-rails/test/switch_environment_controller_test.rb +17 -0
  372. data/vendor/plugins/selenium-on-rails/test/test_builder_functions_authortest.rb +51 -0
  373. data/vendor/plugins/selenium-on-rails/test/test_helper.rb +101 -0
  374. data/vendor/plugins/selenium-on-rails/test_data/_partial.rsel +1 -0
  375. data/vendor/plugins/selenium-on-rails/test_data/own_layout.html +12 -0
  376. data/vendor/plugins/selenium-on-rails/test_data/partials/_html.html +6 -0
  377. data/vendor/plugins/selenium-on-rails/test_data/partials/_nesting.rsel +2 -0
  378. data/vendor/plugins/selenium-on-rails/test_data/partials/_rhtml.rhtml +6 -0
  379. data/vendor/plugins/selenium-on-rails/test_data/partials/_rsel.rsel +1 -0
  380. data/vendor/plugins/selenium-on-rails/test_data/partials/_sel.sel +5 -0
  381. data/vendor/plugins/selenium-on-rails/test_data/partials/all_partials.rsel +5 -0
  382. data/vendor/plugins/selenium-on-rails/test_data/rhtml.rhtml +7 -0
  383. data/vendor/plugins/selenium-on-rails/test_data/rselenese.rsel +8 -0
  384. data/vendor/plugins/selenium-on-rails/test_data/selenese.sel +7 -0
  385. data/vendor/plugins/selenium-on-rails/test_data/suite_one/subsuite/suite_one_subsuite_testcase.sel +1 -0
  386. data/vendor/plugins/selenium-on-rails/test_data/suite_one/suite_one_testcase1.sel +1 -0
  387. data/vendor/plugins/selenium-on-rails/test_data/suite_one/suite_one_testcase2.sel +1 -0
  388. data/vendor/plugins/selenium-on-rails/test_data/suite_two/suite_two_testcase.sel +1 -0
  389. data/zena.gemspec +290 -7
  390. metadata +346 -52
  391. data/app/views/nodes/_table.rhtml +0 -14
  392. data/lib/zena/use/grid.rb +0 -154
@@ -3,36 +3,36 @@
3
3
 
4
4
  open '/oo/testnode37.html?test=edit2'
5
5
  set_timeout 4000
6
- assert_element_not_present 'edit21_title'
6
+ assert_element_not_present 'edit22_title'
7
7
  verify_text "css=#edit21 li.title", @old_title
8
8
 
9
9
  # edit (does not click on 'v_status' checkbox)
10
10
  click 'link=edit'
11
- wait_for_element_present 'edit21_title'
12
- type 'edit21_title', @new_title
11
+ wait_for_element_present 'edit22_title'
12
+ type 'edit22_title', @new_title
13
13
 
14
14
  # submit
15
15
  click 'css=input[type=submit]'
16
- wait_for_element_not_present 'edit21_title'
16
+ wait_for_element_not_present 'edit22_title'
17
17
  verify_text "css=#edit21 li.title", @new_title
18
18
 
19
19
  # edit again (click on 'v_status' checkbox)
20
20
  click 'link=edit'
21
- wait_for_element_present 'edit21_title'
21
+ wait_for_element_present 'edit22_title'
22
22
 
23
23
  # cancel
24
24
  click 'css=img[alt="cancel"]'
25
- wait_for_element_not_present 'edit21_title'
25
+ wait_for_element_not_present 'edit22_title'
26
26
 
27
27
  # edit again
28
28
  click 'link=edit'
29
- wait_for_element_present 'edit21_title'
30
- type 'edit21_title', @old_title
29
+ wait_for_element_present 'edit22_title'
30
+ type 'edit22_title', @old_title
31
31
  click 'css=#edit2 input[type=checkbox]'
32
32
 
33
33
  # submit
34
34
  click 'css=input[type=submit]'
35
- wait_for_element_not_present 'edit21_title'
35
+ wait_for_element_not_present 'edit22_title'
36
36
  verify_text "css=#edit21 li.title", @old_title
37
37
 
38
38
  # ensure page is published
@@ -0,0 +1,55 @@
1
+ @old_title = 'Collections'
2
+ @new_title = 'New Collections'
3
+
4
+ open '/oo/testnode37.html?test=edit4'
5
+ set_timeout 4000
6
+ assert_element_not_present 'edit41_title'
7
+ verify_text "css=#edit41_32 .title", @old_title
8
+
9
+ # edit
10
+ click 'link=edit'
11
+ wait_for_element_present 'edit41_title'
12
+ type 'edit41_title', @new_title
13
+
14
+ # submit
15
+ click 'css=input[type=submit]'
16
+ wait_for_element_not_present 'edit41_title'
17
+ verify_text "css=#edit41_32 .title", @new_title
18
+
19
+ # edit again
20
+ click 'link=edit'
21
+ wait_for_element_present 'edit41_title'
22
+
23
+ # cancel
24
+ click 'css=img[alt="cancel"]'
25
+ wait_for_element_not_present 'edit41_title'
26
+
27
+ # edit again
28
+ click 'link=edit'
29
+ wait_for_element_present 'edit41_title'
30
+ # Ensure we do proper ajax replacements
31
+ assert_element_not_present 'css=#edit4 form form'
32
+ type 'edit41_title', @old_title
33
+
34
+ # submit
35
+ click 'css=input[type=submit]'
36
+ wait_for_element_not_present 'edit41_title'
37
+ verify_text "css=#edit41_32 .title", @old_title
38
+
39
+ # ensure changes are recorded
40
+ open '/oo/testnode37.html?test=edit4'
41
+ verify_text "css=#edit41_32 .title", @old_title
42
+
43
+ # TODO: Test ADD and Edit: but to do this, we need a way to use
44
+ # variables (get the created object's DOM id).
45
+ # click 'css=img[alt=add]'
46
+ # assert_visible 'add41_title'
47
+ # type 'add31_title', 'edit4add'
48
+ # click 'css=input[type=submit]'
49
+ # wait_for_not_visible 'add31_title'
50
+ # verify_text 'css=.edit4add a', 'edit4add'
51
+ # # edit newly created object
52
+ # click '.edit4add link=edit'
53
+ # We do not know the DOM id here: how do we do this ?
54
+ # We have two edit41_title elements...
55
+ #wait_for_element_present 'edit41_title'
@@ -0,0 +1,41 @@
1
+ @old_title = 'Collections'
2
+ @new_title = 'New Collections'
3
+
4
+ open '/oo/testnode37.html?test=edit5'
5
+ set_timeout 4000
6
+ assert_element_not_present 'edit52_title'
7
+ verify_text "css=#edit51_32 .title", @old_title
8
+
9
+ # edit
10
+ click 'link=edit'
11
+ wait_for_element_present 'edit52_title'
12
+ type 'edit52_title', @new_title
13
+
14
+ # submit
15
+ click 'css=input[type=submit]'
16
+ wait_for_element_not_present 'edit52_title'
17
+ verify_text "css=#edit51_32 .title", @new_title
18
+
19
+ # edit again
20
+ click 'link=edit'
21
+ wait_for_element_present 'edit52_title'
22
+
23
+ # cancel
24
+ click 'css=img[alt="cancel"]'
25
+ wait_for_element_not_present 'edit52_title'
26
+
27
+ # edit again
28
+ click 'link=edit'
29
+ wait_for_element_present 'edit52_title'
30
+ # Ensure we do proper ajax replacements
31
+ assert_element_not_present 'css=#edit5 form form'
32
+ type 'edit52_title', @old_title
33
+
34
+ # submit
35
+ click 'css=input[type=submit]'
36
+ wait_for_element_not_present 'edit52_title'
37
+ verify_text "css=#edit51_32 .title", @old_title
38
+
39
+ # ensure changes are recorded
40
+ open '/oo/testnode37.html?test=edit5'
41
+ verify_text "css=#edit51_32 .title", @old_title
@@ -0,0 +1,53 @@
1
+ @old_title = 'Collections'
2
+ @new_title = 'New Collections'
3
+
4
+ open '/oo/testnode37.html?test=edit6'
5
+ set_timeout 4000
6
+ assert_element_not_present 'edit63_title'
7
+ verify_text "css=#edit61_32 .title", @old_title
8
+
9
+ # swap block should work before edit
10
+ # swap
11
+ click 'css=#edit62_32 a'
12
+ wait_for_element_present 'swap_span'
13
+ verify_text "css=#edit62_32 span", 'bob'
14
+
15
+ # edit
16
+ click 'link=edit'
17
+ wait_for_element_present 'edit63_title'
18
+ type 'edit63_title', @new_title
19
+
20
+ # submit
21
+ click 'css=input[type=submit]'
22
+ wait_for_element_present 'swap_span'
23
+ verify_text "css=#edit61_32 .title", @new_title
24
+ verify_text "css=#edit62_32 span", 'bob'
25
+
26
+ # edit again
27
+ click 'link=edit'
28
+ wait_for_element_present 'edit63_title'
29
+
30
+ # cancel
31
+ click 'css=img[alt="cancel"]'
32
+ wait_for_element_not_present 'edit63_title'
33
+
34
+ # edit again
35
+ click 'link=edit'
36
+ wait_for_element_present 'edit63_title'
37
+ # Ensure we do proper ajax replacements
38
+ assert_element_not_present 'css=#edit6 form form'
39
+ type 'edit63_title', @old_title
40
+
41
+ # submit
42
+ click 'css=input[type=submit]'
43
+ wait_for_element_not_present 'edit63_title'
44
+ verify_text "css=#edit61_32 .title", @old_title
45
+
46
+ # swap block should work after edit
47
+ click 'css=#edit62_32 a'
48
+ wait_for_element_not_present 'swap_span'
49
+ verify_text "css=#edit61_32 .title", @old_title
50
+
51
+ # ensure changes are recorded
52
+ open '/oo/testnode37.html?test=edit6'
53
+ verify_text "css=#edit61_32 .title", @old_title
@@ -0,0 +1,12 @@
1
+ # See also the RDoc for SeleniumOnRails::TestBuilder.
2
+ # View result in browser: http://test.host:3000/selenium
3
+
4
+ setup :fixtures => :all
5
+
6
+ # Setup code
7
+ open '/login'
8
+ type 'user_login', 'lion'
9
+ type 'password', 'lion'
10
+ click_and_wait 'commit'
11
+ click_and_wait 'link=Kill the bugs'
12
+ verify_text '_title37', 'Kill the bugs'
@@ -0,0 +1,9 @@
1
+ open '/oo/testnode37.html?test=filter1'
2
+ # We are on the first page
3
+ verify_element_not_present 'css=#filter1_list #fil555'
4
+ type 'filter1_in', 'ird'
5
+ wait_for_element_present 'fil1_30'
6
+ verify_text 'fil1_30', 'bird'
7
+ type 'filter1_in', 'flo'
8
+ wait_for_element_present 'fil1_31'
9
+ verify_text 'fil1_31', 'flower'
@@ -0,0 +1,9 @@
1
+ open '/oo/testnode37.html?test=filter2'
2
+ # We are on the first page
3
+ verify_element_not_present 'css=#filter2_list #fil555'
4
+ type 'filter2_in', 'ird'
5
+ wait_for_element_present 'fil2_30'
6
+ verify_text 'fil2_30', 'bird'
7
+ type 'filter2_in', 'flo'
8
+ wait_for_element_present 'fil2_31'
9
+ verify_text 'fil2_31', 'flower'
@@ -1,6 +1,6 @@
1
1
  @test_page = "/oo/testnode37.html?test=form1"
2
2
  open @test_page
3
- type "paginate1_tbl_title", "Hello World!"
3
+ type "form11_title", "Hello World!"
4
4
  # submit
5
5
  click_and_wait 'css=input[type=submit]'
6
6
  # Redirected to new page
@@ -1,5 +1,5 @@
1
1
  open "/oo/testnode37.html?test=form2"
2
- type "paginate1_tbl_title", "Heal the bugs!"
2
+ type "form21_title", "Heal the bugs!"
3
3
  # submit
4
4
  click_and_wait 'css=input[type=submit]'
5
5
 
@@ -0,0 +1,15 @@
1
+ open "/oo/testnode37.html?test=form3"
2
+ type "form31_title", "Heal the bugs!"
3
+ # submit
4
+ assert_not_checked 'css=input[value=34]'
5
+ click 'css=input[value=34]'
6
+ click_and_wait 'css=input[type=submit]'
7
+
8
+ # Redirected to same page
9
+ assert_location "http://test.host:3000/oo/testnode37.html"
10
+ open "/oo/testnode37.html?test=form3"
11
+ assert_checked 'css=input[value=34]'
12
+ click 'css=input[value=34]'
13
+ click_and_wait 'css=input[type=submit]'
14
+ open "/oo/testnode37.html?test=form3"
15
+ assert_not_checked 'css=input[value=34]'
@@ -0,0 +1,13 @@
1
+ # See also the RDoc for SeleniumOnRails::TestBuilder.
2
+ # View result in browser: http://test.host:3000/selenium
3
+
4
+ setup :fixtures => :all
5
+
6
+ # Setup code
7
+ open '/login'
8
+ type 'user_login', 'lion'
9
+ type 'password', 'lion'
10
+ click_and_wait 'commit'
11
+ click_and_wait 'link=Kill the bugs'
12
+ verify_text '_title37', 'Kill the bugs'
13
+
@@ -0,0 +1,11 @@
1
+ # Add first element
2
+ open '/oo/testnode37.html?test=grid1'
3
+ # THIS DOES NOT WORK. FIND ANOTHER WAY TO TEST THIS GRID.
4
+ # verify_text 'css=.grid tr:nth-child(2) td:nth-child(1)', '[title]'
5
+ # verify_text 'css=.grid tr:nth-child(3) td:nth-child(1)', 'value'
6
+ # # Change title
7
+ # click 'css=.grid td:nth-child(3)'
8
+ # type 'css=.grid input', 'my title'
9
+ # click 'css=#grid1 input[type="submit"]'
10
+ # verify_text 'css=.grid tr:nth-child(2) td:nth-child(1)', 'my title'
11
+
@@ -0,0 +1,12 @@
1
+ # See also the RDoc for SeleniumOnRails::TestBuilder.
2
+ # View result in browser: http://test.host:3000/selenium
3
+
4
+ setup :fixtures => :all
5
+
6
+ # Setup code
7
+ open '/login'
8
+ type 'user_login', 'lion'
9
+ type 'password', 'lion'
10
+ click_and_wait 'commit'
11
+ click_and_wait 'link=Kill the bugs'
12
+ verify_text '_title37', 'Kill the bugs'
@@ -0,0 +1,13 @@
1
+ open '/oo/testnode37.html?test=swap1'
2
+
3
+ assert_element_not_present 'swap1_span'
4
+
5
+ # swap
6
+ click 'css=#swap1_s a'
7
+ wait_for_element_present 'swap1_span'
8
+ verify_text "css=#swap1_span", "bob"
9
+ assert_element_present 'css=#swap1_s.bob'
10
+
11
+ # swap back
12
+ click 'css=#swap1_s a'
13
+ wait_for_element_not_present 'swap1_span'
@@ -0,0 +1,11 @@
1
+ open '/oo/testnode37.html?test=swap2'
2
+
3
+ assert_element_not_present 'swap2_span'
4
+
5
+ # edit
6
+ click 'css=#swap2_s a'
7
+ wait_for_element_present 'swap2_span'
8
+ verify_text "css=#swap2_span", "bob"
9
+
10
+
11
+ assert_element_present 'css=#swap2_s.bob'
@@ -3,18 +3,18 @@ assert_element_not_present "css=ul.references > li"
3
3
 
4
4
  # Add relation
5
5
  # Cannot test click on non-link in Safari and Chrome...
6
- click 'css=#toggle11_19.toggle.off > input.cb'
7
- wait_for_element_present 'css=#toggle11_19.toggle.on'
8
- verify_value "css=#toggle11_19 > input.cb", "on"
6
+ click 'css=#toggle12_19.toggle.off > input.cb'
7
+ wait_for_element_present 'css=#toggle12_19.toggle.on'
8
+ verify_value "css=#toggle12_19 > input.cb", "on"
9
9
 
10
10
  # Reload page
11
11
  open "/oo/testnode37.html?test=toggle1"
12
12
  verify_text "css=ul.references > li", "Secret"
13
13
 
14
14
  # Remove relation
15
- click 'css=#toggle11_19.toggle.on > input.cb'
16
- wait_for_element_present 'css=#toggle11_19.toggle.off'
17
- verify_value "css=#toggle11_19 > input.cb", "off"
15
+ click 'css=#toggle12_19.toggle.on > input.cb'
16
+ wait_for_element_present 'css=#toggle12_19.toggle.off'
17
+ verify_value "css=#toggle12_19 > input.cb", "off"
18
18
 
19
19
  # Reload page
20
20
  open "/oo/testnode37.html?test=toggle1"
@@ -720,4 +720,4 @@ translations_fr:
720
720
  title: translations
721
721
  content_type: text/yaml
722
722
  ext: yml
723
- size: 50
723
+ size: 50
@@ -83,6 +83,42 @@ class RelationProxyTest < Zena::Unit::TestCase
83
83
  assert_equal [nodes_id(:art)], node.set_tag_ids
84
84
  assert_equal [nodes_zip(:art)], node.set_tag_zips
85
85
  end
86
+
87
+ def test_set_tag_ids_with_blank
88
+ login(:tiger)
89
+ node = secure!(Node) { nodes(:status) }
90
+ assert node.update_attributes( 'set_tag_ids' => ['', nodes_id(:art).to_s] )
91
+ assert_equal [nodes_id(:art)], node.rel['set_tag'].other_ids
92
+
93
+ node = secure!(Node) { nodes(:status) } # reload
94
+ assert_equal nodes_id(:art), node.find(:all,'set_tags')[0][:id]
95
+ assert_equal [nodes_id(:art)], node.set_tag_ids
96
+ assert_equal [nodes_zip(:art)], node.set_tag_zips
97
+ end
98
+
99
+ def test_set_tag_zips
100
+ login(:tiger)
101
+ node = secure!(Node) { nodes(:status) }
102
+ assert node.update_attributes( 'set_tag_zips' => [nodes_zip(:art).to_s] )
103
+ assert_equal [nodes_id(:art)], node.rel['set_tag'].other_ids
104
+
105
+ node = secure!(Node) { nodes(:status) } # reload
106
+ assert_equal nodes_id(:art), node.find(:all,'set_tags')[0][:id]
107
+ assert_equal [nodes_id(:art)], node.set_tag_ids
108
+ assert_equal [nodes_zip(:art)], node.set_tag_zips
109
+ end
110
+
111
+ def test_set_tag_zips_with_blank
112
+ login(:tiger)
113
+ node = secure!(Node) { nodes(:status) }
114
+ assert node.update_attributes( 'set_tag_zips' => ['', nodes_zip(:art).to_s] )
115
+ assert_equal [nodes_id(:art)], node.rel['set_tag'].other_ids
116
+
117
+ node = secure!(Node) { nodes(:status) } # reload
118
+ assert_equal nodes_id(:art), node.find(:all,'set_tags')[0][:id]
119
+ assert_equal [nodes_id(:art)], node.set_tag_ids
120
+ assert_equal [nodes_zip(:art)], node.set_tag_zips
121
+ end
86
122
 
87
123
  context 'On a new node' do
88
124
  subject do
@@ -172,10 +172,18 @@ class SiteTest < Zena::Unit::TestCase
172
172
  assert_kind_of User, subject.any_admin
173
173
  assert_equal users(:lion), subject.any_admin
174
174
  end
175
-
175
+
176
176
  should 'respond to expire_in_dev' do
177
177
  assert !subject.expire_in_dev?
178
178
  end
179
+
180
+ should 'remove_from_site' do
181
+ assert_nothing_raised do
182
+ assert_difference('Node.count', -Node.count(:conditions => ['site_id = ?', subject.id])) do
183
+ subject.remove_from_db
184
+ end
185
+ end
186
+ end
179
187
  end # A site
180
188
 
181
189
 
@@ -354,7 +362,7 @@ class SiteTest < Zena::Unit::TestCase
354
362
  end
355
363
  end
356
364
 
357
-
365
+
358
366
  private
359
367
  def fullpath(*args)
360
368
  args.map {|sym| nodes_zip(sym).to_s}.join('/')
@@ -54,7 +54,7 @@ class RenderingInControllerTest < Zena::Controller::TestCase
54
54
  class << @controller
55
55
  attr_reader :custom_rendering
56
56
  def render_to_xml(opts)
57
- @custom_rendering = true
57
+ @custom_rendering = opts
58
58
  {
59
59
  :type => 'text/html',
60
60
  :data => render_to_string(:inline => %Q{<%= zazen(%q{Hello !30! "a link":30}) %>}),
@@ -69,7 +69,8 @@ class RenderingInControllerTest < Zena::Controller::TestCase
69
69
 
70
70
  should 'call render_to_format' do
71
71
  get_subject
72
- assert @controller.custom_rendering
72
+ assert !@controller.custom_rendering[:debug]
73
+ assert_equal 'xml', @controller.custom_rendering[:format]
73
74
  end
74
75
 
75
76
  context 'with debug' do
@@ -77,9 +78,9 @@ class RenderingInControllerTest < Zena::Controller::TestCase
77
78
  {:action => 'show', :controller => 'nodes', :path => ["page#{nodes_zip(:projects)}.xml"], :prefix => 'en', :debug => 'true'}
78
79
  end
79
80
 
80
- should 'not call render_to_format on debug' do
81
+ should 'pass debug to render_to_format on debug' do
81
82
  get_subject
82
- assert_nil @controller.custom_rendering
83
+ assert @controller.custom_rendering[:debug]
83
84
  end
84
85
  end # with debug
85
86
 
@@ -126,7 +127,7 @@ class RenderingInControllerTest < Zena::Controller::TestCase
126
127
  assert_raise(ActionView::TemplateError) { get_subject }
127
128
  end # Not found rendering
128
129
  end # to raise not found
129
-
130
+
130
131
  # Not working yet...
131
132
  # context 'to redirect' do
132
133
  # setup do
@@ -134,7 +135,7 @@ class RenderingInControllerTest < Zena::Controller::TestCase
134
135
  # make_template "<r:redirect url='http://feature-space.com'/>", @mode
135
136
  # login(:anon)
136
137
  # end
137
- #
138
+ #
138
139
  # should 'redirect' do
139
140
  # get_subject
140
141
  # assert_redirected_to 'http://feature-space.com'
@@ -243,8 +243,7 @@ class ZazenTest < Zena::View::TestCase
243
243
 
244
244
  def test_table_asset
245
245
  login(:tiger)
246
- assert_match %r{<table.*<tr.*<th>title</th.*<tr.*value}m, zazen("This is a table test:\n\n|shopping_list|")
247
- assert_match %r{<table.*<th>problem</th>.*<th>solution</th>.*<th>cost</th>.*<tr>.*<td>dead hard drive</td>}m, zazen("This is a table test:\n\n|problems|")
246
+ assert_match %r{<table data-a='node\[shopping_list\]'.*class='grid'}m, zazen("This is a table test:\n\n|shopping_list|")
248
247
  end
249
248
 
250
249
  # only works if recaptcha plugin is installed
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>beforeRunningCommand</key>
6
+ <string>nop</string>
7
+ <key>command</key>
8
+ <string>#!/bin/sh
9
+
10
+ export RUBYLIB="$TM_BUNDLE_SUPPORT/RubyMate${RUBYLIB:+:$RUBYLIB}"
11
+ "${TM_RUBY:-ruby}" -- "$TM_BUNDLE_SUPPORT/RubyMate/run_script.rb"
12
+ </string>
13
+ <key>input</key>
14
+ <string>document</string>
15
+ <key>keyEquivalent</key>
16
+ <string>@r</string>
17
+ <key>name</key>
18
+ <string>Run</string>
19
+ <key>output</key>
20
+ <string>showAsHTML</string>
21
+ <key>uuid</key>
22
+ <string>156042A4-5813-46D2-BA06-901C91D1A0B9</string>
23
+ </dict>
24
+ </plist>
@@ -0,0 +1,58 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>beforeRunningCommand</key>
6
+ <string>saveActiveFile</string>
7
+ <key>command</key>
8
+ <string># Assumes the current file is a unittest file
9
+ # Runs with the currently-focused method as the test name
10
+
11
+ args=$(${TM_RUBY:=ruby} &lt;&lt;"EOF"
12
+
13
+ def parse_from_quotes(name)
14
+ name.to_s.gsub(/^(?:.*"(.*)"|.*'(.*)').*$/) { $1 || $2 }
15
+ end
16
+
17
+ n = ENV['TM_LINE_NUMBER'].to_i
18
+
19
+ should, context = nil, nil
20
+
21
+ File.open(ENV['TM_FILEPATH']) do |f|
22
+ lines = f.read.split("\n")[0...n].reverse
23
+ context = lines.find { |line| line =~ /^\s*context\b/ }
24
+ should = parse_from_quotes(lines.find { |line| line =~ /^\s*should\b/ })
25
+ end
26
+
27
+ if !context.empty? &amp;&amp; !should.empty?
28
+ puts "shoulda"
29
+ context = parse_from_quotes( context )
30
+ name = "#{context}".gsub(/[\+\.\s\'\"\(\)]/,'.')
31
+ print "--name=/#{name}/ -v v"
32
+ end
33
+
34
+ EOF)
35
+
36
+ if [[ -z "$args" ]]; then
37
+ echo -e "This doesn't appear to be a TestCase class."
38
+ exit_show_tool_tip
39
+ fi
40
+
41
+ export RUBYLIB="$TM_BUNDLE_SUPPORT/RubyMate${RUBYLIB:+:$RUBYLIB}"
42
+ "${TM_RUBY:-ruby}" -- "$TM_BUNDLE_SUPPORT/RubyMate/run_script.rb" $args</string>
43
+ <key>fallbackInput</key>
44
+ <string>scope</string>
45
+ <key>input</key>
46
+ <string>document</string>
47
+ <key>keyEquivalent</key>
48
+ <string>~@r</string>
49
+ <key>name</key>
50
+ <string>Run Context</string>
51
+ <key>output</key>
52
+ <string>showAsHTML</string>
53
+ <key>scope</key>
54
+ <string>source.ruby.rails.shoulda</string>
55
+ <key>uuid</key>
56
+ <string>2989704F-8F6B-439F-83A7-368BB174A010</string>
57
+ </dict>
58
+ </plist>