zena 0.15.2 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (284) hide show
  1. data/.gitignore +20 -0
  2. data/CREDITS +27 -0
  3. data/Capfile +3 -0
  4. data/DEVELOPERS +46 -0
  5. data/History.txt +15 -0
  6. data/MIT-LICENSE +19 -0
  7. data/Rakefile +44 -0
  8. data/TODO +24 -0
  9. data/TODO_ZENA_1_0 +23 -0
  10. data/app/controllers/application_controller.rb +3 -0
  11. data/app/controllers/documents_controller.rb +22 -56
  12. data/app/controllers/nodes_controller.rb +42 -27
  13. data/app/controllers/pings_controller.rb +19 -0
  14. data/app/controllers/relations_controller.rb +5 -1
  15. data/app/controllers/sites_controller.rb +1 -46
  16. data/app/controllers/user_sessions_controller.rb +47 -0
  17. data/app/controllers/users_controller.rb +1 -0
  18. data/app/controllers/versions_controller.rb +25 -7
  19. data/app/controllers/virtual_classes_controller.rb +1 -1
  20. data/app/helpers/application_helper.rb +1 -1
  21. data/app/models/comment.rb +2 -1
  22. data/app/models/contact_content.rb +2 -2
  23. data/app/models/data_entry.rb +5 -6
  24. data/app/models/document.rb +14 -10
  25. data/app/models/document_content.rb +4 -6
  26. data/app/models/iformat.rb +2 -2
  27. data/app/models/image_content.rb +6 -9
  28. data/app/models/node.rb +106 -164
  29. data/app/models/page.rb +0 -20
  30. data/app/models/site.rb +42 -12
  31. data/app/models/template.rb +3 -8
  32. data/app/models/template_content.rb +2 -0
  33. data/app/models/text_document.rb +13 -8
  34. data/app/models/user.rb +47 -100
  35. data/app/models/user_session.rb +4 -0
  36. data/app/models/version.rb +1 -1
  37. data/app/views/comments/create.rjs +3 -3
  38. data/app/views/comments/edit.rjs +1 -1
  39. data/app/views/comments/update.rjs +1 -1
  40. data/app/views/nodes/_import_results.rhtml +1 -1
  41. data/app/views/nodes/create.rjs +3 -3
  42. data/app/views/templates/document_create_tabs/_file.rhtml +1 -2
  43. data/app/views/templates/document_create_tabs/_import.rhtml +7 -2
  44. data/app/views/templates/edit_tabs/_document.rhtml +1 -3
  45. data/app/views/templates/edit_tabs/_image.rhtml +1 -3
  46. data/app/views/versions/_tr.rhtml +1 -1
  47. data/app/views/versions/edit.rhtml +2 -26
  48. data/bin/zena +6 -1
  49. data/bricks/delayed_job/README +18 -0
  50. data/bricks/delayed_job/migrate/20091104191643_create_delayed_jobs_table.rb +19 -0
  51. data/bricks/delayed_job/misc/init.rb +8 -0
  52. data/bricks/delayed_job/misc/tasks.rb +2 -0
  53. data/bricks/math/patch/application_helper.rb +1 -1
  54. data/bricks/sphinx/MIT-LICENSE +19 -0
  55. data/bricks/sphinx/README +19 -0
  56. data/bricks/sphinx/lib/use_sphinx.rb +78 -0
  57. data/bricks/sphinx/migrate/20091102171258_add_delta_for_sphinx.rb +9 -0
  58. data/bricks/sphinx/misc/deploy.rb +20 -0
  59. data/bricks/sphinx/misc/sphinx.yml +12 -0
  60. data/bricks/sphinx/misc/tasks.rb +21 -0
  61. data/bricks/sphinx/patch/node.rb +8 -0
  62. data/bricks/tags/lib/has_tags.rb +5 -3
  63. data/bricks/tags/test/zafu/tags.yml +13 -1
  64. data/config/bricks.yml +35 -0
  65. data/config/deploy.rb +8 -1
  66. data/config/environment.rb +1 -1
  67. data/config/environments/production.rb +1 -1
  68. data/config/gems.yml +28 -5
  69. data/config/sphinx.yml +12 -0
  70. data/db/init/base/skins/default/Node-+popupLayout.zafu +1 -16
  71. data/db/migrate/20091026161708_add_persistence_token.rb +13 -0
  72. data/db/migrate/20091101184952_add_session_table.rb +16 -0
  73. data/db/migrate/20091123175137_add_single_access_token.rb +9 -0
  74. data/db/migrate/20091124161608_rebuild_fullpath.rb +11 -0
  75. data/db/schema.rb +21 -8
  76. data/doc/README_FOR_APP +24 -0
  77. data/doc/fixtures.graffle +19568 -0
  78. data/doc/fixtures.pdf +0 -0
  79. data/doc/template/LICENSE +184 -0
  80. data/doc/template/README +37 -0
  81. data/doc/template/allison.css +283 -0
  82. data/doc/template/allison.js +307 -0
  83. data/doc/template/allison.rb +260 -0
  84. data/doc/template/cache/BODY +588 -0
  85. data/doc/template/cache/CLASS_INDEX +4 -0
  86. data/doc/template/cache/CLASS_PAGE +1 -0
  87. data/doc/template/cache/FILE_INDEX +4 -0
  88. data/doc/template/cache/FILE_PAGE +1 -0
  89. data/doc/template/cache/FONTS +1 -0
  90. data/doc/template/cache/FR_INDEX_BODY +1 -0
  91. data/doc/template/cache/IMGPATH +1 -0
  92. data/doc/template/cache/INDEX +1 -0
  93. data/doc/template/cache/JAVASCRIPT +307 -0
  94. data/doc/template/cache/METHOD_INDEX +4 -0
  95. data/doc/template/cache/METHOD_LIST +1 -0
  96. data/doc/template/cache/SRC_PAGE +1 -0
  97. data/doc/template/cache/STYLE +283 -0
  98. data/doc/template/cache/URL +1 -0
  99. data/doc/zafu_changes.yml +29 -0
  100. data/lib/base_additions.rb +1 -1
  101. data/lib/bricks.rb +9 -0
  102. data/lib/bricks/loader.rb +86 -0
  103. data/lib/bricks/requirements_validation.rb +71 -0
  104. data/lib/tasks/zena.rake +42 -4
  105. data/lib/zafu/action.rb +285 -0
  106. data/lib/zafu/ajax.rb +93 -0
  107. data/lib/zafu/attributes.rb +117 -0
  108. data/lib/zafu/calendar.rb +159 -0
  109. data/lib/zafu/context.rb +330 -0
  110. data/lib/zafu/core/html.rb +102 -0
  111. data/lib/zafu/core/move_to_parser.rb +167 -0
  112. data/lib/zafu/dates.rb +58 -0
  113. data/lib/zafu/display.rb +502 -0
  114. data/lib/zafu/eval.rb +66 -0
  115. data/lib/zafu/experimental.rb +66 -0
  116. data/lib/zafu/i18n.rb +64 -0
  117. data/lib/zafu/meta.rb +25 -0
  118. data/lib/zafu/refactor.rb +73 -0
  119. data/lib/zafu/support/context.rb +265 -0
  120. data/lib/zafu/support/dom.rb +145 -0
  121. data/lib/zafu/support/erb.rb +62 -0
  122. data/lib/zafu/support/flow.rb +401 -0
  123. data/lib/zafu/support/forms.rb +461 -0
  124. data/lib/zafu/support/links.rb +306 -0
  125. data/lib/zafu_parser.rb +26 -2
  126. data/lib/zena.rb +34 -15
  127. data/lib/zena/acts/multiversion.rb +2 -2
  128. data/lib/zena/acts/secure.rb +41 -30
  129. data/lib/zena/app.rb +7 -10
  130. data/lib/zena/controller/test_case.rb +12 -7
  131. data/lib/zena/crypto_provider/initial.rb +15 -0
  132. data/lib/zena/db.rb +6 -1
  133. data/lib/zena/deploy.rb +34 -6
  134. data/lib/zena/deploy/logrotate_app.rhtml +9 -0
  135. data/lib/zena/deploy/logrotate_host.rhtml +34 -0
  136. data/lib/zena/deploy/template.rb +1 -9
  137. data/lib/zena/foxy_parser.rb +1 -1
  138. data/lib/zena/info.rb +3 -1
  139. data/lib/zena/migrator.rb +1 -1
  140. data/lib/zena/parser.rb +12 -4
  141. data/lib/zena/parser/zazen_rules.rb +6 -6
  142. data/lib/zena/parser/zena_rules.rb +1 -7
  143. data/lib/zena/routes.rb +5 -5
  144. data/lib/zena/test_controller.rb +7 -2
  145. data/lib/zena/unit/test_case.rb +6 -8
  146. data/lib/zena/use/ajax.rb +10 -10
  147. data/lib/zena/use/authlogic.rb +93 -0
  148. data/lib/zena/use/dyn_attributes.rb +5 -0
  149. data/lib/zena/use/html_tags.rb +16 -34
  150. data/lib/zena/use/i18n.rb +4 -1
  151. data/lib/zena/use/node_query_finders.rb +8 -4
  152. data/lib/zena/use/refactor.rb +8 -20
  153. data/lib/zena/use/relations.rb +1 -0
  154. data/lib/zena/use/rendering.rb +4 -2
  155. data/lib/zena/use/search.rb +52 -0
  156. data/lib/zena/use/test_helper.rb +27 -28
  157. data/lib/zena/use/upload.rb +188 -0
  158. data/lib/zena/use/urls.rb +16 -14
  159. data/lib/zena/use/zafu.rb +16 -63
  160. data/lib/zena/use/zazen.rb +8 -8
  161. data/lib/zena/view/test_case.rb +8 -4
  162. data/locale/en/LC_MESSAGES/zena.mo +0 -0
  163. data/locale/en/zena.po +3 -3
  164. data/public/.htaccess +40 -0
  165. data/public/javascripts/upload-progress.js +17 -8
  166. data/public/javascripts/zena.js +8 -2
  167. data/public/stylesheets/popup.css +1 -0
  168. data/script/about +3 -0
  169. data/script/apache_logging +25 -0
  170. data/script/breakpointer +3 -0
  171. data/script/console +3 -0
  172. data/script/dbconsole +3 -0
  173. data/script/destroy +3 -0
  174. data/script/generate +3 -0
  175. data/script/performance/benchmarker +3 -0
  176. data/script/performance/profiler +3 -0
  177. data/script/plugin +3 -0
  178. data/script/process/inspector +3 -0
  179. data/script/process/reaper +3 -0
  180. data/script/process/spawner +3 -0
  181. data/script/runner +3 -0
  182. data/script/server +3 -0
  183. data/script/set_revision +29 -0
  184. data/spec/controllers/versions_controller_spec.rb +11 -0
  185. data/test/fixtures/files/Node-test.zafu +1 -1
  186. data/test/functional/nodes_controller_test.rb +25 -0
  187. data/test/functional/pings_controller_test.rb +8 -0
  188. data/test/functional/user_sessions_controller_test.rb +59 -0
  189. data/test/functional/users_controller_test.rb +81 -19
  190. data/test/helpers/node_query/filters.yml +5 -0
  191. data/test/helpers/node_query_test.rb +3 -3
  192. data/test/integration/multiple_hosts_test.rb +1 -1
  193. data/test/integration/navigation_test.rb +1 -1
  194. data/test/sites/complex/users.yml +1 -1
  195. data/test/sites/ocean/users.yml +3 -3
  196. data/test/sites/zena/users.yml +5 -4
  197. data/test/test_zena.rb +38 -38
  198. data/test/unit/cached_page_test.rb +2 -2
  199. data/test/unit/comment_test.rb +0 -1
  200. data/test/unit/document_test.rb +23 -11
  201. data/test/unit/helpers/ping_helper_test.rb +4 -0
  202. data/test/unit/multiversion_test.rb +24 -16
  203. data/test/unit/node_test.rb +32 -93
  204. data/test/unit/note_test.rb +9 -0
  205. data/test/unit/page_test.rb +2 -2
  206. data/test/unit/secure_test.rb +2 -12
  207. data/test/unit/site_test.rb +43 -24
  208. data/test/unit/template_test.rb +45 -3
  209. data/test/unit/text_document_test.rb +4 -3
  210. data/test/unit/user_test.rb +13 -33
  211. data/test/unit/zena/db_test.rb +8 -0
  212. data/test/unit/zena/parser/zazen.yml +4 -4
  213. data/test/unit/zena/use/dates_view_methods_test.rb +2 -1
  214. data/test/unit/zena/use/html_tags_test.rb +12 -4
  215. data/test/unit/zena/use/refactor_test.rb +4 -3
  216. data/test/unit/zena/use/rendering_test.rb +1 -0
  217. data/test/unit/zena/use/upload_test.rb +76 -0
  218. data/test/unit/zena/use/urls_test.rb +4 -0
  219. data/test/unit/zena/use/zafu_test.rb +8 -0
  220. data/test/unit/zena/workflow/status_version_test.rb +6 -0
  221. data/test/unit/zena/zena_tags/ajax.yml +4 -4
  222. data/test/unit/zena/zena_tags/basic.yml +21 -10
  223. data/test/unit/zena/zena_tags/relations.yml +0 -6
  224. data/test/unit/zena/zena_tags/rubyless.yml +35 -0
  225. data/test/unit/zena/zena_tags/zazen.yml +4 -4
  226. data/test/unit/zena/zena_tags_test.rb +36 -4
  227. data/vendor/TextMate/Zena.tmbundle/Commands/Run all yaml tests.tmCommand +1 -1
  228. data/vendor/TextMate/Zena.tmbundle/Commands/Run focused yaml test.tmCommand +2 -3
  229. data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/catch_exception.rb +39 -0
  230. data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/run_script.rb +102 -58
  231. data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/stdin_dialog.rb +14 -0
  232. data/vendor/TextMate/Zena.tmbundle/info.plist +2 -0
  233. data/zena.gemspec +2085 -0
  234. metadata +265 -90
  235. data/app/controllers/sessions_controller.rb +0 -41
  236. data/app/views/sites/zena_up.html.erb +0 -11
  237. data/config/database.yml +0 -40
  238. data/db/production.sqlite3 +0 -0
  239. data/lib/bricks/patcher.rb +0 -68
  240. data/lib/zena/parser/zena_tags.rb +0 -3562
  241. data/lib/zena/use/authentification.rb +0 -120
  242. data/public/images/ext/contact_pv.png +0 -0
  243. data/public/images/ext/other_pv.png +0 -0
  244. data/public/images/ext/page_pv.png +0 -0
  245. data/public/images/ext/page_tiny.png +0 -0
  246. data/public/images/ext/pdf_pv.png +0 -0
  247. data/public/images/ext/post_pv.png +0 -0
  248. data/public/images/ext/post_tiny.png +0 -0
  249. data/public/images/ext/project_pv.png +0 -0
  250. data/public/images/ext/project_tiny.png +0 -0
  251. data/public/images/ext/tag_pv.png +0 -0
  252. data/public/images/ext/zip_pv.png +0 -0
  253. data/tasks/ann.rake +0 -80
  254. data/tasks/bones.rake +0 -20
  255. data/tasks/gem.rake +0 -201
  256. data/tasks/git.rake +0 -40
  257. data/tasks/notes.rake +0 -27
  258. data/tasks/post_load.rake +0 -34
  259. data/tasks/rdoc.rake +0 -51
  260. data/tasks/rubyforge.rake +0 -55
  261. data/tasks/setup.rb +0 -292
  262. data/tasks/spec.rake +0 -54
  263. data/tasks/svn.rake +0 -47
  264. data/tasks/test.rake +0 -40
  265. data/tasks/zentest.rake +0 -36
  266. data/test/fixtures/comments.yml +0 -126
  267. data/test/fixtures/contact_contents.yml +0 -132
  268. data/test/fixtures/data_entries.yml +0 -65
  269. data/test/fixtures/discussions.yml +0 -48
  270. data/test/fixtures/document_contents.yml +0 -108
  271. data/test/fixtures/dyn_attributes.yml +0 -66
  272. data/test/fixtures/groups.yml +0 -86
  273. data/test/fixtures/groups_users.yml +0 -81
  274. data/test/fixtures/iformats.yml +0 -29
  275. data/test/fixtures/links.yml +0 -313
  276. data/test/fixtures/nodes.yml +0 -2592
  277. data/test/fixtures/relations.yml +0 -126
  278. data/test/fixtures/sites.yml +0 -58
  279. data/test/fixtures/template_contents.yml +0 -172
  280. data/test/fixtures/users.yml +0 -167
  281. data/test/fixtures/versions.yml +0 -1911
  282. data/test/fixtures/virtual_classes.yml +0 -87
  283. data/test/fixtures/zips.yml +0 -15
  284. data/test/functional/sessions_controller_test.rb +0 -73
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../../config/boot'
3
+ require 'commands/process/inspector'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../../config/boot'
3
+ require 'commands/process/reaper'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../../config/boot'
3
+ require 'commands/process/spawner'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/runner'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/server'
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ root = File.join(File.dirname(__FILE__), '..')
4
+ svn_info = `svn info #{root.inspect} 2>&1 || svk info #{root.inspect} 2>&1`
5
+ if svn_info =~ %r{Repository Root: [^\n]*zenadmin.org.*Revision: (\d+)}m
6
+ rev = $1
7
+ else
8
+ svk_info = `svk info #{root.inspect} 2>&1`
9
+ if svk_info =~ %r{zenadmin.org/zena, Rev. (\d+)}
10
+ rev = $1
11
+ elsif svk_info =~ %r{(Merged|Copied) From: (.*?), Rev}
12
+ svk_info = `svk info /#{$2} 2>&1`
13
+ if svk_info =~ %r{zenadmin.org/zena(/trunk|), Rev. (\d+)}
14
+ rev = $2
15
+ else
16
+ puts "revision number could not be found using svn or svk"
17
+ end
18
+ end
19
+ end
20
+
21
+ if rev
22
+ version_file = File.read(File.join(root, 'config', 'version.rb'))
23
+ File.open(File.join(root, 'config', 'version.rb'), 'wb') do |f|
24
+ f.print version_file.sub(/(REV *)=.*$/, "\\1= #{rev}")
25
+ end
26
+ puts "revision number updated to #{rev}"
27
+ else
28
+ puts "could not find revision number through svn info"
29
+ end
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe VersionsController do
4
+
5
+ it { should route(:get, "/nodes/11/versions/0/edit", :controller => :versions, :action => :edit, :node_id => 11, :id => 0) }
6
+ it { should route(:get, "/nodes/11/versions/2/preview", :controller => :versions, :action => :preview, :node_id => 11, :id => 2) }
7
+
8
+ it "should publish the previous version" do
9
+ # TODO: login, etc
10
+ end
11
+ end
@@ -190,7 +190,7 @@ This filter updates the "distant filter block test"
190
190
  <ul do='tags in site'>
