Changeset 1253
- Timestamp:
- 2008-11-14 11:30:28 (2 months ago)
- Files:
-
- trunk/app/controllers/application.rb (modified) (3 diffs)
- trunk/app/views/templates/defaults (added)
- trunk/app/views/templates/defaults/+login.zafu (added)
- trunk/config/deploy.rb (modified) (1 diff)
- trunk/test/functional/application_controller_test.rb (modified) (1 diff)
- trunk/test/functional/nodes_controller_test.rb (modified) (1 diff)
- trunk/test/functional/session_controller_test.rb (modified) (4 diffs)
- trunk/test/integration/navigation_test.rb (modified) (2 diffs)
- trunk/test/test_zena.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/app/controllers/application.rb
r1252 r1253 220 220 cache_page(:content_data => (failure || data), :content_path => filepath) if opts[:cache] 221 221 else 222 # html 222 223 render :file => template_url(opts), :layout=>false, :status => opts[:status] 223 224 cache_page(:url => opts[:cache_url]) if opts[:cache] … … 315 316 skin_helper = response.template 316 317 res = ZafuParser.new_with_url(skin_path, :helper => skin_helper).render 318 319 unless valid_template?(res, opts) 320 # problem during rendering, use default zafu 321 res = ZafuParser.new(default_zafu_template(opts[:mode]), :helper => skin_helper).render 322 end 317 323 318 324 if session[:dev] && mode != '+popupLayout' … … 884 890 table 885 891 end 892 893 # Make sure some vital templates never get broken 894 def valid_template?(content, opts) 895 mode = opts[:mode] 896 case mode 897 when '+login' 898 content =~ %r{<form[^>]* action\s*=\s*./session} 899 else 900 true 901 end 902 end 903 904 # Default template content for a specified mode 905 def default_zafu_template(mode) 906 if mode =~ /\A\.|[^\w\+\._\-\/]/ 907 raise Zena::AccessViolation.new("'mode' contains illegal characters : #{mode.inspect}") 908 end 909 File.read(File.join(RAILS_ROOT, 'app', 'views', 'templates', 'defaults', "#{mode}.zafu")) 910 end 911 886 912 end 887 913 trunk/config/deploy.rb
r1236 r1253 85 85 desc "clear all zafu compiled templates" 86 86 task :clear_zafu, :roles => :app do 87 run "#{in_current} rake zena:clear_zafu "87 run "#{in_current} rake zena:clear_zafu RAILS_ENV=production" 88 88 end 89 89 trunk/test/functional/application_controller_test.rb
r1185 r1253 1 =begin2 1 require File.dirname(__FILE__) + '/../test_helper' 3 require ' application'2 require 'nodes_controller' 4 3 5 4 # Re-raise errors caught by the controller. 6 class ApplicationController; def rescue_action(e) raise e end; end5 class NodesController; def rescue_action(e) raise e end; end 7 6 8 class ApplicationControllerTest < ZenaTestController7 class NodesControllerTest < ZenaTestController 9 8 10 9 def setup 11 10 super 12 @controller = ApplicationController.new11 @controller = NodesController.new 13 12 init_controller 13 end 14 15 def test_acts_as_secure 14 16 login(:anon) 15 @controller.send(:params=, {})17 assert_nothing_raised { node = @controller.send(:secure,Node) { Node.find(nodes_id(:zena))}} 16 18 end 17 19 18 def test_acts_as_secure19 assert_nothing_raised { node = @controller.send(:secure,Node) { Node.find(ZENA_ENV[:root_id])}} 20 end 21 20 # invalid_template? tested in session_controller_test: test_render_invalid_template 21 end 22 23 =begin 22 24 # render_and_cache and authorize tested in navigation_test.rb (integration test) 23 25 trunk/test/functional/nodes_controller_test.rb
r1230 r1253 94 94 end 95 95 end 96 96 97 end 97 98 trunk/test/functional/session_controller_test.rb
r901 r1253 1 =begin2 1 require File.dirname(__FILE__) + '/../test_helper' 3 2 require 'session_controller' … … 14 13 end 15 14 15 def test_render_invalid_template 16 Version.connection.execute "UPDATE #{Version.table_name} SET text = 'empty' WHERE id = #{versions_id(:Node_login_zafu_en)}" 17 without_files('test.host/zafu') do 18 get 'new' 19 assert_response :success 20 assert_equal ["zafu", "default", "Node-+login", "en", "_main.erb"], @response.rendered_file.split('/')[-5..-1] 21 assert_match %r{There was a problem}, @response.body 22 assert_no_match %r{empty}, @response.body 23 end 24 end 25 16 26 def test_login 17 27 get 'new' 18 28 assert_response :success 19 assert_equal @response.rendered_file.split('/')[-3..-1], ["Node_login.html", "en", "main.erb"]29 assert_equal ["zafu", "default", "Node-+login", "en", "_main.erb"], @response.rendered_file.split('/')[-5..-1] 20 30 assert_tag :tag=>"div", :attributes=>{:id=>'login_form'} 21 31 end … … 25 35 assert_not_nil session[:user] 26 36 assert_equal users_id(:ant), session[:user] 27 assert_redirected_to user_ home_url37 assert_redirected_to user_path(users(:ant)) 28 38 end 29 39 … … 54 64 end 55 65 end 56 =endtrunk/test/integration/navigation_test.rb
r1207 r1253 220 220 get 'http://test.host/en/section12_index.html' 221 221 assert_response :missing 222 get 'http://test.host/en/section12_ *index.html'222 get 'http://test.host/en/section12_+index.html' 223 223 assert_response :missing 224 224 end … … 230 230 231 231 def test_show_with_internal_mode 232 get 'http://test.host/en/section12_ *index.html'232 get 'http://test.host/en/section12_+index.html' 233 233 assert_response :missing 234 234 end trunk/test/test_zena.rb
r1197 r1253 261 261 262 262 def init_controller 263 $_test_site ||= 'zena' 263 264 @request ||= ActionController::TestRequest.new 264 265 @response ||= ActionController::TestResponse.new 265 @request.host = sites_host($_test_site || 'zena')266 @request.host = sites_host($_test_site) 266 267 @controller.instance_eval { @params = {}; @url = ActionController::UrlRewriter.new( @request, {} )} 267 268 @controller.instance_variable_set(:@response, @response)
