From: Tom Hughes Date: Thu, 29 Jun 2017 07:58:29 +0000 (+0100) Subject: Merge remote-tracking branch 'upstream/pull/1561' X-Git-Tag: live~3380 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/1b7586c9288d694b2bc443d62f3c40502868ff77?hp=f76f838c8494936f24c6207e3c2283181fd1d0d7 Merge remote-tracking branch 'upstream/pull/1561' --- diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index ce7e5d9b2..2be52f7d6 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -64,7 +64,7 @@ Metrics/BlockNesting: # Offense count: 62 # Configuration parameters: CountComments. Metrics/ClassLength: - Max: 1782 + Max: 1783 # Offense count: 69 Metrics/CyclomaticComplexity: diff --git a/Gemfile b/Gemfile index 035722963..4ce4a75f5 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ source "https://rubygems.org" # Require rails -gem "rails", "4.2.9" +gem "rails", "5.0.4" # Require things which have moved to gems in ruby 1.9 gem "bigdecimal", "~> 1.1.0", :platforms => :ruby_19 @@ -22,7 +22,7 @@ gem "sass-rails", "~> 5.0" gem "uglifier", ">= 1.3.0" # Use CoffeeScript for .js.coffee assets and views -gem "coffee-rails", "~> 4.1.0" +gem "coffee-rails", "~> 4.2" # Use jquery as the JavaScript library gem "jquery-rails" @@ -42,7 +42,7 @@ gem "image_optim_rails" # Load rails plugins gem "actionpack-page_caching" -gem "composite_primary_keys", "~> 8.1.0" +gem "composite_primary_keys", "~> 9.0.7" gem "deadlock_retry", ">= 1.2.0" gem "dynamic_form" gem "http_accept_language", "~> 2.0.0" @@ -51,6 +51,7 @@ gem "oauth-plugin", ">= 0.5.1" gem "paperclip", "~> 4.0" gem "rack-cors" gem "rails-i18n", "~> 4.0.0" +gem "record_tag_helper" gem "rinku", ">= 1.2.2", :require => "rails_rinku" gem "validates_email_format_of", ">= 1.5.1" @@ -103,12 +104,14 @@ gem "logstasher" # Gems useful for development group :development do + gem "listen" gem "vendorer" end # Gems needed for running tests group :test do gem "minitest", "~> 5.1", :platforms => [:ruby_19, :ruby_20] + gem "rails-controller-testing" gem "rubocop" gem "timecop" gem "webmock" @@ -119,6 +122,6 @@ group :development, :test do gem "coveralls", :require => false gem "factory_girl_rails" gem "jshint" - gem "konacha" + # gem "konacha" gem "poltergeist" end diff --git a/Gemfile.lock b/Gemfile.lock index 6cc819783..556bb8d43 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,45 +2,48 @@ GEM remote: https://rubygems.org/ specs: SystemTimer (1.2.3) - actionmailer (4.2.9) - actionpack (= 4.2.9) - actionview (= 4.2.9) - activejob (= 4.2.9) + actioncable (5.0.4) + actionpack (= 5.0.4) + nio4r (>= 1.2, < 3.0) + websocket-driver (~> 0.6.1) + actionmailer (5.0.4) + actionpack (= 5.0.4) + actionview (= 5.0.4) + activejob (= 5.0.4) mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 1.0, >= 1.0.5) - actionpack (4.2.9) - actionview (= 4.2.9) - activesupport (= 4.2.9) - rack (~> 1.6) - rack-test (~> 0.6.2) - rails-dom-testing (~> 1.0, >= 1.0.5) + rails-dom-testing (~> 2.0) + actionpack (5.0.4) + actionview (= 5.0.4) + activesupport (= 5.0.4) + rack (~> 2.0) + rack-test (~> 0.6.3) + rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) actionpack-page_caching (1.1.0) actionpack (>= 4.0.0, < 6) - actionview (4.2.9) - activesupport (= 4.2.9) + actionview (5.0.4) + activesupport (= 5.0.4) builder (~> 3.1) erubis (~> 2.7.0) - rails-dom-testing (~> 1.0, >= 1.0.5) + rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) - activejob (4.2.9) - activesupport (= 4.2.9) - globalid (>= 0.3.0) - activemodel (4.2.9) - activesupport (= 4.2.9) - builder (~> 3.1) - activerecord (4.2.9) - activemodel (= 4.2.9) - activesupport (= 4.2.9) - arel (~> 6.0) - activesupport (4.2.9) + activejob (5.0.4) + activesupport (= 5.0.4) + globalid (>= 0.3.6) + activemodel (5.0.4) + activesupport (= 5.0.4) + activerecord (5.0.4) + activemodel (= 5.0.4) + activesupport (= 5.0.4) + arel (~> 7.0) + activesupport (5.0.4) + concurrent-ruby (~> 1.0, >= 1.0.2) i18n (~> 0.7) minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) addressable (2.5.1) public_suffix (~> 2.0, >= 2.0.2) - arel (6.0.4) + arel (7.1.4) ast (2.3.0) autoprefixer-rails (7.1.1.2) execjs @@ -59,16 +62,15 @@ GEM cliver (0.3.2) cocaine (0.5.8) climate_control (>= 0.0.3, < 1.0) - coffee-rails (4.1.1) + coffee-rails (4.2.2) coffee-script (>= 2.2.0) - railties (>= 4.0.0, < 5.1.x) + railties (>= 4.0.0) coffee-script (2.4.1) coffee-script-source execjs coffee-script-source (1.12.2) - colorize (0.8.1) - composite_primary_keys (8.1.6) - activerecord (~> 4.2.0) + composite_primary_keys (9.0.7) + activerecord (~> 5.0.0) concurrent-ruby (1.0.5) coveralls (0.8.21) json (>= 1.8, < 3) @@ -93,6 +95,7 @@ GEM railties (>= 3.0.0) faraday (0.12.1) multipart-post (>= 1.2, < 3) + ffi (1.9.18) fspath (3.1.0) geoip (1.6.3) globalid (0.4.0) @@ -132,16 +135,12 @@ GEM jsonify (< 0.4.0) jwt (1.5.6) kgio (2.11.0) - konacha (4.0.0) - actionpack (>= 4.1, < 5) - capybara - colorize - railties (>= 4.1, < 5) - sprockets (>= 2, < 4) - sprockets-rails (>= 2, < 4) - tilt libv8 (3.16.14.19) libxml-ruby (3.0.0) + listen (3.1.5) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) logstash-event (1.2.02) logstasher (1.2.1) activesupport (>= 4.0) @@ -151,6 +150,7 @@ GEM nokogiri (>= 1.5.9) mail (2.6.6) mime-types (>= 1.16, < 4) + method_source (0.8.2) mime-types (3.1) mime-types-data (~> 3.2015) mime-types-data (3.2016.0521) @@ -160,6 +160,7 @@ GEM multi_json (1.12.1) multi_xml (0.6.0) multipart-post (2.0.0) + nio4r (2.1.0) nokogiri (1.8.0) mini_portile2 (~> 2.2.0) nokogumbo (1.4.13) @@ -223,7 +224,7 @@ GEM psych (2.2.4) public_suffix (2.0.5) r2 (0.2.6) - rack (1.6.8) + rack (2.0.3) rack-cors (0.4.1) rack-openid (1.3.1) rack (>= 1.1.0) @@ -231,36 +232,44 @@ GEM rack-test (0.6.3) rack (>= 1.0) rack-uri_sanitizer (0.0.2) - rails (4.2.9) - actionmailer (= 4.2.9) - actionpack (= 4.2.9) - actionview (= 4.2.9) - activejob (= 4.2.9) - activemodel (= 4.2.9) - activerecord (= 4.2.9) - activesupport (= 4.2.9) + rails (5.0.4) + actioncable (= 5.0.4) + actionmailer (= 5.0.4) + actionpack (= 5.0.4) + actionview (= 5.0.4) + activejob (= 5.0.4) + activemodel (= 5.0.4) + activerecord (= 5.0.4) + activesupport (= 5.0.4) bundler (>= 1.3.0, < 2.0) - railties (= 4.2.9) - sprockets-rails - rails-deprecated_sanitizer (1.0.3) - activesupport (>= 4.2.0.alpha) - rails-dom-testing (1.0.8) - activesupport (>= 4.2.0.beta, < 5.0) - nokogiri (~> 1.6) - rails-deprecated_sanitizer (>= 1.0.1) + railties (= 5.0.4) + sprockets-rails (>= 2.0.0) + rails-controller-testing (1.0.2) + actionpack (~> 5.x, >= 5.0.1) + actionview (~> 5.x, >= 5.0.1) + activesupport (~> 5.x) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) rails-html-sanitizer (1.0.3) loofah (~> 2.0) - rails-i18n (4.0.9) - i18n (~> 0.7) - railties (~> 4.0) - railties (4.2.9) - actionpack (= 4.2.9) - activesupport (= 4.2.9) + rails-i18n (4.0.2) + i18n (~> 0.6) + rails (>= 4.0) + railties (5.0.4) + actionpack (= 5.0.4) + activesupport (= 5.0.4) + method_source rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rainbow (2.2.2) rake rake (12.0.0) + rb-fsevent (0.9.8) + rb-inotify (0.9.10) + ffi (>= 0.5.0, < 2) + record_tag_helper (1.0.0) + actionview (~> 5.x) redcarpet (3.4.0) ref (2.0.0) request_store (1.3.2) @@ -275,6 +284,7 @@ GEM unicode-display_width (~> 1.0, >= 1.0.1) ruby-openid (2.7.0) ruby-progressbar (1.8.1) + ruby_dep (1.5.0) safe_yaml (1.0.4) sanitize (4.5.0) crass (~> 1.0.2) @@ -339,8 +349,8 @@ DEPENDENCIES autoprefixer-rails bigdecimal (~> 1.1.0) canonical-rails - coffee-rails (~> 4.1.0) - composite_primary_keys (~> 8.1.0) + coffee-rails (~> 4.2) + composite_primary_keys (~> 9.0.7) coveralls dalli deadlock_retry (>= 1.2.0) @@ -357,8 +367,8 @@ DEPENDENCIES json jsonify-rails kgio - konacha libxml-ruby (>= 2.0.5) + listen logstasher minitest (~> 5.1) oauth-plugin (>= 0.5.1) @@ -376,8 +386,10 @@ DEPENDENCIES r2 rack-cors rack-uri_sanitizer - rails (= 4.2.9) + rails (= 5.0.4) + rails-controller-testing rails-i18n (~> 4.0.0) + record_tag_helper redcarpet rinku (>= 1.2.2) rotp diff --git a/Rakefile b/Rakefile index 39f9f3564..9a5ea7383 100644 --- a/Rakefile +++ b/Rakefile @@ -1,6 +1,6 @@ # Add your own tasks in files placed in lib/tasks ending in .rake, # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. -require File.expand_path("../config/application", __FILE__) +require_relative "config/application" -OpenStreetMap::Application.load_tasks +Rails.application.load_tasks diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 89636aaa8..534b37058 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,7 +1,7 @@ class ApplicationController < ActionController::Base include SessionPersistence - protect_from_forgery + protect_from_forgery :with => :exception before_action :fetch_body diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb index b6fc79b25..82373c90a 100644 --- a/app/controllers/user_controller.rb +++ b/app/controllers/user_controller.rb @@ -268,7 +268,7 @@ class UserController < ApplicationController def logout @title = t "user.logout.title" - if params[:session] == request.session_options[:id] + if params[:session] == session.id if session[:token] token = UserToken.find_by(:token => session[:token]) token.destroy if token diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index 2b7d6313e..262989752 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -80,7 +80,7 @@ <%= yield :greeting %>
  • - <%= link_to t('layouts.logout'), logout_path(:session => request.session_options[:id], :referer => request.fullpath) %> + <%= link_to t('layouts.logout'), logout_path(:session => session.id, :referer => request.fullpath) %>
  • diff --git a/app/views/user/logout.html.erb b/app/views/user/logout.html.erb index bb67d1581..2620cdaa6 100644 --- a/app/views/user/logout.html.erb +++ b/app/views/user/logout.html.erb @@ -4,6 +4,6 @@ <%= form_tag :action => "logout" do %> <%= hidden_field_tag("referer", h(params[:referer])) %> - <%= hidden_field_tag("session", request.session_options[:id]) %> + <%= hidden_field_tag("session", session.id) %> <%= submit_tag t('user.logout.logout_button') %> <% end %> diff --git a/config.ru b/config.ru index 193e5fed8..441e6ff0c 100644 --- a/config.ru +++ b/config.ru @@ -1,4 +1,5 @@ # This file is used by Rack-based servers to start the application. -require ::File.expand_path("../config/environment", __FILE__) +require_relative "config/environment" + run Rails.application diff --git a/config/application.rb b/config/application.rb index ff9ac1602..02dd1d2b2 100644 --- a/config/application.rb +++ b/config/application.rb @@ -1,6 +1,6 @@ -require File.expand_path("../boot", __FILE__) +require_relative "boot" -require File.expand_path("../preinitializer", __FILE__) +require_relative "preinitializer" if STATUS == :database_offline require "action_controller/railtie" @@ -22,17 +22,6 @@ module OpenStreetMap # Application configuration should go into files in config/initializers # -- all .rb files in that directory are automatically loaded. - # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. - # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. - # config.time_zone = 'Central Time (US & Canada)' - - # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. - # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] - # config.i18n.default_locale = :de - - # Do not swallow errors in after_commit/after_rollback callbacks. - config.active_record.raise_in_transactional_callbacks = true unless STATUS == :database_offline - # Custom directories with classes and modules you want to be autoloadable. config.autoload_paths += %W[#{config.root}/lib] diff --git a/config/boot.rb b/config/boot.rb index fb24cf2ed..282011619 100644 --- a/config/boot.rb +++ b/config/boot.rb @@ -1,3 +1,3 @@ -ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", __FILE__) +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) require "bundler/setup" # Set up gems listed in the Gemfile. diff --git a/config/environments/development.rb b/config/environments/development.rb index 01466ae75..9101bb1eb 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -1,4 +1,4 @@ -OpenStreetMap::Application.configure do +Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. # In the development environment your application's code is reloaded on @@ -9,13 +9,14 @@ OpenStreetMap::Application.configure do # Do not eager load code on boot. config.eager_load = false - # Show full error reports and disable caching. - config.consider_all_requests_local = true - config.action_controller.perform_caching = false + # Show full error reports. + config.consider_all_requests_local = true # Don't care if the mailer can't send. config.action_mailer.raise_delivery_errors = false + config.action_mailer.perform_caching = false + # Print deprecation notices to the Rails logger. config.active_support.deprecation = :log @@ -29,15 +30,13 @@ OpenStreetMap::Application.configure do # number of complex assets. config.assets.debug = true - # Asset digests allow you to set far-future HTTP expiration dates on all assets, - # yet still be able to expire them through the digest params. - config.assets.digest = true - - # Adds additional error checking when serving assets at runtime. - # Checks for improperly declared sprockets dependencies. - # Raises helpful error messages. - config.assets.raise_runtime_errors = true + # Suppress logger output for asset requests. + config.assets.quiet = true # Raises error for missing translations # config.action_view.raise_on_missing_translations = true + + # Use an evented file watcher to asynchronously detect changes in source code, + # routes, locales, etc. This feature depends on the listen gem. + config.file_watcher = ActiveSupport::EventedFileUpdateChecker end diff --git a/config/environments/production.rb b/config/environments/production.rb index ccba43daa..e421abc58 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -1,4 +1,4 @@ -OpenStreetMap::Application.configure do +Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. # Code is not reloaded between requests. @@ -14,15 +14,9 @@ OpenStreetMap::Application.configure do config.consider_all_requests_local = false config.action_controller.perform_caching = true - # Enable Rack::Cache to put a simple HTTP cache in front of your application - # Add `rack-cache` to your Gemfile before enabling this. - # For large-scale production use, consider using a caching reverse proxy like - # NGINX, varnish or squid. - # config.action_dispatch.rack_cache = true - # Disable serving static files from the `/public` folder by default since # Apache or NGINX already handles this. - config.serve_static_files = ENV["RAILS_SERVE_STATIC_FILES"].present? + config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present? # Compress JavaScripts and CSS. config.assets.js_compressor = :uglifier @@ -31,16 +25,20 @@ OpenStreetMap::Application.configure do # Do not fallback to assets pipeline if a precompiled asset is missed. config.assets.compile = false - # Asset digests allow you to set far-future HTTP expiration dates on all assets, - # yet still be able to expire them through the digest params. - config.assets.digest = true - # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb + # Enable serving of images, stylesheets, and JavaScripts from an asset server. + # config.action_controller.asset_host = 'http://assets.example.com' + # Specifies the header that your server uses for sending files. # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX + # Mount Action Cable outside main process or domain + # config.action_cable.mount_path = nil + # config.action_cable.url = 'wss://example.com/cable' + # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ] + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. # config.force_ssl = true @@ -49,23 +47,22 @@ OpenStreetMap::Application.configure do config.log_level = :info # Prepend all log lines with the following tags. - # config.log_tags = [ :subdomain, :uuid ] + config.log_tags = [:request_id] # Use a different log path in production. config.paths["log"] = LOG_PATH if defined?(LOG_PATH) - # Use a different logger for distributed setups. - # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) - # Use a different cache store in production. # config.cache_store = :mem_cache_store + # Use a real queuing backend for Active Job (and separate queues per environment) + # config.active_job.queue_adapter = :resque + # config.active_job.queue_name_prefix = "rails50_#{Rails.env}" + config.action_mailer.perform_caching = false + # Configure caching of static assets config.action_controller.page_cache_directory = Rails.public_path - # Enable serving of images, stylesheets, and JavaScripts from an asset server. - # config.action_controller.asset_host = 'http://assets.example.com' - # Ignore bad email addresses and do not raise email delivery errors. # Set this to true and configure the email server for immediate delivery to raise delivery errors. # config.action_mailer.raise_delivery_errors = false @@ -80,8 +77,21 @@ OpenStreetMap::Application.configure do # Use default logging formatter so that PID and timestamp are not suppressed. config.log_formatter = ::Logger::Formatter.new + # Use a different logger for distributed setups. + # require 'syslog/logger' + # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') + + if ENV["RAILS_LOG_TO_STDOUT"].present? + logger = ActiveSupport::Logger.new(STDOUT) + logger.formatter = config.log_formatter + config.logger = ActiveSupport::TaggedLogging.new(logger) + end + # Do not dump schema after migrations. unless STATUS == :database_offline config.active_record.dump_schema_after_migration = false end + + # Enable autoloading of dependencies. + config.enable_dependency_loading = true end diff --git a/config/environments/test.rb b/config/environments/test.rb index f46617c71..2dfea4ea4 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -1,4 +1,4 @@ -OpenStreetMap::Application.configure do +Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. # The test environment is used exclusively to run your application's @@ -12,9 +12,11 @@ OpenStreetMap::Application.configure do # preloads Rails for running tests, you may have to set it to true. config.eager_load = false - # Configure static file server for tests with Cache-Control for performance. - config.serve_static_files = true - config.static_cache_control = "public, max-age=3600" + # Configure public file server for tests with Cache-Control for performance. + config.public_file_server.enabled = true + config.public_file_server.headers = { + "Cache-Control" => "public, max-age=#{1.hour.seconds.to_i}" + } # Show full error reports and disable caching. config.consider_all_requests_local = true @@ -25,15 +27,13 @@ OpenStreetMap::Application.configure do # Disable request forgery protection in test environment. config.action_controller.allow_forgery_protection = false + config.action_mailer.perform_caching = false # Tell Action Mailer not to deliver emails to the real world. # The :test delivery method accumulates sent emails in the # ActionMailer::Base.deliveries array. config.action_mailer.delivery_method = :test - # Randomize the order test cases are executed. - config.active_support.test_order = :random - # Print deprecation notices to the stderr. config.active_support.deprecation = :stderr diff --git a/config/initializers/cookies_serializer.rb b/config/initializers/cookies_serializer.rb index 7f70458de..5a6a32d37 100644 --- a/config/initializers/cookies_serializer.rb +++ b/config/initializers/cookies_serializer.rb @@ -1,3 +1,5 @@ # Be sure to restart your server when you modify this file. +# Specify a serializer for the signed and encrypted cookie jars. +# Valid options are :json, :marshal, and :hybrid. Rails.application.config.action_dispatch.cookies_serializer = :json diff --git a/config/initializers/oauth.rb b/config/initializers/oauth.rb index 437a00c97..3b4f06a2e 100644 --- a/config/initializers/oauth.rb +++ b/config/initializers/oauth.rb @@ -1,3 +1,4 @@ +require "oauth/controllers/provider_controller" require "oauth/rack/oauth_filter" Rails.configuration.middleware.use OAuth::Rack::OAuthFilter @@ -11,3 +12,41 @@ module OAuth end end end + +module OpenStreetMap + module ProviderController + def self.prepended(mod) + mod.singleton_class.prepend(OpenStreetMap::ProviderController::ClassMethods) + end + + def render(options = {}) + text = options.delete(:text) + if text + super options.merge(:plain => text) + elsif options.delete(:nothing) + status = options.delete(:status) || :ok + head status, options + else + super options + end + end + + module ClassMethods + def included(controller) + controller.class_eval do + def self.before_filter(*names, &blk) + before_action(*names, &blk) + end + + def self.skip_before_filter(*names, &blk) + skip_before_action(*names, &blk) + end + end + + super controller + end + end + end +end + +OAuth::Controllers::ProviderController.prepend(OpenStreetMap::ProviderController) diff --git a/config/secrets.yml b/config/secrets.yml index 253f2be62..4704fad44 100644 --- a/config/secrets.yml +++ b/config/secrets.yml @@ -5,18 +5,28 @@ # Make sure the secret is at least 30 characters and all random, # no regular words or you'll be exposed to dictionary attacks. -# You can use `rake secret` to generate a secure secret key. +# You can use `rails secret` to generate a secure secret key. # Make sure the secrets in this file are kept private # if you're sharing your code publicly. +# Shared secrets are available across all environments. + +# shared: +# api_key: a1B2c3D4e5F6 + +# Environmental secrets are only available for that specific environment. + development: secret_key_base: 1ce5ed17771b4fdc3f755c5b98459d67816f99ec5889ec2fa7bf2bd3cba3ad5cc453693ce3c5d121669be478fb811136f4f483e6f39ac1f0e34ba66e8acab574 test: secret_key_base: 10d52b1bf88c429e73ffbc5e5f58b037db21f38ea88b8b454e55d52ed8bcc6e7fe3b48a79b2f36eb78a4685224d707767d083f79c51f7d81a9d4a06d1c1e2534 -# Do not keep production secrets in the repository, -# instead read values from the environment. +# Do not keep production secrets in the unencrypted secrets file. +# Instead, either read values from the environment. +# Or, use `bin/rails secrets:setup` to configure encrypted secrets +# and move the `production:` environment over there. + production: secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> diff --git a/db/seeds.rb b/db/seeds.rb index 664d8c74c..1beea2acc 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -1,7 +1,7 @@ # This file should contain all the record creation needed to seed the database with its default values. -# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup). +# The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup). # # Examples: # -# cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }]) -# Mayor.create(:name => 'Daley', :city => cities.first) +# movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }]) +# Character.create(name: 'Luke', movie: movies.first) diff --git a/db/structure.sql b/db/structure.sql index 020d5fb16..08aafa8d7 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -2,8 +2,8 @@ -- PostgreSQL database dump -- --- Dumped from database version 9.5.6 --- Dumped by pg_dump version 9.5.6 +-- Dumped from database version 9.5.7 +-- Dumped by pg_dump version 9.5.7 SET statement_timeout = 0; SET lock_timeout = 0; @@ -187,6 +187,18 @@ CREATE SEQUENCE acls_id_seq ALTER SEQUENCE acls_id_seq OWNED BY acls.id; +-- +-- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE ar_internal_metadata ( + key character varying NOT NULL, + value character varying, + created_at timestamp without time zone NOT NULL, + updated_at timestamp without time zone NOT NULL +); + + -- -- Name: changeset_comments; Type: TABLE; Schema: public; Owner: - -- @@ -1354,6 +1366,14 @@ ALTER TABLE ONLY acls ADD CONSTRAINT acls_pkey PRIMARY KEY (id); +-- +-- Name: ar_internal_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY ar_internal_metadata + ADD CONSTRAINT ar_internal_metadata_pkey PRIMARY KEY (key); + + -- -- Name: changeset_comments_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- @@ -2513,193 +2533,101 @@ ALTER TABLE ONLY ways SET search_path TO "$user", public; -INSERT INTO schema_migrations (version) VALUES ('1'); - -INSERT INTO schema_migrations (version) VALUES ('10'); - -INSERT INTO schema_migrations (version) VALUES ('11'); - -INSERT INTO schema_migrations (version) VALUES ('12'); - -INSERT INTO schema_migrations (version) VALUES ('13'); - -INSERT INTO schema_migrations (version) VALUES ('14'); - -INSERT INTO schema_migrations (version) VALUES ('15'); - -INSERT INTO schema_migrations (version) VALUES ('16'); - -INSERT INTO schema_migrations (version) VALUES ('17'); - -INSERT INTO schema_migrations (version) VALUES ('18'); - -INSERT INTO schema_migrations (version) VALUES ('19'); - -INSERT INTO schema_migrations (version) VALUES ('2'); - -INSERT INTO schema_migrations (version) VALUES ('20'); - -INSERT INTO schema_migrations (version) VALUES ('20100513171259'); - -INSERT INTO schema_migrations (version) VALUES ('20100516124737'); - -INSERT INTO schema_migrations (version) VALUES ('20100910084426'); - -INSERT INTO schema_migrations (version) VALUES ('20101114011429'); - -INSERT INTO schema_migrations (version) VALUES ('20110322001319'); - -INSERT INTO schema_migrations (version) VALUES ('20110508145337'); - -INSERT INTO schema_migrations (version) VALUES ('20110521142405'); - -INSERT INTO schema_migrations (version) VALUES ('20110925112722'); - -INSERT INTO schema_migrations (version) VALUES ('20111116184519'); - -INSERT INTO schema_migrations (version) VALUES ('20111212183945'); - -INSERT INTO schema_migrations (version) VALUES ('20120123184321'); - -INSERT INTO schema_migrations (version) VALUES ('20120208122334'); - -INSERT INTO schema_migrations (version) VALUES ('20120208194454'); - -INSERT INTO schema_migrations (version) VALUES ('20120214210114'); - -INSERT INTO schema_migrations (version) VALUES ('20120219161649'); - -INSERT INTO schema_migrations (version) VALUES ('20120318201948'); - -INSERT INTO schema_migrations (version) VALUES ('20120328090602'); - -INSERT INTO schema_migrations (version) VALUES ('20120404205604'); - -INSERT INTO schema_migrations (version) VALUES ('20120808231205'); - -INSERT INTO schema_migrations (version) VALUES ('20121005195010'); - -INSERT INTO schema_migrations (version) VALUES ('20121012044047'); - -INSERT INTO schema_migrations (version) VALUES ('20121119165817'); - -INSERT INTO schema_migrations (version) VALUES ('20121202155309'); - -INSERT INTO schema_migrations (version) VALUES ('20121203124841'); - -INSERT INTO schema_migrations (version) VALUES ('20130328184137'); - -INSERT INTO schema_migrations (version) VALUES ('20131212124700'); - -INSERT INTO schema_migrations (version) VALUES ('20140115192822'); - -INSERT INTO schema_migrations (version) VALUES ('20140117185510'); - -INSERT INTO schema_migrations (version) VALUES ('20140210003018'); - -INSERT INTO schema_migrations (version) VALUES ('20140507110937'); - -INSERT INTO schema_migrations (version) VALUES ('20140519141742'); - -INSERT INTO schema_migrations (version) VALUES ('20150110152606'); - -INSERT INTO schema_migrations (version) VALUES ('20150111192335'); - -INSERT INTO schema_migrations (version) VALUES ('20150222101847'); - -INSERT INTO schema_migrations (version) VALUES ('20150818224516'); - -INSERT INTO schema_migrations (version) VALUES ('20161002153425'); - -INSERT INTO schema_migrations (version) VALUES ('20161011010929'); - -INSERT INTO schema_migrations (version) VALUES ('20170222134109'); - -INSERT INTO schema_migrations (version) VALUES ('21'); - -INSERT INTO schema_migrations (version) VALUES ('22'); - -INSERT INTO schema_migrations (version) VALUES ('23'); - -INSERT INTO schema_migrations (version) VALUES ('24'); - -INSERT INTO schema_migrations (version) VALUES ('25'); - -INSERT INTO schema_migrations (version) VALUES ('26'); - -INSERT INTO schema_migrations (version) VALUES ('27'); - -INSERT INTO schema_migrations (version) VALUES ('28'); - -INSERT INTO schema_migrations (version) VALUES ('29'); - -INSERT INTO schema_migrations (version) VALUES ('3'); - -INSERT INTO schema_migrations (version) VALUES ('30'); - -INSERT INTO schema_migrations (version) VALUES ('31'); - -INSERT INTO schema_migrations (version) VALUES ('32'); - -INSERT INTO schema_migrations (version) VALUES ('33'); - -INSERT INTO schema_migrations (version) VALUES ('34'); - -INSERT INTO schema_migrations (version) VALUES ('35'); - -INSERT INTO schema_migrations (version) VALUES ('36'); - -INSERT INTO schema_migrations (version) VALUES ('37'); - -INSERT INTO schema_migrations (version) VALUES ('38'); - -INSERT INTO schema_migrations (version) VALUES ('39'); - -INSERT INTO schema_migrations (version) VALUES ('4'); - -INSERT INTO schema_migrations (version) VALUES ('40'); - -INSERT INTO schema_migrations (version) VALUES ('41'); - -INSERT INTO schema_migrations (version) VALUES ('42'); - -INSERT INTO schema_migrations (version) VALUES ('43'); - -INSERT INTO schema_migrations (version) VALUES ('44'); - -INSERT INTO schema_migrations (version) VALUES ('45'); - -INSERT INTO schema_migrations (version) VALUES ('46'); - -INSERT INTO schema_migrations (version) VALUES ('47'); - -INSERT INTO schema_migrations (version) VALUES ('48'); - -INSERT INTO schema_migrations (version) VALUES ('49'); - -INSERT INTO schema_migrations (version) VALUES ('5'); - -INSERT INTO schema_migrations (version) VALUES ('50'); - -INSERT INTO schema_migrations (version) VALUES ('51'); - -INSERT INTO schema_migrations (version) VALUES ('52'); - -INSERT INTO schema_migrations (version) VALUES ('53'); - -INSERT INTO schema_migrations (version) VALUES ('54'); - -INSERT INTO schema_migrations (version) VALUES ('55'); - -INSERT INTO schema_migrations (version) VALUES ('56'); - -INSERT INTO schema_migrations (version) VALUES ('57'); - -INSERT INTO schema_migrations (version) VALUES ('6'); - -INSERT INTO schema_migrations (version) VALUES ('7'); - -INSERT INTO schema_migrations (version) VALUES ('8'); +INSERT INTO "schema_migrations" (version) VALUES +('1'), +('10'), +('11'), +('12'), +('13'), +('14'), +('15'), +('16'), +('17'), +('18'), +('19'), +('2'), +('20'), +('20100513171259'), +('20100516124737'), +('20100910084426'), +('20101114011429'), +('20110322001319'), +('20110508145337'), +('20110521142405'), +('20110925112722'), +('20111116184519'), +('20111212183945'), +('20120123184321'), +('20120208122334'), +('20120208194454'), +('20120214210114'), +('20120219161649'), +('20120318201948'), +('20120328090602'), +('20120404205604'), +('20120808231205'), +('20121005195010'), +('20121012044047'), +('20121119165817'), +('20121202155309'), +('20121203124841'), +('20130328184137'), +('20131212124700'), +('20140115192822'), +('20140117185510'), +('20140210003018'), +('20140507110937'), +('20140519141742'), +('20150110152606'), +('20150111192335'), +('20150222101847'), +('20150818224516'), +('20161002153425'), +('20161011010929'), +('20170222134109'), +('21'), +('22'), +('23'), +('24'), +('25'), +('26'), +('27'), +('28'), +('29'), +('3'), +('30'), +('31'), +('32'), +('33'), +('34'), +('35'), +('36'), +('37'), +('38'), +('39'), +('4'), +('40'), +('41'), +('42'), +('43'), +('44'), +('45'), +('46'), +('47'), +('48'), +('49'), +('5'), +('50'), +('51'), +('52'), +('53'), +('54'), +('55'), +('56'), +('57'), +('6'), +('7'), +('8'), +('9'); -INSERT INTO schema_migrations (version) VALUES ('9'); diff --git a/lib/tasks/testing.rake b/lib/tasks/testing.rake index ffee7f050..3d933a3aa 100644 --- a/lib/tasks/testing.rake +++ b/lib/tasks/testing.rake @@ -1,5 +1,6 @@ namespace :test do - Rails::TestTask.new(lib: "test:prepare") do |t| - t.pattern = "test/lib/**/*_test.rb" + task "lib" => "test:prepare" do + $LOAD_PATH << "test" + Minitest.rake_run(["test/lib"]) end end diff --git a/test/controllers/api_controller_test.rb b/test/controllers/api_controller_test.rb index b07eb68c9..efcc06307 100644 --- a/test/controllers/api_controller_test.rb +++ b/test/controllers/api_controller_test.rb @@ -63,7 +63,7 @@ class ApiControllerTest < ActionController::TestCase maxlon = node.lon + 0.1 maxlat = node.lat + 0.1 bbox = "#{minlon},#{minlat},#{maxlon},#{maxlat}" - get :map, :bbox => bbox + get :map, :params => { :bbox => bbox } if $VERBOSE print @request.to_yaml print @response.body @@ -93,7 +93,7 @@ class ApiControllerTest < ActionController::TestCase relation = create(:relation_member, :member => node).relation bbox = "#{node.lon},#{node.lat},#{node.lon},#{node.lat}" - get :map, :bbox => bbox + get :map, :params => { :bbox => bbox } assert_response :success, "The map call should have succeeded" assert_select "osm[version='#{API_VERSION}'][generator='#{GENERATOR}']", :count => 1 do assert_select "bounds[minlon='#{node.lon}'][minlat='#{node.lat}'][maxlon='#{node.lon}'][maxlat='#{node.lat}']", :count => 1 @@ -121,7 +121,7 @@ class ApiControllerTest < ActionController::TestCase relation = create(:relation_member, :member => way1).relation bbox = "#{node.lon},#{node.lat},#{node.lon},#{node.lat}" - get :map, :bbox => bbox + get :map, :params => { :bbox => bbox } assert_response :success, "The map call should have succeeded" assert_select "osm[version='#{API_VERSION}'][generator='#{GENERATOR}']", :count => 1 do assert_select "bounds[minlon='#{node.lon}'][minlat='#{node.lat}'][maxlon='#{node.lon}'][maxlat='#{node.lat}']", :count => 1 @@ -138,7 +138,7 @@ class ApiControllerTest < ActionController::TestCase end def test_map_empty - get :map, :bbox => "179.998,89.998,179.999.1,89.999" + get :map, :params => { :bbox => "179.998,89.998,179.999.1,89.999" } assert_response :success, "The map call should have succeeded" assert_select "osm[version='#{API_VERSION}'][generator='#{GENERATOR}']", :count => 1 do assert_select "bounds[minlon='179.9980000'][minlat='89.9980000'][maxlon='179.9990000'][maxlat='89.9990000']", :count => 1 @@ -157,7 +157,7 @@ class ApiControllerTest < ActionController::TestCase maxlon = point.longitude + 0.001 maxlat = point.latitude + 0.001 bbox = "#{minlon},#{minlat},#{maxlon},#{maxlat}" - get :trackpoints, :bbox => bbox + get :trackpoints, :params => { :bbox => bbox } assert_response :success assert_select "gpx[version='1.0'][creator='OpenStreetMap.org']", :count => 1 do assert_select "trk" do @@ -176,7 +176,7 @@ class ApiControllerTest < ActionController::TestCase maxlon = point.longitude + 0.002 maxlat = point.latitude + 0.002 bbox = "#{minlon},#{minlat},#{maxlon},#{maxlat}" - get :trackpoints, :bbox => bbox + get :trackpoints, :params => { :bbox => bbox } assert_response :success assert_select "gpx[version='1.0'][creator='OpenStreetMap.org']", :count => 1 do assert_select "trk", :count => 1 do @@ -200,7 +200,7 @@ class ApiControllerTest < ActionController::TestCase maxlon = point.longitude + 0.002 maxlat = point.latitude + 0.002 bbox = "#{minlon},#{minlat},#{maxlon},#{maxlat}" - get :trackpoints, :bbox => bbox + get :trackpoints, :params => { :bbox => bbox } assert_response :success assert_select "gpx[version='1.0'][creator='OpenStreetMap.org']", :count => 1 do assert_select "trk", :count => 1 do @@ -226,12 +226,12 @@ class ApiControllerTest < ActionController::TestCase def test_traces_page_less_than_0 -10.upto(-1) do |i| - get :trackpoints, :page => i, :bbox => "-0.1,-0.1,0.1,0.1" + get :trackpoints, :params => { :page => i, :bbox => "-0.1,-0.1,0.1,0.1" } assert_response :bad_request assert_equal "Page number must be greater than or equal to 0", @response.body, "The page number was #{i}" end 0.upto(10) do |i| - get :trackpoints, :page => i, :bbox => "-0.1,-0.1,0.1,0.1" + get :trackpoints, :params => { :page => i, :bbox => "-0.1,-0.1,0.1,0.1" } assert_response :success, "The page number was #{i} and should have been accepted" end end @@ -239,7 +239,7 @@ class ApiControllerTest < ActionController::TestCase def test_bbox_too_big @badbigbbox.each do |bbox| %w[trackpoints map].each do |tq| - get tq, :bbox => bbox + get tq, :params => { :bbox => bbox } assert_response :bad_request, "The bbox:#{bbox} was expected to be too big" assert_equal "The maximum bbox size is #{MAX_REQUEST_AREA}, and your request was too large. Either request a smaller area, or use planet.osm", @response.body, "bbox: #{bbox}" end @@ -249,7 +249,7 @@ class ApiControllerTest < ActionController::TestCase def test_bbox_malformed @badmalformedbbox.each do |bbox| %w[trackpoints map].each do |tq| - get tq, :bbox => bbox + get tq, :params => { :bbox => bbox } assert_response :bad_request, "The bbox:#{bbox} was expected to be malformed" assert_equal "The parameter bbox is required, and must be of the form min_lon,min_lat,max_lon,max_lat", @response.body, "bbox: #{bbox}" end @@ -259,7 +259,7 @@ class ApiControllerTest < ActionController::TestCase def test_bbox_lon_mixedup @badlonmixedbbox.each do |bbox| %w[trackpoints map].each do |tq| - get tq, :bbox => bbox + get tq, :params => { :bbox => bbox } assert_response :bad_request, "The bbox:#{bbox} was expected to have the longitude mixed up" assert_equal "The minimum longitude must be less than the maximum longitude, but it wasn't", @response.body, "bbox: #{bbox}" end @@ -269,7 +269,7 @@ class ApiControllerTest < ActionController::TestCase def test_bbox_lat_mixedup @badlatmixedbbox.each do |bbox| %w[trackpoints map].each do |tq| - get tq, :bbox => bbox + get tq, :params => { :bbox => bbox } assert_response :bad_request, "The bbox:#{bbox} was expected to have the latitude mixed up" assert_equal "The minimum latitude must be less than the maximum latitude, but it wasn't", @response.body, "bbox: #{bbox}" end @@ -335,7 +335,7 @@ class ApiControllerTest < ActionController::TestCase def test_changes_zoom_invalid zoom_to_test = %w[p -1 0 17 one two] zoom_to_test.each do |zoom| - get :changes, :zoom => zoom + get :changes, :params => { :zoom => zoom } assert_response :bad_request assert_equal @response.body, "Requested zoom is invalid, or the supplied start is after the end time, or the start duration is more than 24 hours" end @@ -343,7 +343,7 @@ class ApiControllerTest < ActionController::TestCase def test_changes_zoom_valid 1.upto(16) do |zoom| - get :changes, :zoom => zoom + get :changes, :params => { :zoom => zoom } assert_response :success # NOTE: there was a test here for the timing, but it was too sensitive to be a good test # and it was annoying. @@ -356,7 +356,7 @@ class ApiControllerTest < ActionController::TestCase def test_changes_hours_invalid invalid = %w[-21 335 -1 0 25 26 100 one two three ping pong :] invalid.each do |hour| - get :changes, :hours => hour + get :changes, :params => { :hours => hour } assert_response :bad_request, "Problem with the hour: #{hour}" assert_equal @response.body, "Requested zoom is invalid, or the supplied start is after the end time, or the start duration is more than 24 hours", "Problem with the hour: #{hour}." end @@ -364,19 +364,19 @@ class ApiControllerTest < ActionController::TestCase def test_changes_hours_valid 1.upto(24) do |hour| - get :changes, :hours => hour + get :changes, :params => { :hours => hour } assert_response :success end end def test_changes_start_end_invalid - get :changes, :start => "2010-04-03 10:55:00", :end => "2010-04-03 09:55:00" + get :changes, :params => { :start => "2010-04-03 10:55:00", :end => "2010-04-03 09:55:00" } assert_response :bad_request assert_equal @response.body, "Requested zoom is invalid, or the supplied start is after the end time, or the start duration is more than 24 hours" end def test_changes_start_end_valid - get :changes, :start => "2010-04-03 09:55:00", :end => "2010-04-03 10:55:00" + get :changes, :params => { :start => "2010-04-03 09:55:00", :end => "2010-04-03 10:55:00" } assert_response :success end diff --git a/test/controllers/browse_controller_test.rb b/test/controllers/browse_controller_test.rb index abb1ccdfe..68345c6b6 100644 --- a/test/controllers/browse_controller_test.rb +++ b/test/controllers/browse_controller_test.rb @@ -97,12 +97,12 @@ class BrowseControllerTest < ActionController::TestCase def test_read_hidden_note hidden_note_with_comment = create(:note_with_comments, :status => "hidden") - get :note, :id => hidden_note_with_comment.id + get :note, :params => { :id => hidden_note_with_comment.id } assert_response :not_found assert_template "browse/not_found" assert_template :layout => "map" - xhr :get, :note, :id => hidden_note_with_comment.id + get :note, :params => { :id => hidden_note_with_comment.id }, :xhr => true assert_response :not_found assert_template "browse/not_found" assert_template :layout => "xhr" @@ -139,7 +139,7 @@ class BrowseControllerTest < ActionController::TestCase node_v1 = node.old_nodes.find_by(:version => 1) node_v1.redact!(create(:redaction)) - get :node, :id => node.id + get :node, :params => { :id => node.id } assert_response :success assert_template "feature" @@ -155,7 +155,7 @@ class BrowseControllerTest < ActionController::TestCase node_v1 = node.old_nodes.find_by(:version => 1) node_v1.redact!(create(:redaction)) - get :node_history, :id => node.id + get :node_history, :params => { :id => node.id } assert_response :success assert_template "browse/history" @@ -175,7 +175,7 @@ class BrowseControllerTest < ActionController::TestCase way_v3 = way.old_ways.find_by(:version => 3) way_v3.redact!(create(:redaction)) - get :way_history, :id => way.id + get :way_history, :params => { :id => way.id } assert_response :success assert_template "browse/history" @@ -193,7 +193,7 @@ class BrowseControllerTest < ActionController::TestCase relation_v3 = relation.old_relations.find_by(:version => 3) relation_v3.redact!(create(:redaction)) - get :relation_history, :id => relation.id + get :relation_history, :params => { :id => relation.id } assert_response :success assert_template "browse/history" @@ -216,25 +216,25 @@ class BrowseControllerTest < ActionController::TestCase end assert_raise ActionController::UrlGenerationError do - get type, :id => -10 # we won't have an id that's negative + get type, :params => { :id => -10 } # we won't have an id that's negative end - get type, :id => 0 + get type, :params => { :id => 0 } assert_response :not_found assert_template "browse/not_found" assert_template :layout => "map" - xhr :get, type, :id => 0 + get type, :params => { :id => 0 }, :xhr => true assert_response :not_found assert_template "browse/not_found" assert_template :layout => "xhr" - get type, :id => id + get type, :params => { :id => id } assert_response :success assert_template template assert_template :layout => "map" - xhr :get, type, :id => id + get type, :params => { :id => id }, :xhr => true assert_response :success assert_template template assert_template :layout => "xhr" diff --git a/test/controllers/changeset_controller_test.rb b/test/controllers/changeset_controller_test.rb index abdd4cdaa..f1b029b39 100644 --- a/test/controllers/changeset_controller_test.rb +++ b/test/controllers/changeset_controller_test.rb @@ -178,14 +178,14 @@ class ChangesetControllerTest < ActionController::TestCase def test_read changeset_id = create(:changeset).id - get :read, :id => changeset_id + get :read, :params => { :id => changeset_id } assert_response :success, "cannot get first changeset" assert_select "osm[version='#{API_VERSION}'][generator='OpenStreetMap server']", 1 assert_select "osm>changeset[id='#{changeset_id}']", 1 assert_select "osm>changeset>discussion", 0 - get :read, :id => changeset_id, :include_discussion => true + get :read, :params => { :id => changeset_id, :include_discussion => true } assert_response :success, "cannot get first changeset with comments" assert_select "osm[version='#{API_VERSION}'][generator='OpenStreetMap server']", 1 @@ -196,7 +196,7 @@ class ChangesetControllerTest < ActionController::TestCase changeset_id = create(:changeset, :closed).id create_list(:changeset_comment, 3, :changeset_id => changeset_id) - get :read, :id => changeset_id, :include_discussion => true + get :read, :params => { :id => changeset_id, :include_discussion => true } assert_response :success, "cannot get closed changeset with comments" assert_select "osm[version='#{API_VERSION}'][generator='OpenStreetMap server']", 1 @@ -210,7 +210,7 @@ class ChangesetControllerTest < ActionController::TestCase def test_read_not_found [0, -32, 233455644, "afg", "213"].each do |id| begin - get :read, :id => id + get :read, :params => { :id => id } assert_response :not_found, "should get a not found" rescue ActionController::UrlGenerationError => ex assert_match /No route matches/, ex.to_s @@ -227,19 +227,19 @@ class ChangesetControllerTest < ActionController::TestCase changeset = create(:changeset, :user => user) ## Try without authentication - put :close, :id => changeset.id + put :close, :params => { :id => changeset.id } assert_response :unauthorized ## Try using the non-public user basic_authorization private_user.email, "test" - put :close, :id => private_changeset.id + put :close, :params => { :id => private_changeset.id } assert_require_public_data ## The try with the public user basic_authorization user.email, "test" cs_id = changeset.id - put :close, :id => cs_id + put :close, :params => { :id => cs_id } assert_response :success # test that it really is closed now @@ -256,7 +256,7 @@ class ChangesetControllerTest < ActionController::TestCase basic_authorization user.email, "test" - put :close, :id => changeset.id + put :close, :params => { :id => changeset.id } assert_response :conflict assert_equal "The user doesn't own that changeset", @response.body end @@ -269,10 +269,10 @@ class ChangesetControllerTest < ActionController::TestCase basic_authorization user.email, "test" - get :close, :id => changeset.id + get :close, :params => { :id => changeset.id } assert_response :method_not_allowed - post :close, :id => changeset.id + post :close, :params => { :id => changeset.id } assert_response :method_not_allowed end @@ -284,7 +284,7 @@ class ChangesetControllerTest < ActionController::TestCase # First try to do it with no auth cs_ids.each do |id| begin - put :close, :id => id + put :close, :params => { :id => id } assert_response :unauthorized, "Shouldn't be able close the non-existant changeset #{id}, when not authorized" rescue ActionController::UrlGenerationError => ex assert_match /No route matches/, ex.to_s @@ -295,7 +295,7 @@ class ChangesetControllerTest < ActionController::TestCase basic_authorization create(:user).email, "test" cs_ids.each do |id| begin - put :close, :id => id + put :close, :params => { :id => id } assert_response :not_found, "The changeset #{id} doesn't exist, so can't be closed" rescue ActionController::UrlGenerationError => ex assert_match /No route matches/, ex.to_s @@ -347,7 +347,7 @@ EOF # upload it content diff - post :upload, :id => changeset_id + post :upload, :params => { :id => changeset_id } assert_response :unauthorized, "shouldn't be able to upload a simple valid diff to changeset: #{@response.body}" @@ -377,7 +377,7 @@ EOF # upload it content diff - post :upload, :id => changeset_id + post :upload, :params => { :id => changeset_id } assert_response :forbidden, "can't upload a simple valid diff to changeset: #{@response.body}" @@ -407,7 +407,7 @@ EOF # upload it content diff - post :upload, :id => changeset_id + post :upload, :params => { :id => changeset_id } assert_response :success, "can't upload a simple valid diff to changeset: #{@response.body}" @@ -452,7 +452,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :success, "can't upload a simple valid creation to changeset: #{@response.body}" @@ -517,7 +517,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :success, "can't upload a deletion diff to changeset: #{@response.body}" @@ -545,7 +545,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :success, "can't upload a deletion diff to changeset: #{@response.body}" @@ -610,7 +610,7 @@ EOF # upload it, which used to cause an error like "PGError: ERROR: # integer out of range" (bug #2152). but shouldn't any more. content diff - post :upload, :id => changeset_id + post :upload, :params => { :id => changeset_id } assert_response :success, "can't upload a spatially-large diff to changeset: #{@response.body}" @@ -653,7 +653,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :precondition_failed, "shouldn't be able to upload a invalid deletion diff: #{@response.body}" assert_equal "Precondition failed: Way #{used_way.id} is still used by relations #{relation.id}.", @response.body @@ -697,7 +697,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :success, "can't do a conditional delete of in use objects: #{@response.body}" @@ -751,7 +751,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :bad_request, "shoudln't be able to upload too long a tag to changeset: #{@response.body}" end @@ -794,7 +794,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :success, "can't upload a complex diff to changeset: #{@response.body}" @@ -858,7 +858,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :conflict, "uploading a diff with multiple changesets should have failed" @@ -895,7 +895,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :success, "can't upload multiple versions of an element in a diff: #{@response.body}" @@ -925,7 +925,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :conflict, "shouldn't be able to upload the same element twice in a diff: #{@response.body}" end @@ -947,7 +947,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :bad_request, "shouldn't be able to upload an element without version: #{@response.body}" end @@ -967,7 +967,7 @@ EOF EOF content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :bad_request, "Shouldn't be able to upload a diff with the action ping" assert_equal @response.body, "Unknown action ping, choices are create, modify, delete" end @@ -1001,7 +1001,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :success, "can't upload a valid diff with whitespace variations to changeset: #{@response.body}" @@ -1039,7 +1039,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :success, "can't upload a valid diff with re-used placeholders to changeset: #{@response.body}" @@ -1068,7 +1068,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :bad_request, "shouldn't be able to re-use placeholder IDs" end @@ -1100,7 +1100,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :bad_request, "shouldn't be able to use invalid placeholder IDs" assert_equal "Placeholder node not found for reference -4 in way -1", @response.body @@ -1124,7 +1124,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :bad_request, "shouldn't be able to use invalid placeholder IDs" assert_equal "Placeholder node not found for reference -4 in way #{way.id}", @response.body @@ -1157,7 +1157,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :bad_request, "shouldn't be able to use invalid placeholder IDs" assert_equal "Placeholder Node not found for reference -4 in relation -1.", @response.body @@ -1181,7 +1181,7 @@ EOF # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :bad_request, "shouldn't be able to use invalid placeholder IDs" assert_equal "Placeholder Way not found for reference -1 in relation #{relation.id}.", @response.body @@ -1214,7 +1214,7 @@ EOF # upload it content diff - post :upload, :id => changeset_id + post :upload, :params => { :id => changeset_id } assert_response :success, "diff should have uploaded OK" @@ -1254,7 +1254,7 @@ EOF # upload it content diff - post :upload, :id => changeset_id + post :upload, :params => { :id => changeset_id } assert_response :success, "diff should have uploaded OK" @@ -1279,7 +1279,7 @@ EOF ""].each do |diff| # upload it content diff - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response(:success, "should be able to upload " + "empty changeset: " + diff) end @@ -1304,7 +1304,7 @@ EOF # upload it content diff error_format "xml" - post :upload, :id => changeset.id + post :upload, :params => { :id => changeset.id } assert_response :success, "failed to return error in XML format" @@ -1359,11 +1359,11 @@ EOF # upload it content diff - post :upload, :id => changeset_id + post :upload, :params => { :id => changeset_id } assert_response :success, "can't upload multiple versions of an element in a diff: #{@response.body}" - get :download, :id => changeset_id + get :download, :params => { :id => changeset_id } assert_response :success assert_select "osmChange", 1 @@ -1418,11 +1418,11 @@ OSMFILE # upload it content diff - post :upload, :id => changeset_id + post :upload, :params => { :id => changeset_id } assert_response :success, "can't upload a diff from JOSM: #{@response.body}" - get :download, :id => changeset_id + get :download, :params => { :id => changeset_id } assert_response :success assert_select "osmChange", 1 @@ -1474,11 +1474,11 @@ EOF # upload it content diff - post :upload, :id => changeset_id + post :upload, :params => { :id => changeset_id } assert_response :success, "can't upload multiple versions of an element in a diff: #{@response.body}" - get :download, :id => changeset_id + get :download, :params => { :id => changeset_id } assert_response :success assert_select "osmChange", 1 @@ -1500,7 +1500,7 @@ EOF _relation = create(:relation, :with_history, :version => 1, :changeset => changeset) _relation2 = create(:relation, :with_history, :deleted, :version => 1, :changeset => changeset) - get :download, :id => changeset.id + get :download, :params => { :id => changeset.id } assert_response :success assert_template nil @@ -1538,7 +1538,7 @@ EOF end # get the bounding box back from the changeset - get :read, :id => changeset_id + get :read, :params => { :id => changeset_id } assert_response :success, "Couldn't read back changeset." assert_select "osm>changeset[min_lon='1.0000000']", 1 assert_select "osm>changeset[max_lon='1.0000000']", 1 @@ -1553,7 +1553,7 @@ EOF end # get the bounding box back from the changeset - get :read, :id => changeset_id + get :read, :params => { :id => changeset_id } assert_response :success, "Couldn't read back changeset for the second time." assert_select "osm>changeset[min_lon='1.0000000']", 1 assert_select "osm>changeset[max_lon='2.0000000']", 1 @@ -1563,12 +1563,12 @@ EOF # add (delete) a way to it, which contains a point at (3,3) with_controller(WayController.new) do content update_changeset(way.to_xml, changeset_id) - put :delete, :id => way.id + put :delete, :params => { :id => way.id } assert_response :success, "Couldn't delete a way." end # get the bounding box back from the changeset - get :read, :id => changeset_id + get :read, :params => { :id => changeset_id } assert_response :success, "Couldn't read back changeset for the third time." # note that the 3.1 here is because of the bbox overexpansion assert_select "osm>changeset[min_lon='1.0000000']", 1 @@ -1615,17 +1615,17 @@ EOF # Try and put content "" - put :expand_bbox, :id => changeset_id + put :expand_bbox, :params => { :id => changeset_id } assert_response :method_not_allowed, "shouldn't be able to put a bbox expand" # Try to get the update content "" - get :expand_bbox, :id => changeset_id + get :expand_bbox, :params => { :id => changeset_id } assert_response :method_not_allowed, "shouldn't be able to get a bbox expand" # Try to use a hopefully missing changeset content "" - post :expand_bbox, :id => changeset_id + 13245 + post :expand_bbox, :params => { :id => changeset_id + 13245 } assert_response :not_found, "shouldn't be able to do a bbox expand on a nonexistant changeset" end @@ -1641,77 +1641,78 @@ EOF changeset2 = create(:changeset, :min_lat => 5 * GeoRecord::SCALE, :min_lon => 5 * GeoRecord::SCALE, :max_lat => 15 * GeoRecord::SCALE, :max_lon => 15 * GeoRecord::SCALE) changeset3 = create(:changeset, :min_lat => 4.5 * GeoRecord::SCALE, :min_lon => 4.5 * GeoRecord::SCALE, :max_lat => 5 * GeoRecord::SCALE, :max_lon => 5 * GeoRecord::SCALE) - get :query, :bbox => "-10,-10, 10, 10" + get :query, :params => { :bbox => "-10,-10, 10, 10" } assert_response :success, "can't get changesets in bbox" assert_changesets [changeset2, changeset3] - get :query, :bbox => "4.5,4.5,4.6,4.6" + get :query, :params => { :bbox => "4.5,4.5,4.6,4.6" } assert_response :success, "can't get changesets in bbox" assert_changesets [changeset3] # not found when looking for changesets of non-existing users - get :query, :user => User.maximum(:id) + 1 + get :query, :params => { :user => User.maximum(:id) + 1 } assert_response :not_found - get :query, :display_name => " " + get :query, :params => { :display_name => " " } assert_response :not_found # can't get changesets of user 1 without authenticating - get :query, :user => private_user.id + get :query, :params => { :user => private_user.id } assert_response :not_found, "shouldn't be able to get changesets by non-public user (ID)" - get :query, :display_name => private_user.display_name + get :query, :params => { :display_name => private_user.display_name } assert_response :not_found, "shouldn't be able to get changesets by non-public user (name)" # but this should work basic_authorization private_user.email, "test" - get :query, :user => private_user.id + get :query, :params => { :user => private_user.id } assert_response :success, "can't get changesets by user ID" assert_changesets [private_user_changeset, private_user_closed_changeset] - get :query, :display_name => private_user.display_name + get :query, :params => { :display_name => private_user.display_name } assert_response :success, "can't get changesets by user name" assert_changesets [private_user_changeset, private_user_closed_changeset] # check that the correct error is given when we provide both UID and name - get :query, :user => private_user.id, :display_name => private_user.display_name + get :query, :params => { :user => private_user.id, + :display_name => private_user.display_name } assert_response :bad_request, "should be a bad request to have both ID and name specified" - get :query, :user => private_user.id, :open => true + get :query, :params => { :user => private_user.id, :open => true } assert_response :success, "can't get changesets by user and open" assert_changesets [private_user_changeset] - get :query, :time => "2007-12-31" + get :query, :params => { :time => "2007-12-31" } assert_response :success, "can't get changesets by time-since" assert_changesets [private_user_changeset, private_user_closed_changeset, changeset, closed_changeset, changeset2, changeset3] - get :query, :time => "2008-01-01T12:34Z" + get :query, :params => { :time => "2008-01-01T12:34Z" } assert_response :success, "can't get changesets by time-since with hour" assert_changesets [private_user_changeset, private_user_closed_changeset, changeset, closed_changeset, changeset2, changeset3] - get :query, :time => "2007-12-31T23:59Z,2008-01-02T00:01Z" + get :query, :params => { :time => "2007-12-31T23:59Z,2008-01-02T00:01Z" } assert_response :success, "can't get changesets by time-range" assert_changesets [closed_changeset] - get :query, :open => "true" + get :query, :params => { :open => "true" } assert_response :success, "can't get changesets by open-ness" assert_changesets [private_user_changeset, changeset, changeset2, changeset3] - get :query, :closed => "true" + get :query, :params => { :closed => "true" } assert_response :success, "can't get changesets by closed-ness" assert_changesets [private_user_closed_changeset, closed_changeset] - get :query, :closed => "true", :user => private_user.id + get :query, :params => { :closed => "true", :user => private_user.id } assert_response :success, "can't get changesets by closed-ness and user" assert_changesets [private_user_closed_changeset] - get :query, :closed => "true", :user => user.id + get :query, :params => { :closed => "true", :user => user.id } assert_response :success, "can't get changesets by closed-ness and user" assert_changesets [closed_changeset] - get :query, :changesets => "#{private_user_changeset.id},#{changeset.id},#{closed_changeset.id}" + get :query, :params => { :changesets => "#{private_user_changeset.id},#{changeset.id},#{closed_changeset.id}" } assert_response :success, "can't get changesets by id (as comma-separated string)" assert_changesets [private_user_changeset, changeset, closed_changeset] - get :query, :changesets => "" + get :query, :params => { :changesets => "" } assert_response :bad_request, "should be a bad request since changesets is empty" end @@ -1722,7 +1723,7 @@ EOF ["abracadabra!", "1,2,3,F", ";drop table users;"].each do |bbox| - get :query, :bbox => bbox + get :query, :params => { :bbox => bbox } assert_response :bad_request, "'#{bbox}' isn't a bbox" end @@ -1731,7 +1732,7 @@ EOF ";drop table users;", ",", "-,-"].each do |time| - get :query, :time => time + get :query, :params => { :time => time } assert_response :bad_request, "'#{time}' isn't a valid time range" end @@ -1739,7 +1740,7 @@ EOF "foobar", "-1", "0"].each do |uid| - get :query, :user => uid + get :query, :params => { :user => uid } assert_response :bad_request, "'#{uid}' isn't a valid user ID" end end @@ -1761,17 +1762,17 @@ EOF content new_changeset # try without any authorization - put :update, :id => private_changeset.id + put :update, :params => { :id => private_changeset.id } assert_response :unauthorized # try with the wrong authorization basic_authorization create(:user).email, "test" - put :update, :id => private_changeset.id + put :update, :params => { :id => private_changeset.id } assert_response :conflict # now this should get an unauthorized basic_authorization private_user.email, "test" - put :update, :id => private_changeset.id + put :update, :params => { :id => private_changeset.id } assert_require_public_data "user with their data non-public, shouldn't be able to edit their changeset" ## Now try with the public user @@ -1785,17 +1786,17 @@ EOF # try without any authorization @request.env["HTTP_AUTHORIZATION"] = nil - put :update, :id => changeset.id + put :update, :params => { :id => changeset.id } assert_response :unauthorized # try with the wrong authorization basic_authorization create(:user).email, "test" - put :update, :id => changeset.id + put :update, :params => { :id => changeset.id } assert_response :conflict # now this should work... basic_authorization user.email, "test" - put :update, :id => changeset.id + put :update, :params => { :id => changeset.id } assert_response :success assert_select "osm>changeset[id='#{changeset.id}']", 1 @@ -1817,7 +1818,7 @@ EOF new_changeset.find("//osm/changeset").first << new_tag content new_changeset - put :update, :id => changeset.id + put :update, :params => { :id => changeset.id } assert_response :conflict end @@ -1848,7 +1849,7 @@ EOF assert_response :success, "can't create a new node" node_id = @response.body.to_i - get :read, :id => node_id + get :read, :params => { :id => node_id } assert_response :success, "can't read back new node" node_doc = XML::Parser.string(@response.body).parse node_xml = node_doc.find("//osm/node").first @@ -1860,7 +1861,7 @@ EOF node_xml["version"] = (i + 1).to_s content node_doc - put :update, :id => node_id + put :update, :params => { :id => node_id } assert_response :success, "attempt #{i} should have succeeded" end @@ -1870,7 +1871,7 @@ EOF node_xml["version"] = offset.to_s content node_doc - put :update, :id => node_id + put :update, :params => { :id => node_id } assert_response :conflict, "final attempt should have failed" end @@ -1886,13 +1887,13 @@ EOF ## # This should display the last 20 changesets closed def test_list - get :list, :format => "html" + get :list, :params => { :format => "html" } assert_response :success assert_template "history" assert_template :layout => "map" assert_select "h2", :text => "Changesets", :count => 1 - xhr :get, :list, :format => "html", :list => "1" + get :list, :params => { :format => "html", :list => "1" }, :xhr => true assert_response :success assert_template "list" @@ -1902,13 +1903,13 @@ EOF ## # This should display the last 20 changesets closed def test_list_xhr - xhr :get, :list, :format => "html" + get :list, :params => { :format => "html" }, :xhr => true assert_response :success assert_template "history" assert_template :layout => "xhr" assert_select "h2", :text => "Changesets", :count => 1 - xhr :get, :list, :format => "html", :list => "1" + get :list, :params => { :format => "html", :list => "1" }, :xhr => true assert_response :success assert_template "list" @@ -1918,13 +1919,13 @@ EOF ## # This should display the last 20 changesets closed in a specific area def test_list_bbox - get :list, :format => "html", :bbox => "4.5,4.5,5.5,5.5" + get :list, :params => { :format => "html", :bbox => "4.5,4.5,5.5,5.5" } assert_response :success assert_template "history" assert_template :layout => "map" assert_select "h2", :text => "Changesets", :count => 1 - xhr :get, :list, :format => "html", :bbox => "4.5,4.5,5.5,5.5", :list => "1" + get :list, :params => { :format => "html", :bbox => "4.5,4.5,5.5,5.5", :list => "1" }, :xhr => true assert_response :success assert_template "list" @@ -1938,11 +1939,11 @@ EOF create(:changeset, :user => user) create(:changeset, :closed, :user => user) - get :list, :format => "html", :display_name => user.display_name + get :list, :params => { :format => "html", :display_name => user.display_name } assert_response :success assert_template "history" - xhr :get, :list, :format => "html", :display_name => user.display_name, :list => "1" + get :list, :params => { :format => "html", :display_name => user.display_name, :list => "1" }, :xhr => true assert_response :success assert_template "list" @@ -1956,11 +1957,11 @@ EOF create(:changeset, :user => private_user) create(:changeset, :closed, :user => private_user) - get :list, :format => "html", :display_name => private_user.display_name + get :list, :params => { :format => "html", :display_name => private_user.display_name } assert_response :success assert_template "history" - xhr :get, :list, :format => "html", :display_name => private_user.display_name, :list => "1" + get :list, :params => { :format => "html", :display_name => private_user.display_name, :list => "1" }, :xhr => true assert_response :success assert_template "list" @@ -1970,11 +1971,11 @@ EOF ## # Check the not found of the list user changesets def test_list_user_not_found - get :list, :format => "html", :display_name => "Some random user" + get :list, :params => { :format => "html", :display_name => "Some random user" } assert_response :not_found assert_template "user/no_such_user" - xhr :get, :list, :format => "html", :display_name => "Some random user", :list => "1" + get :list, :params => { :format => "html", :display_name => "Some random user", :list => "1" }, :xhr => true assert_response :not_found assert_template "user/no_such_user" end @@ -1986,17 +1987,17 @@ EOF friend = create(:friend, :befriender => private_user) create(:changeset, :user => friend.befriendee) - get :list, :friends => true + get :list, :params => { :friends => true } assert_response :redirect assert_redirected_to :controller => :user, :action => :login, :referer => friend_changesets_path session[:user] = private_user.id - get :list, :friends => true + get :list, :params => { :friends => true } assert_response :success assert_template "history" - xhr :get, :list, :friends => true, :list => "1" + get :list, :params => { :friends => true, :list => "1" }, :xhr => true assert_response :success assert_template "list" @@ -2010,17 +2011,17 @@ EOF user = create(:user, :home_lat => 51.0, :home_lon => 1.0) create(:changeset, :user => user) - get :list, :nearby => true + get :list, :params => { :nearby => true } assert_response :redirect assert_redirected_to :controller => :user, :action => :login, :referer => nearby_changesets_path session[:user] = private_user.id - get :list, :nearby => true + get :list, :params => { :nearby => true } assert_response :success assert_template "history" - xhr :get, :list, :nearby => true, :list => "1" + get :list, :params => { :nearby => true, :list => "1" }, :xhr => true assert_response :success assert_template "list" @@ -2030,13 +2031,13 @@ EOF ## # Check that we can't request later pages of the changesets list def test_list_max_id - xhr :get, :list, :format => "html", :max_id => 4 + get :list, :params => { :format => "html", :max_id => 4 }, :xhr => true assert_response :success assert_template "history" assert_template :layout => "xhr" assert_select "h2", :text => "Changesets", :count => 1 - xhr :get, :list, :format => "html", :list => "1", :max_id => 4 + get :list, :params => { :format => "html", :list => "1", :max_id => 4 }, :xhr => true assert_response :success assert_template "list" @@ -2050,7 +2051,7 @@ EOF closed_changeset = create(:changeset, :closed, :num_changes => 1) _empty_changeset = create(:changeset, :num_changes => 0) - get :feed, :format => :atom + get :feed, :params => { :format => :atom } assert_response :success assert_template "list" assert_equal "application/atom+xml", response.content_type @@ -2066,7 +2067,7 @@ EOF _elsewhere_changeset = create(:changeset, :num_changes => 1, :min_lat => -5 * GeoRecord::SCALE, :min_lon => -5 * GeoRecord::SCALE, :max_lat => -5 * GeoRecord::SCALE, :max_lon => -5 * GeoRecord::SCALE) _empty_changeset = create(:changeset, :num_changes => 0, :min_lat => -5 * GeoRecord::SCALE, :min_lon => -5 * GeoRecord::SCALE, :max_lat => -5 * GeoRecord::SCALE, :max_lon => -5 * GeoRecord::SCALE) - get :feed, :format => :atom, :bbox => "4.5,4.5,5.5,5.5" + get :feed, :params => { :format => :atom, :bbox => "4.5,4.5,5.5,5.5" } assert_response :success assert_template "list" assert_equal "application/atom+xml", response.content_type @@ -2081,7 +2082,8 @@ EOF changesets = create_list(:changeset, 3, :user => user, :num_changes => 4) _other_changeset = create(:changeset) - get :feed, :format => :atom, :display_name => user.display_name + get :feed, :params => { :format => :atom, :display_name => user.display_name } + assert_response :success assert_template "list" assert_equal "application/atom+xml", response.content_type @@ -2092,14 +2094,14 @@ EOF ## # Check the not found of the user changesets feed def test_feed_user_not_found - get :feed, :format => "atom", :display_name => "Some random user" + get :feed, :params => { :format => "atom", :display_name => "Some random user" } assert_response :not_found end ## # Check that we can't request later pages of the changesets feed def test_feed_max_id - get :feed, :format => "atom", :max_id => 100 + get :feed, :params => { :format => "atom", :max_id => 100 } assert_response :redirect assert_redirected_to :action => :feed end @@ -2113,7 +2115,7 @@ EOF node_v1 = node.old_nodes.find_by(:version => 1) node_v1.redact!(create(:redaction)) - get :download, :id => changeset.id + get :download, :params => { :id => changeset.id } assert_response :success assert_select "osmChange", 1 @@ -2137,7 +2139,7 @@ EOF assert_difference "ChangesetComment.count", 1 do assert_no_difference "ActionMailer::Base.deliveries.size" do - post :comment, :id => private_user_closed_changeset.id, :text => "This is a comment" + post :comment, :params => { :id => private_user_closed_changeset.id, :text => "This is a comment" } end end assert_response :success @@ -2150,7 +2152,7 @@ EOF assert_difference "ChangesetComment.count", 1 do assert_difference "ActionMailer::Base.deliveries.size", 1 do - post :comment, :id => changeset.id, :text => "This is a comment" + post :comment, :params => { :id => changeset.id, :text => "This is a comment" } end end assert_response :success @@ -2166,7 +2168,7 @@ EOF assert_difference "ChangesetComment.count", 1 do assert_difference "ActionMailer::Base.deliveries.size", 2 do - post :comment, :id => changeset.id, :text => "This is a comment" + post :comment, :params => { :id => changeset.id, :text => "This is a comment" } end end assert_response :success @@ -2188,32 +2190,32 @@ EOF # create comment fail def test_create_comment_fail # unauthorized - post :comment, :id => create(:changeset, :closed).id, :text => "This is a comment" + post :comment, :params => { :id => create(:changeset, :closed).id, :text => "This is a comment" } assert_response :unauthorized basic_authorization(create(:user).email, "test") # bad changeset id assert_no_difference "ChangesetComment.count" do - post :comment, :id => 999111, :text => "This is a comment" + post :comment, :params => { :id => 999111, :text => "This is a comment" } end assert_response :not_found # not closed changeset assert_no_difference "ChangesetComment.count" do - post :comment, :id => create(:changeset).id, :text => "This is a comment" + post :comment, :params => { :id => create(:changeset).id, :text => "This is a comment" } end assert_response :conflict # no text assert_no_difference "ChangesetComment.count" do - post :comment, :id => create(:changeset, :closed).id + post :comment, :params => { :id => create(:changeset, :closed).id } end assert_response :bad_request # empty text assert_no_difference "ChangesetComment.count" do - post :comment, :id => create(:changeset, :closed).id, :text => "" + post :comment, :params => { :id => create(:changeset, :closed).id, :text => "" } end assert_response :bad_request end @@ -2225,7 +2227,7 @@ EOF changeset = create(:changeset, :closed) assert_difference "changeset.subscribers.count", 1 do - post :subscribe, :id => changeset.id + post :subscribe, :params => { :id => changeset.id } end assert_response :success end @@ -2238,7 +2240,7 @@ EOF # unauthorized changeset = create(:changeset, :closed) assert_no_difference "changeset.subscribers.count" do - post :subscribe, :id => changeset.id + post :subscribe, :params => { :id => changeset.id } end assert_response :unauthorized @@ -2246,14 +2248,14 @@ EOF # bad changeset id assert_no_difference "changeset.subscribers.count" do - post :subscribe, :id => 999111 + post :subscribe, :params => { :id => 999111 } end assert_response :not_found # not closed changeset changeset = create(:changeset) assert_no_difference "changeset.subscribers.count" do - post :subscribe, :id => changeset.id + post :subscribe, :params => { :id => changeset.id } end assert_response :conflict @@ -2261,7 +2263,7 @@ EOF changeset = create(:changeset, :closed) changeset.subscribers.push(user) assert_no_difference "changeset.subscribers.count" do - post :subscribe, :id => changeset.id + post :subscribe, :params => { :id => changeset.id } end assert_response :conflict end @@ -2275,7 +2277,7 @@ EOF changeset.subscribers.push(user) assert_difference "changeset.subscribers.count", -1 do - post :unsubscribe, :id => changeset.id + post :unsubscribe, :params => { :id => changeset.id } end assert_response :success end @@ -2286,7 +2288,7 @@ EOF # unauthorized changeset = create(:changeset, :closed) assert_no_difference "changeset.subscribers.count" do - post :unsubscribe, :id => changeset.id + post :unsubscribe, :params => { :id => changeset.id } end assert_response :unauthorized @@ -2294,21 +2296,21 @@ EOF # bad changeset id assert_no_difference "changeset.subscribers.count" do - post :unsubscribe, :id => 999111 + post :unsubscribe, :params => { :id => 999111 } end assert_response :not_found # not closed changeset changeset = create(:changeset) assert_no_difference "changeset.subscribers.count" do - post :unsubscribe, :id => changeset.id + post :unsubscribe, :params => { :id => changeset.id } end assert_response :conflict # trying to unsubscribe when not subscribed changeset = create(:changeset, :closed) assert_no_difference "changeset.subscribers.count" do - post :unsubscribe, :id => changeset.id + post :unsubscribe, :params => { :id => changeset.id } end assert_response :not_found end @@ -2320,21 +2322,21 @@ EOF comment = create(:changeset_comment) assert_equal true, comment.visible - post :hide_comment, :id => comment.id + post :hide_comment, :params => { :id => comment.id } assert_response :unauthorized assert_equal true, comment.reload.visible basic_authorization(create(:user).email, "test") # not a moderator - post :hide_comment, :id => comment.id + post :hide_comment, :params => { :id => comment.id } assert_response :forbidden assert_equal true, comment.reload.visible basic_authorization(create(:moderator_user).email, "test") # bad comment id - post :hide_comment, :id => 999111 + post :hide_comment, :params => { :id => 999111 } assert_response :not_found assert_equal true, comment.reload.visible end @@ -2347,7 +2349,7 @@ EOF basic_authorization(create(:moderator_user).email, "test") - post :hide_comment, :id => comment.id + post :hide_comment, :params => { :id => comment.id } assert_response :success assert_equal false, comment.reload.visible end @@ -2359,21 +2361,21 @@ EOF comment = create(:changeset_comment, :visible => false) assert_equal false, comment.visible - post :unhide_comment, :id => comment.id + post :unhide_comment, :params => { :id => comment.id } assert_response :unauthorized assert_equal false, comment.reload.visible basic_authorization(create(:user).email, "test") # not a moderator - post :unhide_comment, :id => comment.id + post :unhide_comment, :params => { :id => comment.id } assert_response :forbidden assert_equal false, comment.reload.visible basic_authorization(create(:moderator_user).email, "test") # bad comment id - post :unhide_comment, :id => 999111 + post :unhide_comment, :params => { :id => 999111 } assert_response :not_found assert_equal false, comment.reload.visible end @@ -2386,7 +2388,7 @@ EOF basic_authorization(create(:moderator_user).email, "test") - post :unhide_comment, :id => comment.id + post :unhide_comment, :params => { :id => comment.id } assert_response :success assert_equal true, comment.reload.visible end @@ -2397,7 +2399,7 @@ EOF changeset = create(:changeset, :closed) create_list(:changeset_comment, 3, :changeset => changeset) - get :comments_feed, :format => "rss" + get :comments_feed, :params => { :format => "rss" } assert_response :success assert_equal "application/rss+xml", @response.content_type assert_select "rss", :count => 1 do @@ -2406,7 +2408,7 @@ EOF end end - get :comments_feed, :format => "rss", :limit => 2 + get :comments_feed, :params => { :format => "rss", :limit => 2 } assert_response :success assert_equal "application/rss+xml", @response.content_type assert_select "rss", :count => 1 do @@ -2415,7 +2417,7 @@ EOF end end - get :comments_feed, :id => changeset.id, :format => "rss" + get :comments_feed, :params => { :id => changeset.id, :format => "rss" } assert_response :success assert_equal "application/rss+xml", @response.content_type assert_select "rss", :count => 1 do @@ -2428,10 +2430,10 @@ EOF ## # test comments feed def test_comments_feed_bad_limit - get :comments_feed, :format => "rss", :limit => 0 + get :comments_feed, :params => { :format => "rss", :limit => 0 } assert_response :bad_request - get :comments_feed, :format => "rss", :limit => 100001 + get :comments_feed, :params => { :format => "rss", :limit => 100001 } assert_response :bad_request end @@ -2451,7 +2453,7 @@ EOF # call the include method and assert properties of the bbox def check_after_include(changeset_id, lon, lat, bbox) content "" - post :expand_bbox, :id => changeset_id + post :expand_bbox, :params => { :id => changeset_id } assert_response :success, "Setting include of changeset failed: #{@response.body}" # check exactly one changeset diff --git a/test/controllers/diary_entry_controller_test.rb b/test/controllers/diary_entry_controller_test.rb index 49d56c4e4..58fffb8d3 100644 --- a/test/controllers/diary_entry_controller_test.rb +++ b/test/controllers/diary_entry_controller_test.rb @@ -109,7 +109,7 @@ class DiaryEntryControllerTest < ActionController::TestCase def test_new_form # Now try again when logged in - get :new, {}, { :user => create(:user) } + get :new, :session => { :user => create(:user) } assert_response :success assert_select "title", :text => /New Diary Entry/, :count => 1 assert_select "div.content-heading", :count => 1 do @@ -133,10 +133,11 @@ class DiaryEntryControllerTest < ActionController::TestCase def test_new_get_with_params # Now try creating a diary entry using get assert_difference "DiaryEntry.count", 0 do - get :new, { :commit => "save", - :diary_entry => { :title => "New Title", :body => "This is a new body for the diary entry", :latitude => "1.1", - :longitude => "2.2", :language_code => "en" } }, - { :user => create(:user).id } + get :new, + :params => { :commit => "save", + :diary_entry => { :title => "New Title", :body => "This is a new body for the diary entry", :latitude => "1.1", + :longitude => "2.2", :language_code => "en" } }, + :session => { :user => create(:user).id } end assert_response :success assert_template :edit @@ -146,10 +147,11 @@ class DiaryEntryControllerTest < ActionController::TestCase # Now try creating a invalid diary entry with an empty body user = create(:user) assert_no_difference "DiaryEntry.count" do - post :new, { :commit => "save", - :diary_entry => { :title => "New Title", :body => "", :latitude => "1.1", - :longitude => "2.2", :language_code => "en" } }, - { :user => user.id } + post :new, + :params => { :commit => "save", + :diary_entry => { :title => "New Title", :body => "", :latitude => "1.1", + :longitude => "2.2", :language_code => "en" } }, + :session => { :user => user.id } end assert_response :success assert_template :edit @@ -161,10 +163,11 @@ class DiaryEntryControllerTest < ActionController::TestCase # Now try creating a diary entry user = create(:user) assert_difference "DiaryEntry.count", 1 do - post :new, { :commit => "save", - :diary_entry => { :title => "New Title", :body => "This is a new body for the diary entry", :latitude => "1.1", - :longitude => "2.2", :language_code => "en" } }, - { :user => user.id } + post :new, + :params => { :commit => "save", + :diary_entry => { :title => "New Title", :body => "This is a new body for the diary entry", :latitude => "1.1", + :longitude => "2.2", :language_code => "en" } }, + :session => { :user => user.id } end assert_response :redirect assert_redirected_to :action => :list, :display_name => user.display_name @@ -188,10 +191,11 @@ class DiaryEntryControllerTest < ActionController::TestCase # Now try creating a diary entry in a different language assert_difference "DiaryEntry.count", 1 do - post :new, { :commit => "save", - :diary_entry => { :title => "New Title", :body => "This is a new body for the diary entry", :latitude => "1.1", - :longitude => "2.2", :language_code => "de" } }, - { :user => user.id } + post :new, + :params => { :commit => "save", + :diary_entry => { :title => "New Title", :body => "This is a new body for the diary entry", :latitude => "1.1", + :longitude => "2.2", :language_code => "de" } }, + :session => { :user => user.id } end assert_response :redirect assert_redirected_to :action => :list, :display_name => user.display_name @@ -217,9 +221,10 @@ class DiaryEntryControllerTest < ActionController::TestCase # Try creating a spammy diary entry assert_difference "DiaryEntry.count", 1 do - post :new, { :commit => "save", - :diary_entry => { :title => spammy_title, :body => spammy_body, :language_code => "en" } }, - { :user => user.id } + post :new, + :params => { :commit => "save", + :diary_entry => { :title => spammy_title, :body => spammy_body, :language_code => "en" } }, + :session => { :user => user.id } end assert_response :redirect assert_redirected_to :action => :list, :display_name => user.display_name @@ -231,7 +236,9 @@ class DiaryEntryControllerTest < ActionController::TestCase assert_equal "suspended", User.find(user.id).status # Follow the redirect - get :list, { :display_name => user.display_name }, { :user => user } + get :list, + :params => { :display_name => user.display_name }, + :session => { :user => user } assert_response :redirect assert_redirected_to :controller => :user, :action => :suspended end @@ -244,12 +251,15 @@ class DiaryEntryControllerTest < ActionController::TestCase # Make sure that you are redirected to the login page when you are # not logged in, without and with the id of the entry you want to edit - get :edit, :display_name => entry.user.display_name, :id => entry.id + get :edit, + :params => { :display_name => entry.user.display_name, :id => entry.id } assert_response :redirect assert_redirected_to :controller => :user, :action => :login, :referer => "/user/#{URI.encode(entry.user.display_name)}/diary/#{entry.id}/edit" # Verify that you get a not found error, when you pass a bogus id - get :edit, { :display_name => entry.user.display_name, :id => 9999 }, { :user => entry.user } + get :edit, + :params => { :display_name => entry.user.display_name, :id => 9999 }, + :session => { :user => entry.user } assert_response :not_found assert_select "div.content-heading", :count => 1 do assert_select "h2", :text => "No entry with the id: 9999", :count => 1 @@ -257,13 +267,17 @@ class DiaryEntryControllerTest < ActionController::TestCase # Verify that you get redirected to view if you are not the user # that created the entry - get :edit, { :display_name => entry.user.display_name, :id => entry.id }, { :user => other_user } + get :edit, + :params => { :display_name => entry.user.display_name, :id => entry.id }, + :session => { :user => other_user } assert_response :redirect assert_redirected_to :action => :view, :display_name => entry.user.display_name, :id => entry.id # Now pass the id, and check that you can edit it, when using the same # user as the person who created the entry - get :edit, { :display_name => entry.user.display_name, :id => entry.id }, { :user => entry.user } + get :edit, + :params => { :display_name => entry.user.display_name, :id => entry.id }, + :session => { :user => entry.user } assert_response :success assert_select "title", :text => /Edit diary entry/, :count => 1 assert_select "div.content-heading", :count => 1 do @@ -289,15 +303,18 @@ class DiaryEntryControllerTest < ActionController::TestCase new_latitude = "1.1" new_longitude = "2.2" new_language_code = "en" - post :edit, { :display_name => entry.user.display_name, :id => entry.id, :commit => "save", - :diary_entry => { :title => new_title, :body => new_body, :latitude => new_latitude, - :longitude => new_longitude, :language_code => new_language_code } }, - { :user => entry.user.id } + post :edit, + :params => { :display_name => entry.user.display_name, :id => entry.id, :commit => "save", + :diary_entry => { :title => new_title, :body => new_body, :latitude => new_latitude, + :longitude => new_longitude, :language_code => new_language_code } }, + :session => { :user => entry.user.id } assert_response :redirect assert_redirected_to :action => :view, :display_name => entry.user.display_name, :id => entry.id # Now check that the new data is rendered, when logged in - get :view, { :display_name => entry.user.display_name, :id => entry.id }, { :user => entry.user } + get :view, + :params => { :display_name => entry.user.display_name, :id => entry.id }, + :session => { :user => entry.user } assert_response :success assert_template "diary_entry/view" assert_select "title", :text => /Users' diaries | /, :count => 1 @@ -316,7 +333,9 @@ class DiaryEntryControllerTest < ActionController::TestCase end # and when not logged in as the user who wrote the entry - get :view, { :display_name => entry.user.display_name, :id => entry.id }, { :user => entry.user } + get :view, + :params => { :display_name => entry.user.display_name, :id => entry.id }, + :session => { :user => entry.user } assert_response :success assert_template "diary_entry/view" assert_select "title", :text => /Users' diaries | /, :count => 1 @@ -339,7 +358,9 @@ class DiaryEntryControllerTest < ActionController::TestCase def test_edit_i18n user = create(:user) diary_entry = create(:diary_entry, :language_code => "en", :user => user) - get :edit, { :display_name => user.display_name, :id => diary_entry.id }, { :user => user } + get :edit, + :params => { :display_name => user.display_name, :id => diary_entry.id }, + :session => { :user => user } assert_response :success assert_select "span[class=translation_missing]", false, "Missing translation in edit diary entry" end @@ -350,23 +371,30 @@ class DiaryEntryControllerTest < ActionController::TestCase entry = create(:diary_entry, :user => user) # Make sure that you are denied when you are not logged in - post :comment, :display_name => entry.user.display_name, :id => entry.id + post :comment, + :params => { :display_name => entry.user.display_name, :id => entry.id } assert_response :forbidden # Verify that you get a not found error, when you pass a bogus id - post :comment, { :display_name => entry.user.display_name, :id => 9999 }, { :user => other_user } + post :comment, + :params => { :display_name => entry.user.display_name, :id => 9999 }, + :session => { :user => other_user } assert_response :not_found assert_select "div.content-heading", :count => 1 do assert_select "h2", :text => "No entry with the id: 9999", :count => 1 end - post :subscribe, { :id => entry.id, :display_name => entry.user.display_name }, { :user => user } + post :subscribe, + :params => { :id => entry.id, :display_name => entry.user.display_name }, + :session => { :user => user } # Now try an invalid comment with an empty body assert_no_difference "ActionMailer::Base.deliveries.size" do assert_no_difference "DiaryComment.count" do assert_no_difference "entry.subscribers.count" do - post :comment, { :display_name => entry.user.display_name, :id => entry.id, :diary_comment => { :body => "" } }, { :user => other_user } + post :comment, + :params => { :display_name => entry.user.display_name, :id => entry.id, :diary_comment => { :body => "" } }, + :session => { :user => other_user } end end end @@ -377,7 +405,9 @@ class DiaryEntryControllerTest < ActionController::TestCase assert_difference "ActionMailer::Base.deliveries.size", entry.subscribers.count do assert_difference "DiaryComment.count", 1 do assert_difference "entry.subscribers.count", 1 do - post :comment, { :display_name => entry.user.display_name, :id => entry.id, :diary_comment => { :body => "New comment" } }, { :user => other_user } + post :comment, + :params => { :display_name => entry.user.display_name, :id => entry.id, :diary_comment => { :body => "New comment" } }, + :session => { :user => other_user } end end end @@ -395,7 +425,8 @@ class DiaryEntryControllerTest < ActionController::TestCase assert_equal "New comment", comment.body # Now view the diary entry, and check the new comment is present - get :view, :display_name => entry.user.display_name, :id => entry.id + get :view, + :params => { :display_name => entry.user.display_name, :id => entry.id } assert_response :success assert_select ".diary-comment", :count => 1 do assert_select "#comment#{comment.id}", :count => 1 do @@ -411,7 +442,9 @@ class DiaryEntryControllerTest < ActionController::TestCase # Find the entry to comment on entry = create(:diary_entry, :user => user) - post :subscribe, { :id => entry.id, :display_name => entry.user.display_name }, { :user => user } + post :subscribe, + :params => { :id => entry.id, :display_name => entry.user.display_name }, + :session => { :user => user } # Generate some spammy content spammy_text = 1.upto(50).map { |n| "http://example.com/spam#{n}" }.join(" ") @@ -419,7 +452,9 @@ class DiaryEntryControllerTest < ActionController::TestCase # Try creating a spammy comment assert_difference "ActionMailer::Base.deliveries.size", 1 do assert_difference "DiaryComment.count", 1 do - post :comment, { :display_name => entry.user.display_name, :id => entry.id, :diary_comment => { :body => spammy_text } }, { :user => other_user } + post :comment, + :params => { :display_name => entry.user.display_name, :id => entry.id, :diary_comment => { :body => spammy_text } }, + :session => { :user => other_user } end end assert_response :redirect @@ -437,12 +472,15 @@ class DiaryEntryControllerTest < ActionController::TestCase assert_equal "suspended", User.find(other_user.id).status # Follow the redirect - get :list, { :display_name => user.display_name }, { :user => other_user } + get :list, + :params => { :display_name => user.display_name }, + :session => { :user => other_user } assert_response :redirect assert_redirected_to :controller => :user, :action => :suspended # Now view the diary entry, and check the new comment is not present - get :view, :display_name => entry.user.display_name, :id => entry.id + get :view, + :params => { :display_name => entry.user.display_name, :id => entry.id } assert_response :success assert_select ".diary-comment", :count => 0 end @@ -466,11 +504,11 @@ class DiaryEntryControllerTest < ActionController::TestCase _other_entry = create(:diary_entry, :user => other_user) # Try a list of diary entries for a valid user - get :list, :display_name => user.display_name + get :list, :params => { :display_name => user.display_name } check_diary_list diary_entry, geo_entry # Try a list of diary entries for an invalid user - get :list, :display_name => "No Such User" + get :list, :params => { :display_name => "No Such User" } assert_response :not_found assert_template "user/no_such_user" end @@ -483,14 +521,14 @@ class DiaryEntryControllerTest < ActionController::TestCase _other_entry = create(:diary_entry, :user => other_user) # Try a list of diary entries for your friends when not logged in - get :list, :friends => true + get :list, :params => { :friends => true } assert_response :redirect assert_redirected_to :controller => :user, :action => :login, :referer => "/diary/friends" # Try a list of diary entries for your friends when logged in - get :list, { :friends => true }, { :user => user } + get :list, :params => { :friends => true }, :session => { :user => user } check_diary_list diary_entry - get :list, { :friends => true }, { :user => other_user } + get :list, :params => { :friends => true }, :session => { :user => other_user } check_diary_list end @@ -501,14 +539,14 @@ class DiaryEntryControllerTest < ActionController::TestCase diary_entry = create(:diary_entry, :user => user) # Try a list of diary entries for nearby users when not logged in - get :list, :nearby => true + get :list, :params => { :nearby => true } assert_response :redirect assert_redirected_to :controller => :user, :action => :login, :referer => "/diary/nearby" # Try a list of diary entries for nearby users when logged in - get :list, { :nearby => true }, { :user => nearby_user } + get :list, :params => { :nearby => true }, :session => { :user => nearby_user } check_diary_list diary_entry - get :list, { :nearby => true }, { :user => user } + get :list, :params => { :nearby => true }, :session => { :user => user } check_diary_list end @@ -520,15 +558,15 @@ class DiaryEntryControllerTest < ActionController::TestCase diary_entry_de = create(:diary_entry, :language_code => "de") # Try a list of diary entries in english - get :list, :language => "en" + get :list, :params => { :language => "en" } check_diary_list diary_entry_en, diary_entry_en2 # Try a list of diary entries in german - get :list, :language => "de" + get :list, :params => { :language => "de" } check_diary_list diary_entry_de # Try a list of diary entries in slovenian - get :list, :language => "sl" + get :list, :params => { :language => "sl" } check_diary_list end @@ -538,7 +576,7 @@ class DiaryEntryControllerTest < ActionController::TestCase create(:diary_entry, :language_code => "en") create(:diary_entry, :language_code => "de") - get :rss, :format => :rss + get :rss, :params => { :format => :rss } assert_response :success, "Should be able to get a diary RSS" assert_select "rss", :count => 1 do assert_select "channel", :count => 1 do @@ -555,13 +593,13 @@ class DiaryEntryControllerTest < ActionController::TestCase create(:diary_entry, :language_code => "en") create(:diary_entry, :language_code => "de") - get :rss, :language => "en", :format => :rss + get :rss, :params => { :language => "en", :format => :rss } assert_response :success, "Should be able to get a specific language diary RSS" assert_select "rss>channel>item", :count => 2 # , "Diary entries should be filtered by language" end # def test_rss_nonexisting_language - # get :rss, {:language => 'xx', :format => :rss} + # get :rss, :params => { :language => 'xx', :format => :rss } # assert_response :not_found, "Should not be able to get a nonexisting language diary RSS" # end @@ -569,7 +607,7 @@ class DiaryEntryControllerTest < ActionController::TestCase create(:language, :code => "sl") create(:diary_entry, :language_code => "en") - get :rss, :language => "sl", :format => :rss + get :rss, :params => { :language => "sl", :format => :rss } assert_response :success, "Should be able to get a specific language diary RSS" assert_select "rss>channel>item", :count => 0 # , "Diary entries should be filtered by language" end @@ -581,28 +619,28 @@ class DiaryEntryControllerTest < ActionController::TestCase create(:diary_entry, :user => user) create(:diary_entry, :user => other_user) - get :rss, :display_name => user.display_name, :format => :rss + get :rss, :params => { :display_name => user.display_name, :format => :rss } assert_response :success, "Should be able to get a specific users diary RSS" assert_select "rss>channel>item", :count => 2 # , "Diary entries should be filtered by user" end def test_rss_nonexisting_user # Try a user that has never existed - get :rss, :display_name => "fakeUsername76543", :format => :rss + get :rss, :params => { :display_name => "fakeUsername76543", :format => :rss } assert_response :not_found, "Should not be able to get a nonexisting users diary RSS" # Try a suspended user - get :rss, :display_name => create(:user, :suspended).display_name, :format => :rss + get :rss, :params => { :display_name => create(:user, :suspended).display_name, :format => :rss } assert_response :not_found, "Should not be able to get a suspended users diary RSS" # Try a deleted user - get :rss, :display_name => create(:user, :deleted).display_name, :format => :rss + get :rss, :params => { :display_name => create(:user, :deleted).display_name, :format => :rss } assert_response :not_found, "Should not be able to get a deleted users diary RSS" end def test_rss_character_escaping create(:diary_entry, :title => "