191
191
  <li style='border:1px solid #400; min_width:100px; min_height:100px;' do='each' do='drop' set='set_tag'>
192
192
  <b do='[v_title]'/>
193
- <ul do='tagged'><li do='each' do='unlink' do='img' mode='tiny'/></ul>
193
+ <ul do='context' select='tagged'><li do='each' do='unlink' do='img' mode='tiny'/></ul>
194
194
  </li>
195
195
  </ul>
196
196
 
@@ -171,6 +171,9 @@ END:VCALENDAR
171
171
 
172
172
  assert zafu = nodes['Node']
173
173
  assert_kind_of Template, zafu
174
+ assert_equal 'html', zafu.version.content.format
175
+ assert_equal 'Node', zafu.version.content.klass
176
+ assert_equal 'N', zafu.version.content.tkpath
174
177
  assert style = nodes['style']
175
178
  assert_kind_of TextDocument, style
176
179
  assert navBar = nodes['navBar']
@@ -313,6 +316,28 @@ END:VCALENDAR
313
316
  get 'show', 'prefix'=>'oo', 'path'=>["page#{nodes_zip(:projects)}_test.html"]
314
317
  assert_response :success
315
318
  end
319
+
320
+ def test_create_from_url
321
+ login(:tiger)
322
+ if Zena::Use::Upload.has_network?
323
+ preserving_files('test.host/data') do
324
+ assert_difference('Node.count', 1) do
325
+ post 'create', 'attachment_url' => 'http://zenadmin.org/fr/blog/image5.jpg', 'node' => {'parent_id' => nodes_zip(:zena)}
326
+ end
327
+ document = assigns(:node)
328
+ assert_equal 73633, document.version.content.size
329
+ assert_equal 298, document.version.content.width
330
+ assert_equal 243, document.version.content.height
331
+ end
332
+ end
333
+ end
334
+
335
+ def test_search
336
+ login(:anon)
337
+ get 'search', 'q' => 'bird'
338
+ assert nodes = assigns(:nodes)
339
+ assert_equal [nodes_id(:bird_jpg)], nodes.map {|r| r.id}
340
+ end
316
341
  end
