require 'test_helper' class DocumentsControllerTest < Zena::Controller::TestCase context 'An anonymous user' do setup do login(:anon) end context 'viewing a document' do subject do {:action => 'show', :controller => 'documents', :id => nodes_zip(:bird_jpg).to_s} end should 'recognize url' do assert_recognizes subject, "/documents/#{nodes_zip(:bird_jpg)}" end should 'render a page with preview' do get_subject assert_response :success end end # viewing a document end # An anonymous user context 'A user' do setup do login(:tiger) end context 'uploading a document' do subject do {:action => 'new', :controller => 'documents', :parent_id => nodes_zip(:zena)} end should 'recognize url' do hash = subject hash.delete(:parent_id) assert_recognizes hash, "/documents/new" end should 'render a form' do get_subject assert_response :success end end # uploading a document context 'adding a document' do subject do { :action => 'new', :controller => 'documents', :parent_id => nodes_zip(:zena) } end should 'show popup form' do get_subject assert_response :success end should 'show tab for new templates' do get_subject assert_match %r{node_target_klass}, @response.body end context 'with errors' do subject do { :action => 'create', :controller => 'documents', :node => {:parent_id => 0, :file => uploaded_jpg('bird.jpg')} } end should 'render new form' do post_subject assert_template 'documents/new' end end end # creating a document context 'creating a document' do subject do { :action => 'create', :controller => 'documents', :node => {:parent_id => nodes_zip(:zena), :file => uploaded_jpg('bird.jpg')} } end should 'recognize url' do hash = subject hash.delete(:node) assert_recognizes hash, {:path => '/documents', :method => 'post'} end should 'create a document' do assert_difference('Document.count', 1) do post_subject assert_redirected_to "/documents/#{assigns(:node).zip}" end end context 'with errors' do subject do { :action => 'create', :controller => 'documents', :node => {:parent_id => 0, :file => uploaded_jpg('bird.jpg')} } end should 'render new form' do post_subject assert_template 'documents/new' end end end # creating a document end # A user end =begin require 'test_helper' class DocumentsControllerTest < Zena::Controller::TestCase def test_create_master_template login(:tiger) post 'create', "node"=>{"klass"=>"Template", "name"=>"", "c_format"=>"", "mode"=>"tree", "target_klass"=>"Node", "summary"=>"", "parent_id"=>nodes_zip(:default)} assert_redirected_to :action => 'show' assert_kind_of Template, assigns(:node) assert_equal 'Node-tree', assigns(:node).name end def test_create_template login(:tiger) post 'create', "node"=>{"klass"=>"Template", "name"=>"lister", "c_format"=>"", "mode"=>"", "target_klass"=>"", "summary"=>"", "parent_id"=>nodes_zip(:default)} assert_redirected_to :action => 'show' assert_kind_of Template, assigns(:node) assert_equal 'lister', assigns(:node).name end #def test_new # get 'new', :parent_id=>1 # assert_redirected_to :controller=>'main', :action=>'not_found' # login(:tiger) # get 'new', :parent_id=>1 # assert_response :success # assert_template 'document/new' # assert_tag :input, :attributes=>{:type=>'text', :id=>'document_name'} # assert_tag :input, :attributes=>{:type=>'file', :id=>'document_file'} #end # #def test_create_pdf # login(:tiger) # preserving_files('/test.host/data/pdf') do # post 'create', :document=>{:parent_id=>nodes_id(:zena), :file=>uploaded_pdf('water.pdf')} # assert_response :redirect # assert_redirected_to :action=>'show', :id=>assigns(:document)[:id] # zena = secure!(Node) { nodes(:zena) } # docs = zena.documents # assert_equal 'water', docs[0][:name] # end #end # #def test_show # get 'show' # assert_redirected_to :controller=>'main', :action=>'not_found' # get 'show', :id=>nodes_id(:bird_jpg) # assert_response :success # assert_template 'document/show' #end # #def test_data # assert_routing '/data/pdf/15/water.pdf', :controller=>'document', :action=>'data', :version_id=>'15', :ext=>'pdf', :filename=>'water.pdf' # get 'data', :version_id=>'15', :ext=>'pdf', :filename=>'water.pdf' # assert_response :success # assert_equal 'application/pdf', @response.headers['Content-Type'] #end # #def test_remove_mode_images # test cached data is removed # # make 'flower' owned by :ant and used by managers # Node.connection.execute "UPDATE nodes SET rgroup_id = 4, wgroup_id = 4, dgroup_id = 4, user_id=3 WHERE id = '#{nodes_id(:flower_jpg)}'" # @perform_caching_bak = ApplicationController.perform_caching # ApplicationController.perform_caching = true # preserving_files('test.host/data/jpg') do # without_files('test.host/public/data/jpg') do # v_id = versions_id(:bird_jpg_en) # assert ! File.exist?("#{SITES_ROOT}/test.host/public/data/jpg/#{v_id}"), "No cached data for bird" # assert ! File.exist?("#{SITES_ROOT}/test.host/data/test/jpg/#{v_id}/bird-pv.jpg"), "No pv image for bird" # get 'data', :version_id=>v_id, :ext=>'jpg', :filename=>'bird.jpg' # assert_response :success # assert File.exist?("#{SITES_ROOT}/test.host/public/data/jpg/#{v_id}/bird.jpg"), "Bird full cached" # get 'data', :version_id=>v_id, :ext=>'jpg', :filename=>'bird-pv.jpg' # assert_response :success # assert File.exist?("#{SITES_ROOT}/test.host/public/data/jpg/#{v_id}/bird-pv.jpg"), "Bird pv cached" # assert ! File.exist?("#{SITES_ROOT}/test.host/data/test/jpg/#{v_id}/bird-pv.jpg"), "No pv image stored" # # # sweep_all # img = nodes(:bird_jpg) # img.send(:sweep_cache) # assert ! File.exist?("#{SITES_ROOT}/test.host/public/data/jpg/#{v_id}"), "No cached data for bird" # # login(:tiger) # v_id = versions_id(:flower_jpg_en) # assert ! File.exist?("#{SITES_ROOT}/test.host/public/data/jpg/#{v_id}"), "No cached data for flower" # assert ! File.exist?("#{SITES_ROOT}/test.host/data/test/jpg/#{v_id}/flower-pv.jpg"), "No pv image for flower" # get 'data', :version_id=>v_id, :ext=>'pdf', :filename=>'flower.jpg' # assert_response :success # assert ! File.exist?("#{SITES_ROOT}/test.host/public/data/jpg/#{v_id}/flower.jpg"), "No flower full cached" # get 'data', :version_id=>v_id, :ext=>'pdf', :filename=>'flower-pv.jpg' # assert_response :success # assert ! File.exist?("#{SITES_ROOT}/test.host/public/data/jpg/#{v_id}/flower-pv.jpg"), "No flower pv cached" # assert File.exist?("#{SITES_ROOT}/test.host/data/test/jpg/#{v_id}/flower-pv.jpg"), "PV image stored" # end # end # ApplicationController.perform_caching = @perform_caching #end # #def test_cannot_fill_cache_with_random_format # @perform_caching_bak = ApplicationController.perform_caching # ApplicationController.perform_caching = true # preserving_files('data/test/jpg') do # without_files('public/data/jpg') do # get 'data', :version_id=>20, :ext=>'jpg', :filename=>'bird-whatever.jpg' # assert_redirected_to :action=>'not_found', :controller=>'main' # end # end # ApplicationController.perform_caching = @perform_caching #end #def test_data_bad_name # get 'data', :version_id=>'15', :ext=>'pdf', :filename=>'blue.jpg' # assert_response :redirect #end # #def test_data_resized_image # get 'data', :version_id=>'20', :ext=>'jpg', :filename=>'bird.jpg' # assert_response :success # assert_equal 'image/jpeg', @response.headers['Content-Type'] # get 'data', :version_id=>'20', :ext=>'jpg', :filename=>'bird-pv.jpg' # assert_response :success # assert_equal 'image/jpeg', @response.headers['Content-Type'] #end # #def test_list # get 'list', :parent_id=>1 # assert_response :success # assert_template 'document/_list' #end # #def test_create_jpg # login(:tiger) # post 'create', :document=>{:parent_id=>nodes_id(:zena), :file=>uploaded_jpg('bird.jpg')} # assert_response :success # assert_template 'document/create' # zena = secure!(Node) { nodes(:zena) } # docs = zena.documents # assert_equal 'bird', docs[0][:name] #end # #def test_img # assert false #end # #def test_template # assert false #end # #def test_form_tabs # @controller = HelperDocumentController.new # init_controller # assert_equal [["file", "file"], ["text_doc", "text_doc"]], @controller.send(:form_tabs) #end end =end