diff --git a/tracks/app/controllers/feed_controller.rb b/tracks/app/controllers/feed_controller.rb index ed3e197d..0c81c432 100644 --- a/tracks/app/controllers/feed_controller.rb +++ b/tracks/app/controllers/feed_controller.rb @@ -48,6 +48,7 @@ class FeedController < ApplicationController def list_projects_only init_not_done_counts('project') + init_project_hidden_todo_counts @projects = @user.projects @description = "Lists all the projects for #{@user.login}." render :action => 'projects_' + params['feedtype'] diff --git a/tracks/app/helpers/feed_helper.rb b/tracks/app/helpers/feed_helper.rb index ed630644..a2683a0a 100644 --- a/tracks/app/helpers/feed_helper.rb +++ b/tracks/app/helpers/feed_helper.rb @@ -63,7 +63,7 @@ module FeedHelper end def format_ical_uid(todo) - sprintf("%s%s%s%s", @request.protocol, @request.host, @request.port_string, todo_url(todo)) + sprintf("%s%s%s%s", request.protocol, request.host, request.port_string, todo_url(todo)) end end diff --git a/tracks/app/views/feed/rss.rxml b/tracks/app/views/feed/rss.rxml index f1789351..39ce9069 100644 --- a/tracks/app/views/feed/rss.rxml +++ b/tracks/app/views/feed/rss.rxml @@ -14,7 +14,7 @@ xml.rss("version" => "2.0", "xmlns:dc" => "http://purl.org/dc/elements/1.1/") do done = "
Completed: #{format_date(i.completed_at)}
\n" if i.completed? context_link = link_to( i.context.name, context_url(i.context) ) if i.project_id? - project_link = link_to (i.project.name, project_url(i.project) ) + project_link = link_to(i.project.name, project_url(i.project) ) else project_link = "none" end diff --git a/tracks/test/integration/feed_smoke_test.rb b/tracks/test/integration/feed_smoke_test.rb new file mode 100644 index 00000000..27b6755a --- /dev/null +++ b/tracks/test/integration/feed_smoke_test.rb @@ -0,0 +1,103 @@ +require File.dirname(__FILE__) + '/../test_helper' +require 'projects_controller' +require 'contexts_controller' +require 'feed_controller' + +# Re-raise errors caught by the controller. +class ProjectsController; def rescue_action(e) raise e end; end +class ContextsController; def rescue_action(e) raise e end; end +class FeedController; def rescue_action(e) raise e end; end + +class FeedSmokeTest < ActionController::IntegrationTest + fixtures :users, :preferences, :projects, :contexts, :todos, :notes + + def setup + assert_test_environment_ok + end + + def test_last_15_actions_rss + assert_success "/feed/rss/admin/#{ users(:admin_user).word }?limit=15" + end + + def test_last_15_actions_txt + assert_success "/feed/text/admin/#{ users(:admin_user).word }?limit=15" + end + + def test_last_15_actions_ical + assert_success "/feed/ical/admin/#{ users(:admin_user).word }?limit=15" + end + + def test_all_actions_rss + assert_success "/feed/rss/admin/#{ users(:admin_user).word }" + end + + def test_all_actions_txt + assert_success "/feed/text/admin/#{ users(:admin_user).word }" + end + + def test_all_actions_ical + assert_success "/feed/ical/admin/#{ users(:admin_user).word }" + end + + def test_all_actions_due_today_or_earlier_rss + assert_success "/feed/rss/admin/#{ users(:admin_user).word }?due=0" + end + + def test_all_actions_due_today_or_earlier_txt + assert_success "/feed/text/admin/#{ users(:admin_user).word }?due=0" + end + + def test_all_actions_due_today_or_earlier_ical + assert_success "/feed/ical/admin/#{ users(:admin_user).word }?due=0" + end + + def test_all_actions_due_in_7_days_or_earlier_rss + assert_success "/feed/rss/admin/#{ users(:admin_user).word }?due=6" + end + + def test_all_actions_due_in_7_days_or_earlier_txt + assert_success "/feed/text/admin/#{ users(:admin_user).word }?due=6" + end + + def test_all_actions_due_in_7_days_or_earlier_ical + assert_success "/feed/ical/admin/#{ users(:admin_user).word }?due=6" + end + + def test_all_actions_completed_in_last_7_days_rss + assert_success "/feed/rss/admin/#{ users(:admin_user).word }?done=7" + end + + def test_all_actions_completed_in_last_7_days_txt + assert_success "/feed/text/admin/#{ users(:admin_user).word }?done=7" + end + + def test_all_contexts_rss + assert_success "/contexts/feed/rss/admin/#{ users(:admin_user).word }" + end + + def test_all_contexts_txt + assert_success "/contexts/feed/text/admin/#{ users(:admin_user).word }" + end + + def test_all_projects_rss + assert_success "/projects/feed/rss/admin/#{ users(:admin_user).word }" + end + + def test_all_projects_txt + assert_success "/projects/feed/text/admin/#{ users(:admin_user).word }" + end + + def test_all_projects_txt_with_hidden_project + p = projects(:timemachine) + p.hide! + assert_success "/projects/feed/text/admin/#{ users(:admin_user).word }" + end + + private + + def assert_success(url) + get url + assert_response :success + end + +end \ No newline at end of file