317
342
 
318
343
  =begin
@@ -0,0 +1,8 @@
1
+ require 'test_helper'
2
+
3
+ class PingsControllerTest < ActionController::TestCase
4
+ # Replace this with your real tests.
5
+ test "the truth" do
6
+ assert true
7
+ end
8
+ end
@@ -0,0 +1,59 @@
1
+ require 'test_helper'
2
+
3
+ class UserSessionsControllerTest < Zena::Controller::TestCase
4
+
5
+ context "Controller actions" do
6
+
7
+ should "get login page" do
8
+ get :new
9
+ assert_not_nil assigns(:node)
10
+ end
11
+
12
+ should "create a session" do
13
+ post 'create', :login=>'ant', :password=>'ant'
14
+ assert assigns(:user_session).persisting?
15
+ assert_response 302
16
+ end
17
+
18
+ should "redirect to login page if login failed" do
19
+ post 'create', :login=>'ant', :password=>'boom'
20
+ assert !assigns(:user_session).persisting?
21
+ assert_redirected_to login_url
22
+ end
23
+
24
+ end
25
+
26
+ context "with login Test Case" do
27
+
28
+ setup do
29
+ login('su')
30
+ end
31
+
32
+ should "visitor be accessible" do
33
+ assert_equal 'su', visitor.login
34
+ end
35
+
36
+ should "site be accessible" do
37
+ assert_equal 'zena', $_test_site
38
+ end
39
+
40
+ should "check if visitor is admin" do
41
+ assert visitor.is_admin?
42
+ end
43
+
44
+ end
45
+
46
+ context 'a visitor on the wrong site' do
47
+ setup do
48
+ @request.host = 'ocean.host'
49
+ end
50
+
51
+ should 'not be allowed to login' do
52
+ post 'create', :login => 'ant', :password => 'ant'
53
+ assert !assigns(:user_session).persisting?
54
+ assert_redirected_to login_url
55
+ end
56
+ end
57
+
58
+ end
59
+
@@ -2,27 +2,89 @@ require 'test_helper'
2
2
 
