Merge pull request #84 from sukima/fix_projects_api_crash

Fix projects api crash
This commit is contained in:
Reinier Balt 2012-07-11 06:36:51 -07:00
commit 23b92d853a
2 changed files with 34 additions and 2 deletions

View file

@ -31,14 +31,13 @@ class ProjectsController < ApplicationController
@completed_count = current_user.projects.completed.count @completed_count = current_user.projects.completed.count
@no_projects = current_user.projects.empty? @no_projects = current_user.projects.empty?
current_user.projects.cache_note_counts current_user.projects.cache_note_counts
@new_project = current_user.projects.build
end end
format.m do format.m do
@completed_projects = current_user.projects.completed @completed_projects = current_user.projects.completed
@down_count = @active_projects.size + @hidden_projects.size + @completed_projects.size @down_count = @active_projects.size + @hidden_projects.size + @completed_projects.size
cookies[:mobile_url]= {:value => request.fullpath, :secure => SITE_CONFIG['secure_cookies']} cookies[:mobile_url]= {:value => request.fullpath, :secure => SITE_CONFIG['secure_cookies']}
end end
format.xml { render :xml => @projects.all.to_xml( :except => :user_id ) } format.xml { render :xml => @projects.to_xml( :except => :user_id ) }
format.rss do format.rss do
@feed_title = I18n.t('models.project.feed_title') @feed_title = I18n.t('models.project.feed_title')
@feed_description = I18n.t('models.project.feed_description', :username => current_user.display_name) @feed_description = I18n.t('models.project.feed_description', :username => current_user.display_name)

View file

@ -222,4 +222,37 @@ class ProjectsControllerTest < ActionController::TestCase
assert_equal projects(:moremoney), exposed_projects[2] assert_equal projects(:moremoney), exposed_projects[2]
end end
# XML (REST API)
def test_xml_content
login_as(:admin_user)
get :index, { :format => "xml" }
assert_equal 'application/xml', @response.content_type
assert_xml_select 'projects' do
assert_select 'project', 3 do
assert_select 'name', /.+/
assert_select 'state', 'active'
end
end
end
def test_xml_not_accessible_to_anonymous_user_without_token
login_as nil
get :index, { :format => "xml" }
assert_response 401
end
def test_xml_not_accessible_to_anonymous_user_with_invalid_token
login_as nil
get :index, { :format => "xml", :token => 'foo' }
assert_response 401
end
def test_xml_not_accessible_to_anonymous_user_with_valid_token
login_as nil
get :index, { :format => "xml", :token => users(:admin_user).token }
assert_response 401
end
end end