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
@@ -155,3 +155,10 @@ coalesce:
155
155
  src: "nodes in site order by parent_id.coalesce(0) asc limit 1"
156
156
  sql: "%Q{SELECT nodes.* FROM nodes WHERE #{secure_scope('nodes')} ORDER BY COALESCE(nodes.parent_id,0) ASC LIMIT 1}"
157
157
  res: "Zena the wild CMS"
158
+
159
+ in_sub_nodes:
160
+ context:
161
+ node: cleanWater
162
+ src: pages in sub_nodes
163
+ sql: "/nodes.fullpath LIKE CONCAT.\?,'/%'./"
164
+ res: "Etat des travaux, crocodiles"
@@ -3,7 +3,7 @@ default:
3
3
  node_name: '@node'
4
4
  node: complex
5
5
  visitor: complex_admin
6
- site: complex
6
+ host: complex.host
7
7
  src: ""
8
8
  sql: "[%Q{SELECT nodes.* FROM nodes WHERE #{secure_scope('nodes')} AND nodes.parent_id = ? ORDER BY nodes.zip ASC}, @node.id]"
9
9
  res: "cskin, list of employees, jobs, courses list"
@@ -15,4 +15,4 @@ pages_from_site_or_images:
15
15
  pagination_without_limit:
16
16
  src: "pages in site paginate p"
17
17
  # qb processor.rb 571
18
- err: 'Invalid paginate clause (used without limit).'
18
+ err: 'Invalid paginate clause (used without limit).'
@@ -178,4 +178,37 @@ quoted_literal:
178
178
  coalesce_in_filter:
179
179
  src: "posts select date.coalesce('2011-11-01') as da in site"
180
180
  sql: "%Q{SELECT nodes.*,COALESCE(nodes.idx_datetime1,'2011-11-01') AS `da` FROM nodes WHERE #{secure_scope('nodes')} AND nodes.kpath LIKE 'NNP%' ORDER BY nodes.zip ASC}"
181
- res: 'super ouverture'
181
+ res: 'super ouverture'
182
+
183
+ match:
184
+ src: "pages where fulltext match 'wiki' in site"
185
+ sql: "/ve1.idx_text_high LIKE '%wiki%'/"
186
+
187
+ match_string_dyn:
188
+ src: "pages where fulltext match 'wiki#{params[:foo]}' in site"
189
+ sql: "/ve1.idx_text_high LIKE \?.*\"%wiki#\{params\[:foo\]\}/"
190
+
191
+ match_dstring:
192
+ src: "pages where fulltext match \"ho#{params[:foo]}\" in site"
193
+ sql: "/ve1.idx_text_high LIKE \?.*\"%ho#\{params\[:foo\]\}/"
194
+
195
+ match_dstring_no_rb:
196
+ src: "pages where fulltext match \"ho\" in site"
197
+ sql: "/ve1.idx_text_high LIKE '%ho%'/"
198
+
199
+ match_number:
200
+ src: "pages where fulltext match 123 in site"
201
+ sql: "/ve1.idx_text_high LIKE '%123%'/"
202
+
203
+ match_rubyless:
204
+ src: "pages where fulltext match #{params[:foo]} in site"
205
+ sql: "/ve1.idx_text_high LIKE \?.*, \"%#\{params\[:foo\]\}%\"/"
206
+
207
+ match_field:
208
+ src: "pages where fulltext match id in site"
209
+ sql: "Can only match against literal or rubyless values."
210
+
211
+ match_sphinx:
212
+ src: "pages where sphinx match #{params[:foo]} in site"
213
+ sql: "[%Q{SELECT nodes.* FROM nodes WHERE #{secure_scope('nodes')} AND nodes.zip IN (?) AND nodes.kpath LIKE 'NP%' ORDER BY nodes.zip ASC}, test_search_for_ids(params[:foo])]"
214
+ res: 'Zena the wild CMS, projects list, a wiki with Zena'
@@ -83,22 +83,15 @@ project_as_blog:
83
83
  src: "Blog:project"