3
3
  class UsersControllerTest < Zena::Controller::TestCase
4
4
 
5
- def test_update_preferences
6
- login(:lion)
7
- put 'update', 'id' => users_id(:lion), 'user'=>{'name'=>'Leo Verneyi', 'lang'=>'en', 'time_zone'=>'Africa/Algiers', 'first_name'=>'Panthera', 'login'=>'lion', 'email'=>'lion@zenadmin.info'}
8
- assert_response :success
9
- user = assigns['user']
10
- assert_equal 'Africa/Algiers', user[:time_zone]
5
+ context "on GET index" do
6
+ context " if visitor is admin" do
7
+ setup do
8
+ login(:su)
9
+ get :index
10
+ end
11
+
12
+ should_assign_to :users
13
+ should_render_with_layout :_main
14
+ should_respond_with :success
15
+ end
16
+
17
+ context " if visitor is not admin" do
18
+ setup do
19
+ login(:ant)
20
+ get :index
21
+ end
22
+
23
+ should_not_assign_to :users
24
+ should_render_without_layout
25
+ should_respond_with 404
26
+ end
27
+
28
+ context " if layout is invalid" do
29
+ setup do
30
+ login(:lion)
31
+ Version.connection.execute "UPDATE #{Version.table_name} SET text = 'empty' WHERE id = #{versions_id(:Node_admin_layout_zafu_en)}"
32
+ without_files('test.host/zafu') do
33
+ get 'index'
34
+ end
35
+ end
36
+
37
+ should_respond_with :success
38
+ should_render_with_layout :_main
39
+ end
40
+
11
41
  end
