diff --git a/doc/README_DEVELOPERS b/doc/README_DEVELOPERS index 685a7efc..b0a98d3e 100644 --- a/doc/README_DEVELOPERS +++ b/doc/README_DEVELOPERS @@ -8,6 +8,8 @@ Tracks is using See README for links to the respective sites +Also see the Development pages on the wiki for details on installing, upgrading, etc. + 2. Dependencies The dependencies are maintained by Tracks. For development we try not to vendor them diff --git a/features/recurring_todos.feature b/features/recurring_todos.feature index 2792bec8..9369510e 100644 --- a/features/recurring_todos.feature +++ b/features/recurring_todos.feature @@ -62,11 +62,26 @@ Feature: Manage recurring todos Then the pattern "I'm done" should be in the state list "active" And the state list "completed" should be empty + @selenium @wip Scenario: Following the recurring todo link of a todo takes me to the recurring todos page - Given this is a pending scenario + When I go to the home page + Then I should see the todo "run tests" + When I follow the recurring todo link of "run tests" + Then I should be on the repeating todos page + @selenium @wip Scenario: Deleting a recurring todo with ending pattern will show message - Given this is a pending scenario + When I go to the repeating todos page + And I mark the pattern "run tests" as complete + And I go to the home page + Then I should see "run tests" + When I delete the action "run tests" + Then I should see "@@message@@" + @selenium @wip Scenario: Deleting a recurring todo with active pattern will show new todo - Given this is a pending scenario + When I go to the home page + Then I should see "run tests" + When I delete the action "run tests" + Then I should see "@@message@@" + And I should see "run tests" in the context container for "test context" \ No newline at end of file diff --git a/features/step_definitions/recurring_todo_steps.rb b/features/step_definitions/recurring_todo_steps.rb index 48a0a864..eb68e0c1 100644 --- a/features/step_definitions/recurring_todo_steps.rb +++ b/features/step_definitions/recurring_todo_steps.rb @@ -84,6 +84,14 @@ When /^I mark the pattern "([^"]*)" as active$/ do |pattern_name| wait_for_ajax end +When /^I follow the recurring todo link of "([^"]*)"$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + recurring_todo_link = "div.todo_#{todo.id} div a.recurring_icon" + click_link recurring_todo_link +end + Then /^the state list "([^"]*)" should be empty$/ do |state| empty_id = "recurring-todos-empty-nd" if state.downcase == "active" empty_id = "completed-empty-nd" if state.downcase == "completed" diff --git a/vendor/rails/actionmailer/Rakefile b/vendor/rails/actionmailer/Rakefile index ba85056e..7e0a0239 100644 --- a/vendor/rails/actionmailer/Rakefile +++ b/vendor/rails/actionmailer/Rakefile @@ -54,7 +54,7 @@ spec = Gem::Specification.new do |s| s.rubyforge_project = "actionmailer" s.homepage = "http://www.rubyonrails.org" - s.add_dependency('actionpack', '= 2.3.12' + PKG_BUILD) + s.add_dependency('actionpack', '= 2.3.14' + PKG_BUILD) s.requirements << 'none' s.require_path = 'lib' diff --git a/vendor/rails/actionmailer/lib/action_mailer/version.rb b/vendor/rails/actionmailer/lib/action_mailer/version.rb index ce0b782e..7627ff22 100644 --- a/vendor/rails/actionmailer/lib/action_mailer/version.rb +++ b/vendor/rails/actionmailer/lib/action_mailer/version.rb @@ -2,7 +2,7 @@ module ActionMailer module VERSION #:nodoc: MAJOR = 2 MINOR = 3 - TINY = 12 + TINY = 14 STRING = [MAJOR, MINOR, TINY].join('.') end diff --git a/vendor/rails/actionpack/CHANGELOG b/vendor/rails/actionpack/CHANGELOG index af6b0be2..3270c72f 100644 --- a/vendor/rails/actionpack/CHANGELOG +++ b/vendor/rails/actionpack/CHANGELOG @@ -1935,7 +1935,7 @@ superclass' view_paths. [Rick Olson] * Update documentation for erb trim syntax. #5651 [matt@mattmargolis.net] -* Pass :id => nil or :class => nil to error_messages_for to supress that html attribute. #3586 [olivier_ansaldi@yahoo.com, sebastien@goetzilla.info] +* Pass :id => nil or :class => nil to error_messages_for to supress that html attribute. #3586 [olivier_ansaldi@yahoo.com] * Reset @html_document between requests so assert_tag works. #4810 [Jarkko Laine, easleydp@gmail.com] @@ -2532,7 +2532,7 @@ superclass' view_paths. [Rick Olson] * Provide support for decimal columns to form helpers. Closes #5672. [Dave Thomas] -* Pass :id => nil or :class => nil to error_messages_for to supress that html attribute. #3586 [olivier_ansaldi@yahoo.com, sebastien@goetzilla.info] +* Pass :id => nil or :class => nil to error_messages_for to supress that html attribute. #3586 [olivier_ansaldi@yahoo.com] * Reset @html_document between requests so assert_tag works. #4810 [Jarkko Laine, easleydp@gmail.com] diff --git a/vendor/rails/actionpack/Rakefile b/vendor/rails/actionpack/Rakefile index 004ed541..ce4c41aa 100644 --- a/vendor/rails/actionpack/Rakefile +++ b/vendor/rails/actionpack/Rakefile @@ -78,7 +78,7 @@ spec = Gem::Specification.new do |s| s.requirements << 'none' - s.add_dependency('activesupport', '= 2.3.12' + PKG_BUILD) + s.add_dependency('activesupport', '= 2.3.14' + PKG_BUILD) s.add_dependency('rack', '~> 1.1.0') s.require_path = 'lib' diff --git a/vendor/rails/actionpack/lib/action_controller/response.rb b/vendor/rails/actionpack/lib/action_controller/response.rb index 815f749e..ff1702e8 100644 --- a/vendor/rails/actionpack/lib/action_controller/response.rb +++ b/vendor/rails/actionpack/lib/action_controller/response.rb @@ -64,12 +64,13 @@ module ActionController # :nodoc: # the character set information will also be included in the content type # information. def content_type=(mime_type) - self.headers["Content-Type"] = + new_content_type = if mime_type =~ /charset/ || (c = charset).nil? mime_type.to_s else "#{mime_type}; charset=#{c}" end + self.headers["Content-Type"] = URI.escape(new_content_type, "\r\n") end # Returns the response's content MIME type, or nil if content type has been set. diff --git a/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb b/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb index 0cd05d8e..ae24723d 100644 --- a/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb +++ b/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb @@ -162,7 +162,7 @@ module HTML #:nodoc: end closing = ( scanner.scan(/\//) ? :close : nil ) - return Text.new(parent, line, pos, content) unless name = scanner.scan(/[-:\w\x00-\x09\x0b-\x0c\x0e-\x1f]+/) + return Text.new(parent, line, pos, content) unless name = scanner.scan(/[^\s!>\/]+/) name.downcase! unless closing diff --git a/vendor/rails/actionpack/lib/action_pack/version.rb b/vendor/rails/actionpack/lib/action_pack/version.rb index 010bfcb0..330eecb1 100644 --- a/vendor/rails/actionpack/lib/action_pack/version.rb +++ b/vendor/rails/actionpack/lib/action_pack/version.rb @@ -2,7 +2,7 @@ module ActionPack #:nodoc: module VERSION #:nodoc: MAJOR = 2 MINOR = 3 - TINY = 12 + TINY = 14 STRING = [MAJOR, MINOR, TINY].join('.') end diff --git a/vendor/rails/actionpack/test/controller/content_type_test.rb b/vendor/rails/actionpack/test/controller/content_type_test.rb index 32c1757e..852fbfaa 100644 --- a/vendor/rails/actionpack/test/controller/content_type_test.rb +++ b/vendor/rails/actionpack/test/controller/content_type_test.rb @@ -46,6 +46,11 @@ class ContentTypeController < ActionController::Base format.rss { render :text => "hello world!", :content_type => Mime::XML } end end + + def render_content_type_from_user_input + response.content_type= params[:hello] + render :text=>"hello" + end def rescue_action(e) raise end end @@ -129,6 +134,11 @@ class ContentTypeTest < ActionController::TestCase assert_equal Mime::HTML, @response.content_type assert_equal "utf-8", @response.charset end + + def test_user_supplied_value + get :render_content_type_from_user_input, :hello=>"hello/world\r\nAttack: true" + assert_equal "hello/world%0D%0AAttack: true", @response.content_type + end end class AcceptBasedContentTypeTest < ActionController::TestCase diff --git a/vendor/rails/actionpack/test/controller/html-scanner/sanitizer_test.rb b/vendor/rails/actionpack/test/controller/html-scanner/sanitizer_test.rb index 19235448..92032514 100644 --- a/vendor/rails/actionpack/test/controller/html-scanner/sanitizer_test.rb +++ b/vendor/rails/actionpack/test/controller/html-scanner/sanitizer_test.rb @@ -5,6 +5,13 @@ class SanitizerTest < ActionController::TestCase @sanitizer = nil # used by assert_sanitizer end + def test_strip_tags_with_quote + sanitizer = HTML::FullSanitizer.new + string = '<" hi' + + assert_equal ' hi', sanitizer.sanitize(string) + end + def test_strip_tags sanitizer = HTML::FullSanitizer.new assert_equal("<< '"', + 'MysqlAdapter' => '`', + 'Mysql2Adapter' => '`', + 'PostgreSQLAdapter' => '"', + 'OracleAdapter' => '"', + }.fetch(classname) { + raise "need a bad char for #{classname}" + } + + quoted = conn.quote_column_name "foo#{badchar}bar" + assert_equal("#{badchar}foo#{badchar * 2}bar#{badchar}", quoted) + end + def test_table_exists assert !NonExistentTable.table_exists? assert Topic.table_exists? diff --git a/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 b/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 deleted file mode 100644 index b3299c65..00000000 Binary files a/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 and /dev/null differ diff --git a/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite3 b/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite3 deleted file mode 100644 index f106c802..00000000 Binary files a/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite3 and /dev/null differ diff --git a/vendor/rails/activeresource/Rakefile b/vendor/rails/activeresource/Rakefile index f298853b..f153513d 100644 --- a/vendor/rails/activeresource/Rakefile +++ b/vendor/rails/activeresource/Rakefile @@ -66,7 +66,7 @@ spec = Gem::Specification.new do |s| s.files = s.files + Dir.glob( "#{dir}/**/*" ).delete_if { |item| item.include?( "\.svn" ) } end - s.add_dependency('activesupport', '= 2.3.12' + PKG_BUILD) + s.add_dependency('activesupport', '= 2.3.14' + PKG_BUILD) s.require_path = 'lib' diff --git a/vendor/rails/activeresource/lib/active_resource/version.rb b/vendor/rails/activeresource/lib/active_resource/version.rb index 6ef5f11a..d8b34f12 100644 --- a/vendor/rails/activeresource/lib/active_resource/version.rb +++ b/vendor/rails/activeresource/lib/active_resource/version.rb @@ -2,7 +2,7 @@ module ActiveResource module VERSION #:nodoc: MAJOR = 2 MINOR = 3 - TINY = 12 + TINY = 14 STRING = [MAJOR, MINOR, TINY].join('.') end diff --git a/vendor/rails/activesupport/lib/active_support/core_ext/string/output_safety.rb b/vendor/rails/activesupport/lib/active_support/core_ext/string/output_safety.rb index 60f9fd25..8e68ab0b 100644 --- a/vendor/rails/activesupport/lib/active_support/core_ext/string/output_safety.rb +++ b/vendor/rails/activesupport/lib/active_support/core_ext/string/output_safety.rb @@ -19,7 +19,7 @@ class ERB if s.html_safe? s else - s.gsub(/[&"><]/) { |special| HTML_ESCAPE[special] }.html_safe + s.to_s.gsub(/&/, "&").gsub(/\"/, """).gsub(/>/, ">").gsub(/= 0.8.3') - s.add_dependency('activesupport', '= 2.3.12' + PKG_BUILD) - s.add_dependency('activerecord', '= 2.3.12' + PKG_BUILD) - s.add_dependency('actionpack', '= 2.3.12' + PKG_BUILD) - s.add_dependency('actionmailer', '= 2.3.12' + PKG_BUILD) - s.add_dependency('activeresource', '= 2.3.12' + PKG_BUILD) + s.add_dependency('activesupport', '= 2.3.14' + PKG_BUILD) + s.add_dependency('activerecord', '= 2.3.14' + PKG_BUILD) + s.add_dependency('actionpack', '= 2.3.14' + PKG_BUILD) + s.add_dependency('actionmailer', '= 2.3.14' + PKG_BUILD) + s.add_dependency('activeresource', '= 2.3.14' + PKG_BUILD) s.rdoc_options << '--exclude' << '.' diff --git a/vendor/rails/railties/lib/rails/version.rb b/vendor/rails/railties/lib/rails/version.rb index 94df7c10..b89643ff 100644 --- a/vendor/rails/railties/lib/rails/version.rb +++ b/vendor/rails/railties/lib/rails/version.rb @@ -2,7 +2,7 @@ module Rails module VERSION #:nodoc: MAJOR = 2 MINOR = 3 - TINY = 12 + TINY = 14 STRING = [MAJOR, MINOR, TINY].join('.') end diff --git a/vendor/rails/railties/lib/tasks/documentation.rake b/vendor/rails/railties/lib/tasks/documentation.rake index bc7887b7..b3111a5a 100644 --- a/vendor/rails/railties/lib/tasks/documentation.rake +++ b/vendor/rails/railties/lib/tasks/documentation.rake @@ -1,3 +1,5 @@ +begin + require 'rdoc/task' namespace :doc do desc "Generate documentation for the application. Set custom template with TEMPLATE=/path/to/rdoc/template.rb or title with TITLE=\"Custom Title\"" RDoc::Task.new("app") { |rdoc| @@ -86,3 +88,6 @@ namespace :doc do end end end +rescue LoadError + $stderr.puts 'Please install RDoc 2.4.2+ to generate documentation.' +end