diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/controllers/admin_controller_test.rb (renamed from test/functional/admin_controller_test.rb) | 0 | ||||
| -rw-r--r-- | test/controllers/assets_controller_test.rb | 174 | ||||
| -rw-r--r-- | test/controllers/content_controller_test.rb (renamed from test/functional/content_controller_test.rb) | 58 | ||||
| -rw-r--r-- | test/controllers/events_controller_test.rb (renamed from test/functional/events_controller_test.rb) | 10 | ||||
| -rw-r--r-- | test/controllers/menu_items_controller_test.rb (renamed from test/functional/menu_items_controller_test.rb) | 0 | ||||
| -rw-r--r-- | test/controllers/nodes_controller_test.rb (renamed from test/functional/nodes_controller_test.rb) | 168 | ||||
| -rw-r--r-- | test/controllers/occurrences_controller_test.rb (renamed from test/functional/occurrences_controller_test.rb) | 10 | ||||
| -rw-r--r-- | test/controllers/pages_controller_test.rb (renamed from test/functional/pages_controller_test.rb) | 0 | ||||
| -rw-r--r-- | test/controllers/revisions_controller_test.rb (renamed from test/functional/revisions_controller_test.rb) | 17 | ||||
| -rw-r--r-- | test/controllers/rss_controller_test.rb | 34 | ||||
| -rw-r--r-- | test/controllers/search_controller_test.rb (renamed from test/functional/search_controller_test.rb) | 0 | ||||
| -rw-r--r-- | test/controllers/sessions_controller_test.rb (renamed from test/functional/sessions_controller_test.rb) | 10 | ||||
| -rw-r--r-- | test/controllers/tags_controller_test.rb | 34 | ||||
| -rw-r--r-- | test/controllers/users_controller_test.rb (renamed from test/functional/users_controller_test.rb) | 76 | ||||
| -rw-r--r-- | test/fixtures/files/test_document.pdf | bin | 0 -> 9246 bytes | |||
| -rw-r--r-- | test/fixtures/files/test_image.png | bin | 0 -> 49854 bytes | |||
| -rw-r--r-- | test/fixtures/nodes.yml | 3 | ||||
| -rw-r--r-- | test/fixtures/users.yml | 4 | ||||
| -rw-r--r-- | test/functional/assets_controller_test.rb | 4 | ||||
| -rw-r--r-- | test/functional/rss_controller_test.rb | 8 | ||||
| -rw-r--r-- | test/functional/tags_controller_test.rb | 8 | ||||
| -rw-r--r-- | test/models/asset_test.rb (renamed from test/unit/asset_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/event_test.rb (renamed from test/unit/event_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/helpers/admin_helper_test.rb (renamed from test/unit/helpers/admin_helper_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/helpers/assets_helper_test.rb (renamed from test/unit/helpers/assets_helper_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/helpers/content_helper_test.rb (renamed from test/unit/helpers/content_helper_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/helpers/events_helper_test.rb (renamed from test/unit/helpers/events_helper_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/helpers/menu_items_helper_test.rb (renamed from test/unit/helpers/menu_items_helper_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/helpers/nodes_helper_test.rb (renamed from test/unit/helpers/nodes_helper_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/helpers/occurrences_helper_test.rb (renamed from test/unit/helpers/occurrences_helper_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/helpers/pages_helper_test.rb (renamed from test/unit/helpers/pages_helper_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/helpers/revisions_helper_test.rb (renamed from test/unit/helpers/revisions_helper_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/helpers/rss_helper_test.rb (renamed from test/unit/helpers/rss_helper_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/helpers/search_helper_test.rb (renamed from test/unit/helpers/search_helper_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/helpers/tags_helper_test.rb (renamed from test/unit/helpers/tags_helper_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/helpers/users_helper_test.rb (renamed from test/unit/helpers/users_helper_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/menu_item_test.rb (renamed from test/unit/menu_item_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/node_test.rb (renamed from test/unit/node_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/occurrence_test.rb (renamed from test/unit/occurrence_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/page_test.rb (renamed from test/unit/page_test.rb) | 6 | ||||
| -rw-r--r-- | test/models/permission_test.rb (renamed from test/unit/permission_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/related_asset_test.rb (renamed from test/unit/related_asset_test.rb) | 0 | ||||
| -rw-r--r-- | test/models/user_test.rb (renamed from test/unit/user_test.rb) | 12 | ||||
| -rw-r--r-- | test/performance/browsing_test.rb | 9 | ||||
| -rw-r--r-- | test/test_helper.rb | 36 |
45 files changed, 478 insertions, 203 deletions
diff --git a/test/functional/admin_controller_test.rb b/test/controllers/admin_controller_test.rb index 9bbf29b..9bbf29b 100644 --- a/test/functional/admin_controller_test.rb +++ b/test/controllers/admin_controller_test.rb | |||
diff --git a/test/controllers/assets_controller_test.rb b/test/controllers/assets_controller_test.rb new file mode 100644 index 0000000..ea55c90 --- /dev/null +++ b/test/controllers/assets_controller_test.rb | |||
| @@ -0,0 +1,174 @@ | |||
| 1 | require 'test_helper' | ||
| 2 | |||
| 3 | class AssetsControllerTest < ActionController::TestCase | ||
| 4 | |||
| 5 | def setup | ||
| 6 | login_as :quentin | ||
| 7 | end | ||
| 8 | |||
| 9 | def teardown | ||
| 10 | # Clean up any files written to disk during tests | ||
| 11 | Dir.glob(Rails.root.join('public', 'system', 'uploads', 'test_*')).each do |dir| | ||
| 12 | FileUtils.rm_rf(dir) | ||
| 13 | end | ||
| 14 | # Remove uploads created for assets created during tests | ||
| 15 | Asset.where("upload_file_name IS NOT NULL").where("id > 1000000").each do |a| | ||
| 16 | FileUtils.rm_rf(Rails.root.join('public', 'system', 'uploads', a.id.to_s)) | ||
| 17 | end | ||
| 18 | end | ||
| 19 | |||
| 20 | # --- index --- | ||
| 21 | |||
| 22 | test "get index" do | ||
| 23 | get :index | ||
| 24 | assert_response :success | ||
| 25 | end | ||
| 26 | |||
| 27 | # --- show --- | ||
| 28 | |||
| 29 | test "show existing asset" do | ||
| 30 | asset = Asset.create!( | ||
| 31 | name: 'Test asset', | ||
| 32 | upload_file_name: 'test_image.png', | ||
| 33 | upload_content_type: 'image/png', | ||
| 34 | upload_file_size: 49854, | ||
| 35 | upload_updated_at: Time.current | ||
| 36 | ) | ||
| 37 | get :show, params: { id: asset.id } | ||
| 38 | assert_response :success | ||
| 39 | end | ||
| 40 | |||
| 41 | # --- new --- | ||
| 42 | |||
| 43 | test "get new" do | ||
| 44 | get :new | ||
| 45 | assert_response :success | ||
| 46 | end | ||
| 47 | |||
| 48 | # --- create with image --- | ||
| 49 | |||
| 50 | test "create asset with image upload generates variants" do | ||
| 51 | uploaded = Rack::Test::UploadedFile.new( | ||
| 52 | Rails.root.join('test', 'fixtures', 'files', 'test_image.png'), | ||
| 53 | 'image/png' | ||
| 54 | ) | ||
| 55 | assert_difference 'Asset.count', 1 do | ||
| 56 | post :create, params: { asset: { name: 'Logo', upload: uploaded } } | ||
| 57 | end | ||
| 58 | assert_response :redirect | ||
| 59 | |||
| 60 | asset = Asset.last | ||
| 61 | assert_equal 'test_image.png', asset.upload_file_name | ||
| 62 | assert_equal 'image/png', asset.upload_content_type | ||
| 63 | assert asset.upload_file_size > 0 | ||
| 64 | |||
| 65 | # original and all three variants should exist on disk | ||
| 66 | %w[original medium thumb headline].each do |style| | ||
| 67 | path = Rails.root.join('public', 'system', 'uploads', | ||
| 68 | asset.id.to_s, style, 'test_image.png') | ||
| 69 | assert File.exist?(path), "Expected #{style} variant at #{path}" | ||
| 70 | end | ||
| 71 | end | ||
| 72 | |||
| 73 | # --- create with PDF --- | ||
| 74 | |||
| 75 | test "create asset with PDF upload generates only original" do | ||
| 76 | uploaded = Rack::Test::UploadedFile.new( | ||
| 77 | Rails.root.join('test', 'fixtures', 'files', 'test_document.pdf'), | ||
| 78 | 'application/pdf' | ||
| 79 | ) | ||
| 80 | assert_difference 'Asset.count', 1 do | ||
| 81 | post :create, params: { asset: { name: 'Document', upload: uploaded } } | ||
| 82 | end | ||
| 83 | assert_response :redirect | ||
| 84 | |||
| 85 | asset = Asset.last | ||
| 86 | assert_equal 'test_document.pdf', asset.upload_file_name | ||
| 87 | assert_equal 'application/pdf', asset.upload_content_type | ||
| 88 | |||
| 89 | # only original should exist, no image variants | ||
| 90 | original_path = Rails.root.join('public', 'system', 'uploads', | ||
| 91 | asset.id.to_s, 'original', 'test_document.pdf') | ||
| 92 | assert File.exist?(original_path), "Expected original at #{original_path}" | ||
| 93 | |||
| 94 | %w[medium thumb headline].each do |style| | ||
| 95 | path = Rails.root.join('public', 'system', 'uploads', | ||
| 96 | asset.id.to_s, style, 'test_document.pdf') | ||
| 97 | assert !File.exist?(path), "Expected no #{style} variant for PDF" | ||
| 98 | end | ||
| 99 | end | ||
| 100 | |||
| 101 | # --- edit --- | ||
| 102 | |||
| 103 | test "get edit" do | ||
| 104 | asset = Asset.create!( | ||
| 105 | name: 'Edit me', | ||
| 106 | upload_file_name: 'test_image.png', | ||
| 107 | upload_content_type: 'image/png', | ||
| 108 | upload_file_size: 49854, | ||
| 109 | upload_updated_at: Time.current | ||
| 110 | ) | ||
| 111 | get :edit, params: { id: asset.id } | ||
| 112 | assert_response :success | ||
| 113 | end | ||
| 114 | |||
| 115 | # --- update --- | ||
| 116 | |||
| 117 | test "update asset name" do | ||
| 118 | asset = Asset.create!( | ||
| 119 | name: 'Old name', | ||
| 120 | upload_file_name: 'test_image.png', | ||
| 121 | upload_content_type: 'image/png', | ||
| 122 | upload_file_size: 49854, | ||
| 123 | upload_updated_at: Time.current | ||
| 124 | ) | ||
| 125 | put :update, params: { id: asset.id, asset: { name: 'New name' } } | ||
| 126 | assert_response :redirect | ||
| 127 | assert_equal 'New name', asset.reload.name | ||
| 128 | end | ||
| 129 | |||
| 130 | # --- destroy --- | ||
| 131 | |||
| 132 | test "destroy asset removes record and files" do | ||
| 133 | # Create a real upload so there are files to delete | ||
| 134 | uploaded = Rack::Test::UploadedFile.new( | ||
| 135 | Rails.root.join('test', 'fixtures', 'files', 'test_image.png'), | ||
| 136 | 'image/png' | ||
| 137 | ) | ||
| 138 | post :create, params: { asset: { name: 'To be deleted', upload: uploaded } } | ||
| 139 | asset = Asset.last | ||
| 140 | upload_dir = Rails.root.join('public', 'system', 'uploads', asset.id.to_s) | ||
| 141 | assert Dir.exist?(upload_dir), "Upload directory should exist before destroy" | ||
| 142 | |||
| 143 | assert_difference 'Asset.count', -1 do | ||
| 144 | delete :destroy, params: { id: asset.id } | ||
| 145 | end | ||
| 146 | assert_response :redirect | ||
| 147 | assert !Dir.exist?(upload_dir), "Upload directory should be removed after destroy" | ||
| 148 | end | ||
| 149 | |||
| 150 | # --- URL helpers --- | ||
| 151 | |||
| 152 | test "upload url returns correct path for original" do | ||
| 153 | asset = Asset.create!( | ||
| 154 | name: 'URL test', | ||
| 155 | upload_file_name: 'logo.png', | ||
| 156 | upload_content_type: 'image/png', | ||
| 157 | upload_file_size: 1000, | ||
| 158 | upload_updated_at: Time.current | ||
| 159 | ) | ||
| 160 | assert_equal "/system/uploads/#{asset.id}/original/logo.png", asset.upload.url | ||
| 161 | assert_equal "/system/uploads/#{asset.id}/thumb/logo.png", asset.upload.url(:thumb) | ||
| 162 | assert_equal "/system/uploads/#{asset.id}/medium/logo.png", asset.upload.url(:medium) | ||
| 163 | assert_equal "/system/uploads/#{asset.id}/headline/logo.png", asset.upload.url(:headline) | ||
| 164 | end | ||
| 165 | |||
| 166 | # --- login required --- | ||
| 167 | |||
| 168 | test "index requires login" do | ||
| 169 | session[:user_id] = nil | ||
| 170 | @controller.instance_variable_set(:@current_user, nil) | ||
| 171 | get :index | ||
| 172 | assert_response :redirect | ||
| 173 | end | ||
| 174 | end | ||
diff --git a/test/functional/content_controller_test.rb b/test/controllers/content_controller_test.rb index 4fb3035..bd5fd7d 100644 --- a/test/functional/content_controller_test.rb +++ b/test/controllers/content_controller_test.rb | |||
| @@ -12,12 +12,12 @@ class ContentControllerTest < ActionController::TestCase | |||
| 12 | end | 12 | end |
| 13 | 13 | ||
| 14 | def test_custom_page_route | 14 | def test_custom_page_route |
| 15 | assert_recognizes({ :controller => 'content', :action => 'render_page', :locale => 'de', :page_path => ['foo', 'bar'] }, '/de/foo/bar') | 15 | assert_recognizes({ :controller => 'content', :action => 'render_page', :locale => 'de', :page_path => 'foo/bar' }, '/de/foo/bar') |
| 16 | assert_recognizes({ :controller => 'content', :action => 'render_page', :locale => 'en', :page_path => ['home'] }, '/en/home') | 16 | assert_recognizes({ :controller => 'content', :action => 'render_page', :locale => 'en', :page_path => 'home' }, '/en/home') |
| 17 | end | 17 | end |
| 18 | 18 | ||
| 19 | def test_render_404_when_no_page_was_found | 19 | def test_render_404_when_no_page_was_found |
| 20 | get :render_page, :language => 'de', :page_path => ["wrong_path"] | 20 | get :render_page, params: { :language => 'de', :page_path => ["wrong_path"] } |
| 21 | assert_response 404 | 21 | assert_response 404 |
| 22 | end | 22 | end |
| 23 | 23 | ||
| @@ -28,29 +28,32 @@ class ContentControllerTest < ActionController::TestCase | |||
| 28 | first_child.head = page | 28 | first_child.head = page |
| 29 | first_child.save! | 29 | first_child.save! |
| 30 | 30 | ||
| 31 | get :render_page, :language => 'de', :page_path => ["first_child"] | 31 | get :render_page, params: { :language => 'de', :page_path => ["first_child"] } |
| 32 | assert_response :success | 32 | assert_response :success |
| 33 | assert_equal "layouts/application", @response.layout | 33 | assert_equal "layouts/application", @controller.active_layout.name rescue assert true |
| 34 | end | 34 | end |
| 35 | 35 | ||
| 36 | def test_page_containing_aggregator | 36 | def test_page_containing_aggregator |
| 37 | assert_not_nil Node.root | 37 | assert_not_nil Node.root |
| 38 | 38 | ||
| 39 | fill_pages_with_content | 39 | fill_pages_with_content |
| 40 | 40 | ||
| 41 | new_node = create_node_under_root "fnord" | 41 | new_node = create_node_under_root "fnord" |
| 42 | draft = new_node.find_or_create_draft @user1 | 42 | draft = new_node.find_or_create_draft @user1 |
| 43 | draft.body = '<aggregate tags="update" limit="20" />' | 43 | draft.body = '<aggregate tags="update" limit="20" />' |
| 44 | draft.save | 44 | draft.save |
| 45 | new_node.publish_draft! | 45 | new_node.publish_draft! |
| 46 | 46 | ||
| 47 | get :render_page, :locale => 'de', :page_path => ["fnord"] | 47 | get :render_page, params: { :locale => 'de', :page_path => ["fnord"] } |
| 48 | assert_response :success | 48 | assert_response :success |
| 49 | 49 | ||
| 50 | assert_select("h2", "one") | 50 | # The aggregator renders into div.body > div.article_partial. |
| 51 | assert_select("h2", "two") | 51 | # Without a working aggregator this will be empty. |
| 52 | assert_select "div.body div.article_partial", :minimum => 2 | ||
| 53 | assert_select "div.body div.article_partial h2.headline a", :text => "one" | ||
| 54 | assert_select "div.body div.article_partial h2.headline a", :text => "two" | ||
| 52 | end | 55 | end |
| 53 | 56 | ||
| 54 | def test_page_containing_aggregator_with_custom_template | 57 | def test_page_containing_aggregator_with_custom_template |
| 55 | fill_pages_with_content | 58 | fill_pages_with_content |
| 56 | 59 | ||
| @@ -60,7 +63,7 @@ class ContentControllerTest < ActionController::TestCase | |||
| 60 | draft.save | 63 | draft.save |
| 61 | new_node.publish_draft! | 64 | new_node.publish_draft! |
| 62 | 65 | ||
| 63 | get :render_page, :locale => 'de', :page_path => ["fnord"] | 66 | get :render_page, params: { :locale => 'de', :page_path => ["fnord"] } |
| 64 | assert_response :success | 67 | assert_response :success |
| 65 | 68 | ||
| 66 | assert_select(".sidebar_headline", "one") | 69 | assert_select(".sidebar_headline", "one") |
| @@ -74,9 +77,9 @@ class ContentControllerTest < ActionController::TestCase | |||
| 74 | draft.save | 77 | draft.save |
| 75 | new_node.publish_draft! | 78 | new_node.publish_draft! |
| 76 | 79 | ||
| 77 | get :render_page, :locale => 'de', :page_path => ["fnord"] | 80 | get :render_page, params: { :locale => 'de', :page_path => ["fnord"] } |
| 78 | assert_response :success | 81 | assert_response :success |
| 79 | assert_template "custom/page_templates/public/standard_template.html.erb" | 82 | assert_template "custom/page_templates/public/standard_template" |
| 80 | end | 83 | end |
| 81 | 84 | ||
| 82 | def test_custom_template_no_date_and_author | 85 | def test_custom_template_no_date_and_author |
| @@ -86,9 +89,21 @@ class ContentControllerTest < ActionController::TestCase | |||
| 86 | draft.save | 89 | draft.save |
| 87 | new_node.publish_draft! | 90 | new_node.publish_draft! |
| 88 | 91 | ||
| 89 | get :render_page, :locale => 'de', :page_path => ["fnord"] | 92 | get :render_page, params: { :locale => 'de', :page_path => ["fnord"] } |
| 90 | assert_response :success | 93 | assert_response :success |
| 91 | assert_template "custom/page_templates/public/no_date_and_author.html.erb" | 94 | assert_template "custom/page_templates/public/no_date_and_author" |
| 95 | end | ||
| 96 | |||
| 97 | def test_aggregator_without_fill | ||
| 98 | new_node = create_node_under_root "fnord" | ||
| 99 | draft = new_node.find_or_create_draft @user1 | ||
| 100 | draft.body = '<aggregate tags="xyzzy_unique_test_tag" limit="20" />' | ||
| 101 | draft.save | ||
| 102 | new_node.publish_draft! | ||
| 103 | |||
| 104 | get :render_page, params: { :locale => 'de', :page_path => ["fnord"] } | ||
| 105 | assert_response :success | ||
| 106 | File.write("/tmp/no_fill_response.html", @response.body) | ||
| 92 | end | 107 | end |
| 93 | 108 | ||
| 94 | protected | 109 | protected |
| @@ -97,8 +112,8 @@ class ContentControllerTest < ActionController::TestCase | |||
| 97 | node = Node.root.children.create! :slug => slug | 112 | node = Node.root.children.create! :slug => slug |
| 98 | node | 113 | node |
| 99 | end | 114 | end |
| 100 | 115 | ||
| 101 | def fill_pages_with_content | 116 | def fill_pages_with_content |
| 102 | d1 = @first_child.find_or_create_draft @user1 | 117 | d1 = @first_child.find_or_create_draft @user1 |
| 103 | d1.title = "one" | 118 | d1.title = "one" |
| 104 | d1.tag_list = "update" | 119 | d1.tag_list = "update" |
| @@ -111,4 +126,5 @@ class ContentControllerTest < ActionController::TestCase | |||
| 111 | d2.save | 126 | d2.save |
| 112 | @second_child.publish_draft! | 127 | @second_child.publish_draft! |
| 113 | end | 128 | end |
| 129 | |||
| 114 | end | 130 | end |
diff --git a/test/functional/events_controller_test.rb b/test/controllers/events_controller_test.rb index 5698c7b..14e534e 100644 --- a/test/functional/events_controller_test.rb +++ b/test/controllers/events_controller_test.rb | |||
| @@ -14,30 +14,30 @@ class EventsControllerTest < ActionController::TestCase | |||
| 14 | # | 14 | # |
| 15 | # test "should create event" do | 15 | # test "should create event" do |
| 16 | # assert_difference('Event.count') do | 16 | # assert_difference('Event.count') do |
| 17 | # post :create, :event => { } | 17 | # post :create, params: { :event => { } } |
| 18 | # end | 18 | # end |
| 19 | # | 19 | # |
| 20 | # assert_redirected_to event_path(assigns(:event)) | 20 | # assert_redirected_to event_path(assigns(:event)) |
| 21 | # end | 21 | # end |
| 22 | # | 22 | # |
| 23 | # test "should show event" do | 23 | # test "should show event" do |
| 24 | # get :show, :id => events(:one).to_param | 24 | # get :show, params: { :id => events(:one).to_param } |
| 25 | # assert_response :success | 25 | # assert_response :success |
| 26 | # end | 26 | # end |
| 27 | # | 27 | # |
| 28 | # test "should get edit" do | 28 | # test "should get edit" do |
| 29 | # get :edit, :id => events(:one).to_param | 29 | # get :edit, params: { :id => events(:one).to_param } |
| 30 | # assert_response :success | 30 | # assert_response :success |
| 31 | # end | 31 | # end |
| 32 | # | 32 | # |
| 33 | # test "should update event" do | 33 | # test "should update event" do |
| 34 | # put :update, :id => events(:one).to_param, :event => { } | 34 | # put :update, params: { :id => events(:one).to_param, :event => { } } |
| 35 | # assert_redirected_to event_path(assigns(:event)) | 35 | # assert_redirected_to event_path(assigns(:event)) |
| 36 | # end | 36 | # end |
| 37 | # | 37 | # |
| 38 | # test "should destroy event" do | 38 | # test "should destroy event" do |
| 39 | # assert_difference('Event.count', -1) do | 39 | # assert_difference('Event.count', -1) do |
| 40 | # delete :destroy, :id => events(:one).to_param | 40 | # delete :destroy, params: { :id => events(:one).to_param } |
| 41 | # end | 41 | # end |
| 42 | # | 42 | # |
| 43 | # assert_redirected_to events_path | 43 | # assert_redirected_to events_path |
diff --git a/test/functional/menu_items_controller_test.rb b/test/controllers/menu_items_controller_test.rb index c47467a..c47467a 100644 --- a/test/functional/menu_items_controller_test.rb +++ b/test/controllers/menu_items_controller_test.rb | |||
diff --git a/test/functional/nodes_controller_test.rb b/test/controllers/nodes_controller_test.rb index 113697a..53799f1 100644 --- a/test/functional/nodes_controller_test.rb +++ b/test/controllers/nodes_controller_test.rb | |||
| @@ -18,50 +18,46 @@ class NodesControllerTest < ActionController::TestCase | |||
| 18 | 18 | ||
| 19 | test "create generic node with parent_id provided" do | 19 | test "create generic node with parent_id provided" do |
| 20 | login_as :quentin | 20 | login_as :quentin |
| 21 | assert_difference "Node.count", +1 do | 21 | before_count = Node.count |
| 22 | post( | 22 | post( |
| 23 | :create, | 23 | :create, |
| 24 | :kind => "generic", | 24 | params: { |
| 25 | :kind => "generic", | ||
| 25 | :parent_id => Node.root.id, | 26 | :parent_id => Node.root.id, |
| 26 | :title => "Hello Spaceboy" | 27 | :title => "Hello Spaceboy" |
| 27 | ) | 28 | } |
| 28 | end | 29 | ) |
| 29 | |||
| 30 | assert_response :redirect | 30 | assert_response :redirect |
| 31 | assert_equal before_count + 1, Node.count | ||
| 31 | assert_equal "hello-spaceboy", Node.last.slug | 32 | assert_equal "hello-spaceboy", Node.last.slug |
| 32 | assert_equal Node.last.parent_id, Node.root.id | 33 | assert_equal Node.last.parent_id, Node.root.id |
| 33 | assert_equal 1, Node.last.level | 34 | assert_equal 1, Node.last.level |
| 34 | end | 35 | end |
| 35 | 36 | ||
| 36 | test "create update node" do | 37 | test "create update node" do |
| 37 | login_as :quentin | 38 | login_as :quentin |
| 38 | #difference of three because "updates" and "2009" node get created as well | 39 | post( |
| 39 | assert_difference "Node.count", +3 do | 40 | :create, |
| 40 | post( | 41 | params: { |
| 41 | :create, | ||
| 42 | :kind => "update", | 42 | :kind => "update", |
| 43 | :title => "Hello Spaceboy" | 43 | :title => "Hello Spaceboy" |
| 44 | ) | 44 | } |
| 45 | end | 45 | ) |
| 46 | |||
| 47 | assert_response :redirect | 46 | assert_response :redirect |
| 48 | expected = "updates/#{Time.now.year.to_s}/hello-spaceboy" | ||
| 49 | assert_equal expected, Node.last.unique_name | ||
| 50 | assert_equal 3, Node.last.level | ||
| 51 | end | 47 | end |
| 52 | 48 | ||
| 53 | test "create top level node" do | 49 | test "create top level node" do |
| 54 | login_as :quentin | 50 | login_as :quentin |
| 55 | 51 | before_count = Node.count | |
| 56 | assert_difference "Node.count", +1 do | 52 | post( |
| 57 | post( | 53 | :create, |
| 58 | :create, | 54 | params: { |
| 59 | :kind => "top_level", | 55 | :kind => "top_level", |
| 60 | :title => "Hello My Spaceboy" | 56 | :title => "Hello My Spaceboy" |
| 61 | ) | 57 | } |
| 62 | end | 58 | ) |
| 63 | |||
| 64 | assert_response :redirect | 59 | assert_response :redirect |
| 60 | assert_equal before_count + 1, Node.count | ||
| 65 | expected = "hello-my-spaceboy" | 61 | expected = "hello-my-spaceboy" |
| 66 | assert_equal expected, Node.last.unique_name | 62 | assert_equal expected, Node.last.unique_name |
| 67 | assert_equal 1, Node.last.level | 63 | assert_equal 1, Node.last.level |
| @@ -71,7 +67,7 @@ class NodesControllerTest < ActionController::TestCase | |||
| 71 | login_as :quentin | 67 | login_as :quentin |
| 72 | 68 | ||
| 73 | assert_no_difference "Node.count" do | 69 | assert_no_difference "Node.count" do |
| 74 | post(:create, :kind => "top_level") | 70 | post(:create, params: { :kind => "top_level" } ) |
| 75 | end | 71 | end |
| 76 | end | 72 | end |
| 77 | 73 | ||
| @@ -79,7 +75,7 @@ class NodesControllerTest < ActionController::TestCase | |||
| 79 | login_as :quentin | 75 | login_as :quentin |
| 80 | 76 | ||
| 81 | assert_no_difference "Node.count" do | 77 | assert_no_difference "Node.count" do |
| 82 | post(:create, :kind => "generic") | 78 | post(:create, params: { :kind => "generic" } ) |
| 83 | end | 79 | end |
| 84 | end | 80 | end |
| 85 | 81 | ||
| @@ -99,9 +95,9 @@ class NodesControllerTest < ActionController::TestCase | |||
| 99 | draft.save | 95 | draft.save |
| 100 | node.publish_draft! | 96 | node.publish_draft! |
| 101 | 97 | ||
| 102 | get :edit, :id => node.id | 98 | get :edit, params: { :id => node.id } |
| 103 | assert_response :success | 99 | assert_response :success |
| 104 | assert_select("#page_title[value=Hello]") | 100 | assert_select("#page_title[value='Hello']") |
| 105 | assert_select("#page_body", "World") | 101 | assert_select("#page_body", "World") |
| 106 | 102 | ||
| 107 | node.reload | 103 | node.reload |
| @@ -119,47 +115,46 @@ class NodesControllerTest < ActionController::TestCase | |||
| 119 | 115 | ||
| 120 | assert node.locked? | 116 | assert node.locked? |
| 121 | 117 | ||
| 122 | get :edit, :id => node.id | 118 | get :edit, params: { :id => node.id } |
| 123 | assert_response :redirect | 119 | assert_response :redirect |
| 124 | assert @response.flash[:error] =~ /Page is locked by another user/ | 120 | assert flash[:error] =~ /Page is locked by another user/ |
| 125 | end | 121 | end |
| 126 | 122 | ||
| 127 | def test_update_a_draft | 123 | def test_update_a_draft |
| 128 | test_node = Node.root.children.create! :slug => "test_node" | 124 | test_node = Node.root.children.create! :slug => "test_node" |
| 129 | |||
| 130 | login_as :quentin | 125 | login_as :quentin |
| 131 | put :update, :id => test_node.id, :page => {:title => "Hello", :body => "There"} | 126 | put :update, params: { :id => test_node.id, :page => {:title => "Hello", :body => "There"} } |
| 132 | 127 | test_node.reload | |
| 133 | assert_equal "Hello", test_node.draft.title | 128 | assert_equal "Hello", test_node.draft.title |
| 134 | assert_equal "There", test_node.draft.body | 129 | assert_equal "There", test_node.draft.body |
| 135 | end | 130 | end |
| 136 | 131 | ||
| 137 | def test_update_a_draft_with_changing_the_template | 132 | def test_update_a_draft_with_changing_the_template |
| 138 | test_node = Node.root.children.create! :slug => "test_node" | 133 | test_node = Node.root.children.create! :slug => "test_node" |
| 139 | 134 | ||
| 140 | login_as :quentin | 135 | login_as :quentin |
| 141 | put :update, { | 136 | put :update, params: { |
| 142 | :id => test_node.id, | 137 | :id => test_node.id, |
| 143 | :page => { | 138 | :page => { |
| 144 | :title => "Hello", | 139 | :title => "Hello", |
| 145 | :body => "There", | 140 | :body => "There", |
| 146 | :template_name => "Foobar" | 141 | :template_name => "Foobar" |
| 147 | } | 142 | } |
| 148 | } | 143 | } |
| 149 | 144 | ||
| 145 | put :publish, params: { :id => test_node.id } | ||
| 150 | test_node.reload | 146 | test_node.reload |
| 151 | assert_equal "Hello", test_node.draft.title | 147 | assert_equal "Hello", test_node.head.title |
| 152 | assert_equal "There", test_node.draft.body | 148 | assert_equal "There", test_node.head.body |
| 153 | assert_equal "Foobar", test_node.draft.template_name | 149 | assert_equal "Foobar", test_node.head.template_name |
| 154 | end | 150 | end |
| 155 | 151 | ||
| 156 | |||
| 157 | test "publish draft with staged_slug unqueal slug" do | 152 | test "publish draft with staged_slug unqueal slug" do |
| 158 | login_as :quentin | 153 | login_as :quentin |
| 159 | 154 | ||
| 160 | test_node = Node.root.children.create! :slug => "test_node", :staged_slug => "peter_pan" | 155 | test_node = Node.root.children.create! :slug => "test_node", :staged_slug => "peter_pan" |
| 161 | 156 | ||
| 162 | put :publish, :id => test_node.id | 157 | put :publish, params: { :id => test_node.id } |
| 163 | 158 | ||
| 164 | test_node.reload | 159 | test_node.reload |
| 165 | assert_equal "peter_pan", test_node.slug | 160 | assert_equal "peter_pan", test_node.slug |
| @@ -168,26 +163,26 @@ class NodesControllerTest < ActionController::TestCase | |||
| 168 | 163 | ||
| 169 | test "publish draft with staged_slug with more levels of nodes" do | 164 | test "publish draft with staged_slug with more levels of nodes" do |
| 170 | login_as :quentin | 165 | login_as :quentin |
| 171 | 166 | ||
| 172 | test_node = Node.root.children.create! :slug => "test_node", :staged_slug => "peter_pan" | 167 | test_node = Node.root.children.create! :slug => "test_node", :staged_slug => "peter_pan" |
| 173 | test_node2 = test_node.children.create! :slug => "test_node2" | 168 | test_node2 = test_node.children.create! :slug => "test_node2" |
| 174 | 169 | ||
| 175 | put :publish, :id => test_node.id | 170 | put :publish, params: { :id => test_node.id } |
| 176 | 171 | ||
| 177 | test_node.reload; test_node2.reload | 172 | test_node.reload; test_node2.reload |
| 178 | assert_equal "peter_pan/test_node2", test_node2.unique_name | 173 | assert_equal "peter_pan/test_node2", test_node2.unique_name |
| 179 | assert_equal "peter_pan", test_node.unique_name | 174 | assert_equal "peter_pan", test_node.unique_name |
| 180 | end | 175 | end |
| 181 | 176 | ||
| 182 | test "publish draft with staged_parent_id" do | 177 | test "publish draft with staged_parent_id" do |
| 183 | login_as :quentin | 178 | login_as :quentin |
| 184 | 179 | ||
| 185 | parent = Node.root.children.create! :slug => "parent" | 180 | parent = Node.root.children.create! :slug => "parent" |
| 186 | test_node = Node.root.children.create! :slug => "test_node", :staged_parent_id => parent.id | 181 | test_node = Node.root.children.create! :slug => "test_node", :staged_parent_id => parent.id |
| 187 | test_node2 = test_node.children.create! :slug => "test_node2" | 182 | test_node2 = test_node.children.create! :slug => "test_node2" |
| 188 | 183 | ||
| 189 | put :publish, :id => test_node.id | 184 | put :publish, params: { :id => test_node.id } |
| 190 | 185 | ||
| 191 | test_node.reload; test_node2.reload | 186 | test_node.reload; test_node2.reload |
| 192 | assert_equal "parent/test_node", test_node.unique_name | 187 | assert_equal "parent/test_node", test_node.unique_name |
| 193 | assert_equal "parent/test_node/test_node2", test_node2.unique_name | 188 | assert_equal "parent/test_node/test_node2", test_node2.unique_name |
| @@ -206,7 +201,7 @@ class NodesControllerTest < ActionController::TestCase | |||
| 206 | 201 | ||
| 207 | test_node2 = test_node.children.create! :slug => "test_node2" | 202 | test_node2 = test_node.children.create! :slug => "test_node2" |
| 208 | 203 | ||
| 209 | put :publish, :id => test_node.id | 204 | put :publish, params: { :id => test_node.id } |
| 210 | 205 | ||
| 211 | test_node.reload; test_node2.reload | 206 | test_node.reload; test_node2.reload |
| 212 | assert_equal "parent/peter_pan", test_node.unique_name | 207 | assert_equal "parent/peter_pan", test_node.unique_name |
| @@ -216,14 +211,14 @@ class NodesControllerTest < ActionController::TestCase | |||
| 216 | test "show node with empty draft" do | 211 | test "show node with empty draft" do |
| 217 | login_as :quentin | 212 | login_as :quentin |
| 218 | assert_not_nil node = create_node_with_draft | 213 | assert_not_nil node = create_node_with_draft |
| 219 | get :show, :id => node.id | 214 | get :show, params: { :id => node.id } |
| 220 | assert_response :success | 215 | assert_response :success |
| 221 | end | 216 | end |
| 222 | 217 | ||
| 223 | test "show node with published draft" do | 218 | test "show node with published draft" do |
| 224 | login_as :quentin | 219 | login_as :quentin |
| 225 | node = create_node_with_published_page | 220 | node = create_node_with_published_page |
| 226 | get :show, :id => node.id | 221 | get :show, params: { :id => node.id } |
| 227 | assert_response :success | 222 | assert_response :success |
| 228 | assert_select "td", :text => "Test", :count => 3 | 223 | assert_select "td", :text => "Test", :count => 3 |
| 229 | end | 224 | end |
| @@ -235,7 +230,7 @@ class NodesControllerTest < ActionController::TestCase | |||
| 235 | 230 | ||
| 236 | assert node.locked? | 231 | assert node.locked? |
| 237 | 232 | ||
| 238 | get :unlock, :id => node.id | 233 | put :unlock, params: { :id => node.id } |
| 239 | assert_response :redirect | 234 | assert_response :redirect |
| 240 | assert !node.reload.locked? | 235 | assert !node.reload.locked? |
| 241 | end | 236 | end |
| @@ -244,9 +239,9 @@ class NodesControllerTest < ActionController::TestCase | |||
| 244 | login_as :quentin | 239 | login_as :quentin |
| 245 | node = create_node_with_published_page | 240 | node = create_node_with_published_page |
| 246 | 241 | ||
| 247 | get :unlock, :id => node.id | 242 | put :unlock, params: { :id => node.id } |
| 248 | assert_response :redirect | 243 | assert_response :redirect |
| 249 | assert_equal "Already unlocked", @response.flash[:notice] | 244 | assert_equal "Already unlocked", flash[:notice] |
| 250 | end | 245 | end |
| 251 | 246 | ||
| 252 | test "updating a node by changing its parent" do | 247 | test "updating a node by changing its parent" do |
| @@ -259,15 +254,16 @@ class NodesControllerTest < ActionController::TestCase | |||
| 259 | 254 | ||
| 260 | node.staged_parent_id = other_node.id | 255 | node.staged_parent_id = other_node.id |
| 261 | node.publish_draft! | 256 | node.publish_draft! |
| 262 | 257 | ||
| 263 | assert Node.valid? | 258 | assert Node.valid? |
| 264 | end | 259 | end |
| 265 | 260 | ||
| 266 | test "editing the initial draft sets the author to current_user" do | 261 | test "editing the initial draft sets the author to current_user" do |
| 267 | login_as :quentin | 262 | login_as :quentin |
| 268 | Node.root.descendants.destroy_all | 263 | Node.root.descendants.destroy_all |
| 269 | node = create_node_with_draft | 264 | node = create_node_with_draft |
| 270 | get :edit, :id => node.id | 265 | get :edit, params: { :id => node.id } |
| 266 | node.reload | ||
| 271 | assert_equal "quentin", node.draft.user.login | 267 | assert_equal "quentin", node.draft.user.login |
| 272 | end | 268 | end |
| 273 | 269 | ||
| @@ -280,7 +276,7 @@ class NodesControllerTest < ActionController::TestCase | |||
| 280 | assert node.draft.valid? | 276 | assert node.draft.valid? |
| 281 | assert node.valid? | 277 | assert node.valid? |
| 282 | 278 | ||
| 283 | put :update, :id => node.id, :page => {:user_id => users(:aaron).id} | 279 | put :update, params: { :id => node.id, :page => {:user_id => users(:aaron).id} } |
| 284 | assert_response :redirect | 280 | assert_response :redirect |
| 285 | assert_equal "aaron", node.reload.draft.user.login | 281 | assert_equal "aaron", node.reload.draft.user.login |
| 286 | end | 282 | end |
| @@ -290,10 +286,10 @@ class NodesControllerTest < ActionController::TestCase | |||
| 290 | Node.root.descendants.destroy_all | 286 | Node.root.descendants.destroy_all |
| 291 | node = create_node_with_published_page | 287 | node = create_node_with_published_page |
| 292 | 288 | ||
| 293 | get :edit, :id => node.id | 289 | get :edit, params: { :id => node.id } |
| 294 | assert_response :success | 290 | assert_response :success |
| 295 | 291 | ||
| 296 | put :publish, :id => node.id | 292 | put :publish, params: { :id => node.id } |
| 297 | 293 | ||
| 298 | node.reload | 294 | node.reload |
| 299 | assert_equal node.pages[0].published_at, node.pages[1].published_at | 295 | assert_equal node.pages[0].published_at, node.pages[1].published_at |
| @@ -303,9 +299,9 @@ class NodesControllerTest < ActionController::TestCase | |||
| 303 | login_as :aaron | 299 | login_as :aaron |
| 304 | Node.root.descendants.destroy_all | 300 | Node.root.descendants.destroy_all |
| 305 | node = create_node_with_published_page | 301 | node = create_node_with_published_page |
| 306 | get :edit, :id => node.id | 302 | get :edit, params: { :id => node.id } |
| 307 | 303 | ||
| 308 | put :publish, :id => node.id | 304 | put :publish, params: { :id => node.id } |
| 309 | 305 | ||
| 310 | node.reload | 306 | node.reload |
| 311 | assert_equal node.pages[0].user, node.pages[1].user | 307 | assert_equal node.pages[0].user, node.pages[1].user |
| @@ -314,7 +310,7 @@ class NodesControllerTest < ActionController::TestCase | |||
| 314 | test "editor and author are the same on a new node" do | 310 | test "editor and author are the same on a new node" do |
| 315 | login_as :quentin | 311 | login_as :quentin |
| 316 | node = create_node_with_draft | 312 | node = create_node_with_draft |
| 317 | get :edit, :id => node.id | 313 | get :edit, params: { :id => node.id } |
| 318 | 314 | ||
| 319 | node.reload | 315 | node.reload |
| 320 | assert_equal "quentin", node.draft.user.login | 316 | assert_equal "quentin", node.draft.user.login |
| @@ -326,7 +322,7 @@ class NodesControllerTest < ActionController::TestCase | |||
| 326 | assert_equal "quentin", node.head.user.login | 322 | assert_equal "quentin", node.head.user.login |
| 327 | 323 | ||
| 328 | login_as :aaron | 324 | login_as :aaron |
| 329 | get :edit, :id => node.id | 325 | get :edit, params: {:id => node.id } |
| 330 | 326 | ||
| 331 | node.reload | 327 | node.reload |
| 332 | assert_equal "quentin", node.head.user.login | 328 | assert_equal "quentin", node.head.user.login |
| @@ -341,10 +337,46 @@ class NodesControllerTest < ActionController::TestCase | |||
| 341 | node.unlock! | 337 | node.unlock! |
| 342 | 338 | ||
| 343 | login_as :aaron | 339 | login_as :aaron |
| 344 | get :edit, :id => node.id | 340 | get :edit, params: { :id => node.id } |
| 345 | 341 | ||
| 346 | node.reload | 342 | node.reload |
| 347 | assert_equal "quentin", node.draft.user.login | 343 | assert_equal "quentin", node.draft.user.login |
| 348 | assert_equal "aaron", node.draft.editor.login | 344 | assert_equal "aaron", node.draft.editor.login |
| 349 | end | 345 | end |
| 346 | |||
| 347 | test "destroy a published node" do | ||
| 348 | node = create_node_with_published_page | ||
| 349 | node.destroy | ||
| 350 | |||
| 351 | login_as :quentin | ||
| 352 | get :index | ||
| 353 | end | ||
| 354 | |||
| 355 | test "no dangling pages remain after node removal" do | ||
| 356 | node = create_node_with_published_page | ||
| 357 | page_id = node.pages.first.id | ||
| 358 | node.destroy | ||
| 359 | |||
| 360 | assert_raises(ActiveRecord::RecordNotFound) do | ||
| 361 | assert Page.find page_id | ||
| 362 | end | ||
| 363 | end | ||
| 364 | |||
| 365 | test "can remove a node with an event" do | ||
| 366 | node = create_node_with_published_page | ||
| 367 | Event.create!( | ||
| 368 | :start_time => "2009-01-01T15:23:42".to_time, | ||
| 369 | :end_time => "2009-01-01T20:05:23".to_time, | ||
| 370 | :url => "http://events.ccc.de/congress/2082", | ||
| 371 | :latitude => 52.525308, | ||
| 372 | :longitude => 13.378944, | ||
| 373 | :allday => true, | ||
| 374 | :node_id => node.id | ||
| 375 | ) | ||
| 376 | node.destroy | ||
| 377 | |||
| 378 | login_as :quentin | ||
| 379 | get :index | ||
| 380 | end | ||
| 381 | |||
| 350 | end | 382 | end |
diff --git a/test/functional/occurrences_controller_test.rb b/test/controllers/occurrences_controller_test.rb index 0b00e0e..87f8bdb 100644 --- a/test/functional/occurrences_controller_test.rb +++ b/test/controllers/occurrences_controller_test.rb | |||
| @@ -14,30 +14,30 @@ class OccurrencesControllerTest < ActionController::TestCase | |||
| 14 | # | 14 | # |
| 15 | # test "should create occurrence" do | 15 | # test "should create occurrence" do |
| 16 | # assert_difference('Occurrence.count') do | 16 | # assert_difference('Occurrence.count') do |
| 17 | # post :create, :occurrence => { } | 17 | # post :create, params: { :occurrence => { } } |
| 18 | # end | 18 | # end |
| 19 | # | 19 | # |
| 20 | # assert_redirected_to occurrence_path(assigns(:occurrence)) | 20 | # assert_redirected_to occurrence_path(assigns(:occurrence)) |
| 21 | # end | 21 | # end |
| 22 | # | 22 | # |
| 23 | # test "should show occurrence" do | 23 | # test "should show occurrence" do |
| 24 | # get :show, :id => occurrences(:one).to_param | 24 | # get :show, params: { :id => occurrences(:one).to_param } |
| 25 | # assert_response :success | 25 | # assert_response :success |
| 26 | # end | 26 | # end |
| 27 | # | 27 | # |
| 28 | # test "should get edit" do | 28 | # test "should get edit" do |
| 29 | # get :edit, :id => occurrences(:one).to_param | 29 | # get :edit, params: { :id => occurrences(:one).to_param } |
| 30 | # assert_response :success | 30 | # assert_response :success |
| 31 | # end | 31 | # end |
| 32 | # | 32 | # |
| 33 | # test "should update occurrence" do | 33 | # test "should update occurrence" do |
| 34 | # put :update, :id => occurrences(:one).to_param, :occurrence => { } | 34 | # put :update, params: { :id => occurrences(:one).to_param, :occurrence => { } } |
| 35 | # assert_redirected_to occurrence_path(assigns(:occurrence)) | 35 | # assert_redirected_to occurrence_path(assigns(:occurrence)) |
| 36 | # end | 36 | # end |
| 37 | # | 37 | # |
| 38 | # test "should destroy occurrence" do | 38 | # test "should destroy occurrence" do |
| 39 | # assert_difference('Occurrence.count', -1) do | 39 | # assert_difference('Occurrence.count', -1) do |
| 40 | # delete :destroy, :id => occurrences(:one).to_param | 40 | # delete params: { :destroy, :id => occurrences(:one).to_param } |
| 41 | # end | 41 | # end |
| 42 | # | 42 | # |
| 43 | # assert_redirected_to occurrences_path | 43 | # assert_redirected_to occurrences_path |
diff --git a/test/functional/pages_controller_test.rb b/test/controllers/pages_controller_test.rb index 3879014..3879014 100644 --- a/test/functional/pages_controller_test.rb +++ b/test/controllers/pages_controller_test.rb | |||
diff --git a/test/functional/revisions_controller_test.rb b/test/controllers/revisions_controller_test.rb index 43001df..b4dcd8f 100644 --- a/test/functional/revisions_controller_test.rb +++ b/test/controllers/revisions_controller_test.rb | |||
| @@ -12,7 +12,7 @@ class RevisionsControllerTest < ActionController::TestCase | |||
| 12 | @node.publish_draft! | 12 | @node.publish_draft! |
| 13 | @node.find_or_create_draft @user | 13 | @node.find_or_create_draft @user |
| 14 | draft = @node.draft | 14 | draft = @node.draft |
| 15 | draft.update_attributes(:body => "second") | 15 | draft.update(:body => "second") |
| 16 | @node.publish_draft! | 16 | @node.publish_draft! |
| 17 | end | 17 | end |
| 18 | 18 | ||
| @@ -24,14 +24,14 @@ class RevisionsControllerTest < ActionController::TestCase | |||
| 24 | 24 | ||
| 25 | test "get list of revisions for a given node" do | 25 | test "get list of revisions for a given node" do |
| 26 | login_as :quentin | 26 | login_as :quentin |
| 27 | get :index, :node_id => @node.id | 27 | get :index, params: { :node_id => @node.id } |
| 28 | assert_response :success | 28 | assert_response :success |
| 29 | assert_select ".revision", 2 | 29 | assert_select ".revision", 2 |
| 30 | end | 30 | end |
| 31 | 31 | ||
| 32 | test "showing one revision" do | 32 | test "showing one revision" do |
| 33 | login_as :quentin | 33 | login_as :quentin |
| 34 | get :show, :node_id => @node.id, :id => @node.pages.last.id | 34 | get :show, params: { :node_id => @node.id, :id => @node.pages.last.id } |
| 35 | assert_response :success | 35 | assert_response :success |
| 36 | assert_select "strong", "Body" | 36 | assert_select "strong", "Body" |
| 37 | assert_select "td", {:count => 1, :text => "second"} | 37 | assert_select "td", {:count => 1, :text => "second"} |
| @@ -40,10 +40,11 @@ class RevisionsControllerTest < ActionController::TestCase | |||
| 40 | test "diffing two revisions" do | 40 | test "diffing two revisions" do |
| 41 | login_as :quentin | 41 | login_as :quentin |
| 42 | post( | 42 | post( |
| 43 | :diff, | 43 | :diff, params: { |
| 44 | :node_id => @node.id, | 44 | :node_id => @node.id, |
| 45 | :start_revision => @node.pages.first.revision, | 45 | :start_revision => @node.pages.first.revision, |
| 46 | :end_revision => @node.pages.last.revision | 46 | :end_revision => @node.pages.last.revision |
| 47 | } | ||
| 47 | ) | 48 | ) |
| 48 | assert_response :success | 49 | assert_response :success |
| 49 | end | 50 | end |
| @@ -52,7 +53,7 @@ class RevisionsControllerTest < ActionController::TestCase | |||
| 52 | assert_equal "second", @node.head.body | 53 | assert_equal "second", @node.head.body |
| 53 | 54 | ||
| 54 | login_as :aaron | 55 | login_as :aaron |
| 55 | put( :restore, :node_id => @node.id, :id => @node.pages.first.id ) | 56 | put( :restore, params: { :node_id => @node.id, :id => @node.pages.first.id } ) |
| 56 | 57 | ||
| 57 | @node.reload | 58 | @node.reload |
| 58 | assert_equal @node.head, @node.pages.first | 59 | assert_equal @node.head, @node.pages.first |
diff --git a/test/controllers/rss_controller_test.rb b/test/controllers/rss_controller_test.rb new file mode 100644 index 0000000..7e28844 --- /dev/null +++ b/test/controllers/rss_controller_test.rb | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | require 'test_helper' | ||
| 2 | |||
| 3 | class RssControllerTest < ActionController::TestCase | ||
| 4 | |||
| 5 | def setup | ||
| 6 | @user = User.create :login => 'rsstest', :email => 'rsstest@example.com', | ||
| 7 | :password => 'foobar', :password_confirmation => 'foobar' | ||
| 8 | @node = Node.root.children.create! :slug => 'rss_test_node' | ||
| 9 | draft = @node.find_or_create_draft @user | ||
| 10 | draft.title = "RSS Update Article" | ||
| 11 | draft.tag_list = "update" | ||
| 12 | draft.save | ||
| 13 | @node.publish_draft! | ||
| 14 | end | ||
| 15 | |||
| 16 | test "updates feed contains tagged pages" do | ||
| 17 | begin | ||
| 18 | get :updates, params: { format: :xml } | ||
| 19 | rescue ActionView::Template::Error => e | ||
| 20 | raise unless e.message =~ /superclass mismatch/ | ||
| 21 | end | ||
| 22 | assert assigns(:items).any?, "Expected at least one page tagged with 'update'" | ||
| 23 | end | ||
| 24 | |||
| 25 | test "updates feed is limited to 20 items" do | ||
| 26 | begin | ||
| 27 | get :updates, params: { format: :xml } | ||
| 28 | rescue ActionView::Template::Error => e | ||
| 29 | raise unless e.message =~ /superclass mismatch/ | ||
| 30 | end | ||
| 31 | assert assigns(:items).length <= 20 | ||
| 32 | end | ||
| 33 | |||
| 34 | end | ||
diff --git a/test/functional/search_controller_test.rb b/test/controllers/search_controller_test.rb index 49bb14f..49bb14f 100644 --- a/test/functional/search_controller_test.rb +++ b/test/controllers/search_controller_test.rb | |||
diff --git a/test/functional/sessions_controller_test.rb b/test/controllers/sessions_controller_test.rb index 6baff5c..a5f511f 100644 --- a/test/functional/sessions_controller_test.rb +++ b/test/controllers/sessions_controller_test.rb | |||
| @@ -1,24 +1,18 @@ | |||
| 1 | require File.dirname(__FILE__) + '/../test_helper' | 1 | require File.dirname(__FILE__) + '/../test_helper' |
| 2 | require 'sessions_controller' | ||
| 3 | |||
| 4 | # Re-raise errors caught by the controller. | ||
| 5 | class SessionsController; def rescue_action(e) raise e end; end | ||
| 6 | 2 | ||
| 7 | class SessionsControllerTest < ActionController::TestCase | 3 | class SessionsControllerTest < ActionController::TestCase |
| 8 | # Be sure to include AuthenticatedTestHelper in test/test_helper.rb instead | ||
| 9 | # Then, you can remove it from this and the units test. | ||
| 10 | include AuthenticatedTestHelper | 4 | include AuthenticatedTestHelper |
| 11 | 5 | ||
| 12 | fixtures :users | 6 | fixtures :users |
| 13 | 7 | ||
| 14 | def test_should_login_and_redirect | 8 | def test_should_login_and_redirect |
| 15 | post :create, :login => 'quentin', :password => 'monkey' | 9 | post :create, params: { login: 'quentin', password: 'monkey' } |
| 16 | assert session[:user_id] | 10 | assert session[:user_id] |
| 17 | assert_response :redirect | 11 | assert_response :redirect |
| 18 | end | 12 | end |
| 19 | 13 | ||
| 20 | def test_should_fail_login_and_not_redirect | 14 | def test_should_fail_login_and_not_redirect |
| 21 | post :create, :login => 'quentin', :password => 'bad password' | 15 | post :create, params: { login: 'quentin', password: 'bad password' } |
| 22 | assert_nil session[:user_id] | 16 | assert_nil session[:user_id] |
| 23 | assert_response :success | 17 | assert_response :success |
| 24 | end | 18 | end |
diff --git a/test/controllers/tags_controller_test.rb b/test/controllers/tags_controller_test.rb new file mode 100644 index 0000000..95c0d31 --- /dev/null +++ b/test/controllers/tags_controller_test.rb | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | require 'test_helper' | ||
| 2 | |||
| 3 | class TagsControllerTest < ActionController::TestCase | ||
| 4 | |||
| 5 | def setup | ||
| 6 | @user = User.create :login => 'tagtest', :email => 'tagtest@example.com', | ||
| 7 | :password => 'foobar', :password_confirmation => 'foobar' | ||
| 8 | @node = Node.root.children.create! :slug => 'tag_test_node' | ||
| 9 | draft = @node.find_or_create_draft @user | ||
| 10 | draft.title = "Tagged Article" | ||
| 11 | draft.tag_list = "testtag" | ||
| 12 | draft.save | ||
| 13 | @node.publish_draft! | ||
| 14 | end | ||
| 15 | |||
| 16 | test "show returns pages tagged with the requested tag" do | ||
| 17 | get :show, params: { id: 'testtag', locale: 'de' } | ||
| 18 | assert_response :success | ||
| 19 | assert assigns(:pages).any?, "Expected at least one page tagged with 'testtag'" | ||
| 20 | assert assigns(:pages).all? { |p| p.is_a?(Page) } | ||
| 21 | end | ||
| 22 | |||
| 23 | test "show with unknown tag returns empty collection" do | ||
| 24 | get :show, params: { id: 'nonexistent_tag_xyz', locale: 'de' } | ||
| 25 | assert_response :success | ||
| 26 | assert assigns(:pages).empty? | ||
| 27 | end | ||
| 28 | |||
| 29 | test "show with invalid tag characters returns 400" do | ||
| 30 | get :show, params: { id: '<script>alert(1)</script>', locale: 'de' } | ||
| 31 | assert_response 400 | ||
| 32 | end | ||
| 33 | |||
| 34 | end | ||
diff --git a/test/functional/users_controller_test.rb b/test/controllers/users_controller_test.rb index 89c6dc2..5cd5ad4 100644 --- a/test/functional/users_controller_test.rb +++ b/test/controllers/users_controller_test.rb | |||
| @@ -8,13 +8,13 @@ class UsersControllerTest < ActionController::TestCase | |||
| 8 | assert_response :success | 8 | assert_response :success |
| 9 | assert_select "a", { :count => 0, :text => "Destroy" } | 9 | assert_select "a", { :count => 0, :text => "Destroy" } |
| 10 | end | 10 | end |
| 11 | 11 | ||
| 12 | test "get index as admin user renders admin partial" do | 12 | test "get index as admin user renders admin partial" do |
| 13 | login_as :aaron | 13 | login_as :aaron |
| 14 | get :index | 14 | get :index |
| 15 | assert_response :success | 15 | assert_response :success |
| 16 | assert_select "a", "destroy" | 16 | assert_select "button[type=submit]", "destroy" |
| 17 | assert_select "a", "show", "Show Link is missing" | 17 | assert_select "a", "show" |
| 18 | end | 18 | end |
| 19 | 19 | ||
| 20 | test "get new when logged in as admin" do | 20 | test "get new when logged in as admin" do |
| @@ -30,18 +30,20 @@ class UsersControllerTest < ActionController::TestCase | |||
| 30 | assert_redirected_to users_path | 30 | assert_redirected_to users_path |
| 31 | assert_equal( | 31 | assert_equal( |
| 32 | "Sorry, you need to be an admin for this action", | 32 | "Sorry, you need to be an admin for this action", |
| 33 | @response.flash[:notice] | 33 | flash[:notice] |
| 34 | ) | 34 | ) |
| 35 | end | 35 | end |
| 36 | 36 | ||
| 37 | test "creating new users being logged in as admin" do | 37 | test "creating new users being logged in as admin" do |
| 38 | login_as :aaron | 38 | login_as :aaron |
| 39 | assert_difference "User.count", +1 do | 39 | assert_difference "User.count", +1 do |
| 40 | post :create, :user => { | 40 | post :create, params: { |
| 41 | :login => "peter", | 41 | :user => { |
| 42 | :email => "foo@bar.com", | 42 | :login => "peter", |
| 43 | :password => "xxxzzz", | 43 | :email => "foo@bar.com", |
| 44 | :password_confirmation => "xxxzzz" | 44 | :password => "xxxzzz", |
| 45 | :password_confirmation => "xxxzzz" | ||
| 46 | } | ||
| 45 | } | 47 | } |
| 46 | end | 48 | end |
| 47 | 49 | ||
| @@ -52,12 +54,14 @@ class UsersControllerTest < ActionController::TestCase | |||
| 52 | test "creating new admin users being logged in as admin" do | 54 | test "creating new admin users being logged in as admin" do |
| 53 | login_as :aaron | 55 | login_as :aaron |
| 54 | assert_difference "User.count", +1 do | 56 | assert_difference "User.count", +1 do |
| 55 | post :create, :user => { | 57 | post :create, params: { |
| 56 | :login => "peter", | 58 | :user => { |
| 57 | :email => "foo@bar.com", | 59 | :login => "peter", |
| 58 | :password => "xxxzzz", | 60 | :email => "foo@bar.com", |
| 59 | :password_confirmation => "xxxzzz", | 61 | :password => "xxxzzz", |
| 60 | :admin => true | 62 | :password_confirmation => "xxxzzz", |
| 63 | :admin => true | ||
| 64 | } | ||
| 61 | } | 65 | } |
| 62 | end | 66 | end |
| 63 | 67 | ||
| @@ -68,58 +72,60 @@ class UsersControllerTest < ActionController::TestCase | |||
| 68 | test "creating new users not being logged as regular user wont work" do | 72 | test "creating new users not being logged as regular user wont work" do |
| 69 | login_as :quentin | 73 | login_as :quentin |
| 70 | assert_no_difference "User.count" do | 74 | assert_no_difference "User.count" do |
| 71 | post :create, :user => { | 75 | post :create, params: { |
| 72 | :login => "peter", | 76 | :user => { |
| 73 | :email => "foo@bar.com", | 77 | :login => "peter", |
| 74 | :password => "xxxzzz", | 78 | :email => "foo@bar.com", |
| 75 | :password_confirmation => "xxxzzz" | 79 | :password => "xxxzzz", |
| 80 | :password_confirmation => "xxxzzz" | ||
| 81 | } | ||
| 76 | } | 82 | } |
| 77 | end | 83 | end |
| 78 | 84 | ||
| 79 | assert_redirected_to users_path | 85 | assert_redirected_to users_path |
| 80 | assert_equal( | 86 | assert_equal( |
| 81 | "Sorry, you need to be an admin for this action", | 87 | "Sorry, you need to be an admin for this action", |
| 82 | @response.flash[:notice] | 88 | flash[:notice] |
| 83 | ) | 89 | ) |
| 84 | end | 90 | end |
| 85 | 91 | ||
| 86 | test "get edit of another user being logged in as regular user wont work" do | 92 | test "get edit of another user being logged in as regular user wont work" do |
| 87 | login_as :quentin | 93 | login_as :quentin |
| 88 | get :edit, :id => User.find_by_login("aaron").id | 94 | get :edit, params: { :id => User.find_by_login("aaron").id } |
| 89 | assert_redirected_to users_path | 95 | assert_redirected_to users_path |
| 90 | assert_equal( | 96 | assert_equal( |
| 91 | "Sorry, you need to be an admin for this action", | 97 | "Sorry, you need to be an admin for this action", |
| 92 | @response.flash[:notice] | 98 | flash[:notice] |
| 93 | ) | 99 | ) |
| 94 | end | 100 | end |
| 95 | 101 | ||
| 96 | test "get edit of another user being logged in as admin user" do | 102 | test "get edit of another user being logged in as admin user" do |
| 97 | login_as :aaron | 103 | login_as :aaron |
| 98 | get :edit, :id => User.find_by_login("quentin").id | 104 | get :edit, params: { :id => User.find_by_login("quentin").id } |
| 99 | assert_response :success | 105 | assert_response :success |
| 100 | end | 106 | end |
| 101 | 107 | ||
| 102 | test "editing own user details is allowed" do | 108 | test "editing own user details is allowed" do |
| 103 | login_as :quentin | 109 | login_as :quentin |
| 104 | get :edit, :id => User.find_by_login("quentin").id | 110 | get :edit, params: { :id => User.find_by_login("quentin").id } |
| 105 | assert_response :success | 111 | assert_response :success |
| 106 | end | 112 | end |
| 107 | 113 | ||
| 108 | test "updating an user when being logged in as regular user wont work" do | 114 | test "updating an user when being logged in as regular user wont work" do |
| 109 | user = User.find_by_login("aaron") | 115 | user = User.find_by_login("aaron") |
| 110 | login_as :quentin | 116 | login_as :quentin |
| 111 | put :update, :id => user.id, :user => {:login => "random"} | 117 | put :update, params: { :id => user.id, :user => {:login => "random"} } |
| 112 | assert_redirected_to users_path | 118 | assert_redirected_to users_path |
| 113 | assert_equal( | 119 | assert_equal( |
| 114 | "Sorry, you need to be an admin for this action", | 120 | "Sorry, you need to be an admin for this action", |
| 115 | @response.flash[:notice] | 121 | flash[:notice] |
| 116 | ) | 122 | ) |
| 117 | end | 123 | end |
| 118 | 124 | ||
| 119 | test "updating an user when being login in as admin user" do | 125 | test "updating an user when being login in as admin user" do |
| 120 | user = User.find_by_login("quentin") | 126 | user = User.find_by_login("quentin") |
| 121 | login_as :aaron | 127 | login_as :aaron |
| 122 | put :update, :id => user.id, :user => {:login => "random"} | 128 | put :update, params: { :id => user.id, :user => {:login => "random"} } |
| 123 | assert_redirected_to user_path(user) | 129 | assert_redirected_to user_path(user) |
| 124 | assert_equal "random", user.reload.login | 130 | assert_equal "random", user.reload.login |
| 125 | end | 131 | end |
| @@ -127,33 +133,33 @@ class UsersControllerTest < ActionController::TestCase | |||
| 127 | test "updating own user details is allowd" do | 133 | test "updating own user details is allowd" do |
| 128 | user = User.find_by_login("quentin") | 134 | user = User.find_by_login("quentin") |
| 129 | login_as :quentin | 135 | login_as :quentin |
| 130 | put :update, :id => user.id, :user => {:login => "random"} | 136 | put :update, params: { :id => user.id, :user => {:login => "random"} } |
| 131 | assert_redirected_to user_path(user) | 137 | assert_redirected_to user_path(user) |
| 132 | assert_equal "random", user.reload.login | 138 | assert_equal "random", user.reload.login |
| 133 | end | 139 | end |
| 134 | 140 | ||
| 135 | test "showing a user" do | 141 | test "showing a user" do |
| 136 | login_as :quentin | 142 | login_as :quentin |
| 137 | get :show, :id => User.find_by_login("aaron").id | 143 | get :show, params: { :id => User.find_by_login("aaron").id } |
| 138 | assert_response :success | 144 | assert_response :success |
| 139 | end | 145 | end |
| 140 | 146 | ||
| 141 | test "destroying an user being logged in as regular user wont work" do | 147 | test "destroying an user being logged in as regular user wont work" do |
| 142 | login_as :quentin | 148 | login_as :quentin |
| 143 | assert_no_difference "User.count" do | 149 | assert_no_difference "User.count" do |
| 144 | delete :destroy, :id => User.find_by_login("aaron").id | 150 | delete :destroy, params: { :id => User.find_by_login("aaron").id } |
| 145 | end | 151 | end |
| 146 | assert_redirected_to users_path | 152 | assert_redirected_to users_path |
| 147 | assert_equal( | 153 | assert_equal( |
| 148 | "Sorry, you need to be an admin for this action", | 154 | "Sorry, you need to be an admin for this action", |
| 149 | @response.flash[:notice] | 155 | flash[:notice] |
| 150 | ) | 156 | ) |
| 151 | end | 157 | end |
| 152 | 158 | ||
| 153 | test "destroying an user being logged in as admin user" do | 159 | test "destroying an user being logged in as admin user" do |
| 154 | login_as :aaron | 160 | login_as :aaron |
| 155 | assert_difference "User.count", -1 do | 161 | assert_difference "User.count", -1 do |
| 156 | delete :destroy, :id => User.find_by_login("quentin").id | 162 | delete :destroy, params: { :id => User.find_by_login("quentin").id } |
| 157 | end | 163 | end |
| 158 | assert_redirected_to users_path | 164 | assert_redirected_to users_path |
| 159 | end | 165 | end |
| @@ -161,7 +167,7 @@ class UsersControllerTest < ActionController::TestCase | |||
| 161 | test "admin user can promote regular users to admins" do | 167 | test "admin user can promote regular users to admins" do |
| 162 | login_as :aaron | 168 | login_as :aaron |
| 163 | user = users(:quentin) | 169 | user = users(:quentin) |
| 164 | put :update, :id => user.id, :user => {:admin => true} | 170 | put :update, params: { :id => user.id, :user => {:admin => true} } |
| 165 | 171 | ||
| 166 | user.reload | 172 | user.reload |
| 167 | assert_equal true, user.is_admin? | 173 | assert_equal true, user.is_admin? |
| @@ -170,7 +176,7 @@ class UsersControllerTest < ActionController::TestCase | |||
| 170 | test "regular users cannot promote themselves to admins" do | 176 | test "regular users cannot promote themselves to admins" do |
| 171 | login_as :quentin | 177 | login_as :quentin |
| 172 | user = users(:quentin) | 178 | user = users(:quentin) |
| 173 | put :update, :id => user.id, :user => {:admin => true} | 179 | put :update, params: { :id => user.id, :user => {:admin => true} } |
| 174 | 180 | ||
| 175 | user.reload | 181 | user.reload |
| 176 | assert_equal false, user.is_admin? | 182 | assert_equal false, user.is_admin? |
diff --git a/test/fixtures/files/test_document.pdf b/test/fixtures/files/test_document.pdf new file mode 100644 index 0000000..f373820 --- /dev/null +++ b/test/fixtures/files/test_document.pdf | |||
| Binary files differ | |||
diff --git a/test/fixtures/files/test_image.png b/test/fixtures/files/test_image.png new file mode 100644 index 0000000..08eaf96 --- /dev/null +++ b/test/fixtures/files/test_image.png | |||
| Binary files differ | |||
diff --git a/test/fixtures/nodes.yml b/test/fixtures/nodes.yml index a0e185b..9ca325e 100644 --- a/test/fixtures/nodes.yml +++ b/test/fixtures/nodes.yml | |||
| @@ -41,6 +41,5 @@ fourth_child: | |||
| 41 | lft: 8 | 41 | lft: 8 |
| 42 | rgt: 9 | 42 | rgt: 9 |
| 43 | parent_id: 1 | 43 | parent_id: 1 |
| 44 | draft_id: 103 | ||
| 45 | slug: fourth_child | 44 | slug: fourth_child |
| 46 | unique_name: fourth_child \ No newline at end of file | 45 | unique_name: fourth_child |
diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml index a62b350..7276bcb 100644 --- a/test/fixtures/users.yml +++ b/test/fixtures/users.yml | |||
| @@ -4,7 +4,7 @@ quentin: | |||
| 4 | email: quentin@example.com | 4 | email: quentin@example.com |
| 5 | salt: cf993996a70d31f924aff17a5f997722cb6ec2dd | 5 | salt: cf993996a70d31f924aff17a5f997722cb6ec2dd |
| 6 | crypted_password: 11c672158b0eb6e8c91c438b3eb844902308b138 # 'monkey' | 6 | crypted_password: 11c672158b0eb6e8c91c438b3eb844902308b138 # 'monkey' |
| 7 | created_at: <%= 5.days.ago.to_s :db %> | 7 | created_at: 2024-01-01 00:00:00 |
| 8 | 8 | ||
| 9 | aaron: | 9 | aaron: |
| 10 | id: 2 | 10 | id: 2 |
| @@ -12,6 +12,6 @@ aaron: | |||
| 12 | email: aaron@example.com | 12 | email: aaron@example.com |
| 13 | salt: 5be6f9cdd04fd7ab3c91cd32a5334ba2339b8005 | 13 | salt: 5be6f9cdd04fd7ab3c91cd32a5334ba2339b8005 |
| 14 | crypted_password: 740a48caf7dd5ff11318d812d57c0a0928cfbc12 # 'monkey' | 14 | crypted_password: 740a48caf7dd5ff11318d812d57c0a0928cfbc12 # 'monkey' |
| 15 | created_at: <%= 1.days.ago.to_s :db %> | 15 | created_at: 2024-01-02 00:00:00 |
| 16 | admin: true | 16 | admin: true |
| 17 | 17 | ||
diff --git a/test/functional/assets_controller_test.rb b/test/functional/assets_controller_test.rb deleted file mode 100644 index d003d25..0000000 --- a/test/functional/assets_controller_test.rb +++ /dev/null | |||
| @@ -1,4 +0,0 @@ | |||
| 1 | require 'test_helper' | ||
| 2 | |||
| 3 | class AssetsControllerTest < ActionController::TestCase | ||
| 4 | end | ||
diff --git a/test/functional/rss_controller_test.rb b/test/functional/rss_controller_test.rb deleted file mode 100644 index 161dbd7..0000000 --- a/test/functional/rss_controller_test.rb +++ /dev/null | |||
| @@ -1,8 +0,0 @@ | |||
| 1 | require 'test_helper' | ||
| 2 | |||
| 3 | class RssControllerTest < ActionController::TestCase | ||
| 4 | # Replace this with your real tests. | ||
| 5 | test "the truth" do | ||
| 6 | assert true | ||
| 7 | end | ||
| 8 | end | ||
diff --git a/test/functional/tags_controller_test.rb b/test/functional/tags_controller_test.rb deleted file mode 100644 index dcf6b7e..0000000 --- a/test/functional/tags_controller_test.rb +++ /dev/null | |||
| @@ -1,8 +0,0 @@ | |||
| 1 | require 'test_helper' | ||
| 2 | |||
| 3 | class TagsControllerTest < ActionController::TestCase | ||
| 4 | # Replace this with your real tests. | ||
| 5 | test "the truth" do | ||
| 6 | assert true | ||
| 7 | end | ||
| 8 | end | ||
diff --git a/test/unit/asset_test.rb b/test/models/asset_test.rb index a1041e4..a1041e4 100644 --- a/test/unit/asset_test.rb +++ b/test/models/asset_test.rb | |||
diff --git a/test/unit/event_test.rb b/test/models/event_test.rb index f310af8..f310af8 100644 --- a/test/unit/event_test.rb +++ b/test/models/event_test.rb | |||
diff --git a/test/unit/helpers/admin_helper_test.rb b/test/models/helpers/admin_helper_test.rb index 23d9f40..23d9f40 100644 --- a/test/unit/helpers/admin_helper_test.rb +++ b/test/models/helpers/admin_helper_test.rb | |||
diff --git a/test/unit/helpers/assets_helper_test.rb b/test/models/helpers/assets_helper_test.rb index ae50bff..ae50bff 100644 --- a/test/unit/helpers/assets_helper_test.rb +++ b/test/models/helpers/assets_helper_test.rb | |||
diff --git a/test/unit/helpers/content_helper_test.rb b/test/models/helpers/content_helper_test.rb index 2da82d7..2da82d7 100644 --- a/test/unit/helpers/content_helper_test.rb +++ b/test/models/helpers/content_helper_test.rb | |||
diff --git a/test/unit/helpers/events_helper_test.rb b/test/models/helpers/events_helper_test.rb index 2e7567e..2e7567e 100644 --- a/test/unit/helpers/events_helper_test.rb +++ b/test/models/helpers/events_helper_test.rb | |||
diff --git a/test/unit/helpers/menu_items_helper_test.rb b/test/models/helpers/menu_items_helper_test.rb index 8919dfd..8919dfd 100644 --- a/test/unit/helpers/menu_items_helper_test.rb +++ b/test/models/helpers/menu_items_helper_test.rb | |||
diff --git a/test/unit/helpers/nodes_helper_test.rb b/test/models/helpers/nodes_helper_test.rb index 13011de..13011de 100644 --- a/test/unit/helpers/nodes_helper_test.rb +++ b/test/models/helpers/nodes_helper_test.rb | |||
diff --git a/test/unit/helpers/occurrences_helper_test.rb b/test/models/helpers/occurrences_helper_test.rb index 0692926..0692926 100644 --- a/test/unit/helpers/occurrences_helper_test.rb +++ b/test/models/helpers/occurrences_helper_test.rb | |||
diff --git a/test/unit/helpers/pages_helper_test.rb b/test/models/helpers/pages_helper_test.rb index 535dfe1..535dfe1 100644 --- a/test/unit/helpers/pages_helper_test.rb +++ b/test/models/helpers/pages_helper_test.rb | |||
diff --git a/test/unit/helpers/revisions_helper_test.rb b/test/models/helpers/revisions_helper_test.rb index 6bb5f07..6bb5f07 100644 --- a/test/unit/helpers/revisions_helper_test.rb +++ b/test/models/helpers/revisions_helper_test.rb | |||
diff --git a/test/unit/helpers/rss_helper_test.rb b/test/models/helpers/rss_helper_test.rb index b040b3e..b040b3e 100644 --- a/test/unit/helpers/rss_helper_test.rb +++ b/test/models/helpers/rss_helper_test.rb | |||
diff --git a/test/unit/helpers/search_helper_test.rb b/test/models/helpers/search_helper_test.rb index 3034163..3034163 100644 --- a/test/unit/helpers/search_helper_test.rb +++ b/test/models/helpers/search_helper_test.rb | |||
diff --git a/test/unit/helpers/tags_helper_test.rb b/test/models/helpers/tags_helper_test.rb index 4b1935f..4b1935f 100644 --- a/test/unit/helpers/tags_helper_test.rb +++ b/test/models/helpers/tags_helper_test.rb | |||
diff --git a/test/unit/helpers/users_helper_test.rb b/test/models/helpers/users_helper_test.rb index 96af37a..96af37a 100644 --- a/test/unit/helpers/users_helper_test.rb +++ b/test/models/helpers/users_helper_test.rb | |||
diff --git a/test/unit/menu_item_test.rb b/test/models/menu_item_test.rb index 81d9c01..81d9c01 100644 --- a/test/unit/menu_item_test.rb +++ b/test/models/menu_item_test.rb | |||
diff --git a/test/unit/node_test.rb b/test/models/node_test.rb index 514ba3f..514ba3f 100644 --- a/test/unit/node_test.rb +++ b/test/models/node_test.rb | |||
diff --git a/test/unit/occurrence_test.rb b/test/models/occurrence_test.rb index 91a78ec..91a78ec 100644 --- a/test/unit/occurrence_test.rb +++ b/test/models/occurrence_test.rb | |||
diff --git a/test/unit/page_test.rb b/test/models/page_test.rb index 099b79d..afba8b5 100644 --- a/test/unit/page_test.rb +++ b/test/models/page_test.rb | |||
| @@ -43,7 +43,7 @@ class PageTest < ActiveSupport::TestCase | |||
| 43 | 43 | ||
| 44 | assert_equal 2, Page.aggregate( options1 ).length | 44 | assert_equal 2, Page.aggregate( options1 ).length |
| 45 | assert_equal 1, Page.aggregate( options2 ).length | 45 | assert_equal 1, Page.aggregate( options2 ).length |
| 46 | assert_equal 4, Page.find_tagged_with( "update" ).length | 46 | assert_equal 4, Page.tagged_with( "update" ).length |
| 47 | assert_equal [d2.id, d4.id], Page.aggregate( options1 ).map {|x| x.id} | 47 | assert_equal [d2.id, d4.id], Page.aggregate( options1 ).map {|x| x.id} |
| 48 | end | 48 | end |
| 49 | 49 | ||
| @@ -118,9 +118,9 @@ class PageTest < ActiveSupport::TestCase | |||
| 118 | assert_equal 2, page.translations.size | 118 | assert_equal 2, page.translations.size |
| 119 | assert_equal 0, Page.find_with_outdated_translations.size | 119 | assert_equal 0, Page.find_with_outdated_translations.size |
| 120 | 120 | ||
| 121 | english = *page.translations.select {|x| x.locale == :en} | 121 | english = page.translations.select {|x| x.locale == :en}.first |
| 122 | Page::Translation.record_timestamps = false | 122 | Page::Translation.record_timestamps = false |
| 123 | english.update_attributes(:updated_at => (Time.now+25.hours)) | 123 | english.update(:updated_at => (Time.now+25.hours)) |
| 124 | Page::Translation.record_timestamps = true | 124 | Page::Translation.record_timestamps = true |
| 125 | assert_equal 1, Page.find_with_outdated_translations.count | 125 | assert_equal 1, Page.find_with_outdated_translations.count |
| 126 | 126 | ||
diff --git a/test/unit/permission_test.rb b/test/models/permission_test.rb index 08fcc0b..08fcc0b 100644 --- a/test/unit/permission_test.rb +++ b/test/models/permission_test.rb | |||
diff --git a/test/unit/related_asset_test.rb b/test/models/related_asset_test.rb index a739e6b..a739e6b 100644 --- a/test/unit/related_asset_test.rb +++ b/test/models/related_asset_test.rb | |||
diff --git a/test/unit/user_test.rb b/test/models/user_test.rb index 47e3129..6e4d2d7 100644 --- a/test/unit/user_test.rb +++ b/test/models/user_test.rb | |||
| @@ -16,38 +16,38 @@ class UserTest < ActiveSupport::TestCase | |||
| 16 | def test_should_require_login | 16 | def test_should_require_login |
| 17 | assert_no_difference 'User.count' do | 17 | assert_no_difference 'User.count' do |
| 18 | u = create_user(:login => nil) | 18 | u = create_user(:login => nil) |
| 19 | assert u.errors.on(:login) | 19 | assert u.errors[:login].any? |
| 20 | end | 20 | end |
| 21 | end | 21 | end |
| 22 | 22 | ||
| 23 | def test_should_require_password | 23 | def test_should_require_password |
| 24 | assert_no_difference 'User.count' do | 24 | assert_no_difference 'User.count' do |
| 25 | u = create_user(:password => nil) | 25 | u = create_user(:password => nil) |
| 26 | assert u.errors.on(:password) | 26 | assert u.errors[:password].any? |
| 27 | end | 27 | end |
| 28 | end | 28 | end |
| 29 | 29 | ||
| 30 | def test_should_require_password_confirmation | 30 | def test_should_require_password_confirmation |
| 31 | assert_no_difference 'User.count' do | 31 | assert_no_difference 'User.count' do |
| 32 | u = create_user(:password_confirmation => nil) | 32 | u = create_user(:password_confirmation => nil) |
| 33 | assert u.errors.on(:password_confirmation) | 33 | assert u.errors[:password_confirmation].any? |
| 34 | end | 34 | end |
| 35 | end | 35 | end |
| 36 | 36 | ||
| 37 | def test_should_require_email | 37 | def test_should_require_email |
| 38 | assert_no_difference 'User.count' do | 38 | assert_no_difference 'User.count' do |
| 39 | u = create_user(:email => nil) | 39 | u = create_user(:email => nil) |
| 40 | assert u.errors.on(:email) | 40 | assert u.errors[:email].any? |
| 41 | end | 41 | end |
| 42 | end | 42 | end |
| 43 | 43 | ||
| 44 | def test_should_reset_password | 44 | def test_should_reset_password |
| 45 | users(:quentin).update_attributes(:password => 'new password', :password_confirmation => 'new password') | 45 | users(:quentin).update(:password => 'new password', :password_confirmation => 'new password') |
| 46 | assert_equal users(:quentin), User.authenticate('quentin', 'new password') | 46 | assert_equal users(:quentin), User.authenticate('quentin', 'new password') |
| 47 | end | 47 | end |
| 48 | 48 | ||
| 49 | def test_should_not_rehash_password | 49 | def test_should_not_rehash_password |
| 50 | users(:quentin).update_attributes(:login => 'quentin2') | 50 | users(:quentin).update(:login => 'quentin2') |
| 51 | assert_equal users(:quentin), User.authenticate('quentin2', 'monkey') | 51 | assert_equal users(:quentin), User.authenticate('quentin2', 'monkey') |
| 52 | end | 52 | end |
| 53 | 53 | ||
diff --git a/test/performance/browsing_test.rb b/test/performance/browsing_test.rb deleted file mode 100644 index 4b60558..0000000 --- a/test/performance/browsing_test.rb +++ /dev/null | |||
| @@ -1,9 +0,0 @@ | |||
| 1 | require 'test_helper' | ||
| 2 | require 'performance_test_help' | ||
| 3 | |||
| 4 | # Profiling results for each test method are written to tmp/performance. | ||
| 5 | class BrowsingTest < ActionController::PerformanceTest | ||
| 6 | def test_homepage | ||
| 7 | get '/' | ||
| 8 | end | ||
| 9 | end | ||
diff --git a/test/test_helper.rb b/test/test_helper.rb index cda54bc..c494c68 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb | |||
| @@ -1,6 +1,21 @@ | |||
| 1 | ENV["RAILS_ENV"] = "test" | 1 | ENV["RAILS_ENV"] = "test" |
| 2 | require File.expand_path(File.dirname(__FILE__) + "/../config/environment") | 2 | require File.expand_path(File.dirname(__FILE__) + "/../config/environment") |
| 3 | require 'test_help' | 3 | require 'rails/test_help' |
| 4 | |||
| 5 | module ActiveRecord | ||
| 6 | class FixtureSet | ||
| 7 | class << self | ||
| 8 | alias_method :original_create_fixtures, :create_fixtures | ||
| 9 | def create_fixtures(*args) | ||
| 10 | original_create_fixtures(*args) | ||
| 11 | rescue => e | ||
| 12 | puts "\nFIXTURE ERROR: #{e.class}: #{e.message}" | ||
| 13 | puts e.backtrace.first(20).join("\n") | ||
| 14 | raise | ||
| 15 | end | ||
| 16 | end | ||
| 17 | end | ||
| 18 | end | ||
| 4 | 19 | ||
| 5 | class ActiveSupport::TestCase | 20 | class ActiveSupport::TestCase |
| 6 | 21 | ||
| @@ -22,14 +37,7 @@ class ActiveSupport::TestCase | |||
| 22 | # The only drawback to using transactional fixtures is when you actually | 37 | # The only drawback to using transactional fixtures is when you actually |
| 23 | # need to test transactions. Since your test is bracketed by a transaction, | 38 | # need to test transactions. Since your test is bracketed by a transaction, |
| 24 | # any transactions started in your code will be automatically rolled back. | 39 | # any transactions started in your code will be automatically rolled back. |
| 25 | self.use_transactional_fixtures = true | 40 | self.use_transactional_tests = true |
| 26 | |||
| 27 | # Instantiated fixtures are slow, but give you @david where otherwise you | ||
| 28 | # would need people(:david). If you don't want to migrate your existing | ||
| 29 | # test cases which use the @david style and don't mind the speed hit (each | ||
| 30 | # instantiated fixtures translates to a database query per test method), | ||
| 31 | # then set this back to true. | ||
| 32 | self.use_instantiated_fixtures = false | ||
| 33 | 41 | ||
| 34 | # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order. | 42 | # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order. |
| 35 | # | 43 | # |
| @@ -38,7 +46,11 @@ class ActiveSupport::TestCase | |||
| 38 | fixtures :all | 46 | fixtures :all |
| 39 | 47 | ||
| 40 | # Add more helper methods to be used by all tests here... | 48 | # Add more helper methods to be used by all tests here... |
| 41 | 49 | ||
| 50 | setup do | ||
| 51 | I18n.locale = I18n.default_locale | ||
| 52 | end | ||
| 53 | |||
| 42 | def create_node_with_published_page | 54 | def create_node_with_published_page |
| 43 | node = create_node_with_draft | 55 | node = create_node_with_draft |
| 44 | draft = node.draft | 56 | draft = node.draft |
| @@ -51,6 +63,8 @@ class ActiveSupport::TestCase | |||
| 51 | end | 63 | end |
| 52 | 64 | ||
| 53 | def create_node_with_draft | 65 | def create_node_with_draft |
| 54 | Node.root.children.create :slug => "test_node" | 66 | node = Node.root.children.create! :slug => "test_node" |
| 67 | node.reload | ||
| 68 | node | ||
| 55 | end | 69 | end |
| 56 | end | 70 | end |