12
42
 
13
- def test_render_invalid_adminLayout
14
- login(:lion)
15
- Version.connection.execute "UPDATE #{Version.table_name} SET text = 'empty' WHERE id = #{versions_id(:Node_admin_layout_zafu_en)}"
16
- without_files('test.host/zafu') do
17
- get 'index'
18
- assert_response :success
19
- assert_no_match %r{empty}, @response.body
20
- # The assertion below passes alone but fails when we pass all tests.
21
- # Tracked the problem all the way to default rendering and all seems ok:
22
- # Maybe the problem is related to ruby not evaluating the erb. No idea.
23
- # We'll make it a pending for the safety of our minds.
24
- # assert_match %r{Using default '\+adminLayout' template}, @response.body
25
- print 'P'
43
+ context "on GET show" do
44
+ setup do
45
+ login(:su)
46
+ get(:show, {'id'=>visitor.id})
26
47
  end
48
+
49
+ should_respond_with :success
50
+ should_render_without_layout
27
51
  end
52
+
53
+ context 'on GET preferences' do
54
+ setup do
55
+ login(:su)
56
+ get(:preferences, {'id'=>visitor.id})
57
+ end
58
+
59
+ should_respond_with :success
60
+ should_render_with_layout :_main
61
+ end
62
+
63
+ context 'on GET swap_dev' do
64
+ setup do
65
+ login(:su)
66
+ get(:swap_dev, {'id'=> visitor.id})
67
+ end
68
+
69
+ should_set_session(:dev) {true}
70
+ should_redirect_to("the user profile") { user_url(visitor.id) }
71
+ end
72
+
73
+
74
+
75
+ context "on PUT" do
76
+ context "in order to update parameters" do
77
+ setup do
78
+ login(:lion)
79
+ put 'update', 'id' => users_id(:lion), 'user'=>{'name'=>'Leo Verneyi', 'lang'=>'en', 'time_zone'=>'Africa/Algiers', 'first_name'=>'Panthera', 'login'=>'lion', 'email'=>'lion@zenadmin.info'}
80
+ end
81
+ should_assign_to :user
82
+ should_respond_with :success
83
+ should "be able to set timezone" do
84
+ assert_equal 'Africa/Algiers', assigns(:user)[:time_zone]
85
+ end
86
+ end
87
+ end
88
+
89
+
28
90
  end
