From c2d627bb432a665a41310f9c75644dadba45fe51 Mon Sep 17 00:00:00 2001 From: Devin Weaver Date: Thu, 7 Jun 2012 15:54:58 -0400 Subject: [PATCH 1/4] Removes redundent assignment of @new_project --- app/controllers/projects_controller.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 5605fc5c..9fba5216 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -31,7 +31,6 @@ class ProjectsController < ApplicationController @completed_count = current_user.projects.completed.count @no_projects = current_user.projects.empty? current_user.projects.cache_note_counts - @new_project = current_user.projects.build end format.m do @completed_projects = current_user.projects.completed From e71d23555e8986263c129bfaa0103adcb50a5b67 Mon Sep 17 00:00:00 2001 From: Devin Weaver Date: Thu, 7 Jun 2012 15:55:26 -0400 Subject: [PATCH 2/4] Fixes a crash when using the XML API The use of "http://localhost/projects.xml" would crash with missing method 'all' for object 'Array' This is because the variable @projects did not need to use all in the XML formatting since it was already assigned above and is now an array. --- app/controllers/projects_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 9fba5216..e5104a49 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -37,7 +37,7 @@ class ProjectsController < ApplicationController @down_count = @active_projects.size + @hidden_projects.size + @completed_projects.size cookies[:mobile_url]= {:value => request.fullpath, :secure => SITE_CONFIG['secure_cookies']} 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 @feed_title = I18n.t('models.project.feed_title') @feed_description = I18n.t('models.project.feed_description', :username => current_user.display_name) From dd0ec129ef4d335402b2b08f1234372ac07ca8be Mon Sep 17 00:00:00 2001 From: Devin Weaver Date: Thu, 7 Jun 2012 15:57:22 -0400 Subject: [PATCH 3/4] Adds functional tests for /projects.xml --- test/functional/projects_controller_test.rb | 34 +++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb index 7ec69685..e2fa10a7 100644 --- a/test/functional/projects_controller_test.rb +++ b/test/functional/projects_controller_test.rb @@ -221,5 +221,39 @@ class ProjectsControllerTest < ActionController::TestCase assert_equal projects(:gardenclean), exposed_projects[1] assert_equal projects(:moremoney), exposed_projects[2] end + + # XML (REST API) + + def test_xml_content + login_as(:admin_user) + get :index, { :format => "xml" } + assert_equal 'application/xml', @response.content_type + # puts @response.body + + 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 From fefc0594c4d7ea35c5cb5c61bfa45447a3fc6932 Mon Sep 17 00:00:00 2001 From: Devin Weaver Date: Mon, 9 Jul 2012 08:00:41 -0400 Subject: [PATCH 4/4] Removes unneeded comment An erroneous commented line was inserted into test/functional/projects_controller_test.rb this patch removes it. --- test/functional/projects_controller_test.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb index e2fa10a7..b78056be 100644 --- a/test/functional/projects_controller_test.rb +++ b/test/functional/projects_controller_test.rb @@ -228,7 +228,6 @@ class ProjectsControllerTest < ActionController::TestCase login_as(:admin_user) get :index, { :format => "xml" } assert_equal 'application/xml', @response.content_type - # puts @response.body assert_xml_select 'projects' do assert_select 'project', 3 do