zena 0.15.2 → 0.16.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.
- data/.gitignore +20 -0
- data/CREDITS +27 -0
- data/Capfile +3 -0
- data/DEVELOPERS +46 -0
- data/History.txt +15 -0
- data/MIT-LICENSE +19 -0
- data/Rakefile +44 -0
- data/TODO +24 -0
- data/TODO_ZENA_1_0 +23 -0
- data/app/controllers/application_controller.rb +3 -0
- data/app/controllers/documents_controller.rb +22 -56
- data/app/controllers/nodes_controller.rb +42 -27
- data/app/controllers/pings_controller.rb +19 -0
- data/app/controllers/relations_controller.rb +5 -1
- data/app/controllers/sites_controller.rb +1 -46
- data/app/controllers/user_sessions_controller.rb +47 -0
- data/app/controllers/users_controller.rb +1 -0
- data/app/controllers/versions_controller.rb +25 -7
- data/app/controllers/virtual_classes_controller.rb +1 -1
- data/app/helpers/application_helper.rb +1 -1
- data/app/models/comment.rb +2 -1
- data/app/models/contact_content.rb +2 -2
- data/app/models/data_entry.rb +5 -6
- data/app/models/document.rb +14 -10
- data/app/models/document_content.rb +4 -6
- data/app/models/iformat.rb +2 -2
- data/app/models/image_content.rb +6 -9
- data/app/models/node.rb +106 -164
- data/app/models/page.rb +0 -20
- data/app/models/site.rb +42 -12
- data/app/models/template.rb +3 -8
- data/app/models/template_content.rb +2 -0
- data/app/models/text_document.rb +13 -8
- data/app/models/user.rb +47 -100
- data/app/models/user_session.rb +4 -0
- data/app/models/version.rb +1 -1
- data/app/views/comments/create.rjs +3 -3
- data/app/views/comments/edit.rjs +1 -1
- data/app/views/comments/update.rjs +1 -1
- data/app/views/nodes/_import_results.rhtml +1 -1
- data/app/views/nodes/create.rjs +3 -3
- data/app/views/templates/document_create_tabs/_file.rhtml +1 -2
- data/app/views/templates/document_create_tabs/_import.rhtml +7 -2
- data/app/views/templates/edit_tabs/_document.rhtml +1 -3
- data/app/views/templates/edit_tabs/_image.rhtml +1 -3
- data/app/views/versions/_tr.rhtml +1 -1
- data/app/views/versions/edit.rhtml +2 -26
- data/bin/zena +6 -1
- data/bricks/delayed_job/README +18 -0
- data/bricks/delayed_job/migrate/20091104191643_create_delayed_jobs_table.rb +19 -0
- data/bricks/delayed_job/misc/init.rb +8 -0
- data/bricks/delayed_job/misc/tasks.rb +2 -0
- data/bricks/math/patch/application_helper.rb +1 -1
- data/bricks/sphinx/MIT-LICENSE +19 -0
- data/bricks/sphinx/README +19 -0
- data/bricks/sphinx/lib/use_sphinx.rb +78 -0
- data/bricks/sphinx/migrate/20091102171258_add_delta_for_sphinx.rb +9 -0
- data/bricks/sphinx/misc/deploy.rb +20 -0
- data/bricks/sphinx/misc/sphinx.yml +12 -0
- data/bricks/sphinx/misc/tasks.rb +21 -0
- data/bricks/sphinx/patch/node.rb +8 -0
- data/bricks/tags/lib/has_tags.rb +5 -3
- data/bricks/tags/test/zafu/tags.yml +13 -1
- data/config/bricks.yml +35 -0
- data/config/deploy.rb +8 -1
- data/config/environment.rb +1 -1
- data/config/environments/production.rb +1 -1
- data/config/gems.yml +28 -5
- data/config/sphinx.yml +12 -0
- data/db/init/base/skins/default/Node-+popupLayout.zafu +1 -16
- data/db/migrate/20091026161708_add_persistence_token.rb +13 -0
- data/db/migrate/20091101184952_add_session_table.rb +16 -0
- data/db/migrate/20091123175137_add_single_access_token.rb +9 -0
- data/db/migrate/20091124161608_rebuild_fullpath.rb +11 -0
- data/db/schema.rb +21 -8
- data/doc/README_FOR_APP +24 -0
- data/doc/fixtures.graffle +19568 -0
- data/doc/fixtures.pdf +0 -0
- data/doc/template/LICENSE +184 -0
- data/doc/template/README +37 -0
- data/doc/template/allison.css +283 -0
- data/doc/template/allison.js +307 -0
- data/doc/template/allison.rb +260 -0
- data/doc/template/cache/BODY +588 -0
- data/doc/template/cache/CLASS_INDEX +4 -0
- data/doc/template/cache/CLASS_PAGE +1 -0
- data/doc/template/cache/FILE_INDEX +4 -0
- data/doc/template/cache/FILE_PAGE +1 -0
- data/doc/template/cache/FONTS +1 -0
- data/doc/template/cache/FR_INDEX_BODY +1 -0
- data/doc/template/cache/IMGPATH +1 -0
- data/doc/template/cache/INDEX +1 -0
- data/doc/template/cache/JAVASCRIPT +307 -0
- data/doc/template/cache/METHOD_INDEX +4 -0
- data/doc/template/cache/METHOD_LIST +1 -0
- data/doc/template/cache/SRC_PAGE +1 -0
- data/doc/template/cache/STYLE +283 -0
- data/doc/template/cache/URL +1 -0
- data/doc/zafu_changes.yml +29 -0
- data/lib/base_additions.rb +1 -1
- data/lib/bricks.rb +9 -0
- data/lib/bricks/loader.rb +86 -0
- data/lib/bricks/requirements_validation.rb +71 -0
- data/lib/tasks/zena.rake +42 -4
- data/lib/zafu/action.rb +285 -0
- data/lib/zafu/ajax.rb +93 -0
- data/lib/zafu/attributes.rb +117 -0
- data/lib/zafu/calendar.rb +159 -0
- data/lib/zafu/context.rb +330 -0
- data/lib/zafu/core/html.rb +102 -0
- data/lib/zafu/core/move_to_parser.rb +167 -0
- data/lib/zafu/dates.rb +58 -0
- data/lib/zafu/display.rb +502 -0
- data/lib/zafu/eval.rb +66 -0
- data/lib/zafu/experimental.rb +66 -0
- data/lib/zafu/i18n.rb +64 -0
- data/lib/zafu/meta.rb +25 -0
- data/lib/zafu/refactor.rb +73 -0
- data/lib/zafu/support/context.rb +265 -0
- data/lib/zafu/support/dom.rb +145 -0
- data/lib/zafu/support/erb.rb +62 -0
- data/lib/zafu/support/flow.rb +401 -0
- data/lib/zafu/support/forms.rb +461 -0
- data/lib/zafu/support/links.rb +306 -0
- data/lib/zafu_parser.rb +26 -2
- data/lib/zena.rb +34 -15
- data/lib/zena/acts/multiversion.rb +2 -2
- data/lib/zena/acts/secure.rb +41 -30
- data/lib/zena/app.rb +7 -10
- data/lib/zena/controller/test_case.rb +12 -7
- data/lib/zena/crypto_provider/initial.rb +15 -0
- data/lib/zena/db.rb +6 -1
- data/lib/zena/deploy.rb +34 -6
- data/lib/zena/deploy/logrotate_app.rhtml +9 -0
- data/lib/zena/deploy/logrotate_host.rhtml +34 -0
- data/lib/zena/deploy/template.rb +1 -9
- data/lib/zena/foxy_parser.rb +1 -1
- data/lib/zena/info.rb +3 -1
- data/lib/zena/migrator.rb +1 -1
- data/lib/zena/parser.rb +12 -4
- data/lib/zena/parser/zazen_rules.rb +6 -6
- data/lib/zena/parser/zena_rules.rb +1 -7
- data/lib/zena/routes.rb +5 -5
- data/lib/zena/test_controller.rb +7 -2
- data/lib/zena/unit/test_case.rb +6 -8
- data/lib/zena/use/ajax.rb +10 -10
- data/lib/zena/use/authlogic.rb +93 -0
- data/lib/zena/use/dyn_attributes.rb +5 -0
- data/lib/zena/use/html_tags.rb +16 -34
- data/lib/zena/use/i18n.rb +4 -1
- data/lib/zena/use/node_query_finders.rb +8 -4
- data/lib/zena/use/refactor.rb +8 -20
- data/lib/zena/use/relations.rb +1 -0
- data/lib/zena/use/rendering.rb +4 -2
- data/lib/zena/use/search.rb +52 -0
- data/lib/zena/use/test_helper.rb +27 -28
- data/lib/zena/use/upload.rb +188 -0
- data/lib/zena/use/urls.rb +16 -14
- data/lib/zena/use/zafu.rb +16 -63
- data/lib/zena/use/zazen.rb +8 -8
- data/lib/zena/view/test_case.rb +8 -4
- data/locale/en/LC_MESSAGES/zena.mo +0 -0
- data/locale/en/zena.po +3 -3
- data/public/.htaccess +40 -0
- data/public/javascripts/upload-progress.js +17 -8
- data/public/javascripts/zena.js +8 -2
- data/public/stylesheets/popup.css +1 -0
- data/script/about +3 -0
- data/script/apache_logging +25 -0
- data/script/breakpointer +3 -0
- data/script/console +3 -0
- data/script/dbconsole +3 -0
- data/script/destroy +3 -0
- data/script/generate +3 -0
- data/script/performance/benchmarker +3 -0
- data/script/performance/profiler +3 -0
- data/script/plugin +3 -0
- data/script/process/inspector +3 -0
- data/script/process/reaper +3 -0
- data/script/process/spawner +3 -0
- data/script/runner +3 -0
- data/script/server +3 -0
- data/script/set_revision +29 -0
- data/spec/controllers/versions_controller_spec.rb +11 -0
- data/test/fixtures/files/Node-test.zafu +1 -1
- data/test/functional/nodes_controller_test.rb +25 -0
- data/test/functional/pings_controller_test.rb +8 -0
- data/test/functional/user_sessions_controller_test.rb +59 -0
- data/test/functional/users_controller_test.rb +81 -19
- data/test/helpers/node_query/filters.yml +5 -0
- data/test/helpers/node_query_test.rb +3 -3
- data/test/integration/multiple_hosts_test.rb +1 -1
- data/test/integration/navigation_test.rb +1 -1
- data/test/sites/complex/users.yml +1 -1
- data/test/sites/ocean/users.yml +3 -3
- data/test/sites/zena/users.yml +5 -4
- data/test/test_zena.rb +38 -38
- data/test/unit/cached_page_test.rb +2 -2
- data/test/unit/comment_test.rb +0 -1
- data/test/unit/document_test.rb +23 -11
- data/test/unit/helpers/ping_helper_test.rb +4 -0
- data/test/unit/multiversion_test.rb +24 -16
- data/test/unit/node_test.rb +32 -93
- data/test/unit/note_test.rb +9 -0
- data/test/unit/page_test.rb +2 -2
- data/test/unit/secure_test.rb +2 -12
- data/test/unit/site_test.rb +43 -24
- data/test/unit/template_test.rb +45 -3
- data/test/unit/text_document_test.rb +4 -3
- data/test/unit/user_test.rb +13 -33
- data/test/unit/zena/db_test.rb +8 -0
- data/test/unit/zena/parser/zazen.yml +4 -4
- data/test/unit/zena/use/dates_view_methods_test.rb +2 -1
- data/test/unit/zena/use/html_tags_test.rb +12 -4
- data/test/unit/zena/use/refactor_test.rb +4 -3
- data/test/unit/zena/use/rendering_test.rb +1 -0
- data/test/unit/zena/use/upload_test.rb +76 -0
- data/test/unit/zena/use/urls_test.rb +4 -0
- data/test/unit/zena/use/zafu_test.rb +8 -0
- data/test/unit/zena/workflow/status_version_test.rb +6 -0
- data/test/unit/zena/zena_tags/ajax.yml +4 -4
- data/test/unit/zena/zena_tags/basic.yml +21 -10
- data/test/unit/zena/zena_tags/relations.yml +0 -6
- data/test/unit/zena/zena_tags/rubyless.yml +35 -0
- data/test/unit/zena/zena_tags/zazen.yml +4 -4
- data/test/unit/zena/zena_tags_test.rb +36 -4
- data/vendor/TextMate/Zena.tmbundle/Commands/Run all yaml tests.tmCommand +1 -1
- data/vendor/TextMate/Zena.tmbundle/Commands/Run focused yaml test.tmCommand +2 -3
- data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/catch_exception.rb +39 -0
- data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/run_script.rb +102 -58
- data/vendor/TextMate/Zena.tmbundle/Support/RubyMate/stdin_dialog.rb +14 -0
- data/vendor/TextMate/Zena.tmbundle/info.plist +2 -0
- data/zena.gemspec +2085 -0
- metadata +265 -90
- data/app/controllers/sessions_controller.rb +0 -41
- data/app/views/sites/zena_up.html.erb +0 -11
- data/config/database.yml +0 -40
- data/db/production.sqlite3 +0 -0
- data/lib/bricks/patcher.rb +0 -68
- data/lib/zena/parser/zena_tags.rb +0 -3562
- data/lib/zena/use/authentification.rb +0 -120
- data/public/images/ext/contact_pv.png +0 -0
- data/public/images/ext/other_pv.png +0 -0
- data/public/images/ext/page_pv.png +0 -0
- data/public/images/ext/page_tiny.png +0 -0
- data/public/images/ext/pdf_pv.png +0 -0
- data/public/images/ext/post_pv.png +0 -0
- data/public/images/ext/post_tiny.png +0 -0
- data/public/images/ext/project_pv.png +0 -0
- data/public/images/ext/project_tiny.png +0 -0
- data/public/images/ext/tag_pv.png +0 -0
- data/public/images/ext/zip_pv.png +0 -0
- data/tasks/ann.rake +0 -80
- data/tasks/bones.rake +0 -20
- data/tasks/gem.rake +0 -201
- data/tasks/git.rake +0 -40
- data/tasks/notes.rake +0 -27
- data/tasks/post_load.rake +0 -34
- data/tasks/rdoc.rake +0 -51
- data/tasks/rubyforge.rake +0 -55
- data/tasks/setup.rb +0 -292
- data/tasks/spec.rake +0 -54
- data/tasks/svn.rake +0 -47
- data/tasks/test.rake +0 -40
- data/tasks/zentest.rake +0 -36
- data/test/fixtures/comments.yml +0 -126
- data/test/fixtures/contact_contents.yml +0 -132
- data/test/fixtures/data_entries.yml +0 -65
- data/test/fixtures/discussions.yml +0 -48
- data/test/fixtures/document_contents.yml +0 -108
- data/test/fixtures/dyn_attributes.yml +0 -66
- data/test/fixtures/groups.yml +0 -86
- data/test/fixtures/groups_users.yml +0 -81
- data/test/fixtures/iformats.yml +0 -29
- data/test/fixtures/links.yml +0 -313
- data/test/fixtures/nodes.yml +0 -2592
- data/test/fixtures/relations.yml +0 -126
- data/test/fixtures/sites.yml +0 -58
- data/test/fixtures/template_contents.yml +0 -172
- data/test/fixtures/users.yml +0 -167
- data/test/fixtures/versions.yml +0 -1911
- data/test/fixtures/virtual_classes.yml +0 -87
- data/test/fixtures/zips.yml +0 -15
- data/test/functional/sessions_controller_test.rb +0 -73
data/script/runner
ADDED
data/script/server
ADDED
data/script/set_revision
ADDED
|
@@ -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,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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
|
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
|
data/test/sites/ocean/users.yml
CHANGED
|
@@ -13,14 +13,14 @@ ocean_su:
|
|
|
13
13
|
first_name: Hyper
|
|
14
14
|
name: Super
|
|
15
15
|
login: ocean_su
|
|
16
|
-
|
|
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
|
-
|
|
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
|
-
|
|
31
|
+
crypted_password: <%= Zena::CryptoProvider::Initial.encrypt('messy') %>
|
|
32
32
|
groups: aqua, masters
|
|
33
33
|
status: reader
|
data/test/sites/zena/users.yml
CHANGED
|
@@ -12,18 +12,19 @@ anon:
|
|
|
12
12
|
|
|
13
13
|
su:
|
|
14
14
|
login: su
|
|
15
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
47
|
+
crypted_password: <%= Zena::CryptoProvider::Initial.encrypt('lion') %>
|
|
47
48
|
groups: public, workers, admin
|
|
48
49
|
status: admin
|
data/test/test_zena.rb
CHANGED
|
@@ -7,43 +7,43 @@ module Zena
|
|
|
7
7
|
module Test
|
|
8
8
|
|
|
9
9
|
# functional tests
|
|
10
|
-
module TestController
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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)
|