@@ -103,3 +103,8 @@ filter_through_links:
103
103
  src: "nodes where (set_tag_id eq 33 and hot_id eq 22) in site"
104
104
  sql: "/jnode\.zip = 33 AND jn1\.zip = 22/"
105
105
  res: "cleanWater"
106
+
107
+ filter_with_fullpath:
108
+ src: "nodes where fullpath like '[node:fullpath]/%' in site order by fullpath"
109
+ sql: "[\"SELECT nodes.* FROM nodes WHERE nodes.fullpath LIKE ? AND (#{@node.secure_scope('nodes')}) ORDER BY nodes.fullpath ASC\", @node.safe_read(\"fullpath\").to_s+ \"/%\"]"
110
+ res: 'crocodiles, lake, lakeAddress, opening, status, track, water'
@@ -57,7 +57,7 @@ class NodeQueryTest < Zena::Unit::TestCase
57
57
  node = secure!(Node) { Node.new }
58
58
  assert_equal nil, node.find(:all,'set_tags')
59
59
  node = secure!(Node) { Node.get_class('Tag').new_instance }
60
- assert_equal nil, node.find(:all,'tagged')
60
+ assert_equal nil, node.find(:all,'tagged', :skip_rubyless => true)
61
61
  end
62
62
 
63
63
  def test_do_find_in_new_node