84
84
  sql: "[%Q{SELECT nodes.* FROM nodes WHERE #{secure_scope('nodes')} AND nodes.kpath LIKE 'NPPB%' AND nodes.id = ? ORDER BY nodes.zip ASC}, @node.get_project_id]"
85
85
 
86
- from_root:
87
- context:
88
- site: alias
89
- src: nodes from root limit 3
90
- res: 'people, projects list, Collections'
91
-
92
- from_home:
93
- context:
94
- site: alias
95
- src: nodes from home limit 3
96
- res: 'bird, flower'
97
-
98
86
  # openging in art(33) and news(34)
99
87
  having_on_relation_count:
100
88
  context:
101
89
  params:
102
90
  ids: '33,34'
103
91
  src: 'tagged from tag select id.count as t_count where id in (#{params[:ids].split(",")}) in site having t_count = #{params[:ids].split(",").size}'
104
- res: 'super ouverture'
92
+ res: 'super ouverture'
93
+
94
+ # TODO: change how fullpath is built should solve this issue.
95
+ in_home:
96
+ src: "images in home"
97
+ res: it's a lake, bird, flower, Autumn Tree
@@ -1,6 +1,26 @@
1
1
  require 'test_helper'
2
2
  require 'yamltest'
3
3
 
4
+ # Mock sphinx search
5
+
6
+ # add 'sphinx match xxxx' to QueryNode
7
+ Node.query_compiler.add_fulltext_field('sphinx') do |processor, table, right|
8
+ helper = processor.instance_variable_get(:@rubyless_helper)
9
+ case right[0]
10
+ when :string, :dstring, :real, :integer
11
+ value = RubyLess.translate_string(helper, right[1])
12
+ when :rubyless
13
+ value = RubyLess.translate(helper, right[1])
14
+ else
15
+ raise ::QueryBuilder::Error.new("Can only match against literal or rubyless values.")
16
+ end
17
+ "#{table}.zip IN (#{processor.send(:insert_bind, "test_search_for_ids(#{value})")})"
18
+ end
19
+
20
+ def test_search_for_ids(fld)
21
+ [11, 18, 29]
22
+ end
23
+
4
24
  class QueryNodeTest < Zena::Unit::TestCase
5
25
  include RubyLess
6
26
  safe_method :date => Time
@@ -37,9 +57,8 @@ class QueryNodeTest < Zena::Unit::TestCase
37
57
  (@context[:params] || {}).each do |k,v|
38
58
  params[k.to_sym] = v
39
59
  end
40
-
41
- $_test_site = @context[:site] || 'zena'
42
- login(@context[:visitor].to_sym, $_test_site)
60
+
61
+ login(@context[:visitor].to_sym, @context[:host])
43
62
 
44
63
  @context[:rubyless_helper] = self
45
64
  defaults = (@context[:default] ||= {})
@@ -20,7 +20,7 @@ login_link:
20
20
  # Forces NodesController type of url and params
21
21
  fake_controller: 'nodes'
22
22
  src: "<r:login_link/>"
23
- res: '<a href="/oo/projects-list/Clean-Water-project/page22.html" rel="nofollow">login</a>'
23
+ res: '<a href="/oo/projects-list/Clean-Water-project/page22.html?lang=en" rel="nofollow">login</a>'
24
24
 
25
25
  logout_link_other_controller:
26
26
  src: "<r:login_link/>"
@@ -0,0 +1,52 @@
1
+ default:
2
+ context:
3
+ lang: 'en'
4
+ host: alias.host
5
+ visitor: 'ant'
6
+ node: 'status'
7
+ src: "<r:site do='host'/>: <r:home do='title'/>"
8
+ tem: "/visitor.site.home_node"
9
+ res: "alias.host: a wiki with Zena"
10
+
11
+ test_home:
12
+ context:
13
+ node: wiki
14
+ src: "<r:if test='id == home.id'>ok</r:if>"
15
+ res: 'ok'
16
+
17
+ all_sub_nodes:
18
+ src: "<r:void do=\"nodes where fullpath like '#{home.fullpath}/%' in site\" do='each' join=', ' do='title'/>"
19
+ tem: '/visitor.site.home_node.fullpath/'
20
+ res: 'bird, flower'
21
+
22
+ from_root:
23
+ context:
24
+ host: alias.host
25
+ src: <r:void do='nodes from root limit 3' do='each' join=', ' do='title'/>
26
+ res: 'Collections, Kill the bugs, Nature'
27
+
28
+ # For this test, we add some sub-nodes in wiki
29
+ from_home:
30
+ context:
31
+ host: alias.host
32
+ src: <r:void do='nodes from home' do='each' join=', ' do='title'/>
33
+ res: 'bird, flower, one'
34
+
35
+ # For this test, we add some sub-nodes in wiki
36
+ in_home:
37
+ src: <r:void do='nodes in home' do='each' join=', ' do='title'/>
38
+ res: bird, flower, one, three, two
39
+
40
+ link_to_home:
41
+ src: <r:void do='home' do='link'/>
42
+ res: <a href='/oo'>a wiki with Zena</a>
43
+
44
+ link_with_custom_base:
45
+ # custom base is set on 'home' before this test
46
+ src: <r:void do='image in home' find='first' do='link'/> <r:void do='page where title = "three" in home' find='first' do='link'/>
47
+ res: <a href='/oo/image30.html'>bird</a> <a href='/oo/one/page68.html'>three</a>
48
+
49
+ link_with_custom_base_out_of_home:
50
+ # custom base is set on 'home' before this test
51
+ src: <r:void do='page where id = 22 in site' find='first' do='link'/>
52
+ res: <a href='/oo/projects-list/Clean-Water-project/page22.html'>status title</a>
@@ -58,7 +58,7 @@ default:
58
58
  node_name: '@node'
59
59
  node: roger
60
60
  visitor: complex_admin
61
- site: complex
61
+ host: complex.host
62
62
  ref_date: 2004-09-01
63
63
  src: "<r:emp_form_dates where='repeat_every is not null' do='each' join=', '><r:show attr='title'/>(<r:show attr='priority'/>, <r:show attr='last_date' format='%Y-%m-%d'/>, <r:show attr='next_date' format='%Y-%m-%d'/>)</r:emp_form_dates>"
64
64
  res: "secure_a_site(10, , ), winch_usage(10, , ), dangerous_transportations(10, 2004-03-15, 2006-03-15), engine(5, , ), transmit_information(5, 2002-05-05, 2003-05-05), fiber_junction(5, 2003-03-03, 2005-03-03), radio_usage(1, , )"
@@ -3,7 +3,7 @@ it_should_compile_custom_select:
3
3
  node_name: '@node'
4
4
  node: roger
5
5
  visitor: complex_admin
6
- site: complex
6
+ host: complex.host
7
7
  ref_date: 2004-09-01
8
8
  src: "<r:emp_form_dates do='each' join=', '><r:show attr='title'/>(<r:priority/>)[<r:last_date format='%Y-%m'/>]</r:emp_form_dates>"
9
9
  tem: '/var2.attributes\["priority"\].*\[<%= format_date\(var2.rcast\("last_date", :time\), :format => "%Y-%m"\) %>\]/'
@@ -14,7 +14,7 @@ type_cast_to_time_using_existing_field:
14
14
  node_name: '@node'
15
15
  node: roger
16
16
  visitor: complex_admin
17
- site: complex
17
+ host: complex.host
18
18
  ref_date: 2004-09-01
19
19
  src: "<r:emp_form_dates where='idx_datetime1 is not null' do='each' join=', ' do='idx_datetime1' format='%d.%m.%Y %H:%M'/>"
20
20
  tem: '/format_date\(var2.idx_datetime1/'
@@ -25,7 +25,7 @@ type_cast_to_time_custom_field:
25
25
  node_name: '@node'
26
26
  node: roger
27
27
  visitor: complex_admin
28
- site: complex
28
+ host: complex.host
29
29
  ref_date: 2004-09-01
30
30
  src: "<r:emp_form_dates where='next_date is not null' do='each' join=', ' do='next_date' format='%d.%m.%Y %H:%M'/>"
31
31
  tem: '/format_date\(var2.rcast\("next_date", :time/'
@@ -36,7 +36,7 @@ it_should_group_by_custom_select:
36
36
  node_name: '@node'
37
37
  node: roger
38
38
  visitor: complex_admin
39
- site: complex
39
+ host: complex.host
40
40
  ref_date: 2004-09-01
41
41
  src: "<r:emp_form_dates do='group' by='priority' do='each_group' join=', '><r:show attr='priority'/></r:emp_form_dates>"
42
42
  res: '10, 5, 1'
@@ -46,7 +46,7 @@ it_should_secure_table:
46
46
  node_name: '@node'
47
47
  node: roger
48
48
  visitor: complex_admin
49
- site: complex
49
+ host: complex.host
50
50
  ref_date: 2004-09-01
51
51
  src: "<r:secure_tables do='count'/>"
52
52
  tem: "/secure_scope\('other'\)/"
@@ -32,7 +32,7 @@ login_info:
32
32
 
33
33
  home_compiled_to_project:
34
34
  context:
35
- site: alias
35
+ host: alias.host
36
36
  src: "<r:home do='collaborators'/>"
37
37
  # project_has_collaborators => home resolved as project during compilation
38
38
  tem: '/links.relation_id = 540144154/'
@@ -396,10 +396,12 @@ set_class_before_query:
396
396
  src: "<div class='foo_#{first.title}' do='images in site'></div>"
397
397
  res: "<div class='foo_Autumn Tree'></div>"
398
398
 
399
- flash_messages:
400
- src: "<r:flash_messages/>"
401
- tem: "<%= flash_messages %>"
402
- res: "<div id='flash_messages'></div>"
399
+ flash:
400
+ context:
401
+ flash: "Ho ho"
402
+ src: "<r:void do='flash[\"error\"]'/>"
403
+ tem: "<%=h zafu_flash[\"error\"] %>"
404
+ res: "Ho ho"
403
405
 
404
406
  date_without_set_var:
405
407
  context:
@@ -440,6 +442,10 @@ default_host:
440
442
  tem: '/zazen.*:host.*visitor.site.host/'
441
443
  res: "/href=\"http://b.test.host/oo/section12.html\">link.*src='http://b.test.host/en/image30_std.75a9a.jpg/"
442
444
 
445
+ visitor_site_host:
446
+ src: "<r:eval>visitor.site.host</r:eval>"
447
+ res: "test.host"
448
+
443
449
  zazen_without_markup:
444
450
  src: "<r:void do='zazen(title)'/>"
445
451
  res: "<p>status title</p>"
@@ -520,4 +526,49 @@ uuid:
520
526
  use_first_in_list:
521
527
  src: "<r:void do='contacts where id = 13 in site'><r:first do='link'/> // <r:first do='title'/></r:void>"
522
528
  tem: "/var1.first.*var1.first/"
523
- res: "<a href='/oo/contact13.html'>Solenopsis Invicta</a> // Solenopsis Invicta"
529
+ res: "<a href='/oo/contact13.html'>Solenopsis Invicta</a> // Solenopsis Invicta"
530
+
531
+ # Make sure variables do not reach...
532
+ zafu_eval:
533
+ context:
534
+ code: "<r:title/>"
535
+ src: "<r:title/>: [<r:parent do='zafu_eval' code='params[:code]'/>]"
536
+ tem: "/<%= zafu_eval\(var1/"
537
+ res: 'status title: [Clean Water project]'
538
+
539
+ fetch_html:
540
+ src: "HELLO: <r:void do='fetch_html(\"http://zenadmin.org/en\")' h='false'/>"
541
+ tem: "HELLO: <%= fetch_html(\"http://zenadmin.org/en\") %>"
542
+ res: "/HELLO:.*DOCTYPE.*zenadmin.org/en/features/"
543
+
544
+ section_id:
545
+ context:
546
+ node: wiki_Node_zafu
547
+ src: "section: <p do='section_id'/>"
548
+ res: 'section: <p>43</p>'
549
+
550
+ project_id:
551
+ context:
552
+ node: wiki_Node_zafu
553
+ src: "project: <p do='project_id'/>"
554
+ res: 'project: <p>11</p>'
555
+
556
+ parent_id:
557
+ context:
558
+ node: ant
559
+ src: "parent: <p do='parent_id'/>"
560
+ res: 'parent: <p>12</p>'
561
+
562
+ fsize:
563
+ src: "<b do='fsize(32*1024)'/> <b do='fsize(3.45*1024*1024)'/>"
564
+ res: "<b>32 Kb</b> <b>3.5 Mb</b>"
565
+
566
+ group_id_to_name_ant:
567
+ src: "<r:title/>: auth = <r:void do='visitor.group_id_to_name(rgroup_id)'/> // <r:void do='visitor.group_id_to_name(dgroup_id) || \"unknown\"'/>"
568
+ res: "status title: auth = public // unknown"
569
+
570
+ group_id_to_name:
571
+ context:
572
+ visitor: lion
573
+ src: "<r:title/>: auth = <r:void do='visitor.group_id_to_name(rgroup_id)'/> // <r:void do='visitor.group_id_to_name(dgroup_id) || \"unknown\"'/>"
574
+ res: "status title: auth = public // managers"
@@ -169,7 +169,7 @@ checkbox_checked_hash_value:
169
169
  node: test
170
170
  src: "<r:input type='checkbox' name='settings[one]' value='un'/> <r:input type='checkbox' name='settings[one]' value='deux'/>"
171
171
  tem: "/@node.prop\[.settings.\]\[.one.\] : nil\) == .un. \? . checked='checked'/"
172
- res: "<input type='hidden' name='node[settings][one]' value=''/><input type='checkbox' name='node[settings][one]' value='un' checked='checked'/><input type='hidden' name='node[settings][one]' value=''/> <input type='checkbox' name='node[settings][one]' value='deux'/>"
172
+ res: "<input type='hidden' name='node[settings][one]' value=''/><input type='checkbox' name='node[settings][one]' value='un' checked='checked'/> <input type='hidden' name='node[settings][one]' value=''/><input type='checkbox' name='node[settings][one]' value='deux'/>"
173
173
 
174
174
  checkbox_unchecked_value:
175
175
  src: "<r:input type='checkbox' name='tagged[foo]'/>"
@@ -374,4 +374,37 @@ form_rel_status:
374
374
  node: 'cleanWater'
375
375
  src: "<r:input name='set_tag_status'/>"
376
376
  tem: "/other_status/"
377
- res: "<input type='text' name='node[set_tag_status]' value='10.0'/>"
377
+ res: "<input type='text' name='node[set_tag_status]' value='10.0'/>"
378
+
379
+ # Before change, tiger uses ant as profile
380
+ auth_profile:
381
+ context:
382
+ node: tiger
383
+ src: "<b do='auth[\"profile\"]'/>: <r:select name='auth[profile]' type='profile'/>"
384
+ res: "<b>ant</b>: <select name='node[auth][profile]'><option value=\"ant\" selected=\"selected\">ant</option></select>"
385
+
386
+ auth_login:
387
+ context:
388
+ node: ant
389
+ src: "<r:input name='auth[login]'/>"
390
+ res: "<input type='text' name='node[auth][login]' value='ant'/>"
391
+
392
+ auth_password:
393
+ context:
394
+ node: ant
395
+ src: "<r:input type='password' name='auth[password]'/>"
396
+ res: "<input type='password' name='node[auth][password]' value=''/>"
397
+
398
+ tlabel_with_default_label:
399
+ context:
400
+ lang: fr
401
+ src: "<r:default label='t'><r:input name='title' tlabel='Monday'/></r:default>"
402
+ res: '/<label>lundi</label>/'
403
+
404
+ p_do_input:
405
+ src: "<p class='foo' do='input' name='title'/>"
406
+ res: "<p class='foo'><input type='text' name='node[title]' value='status title'/></p>"
407
+
408
+ p_do_input_with_label:
409
+ src: "<p class='foo' do='input' name='title' label='t'/>"
410
+ res: "<p class='foo'><label>title</label> <span><input type='text' name='node[title]' value='status title'/></span></p>"
@@ -58,6 +58,10 @@ include_part_replace_method:
58
58
  src: "include_part: <r:include template='/meta/id/name' part='bob' do='title'/>"
59
59
  tem: "include_part: <b><%=h @node.prop['title'] %></b>"
60
60
 
61
+ include_no_template_no_part:
62
+ src: "<r:include temalate='/foo/bar'/>"
63
+ tem: "/missing 'template' or 'part' parameter/"
64
+
61
65
  id_do:
62
66
  src: "<h1 id='logo' do='title'/>"
63
67
  res: "<h1 id='logo'>status title</h1>"
@@ -100,4 +100,4 @@ class_new:
100
100
  class_new_with_attr:
101
101
  src: "<div do='set' p='Post.new(:title => \"yes\")'><p do='p.klass'/>.<p do='p.title'/></div>"
102
102
  tem: "/VirtualClass\[.Post.\].zafu_new.*_zp.klass.*_zp.prop\[.title.\]/"
103
- res: "<div><p>Post</p>.<p>yes</p></div>"
103
+ res: "<div><p>Post</p>.<p>yes</p></div>"
@@ -45,6 +45,10 @@ string_strip:
45
45
  tem: "<%= \" #{@node.zip}\".strip %>"
46
46
  res: "22"
47
47
 
48
+ string_split:
49
+ src: "<r:void do=\"'one,two'.split(',')\"><span do='each' join=' ' do='this'/></r:void>"
50
+ res: '<span>one</span> <span>two</span>'
51
+
48
52
  string_to_i:
49
53
  eval: "%Q{ #{id}}.to_i"
50
54
  tem: "<%= \" #{@node.zip}\".to_i %>"
@@ -114,3 +114,13 @@ build_erb_with_rubyless:
114
114
  multiple_trans:
115
115
  src: "<r:t text='<'/><r:t text='%'/>"
116
116
  tem: "&lt;%"
117
+
118
+ zafu_eval:
119
+ context:
120
+ code: "<%= 3.class %>"
121
+ src: "<r:zafu_eval code='params[:code]'/>"
122
+ res: '&lt;%= 3.class %&gt;'
123
+
124
+ eval_in_query:
125
+ src: "<r:void do=\"nodes where title like '#{puts Time.now}/%' in site\"/>"
126
+ res: /Unknown constant 'Time'/
@@ -15,4 +15,8 @@ host:
15
15
  default_lang:
16
16
  eval: "site.default_lang"
17
17
  tem: "<%= visitor.site.default_lang %>"
18
- res: "en"
18
+ res: "en"
19
+
20
+ readonly:
21
+ eval: "site.readonly?"
22
+ res: "true"
@@ -124,12 +124,14 @@ link_root:
124
124
  res: "<a href='/oo'>status title</a>"
125
125
 
126
126
  link_anchor:
127
- src: "<r:link anchor='true'/>"
127
+ old_src: "<r:link anchor='true'/>"
128
+ src: "<a href='#node#{id}' do='title'/>"
128
129
  res: "<a href='#node22'>status title</a>"
129
130
 
130
131
  link_anchor_title:
131
132
  old_src: "<r:link anchor='[name]'/>"
132
- src: "<r:link anchor='#{title.url_name}'/>"
133
+ old_src: "<r:link anchor='#{title.url_name}'/>"
134
+ src: "<a href='##{title.url_name}' do='title'/>"
133
135
  res: "<a href='#status-title'>status title</a>"
134
136
 
135
137
  link_anchor_in:
@@ -141,6 +143,10 @@ link_anchor_name_in:
141
143
  src: "<r:link anchor='#{title.url_name}' href='parent'/>"
142
144
  res: "<a href='/oo/projects-list/Clean-Water-project#status-title'>status title</a>"
143
145
 
146
+ link_anchor_lit:
147
+ src: <r:void do='node where id=18 in site' do='link' anchor='foo'/>
148
+ res: "<a href='/oo/page18.html#foo'>projects list</a>"
149
+
144
150
  link_stored:
145
151
  old_src: "<r:void store='foo'><r:parent><r:link href='foo' do='title'/></r:parent></r:void>"
146
152
  src: "<r:void set_foo='this'><r:parent><r:link href='foo' do='title'/></r:parent></r:void>"