@@ -85,7 +85,7 @@ class NodeQueryTest < Zena::Unit::TestCase
85
85
  def test_l_status
86
86
  login(:lion)
87
87
  node = secure!(Node) { nodes(:art) }
88
- tagged = node.find(:all, 'tagged')
88
+ tagged = node.find(:all, 'tagged', :skip_rubyless => true)
89
89
  # cleanWater, opening
90
90
  assert_equal [10, 5], tagged.map{|t| t.l_status}
91
91
  end
@@ -101,7 +101,7 @@ class NodeQueryTest < Zena::Unit::TestCase
101
101
  def test_l_comment_empty
102
102
  login(:lion)
103
103
  node = secure!(Node) { nodes(:art) }
104
- tagged = node.find(:all, 'tagged')
104
+ tagged = node.find(:all, 'tagged', :skip_rubyless => true)
105
105
  # cleanWater, opening
106
106
  assert_equal [nil, "cold"], tagged.map{|t| t.l_comment}
107
107
  end
@@ -39,7 +39,7 @@ class MultipleHostsTest < ActionController::IntegrationTest
39
39
  node = nodes(:zena_status)
40
40
  assert_equal 1, CachedPage.count(:conditions => "path like '%page#{status_zip}%'")
41
41
  assert_not_equal 0, Zena::Db.fetch_row("SELECT COUNT(*) as count_all FROM cached_pages_nodes WHERE node_id = #{node[:id]}").to_i
42
- node.visitor = Thread.current.visitor
42
+ node.visitor = Thread.current[:visitor]
43
43
  node.sweep_cache
44
44
  assert_equal 0, CachedPage.count(:conditions => "path like '%page#{status_zip}%'")
45
45
  assert_equal 0, Zena::Db.fetch_row("SELECT COUNT(*) as count_all FROM cached_pages_nodes WHERE node_id = #{node[:id]}").to_i
@@ -1,7 +1,7 @@
1
1
  require "#{File.dirname(__FILE__)}/../test_helper"
2
2
 
3
3
  class NavigationTest < ActionController::IntegrationTest
4
- include Zena::Test::Base
4
+ #include Zena::Test::Base
5
5
 
6
6
  def test_authorize
7
7
  get 'http://test.host/'
@@ -13,7 +13,7 @@ complex_anon:
13
13
  complex_admin:
14
14
  login: admin
15
15
  first_name: admin
16
- password: <%= User.hash_password('admin') %>
16
+ crypted_password: <%= Zena::CryptoProvider::Initial.encrypt('admin') %>
17
17
  status: admin
18
18
  contact: admin
19
19
 
@@ -13,14 +13,14 @@ ocean_su:
13
13
  first_name: Hyper
14
14
  name: Super
15
15
  login: ocean_su
16
- password: <%= User.hash_password('ocean_su') %>
16
+ crypted_password: <%= Zena::CryptoProvider::Initial.encrypt('ocean_su') %>
17
17
  status: su
18
18
 
19
19
  whale:
20
20
  first_name: Miss
21
21
  name: Whale
22
22
  login: whale
23
- password: <%= User.hash_password('whale') %>
23
+ crypted_password: <%= Zena::CryptoProvider::Initial.encrypt('whale') %>
24
24
  groups: public, aqua, masters
25
25
  status: admin
26
26
 
@@ -28,6 +28,6 @@ messy:
28
28
  first_name: Very
29
29
  name: Messy
30
30
  login: messy
31
- password: <%= User.hash_password('messy') %>
31
+ crypted_password: <%= Zena::CryptoProvider::Initial.encrypt('messy') %>
32
32
  groups: aqua, masters
33
33
  status: reader
@@ -12,18 +12,19 @@ anon:
12
12
 
13
13
  su:
14
14
  login: su
15
- password: <%= User.hash_password('su') %>
15
+ crypted_password: <%= Zena::CryptoProvider::Initial.encrypt('su') %>
16
16
  first_name: Super
17
17
  name: User
18
18
  status: su
19
19
  contact: anonymous
20
+ single_access_token: HORIZONS
20
21
 
21
22
  ant:
22
23
  first_name: Solenopsis
23
24
  name: Invicta
24
25
  email: ant@zenadmin.info
25
26
  login: ant
26
- password: <%= User.hash_password('ant') %>
27
+ crypted_password: <%= Zena::CryptoProvider::Initial.encrypt('ant') %>
27
28
  time_zone: Europe/Zurich
28
29
  groups: public, workers
29
30
  status: user
@@ -34,7 +35,7 @@ tiger:
34
35
  name: Tigris Sumatran
35
36
  email: tiger@zenadmin.info
36
37
  login: tiger
37
- password: <%= User.hash_password('tiger') %>
38
+ crypted_password: <%= Zena::CryptoProvider::Initial.encrypt('tiger') %>
38
39
  groups: public, workers, managers
39
40
  status: user
40
41
 
@@ -43,6 +44,6 @@ lion:
43
44
  name: Leo Verneyi
44
45
  email: lion@zenadmin.info
45
46
  login: lion
46
- password: <%= User.hash_password('lion') %>
47
+ crypted_password: <%= Zena::CryptoProvider::Initial.encrypt('lion') %>
47
48
  groups: public, workers, admin
48
49
  status: admin
@@ -7,43 +7,43 @@ module Zena
7
7
  module Test
8
8
 
9
9
  # functional tests
10
- module TestController
11
- include Zena::Use::Fixtures
12
- include Zena::Use::TestHelper
13
-
14
- def init_controller
15
- $_test_site ||= 'zena'
16
- @request ||= ActionController::TestRequest.new
17
- @response ||= ActionController::TestResponse.new
18
- @request.host = sites_host($_test_site)
19
- @controller.instance_eval { @params = {}; @url = ActionController::UrlRewriter.new( @request, {} )}
20
- @controller.instance_variable_set(:@response, @response)
21
- @controller.send(:request=, @request)
22
- @controller.instance_variable_set(:@session, @request.session)
23
- end
24
-
25
- def logout
26
- reset_session
27
- end
28
-
29
- def session
30
- @controller.send(:session)
31
- end
32
-
33
- def flash
34
- session['flash']
35
- end
36
-
37
- def err(obj)
38
- obj.errors.each_error do |er,msg|
39
- puts "[#{er}] #{msg}"
40
- end
41
- end
42
-
43
- def method_missing(meth,*args, &block)
44
- @controller.send(meth, *args, &block)
45
- end
46
- end
10
+ # module TestController
11
+ # include Zena::Use::Fixtures
12
+ # include Zena::Use::TestHelper
13
+ #
14
+ # def init_controller
15
+ # $_test_site ||= 'zena'
16
+ # @request ||= ActionController::TestRequest.new
17
+ # @response ||= ActionController::TestResponse.new
18
+ # @request.host = sites_host($_test_site)
19
+ # @controller.instance_eval { @params = {}; @url = ActionController::UrlRewriter.new( @request, {} )}
20
+ # @controller.instance_variable_set(:@response, @response)
21
+ # @controller.send(:request=, @request)
22
+ # @controller.instance_variable_set(:@session, @request.session)
23
+ # end
24
+ #
25
+ # def logout
26
+ # reset_session
27
+ # end
28
+ #
29
+ # def session
30
+ # @controller.send(:session)
31
+ # end
32
+ #
33
+ # def flash
34
+ # session['flash']
35
+ # end
36
+ #
37
+ # def err(obj)
38
+ # obj.errors.each_error do |er,msg|
39
+ # puts "[#{er}] #{msg}"
40
+ # end
41
+ # end
42
+ #
43
+ # def method_missing(meth,*args, &block)
44
+ # @controller.send(meth, *args, &block)
45
+ # end
46
+ # end
47
47
 
48
48
  module Integration
49
49
  include Zena::Acts::Secure
@@ -132,7 +132,7 @@ class ZenaTestHelper < ActionView::TestCase
132
132
  end
133
133
 
134
134
  class ZenaTestController < ActionController::TestCase
135
- include Zena::Test::TestController
135
+ #include Zena::Test::TestController
136
136
  end
137
137
 
138
138
  NodeQuery.insert_zero_link(Link)