From 99a1de487400577affdc5e22da253cc710735956 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 2 Apr 2009 03:07:48 -0700 Subject: test/rails: v2.1.2 + ActiveRecordStore all around Recent changes made to the unicorn_rails loader were needed to get ActiveRecordStore to load correctly. --- test/rails/app-1.2.3/Rakefile | 7 ++ test/rails/app-1.2.3/config/environment.rb | 1 + test/rails/app-2.0.2/Rakefile | 7 ++ test/rails/app-2.0.2/config/environment.rb | 1 + test/rails/app-2.1.2/.gitignore | 2 + test/rails/app-2.1.2/Rakefile | 7 ++ .../rails/app-2.1.2/app/controllers/application.rb | 2 + .../app-2.1.2/app/controllers/foo_controller.rb | 34 +++++++ .../app-2.1.2/app/helpers/application_helper.rb | 2 + test/rails/app-2.1.2/config/boot.rb | 109 +++++++++++++++++++++ test/rails/app-2.1.2/config/database.yml | 12 +++ test/rails/app-2.1.2/config/environment.rb | 15 +++ .../app-2.1.2/config/environments/development.rb | 5 + .../app-2.1.2/config/environments/production.rb | 3 + test/rails/app-2.1.2/config/routes.rb | 4 + test/rails/app-2.1.2/db/.gitignore | 0 test/rails/app-2.1.2/public/404.html | 1 + test/rails/app-2.1.2/public/500.html | 1 + test/rails/app-2.2.2/Rakefile | 7 ++ test/rails/app-2.2.2/config/environment.rb | 1 + test/rails/app-2.3.2.1/Rakefile | 7 ++ test/rails/app-2.3.2.1/config/environment.rb | 3 +- test/rails/test_rails.rb | 4 + 23 files changed, 234 insertions(+), 1 deletion(-) create mode 100644 test/rails/app-1.2.3/Rakefile create mode 100644 test/rails/app-2.0.2/Rakefile create mode 100644 test/rails/app-2.1.2/.gitignore create mode 100644 test/rails/app-2.1.2/Rakefile create mode 100644 test/rails/app-2.1.2/app/controllers/application.rb create mode 100644 test/rails/app-2.1.2/app/controllers/foo_controller.rb create mode 100644 test/rails/app-2.1.2/app/helpers/application_helper.rb create mode 100644 test/rails/app-2.1.2/config/boot.rb create mode 100644 test/rails/app-2.1.2/config/database.yml create mode 100644 test/rails/app-2.1.2/config/environment.rb create mode 100644 test/rails/app-2.1.2/config/environments/development.rb create mode 100644 test/rails/app-2.1.2/config/environments/production.rb create mode 100644 test/rails/app-2.1.2/config/routes.rb create mode 100644 test/rails/app-2.1.2/db/.gitignore create mode 100644 test/rails/app-2.1.2/public/404.html create mode 100644 test/rails/app-2.1.2/public/500.html create mode 100644 test/rails/app-2.2.2/Rakefile create mode 100644 test/rails/app-2.3.2.1/Rakefile diff --git a/test/rails/app-1.2.3/Rakefile b/test/rails/app-1.2.3/Rakefile new file mode 100644 index 0000000..fbebfca --- /dev/null +++ b/test/rails/app-1.2.3/Rakefile @@ -0,0 +1,7 @@ +require(File.join(File.dirname(__FILE__), 'config', 'boot')) + +require 'rake' +require 'rake/testtask' +require 'rake/rdoctask' + +require 'tasks/rails' diff --git a/test/rails/app-1.2.3/config/environment.rb b/test/rails/app-1.2.3/config/environment.rb index ddeeba4..2ef6b4a 100644 --- a/test/rails/app-1.2.3/config/environment.rb +++ b/test/rails/app-1.2.3/config/environment.rb @@ -7,4 +7,5 @@ require File.join(File.dirname(__FILE__), 'boot') Rails::Initializer.run do |config| config.frameworks -= [ :action_web_service, :action_mailer ] + config.action_controller.session_store = :active_record_store end diff --git a/test/rails/app-2.0.2/Rakefile b/test/rails/app-2.0.2/Rakefile new file mode 100644 index 0000000..fbebfca --- /dev/null +++ b/test/rails/app-2.0.2/Rakefile @@ -0,0 +1,7 @@ +require(File.join(File.dirname(__FILE__), 'config', 'boot')) + +require 'rake' +require 'rake/testtask' +require 'rake/rdoctask' + +require 'tasks/rails' diff --git a/test/rails/app-2.0.2/config/environment.rb b/test/rails/app-2.0.2/config/environment.rb index cb90b4b..7c720f6 100644 --- a/test/rails/app-2.0.2/config/environment.rb +++ b/test/rails/app-2.0.2/config/environment.rb @@ -7,6 +7,7 @@ require File.join(File.dirname(__FILE__), 'boot') Rails::Initializer.run do |config| config.frameworks -= [ :action_web_service, :action_mailer ] + config.action_controller.session_store = :active_record_store config.action_controller.session = { :session_key => "_unicorn_rails_test.#{rand}", :secret => "#{rand}#{rand}#{rand}#{rand}", diff --git a/test/rails/app-2.1.2/.gitignore b/test/rails/app-2.1.2/.gitignore new file mode 100644 index 0000000..f451f91 --- /dev/null +++ b/test/rails/app-2.1.2/.gitignore @@ -0,0 +1,2 @@ +/tmp +/vendor diff --git a/test/rails/app-2.1.2/Rakefile b/test/rails/app-2.1.2/Rakefile new file mode 100644 index 0000000..fbebfca --- /dev/null +++ b/test/rails/app-2.1.2/Rakefile @@ -0,0 +1,7 @@ +require(File.join(File.dirname(__FILE__), 'config', 'boot')) + +require 'rake' +require 'rake/testtask' +require 'rake/rdoctask' + +require 'tasks/rails' diff --git a/test/rails/app-2.1.2/app/controllers/application.rb b/test/rails/app-2.1.2/app/controllers/application.rb new file mode 100644 index 0000000..09705d1 --- /dev/null +++ b/test/rails/app-2.1.2/app/controllers/application.rb @@ -0,0 +1,2 @@ +class ApplicationController < ActionController::Base +end diff --git a/test/rails/app-2.1.2/app/controllers/foo_controller.rb b/test/rails/app-2.1.2/app/controllers/foo_controller.rb new file mode 100644 index 0000000..8d877d1 --- /dev/null +++ b/test/rails/app-2.1.2/app/controllers/foo_controller.rb @@ -0,0 +1,34 @@ +require 'digest/sha1' +class FooController < ApplicationController + def index + render :text => "FOO\n" + end + + def xcookie + cookies["foo"] = "cookie #$$" + render :text => "" + end + + def xnotice + flash[:notice] = "session #$$" + render :text => "" + end + + def xpost + if request.post? + digest = Digest::SHA1.new + out = "params: #{params.inspect}\n" + if file = params[:file] + loop do + buf = file.read(4096) or break + digest.update(buf) + end + out << "sha1: #{digest.to_s}\n" + end + headers['content-type'] = 'text/plain' + render :text => out + else + render :status => 403, :text => "need post\n" + end + end +end diff --git a/test/rails/app-2.1.2/app/helpers/application_helper.rb b/test/rails/app-2.1.2/app/helpers/application_helper.rb new file mode 100644 index 0000000..de6be79 --- /dev/null +++ b/test/rails/app-2.1.2/app/helpers/application_helper.rb @@ -0,0 +1,2 @@ +module ApplicationHelper +end diff --git a/test/rails/app-2.1.2/config/boot.rb b/test/rails/app-2.1.2/config/boot.rb new file mode 100644 index 0000000..0a51688 --- /dev/null +++ b/test/rails/app-2.1.2/config/boot.rb @@ -0,0 +1,109 @@ +# Don't change this file! +# Configure your app in config/environment.rb and config/environments/*.rb + +RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT) + +module Rails + class << self + def boot! + unless booted? + preinitialize + pick_boot.run + end + end + + def booted? + defined? Rails::Initializer + end + + def pick_boot + (vendor_rails? ? VendorBoot : GemBoot).new + end + + def vendor_rails? + File.exist?("#{RAILS_ROOT}/vendor/rails") + end + + def preinitialize + load(preinitializer_path) if File.exist?(preinitializer_path) + end + + def preinitializer_path + "#{RAILS_ROOT}/config/preinitializer.rb" + end + end + + class Boot + def run + load_initializer + Rails::Initializer.run(:set_load_path) + end + end + + class VendorBoot < Boot + def load_initializer + require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer" + Rails::Initializer.run(:install_gem_spec_stubs) + end + end + + class GemBoot < Boot + def load_initializer + self.class.load_rubygems + load_rails_gem + require 'initializer' + end + + def load_rails_gem + if version = self.class.gem_version + gem 'rails', version + else + gem 'rails' + end + rescue Gem::LoadError => load_error + $stderr.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.) + exit 1 + end + + class << self + def rubygems_version + Gem::RubyGemsVersion rescue nil + end + + def gem_version + if defined? RAILS_GEM_VERSION + RAILS_GEM_VERSION + elsif ENV.include?('RAILS_GEM_VERSION') + ENV['RAILS_GEM_VERSION'] + else + parse_gem_version(read_environment_rb) + end + end + + def load_rubygems + require 'rubygems' + min_version = '1.3.1' + unless rubygems_version >= min_version + $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.) + exit 1 + end + + rescue LoadError + $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org) + exit 1 + end + + def parse_gem_version(text) + $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/ + end + + private + def read_environment_rb + File.read("#{RAILS_ROOT}/config/environment.rb") + end + end + end +end + +# All that for this: +Rails.boot! diff --git a/test/rails/app-2.1.2/config/database.yml b/test/rails/app-2.1.2/config/database.yml new file mode 100644 index 0000000..9f77843 --- /dev/null +++ b/test/rails/app-2.1.2/config/database.yml @@ -0,0 +1,12 @@ +development: + adapter: sqlite3 + database: db/development.sqlite3 + timeout: 5000 +test: + adapter: sqlite3 + database: db/test.sqlite3 + timeout: 5000 +production: + adapter: sqlite3 + database: db/production.sqlite3 + timeout: 5000 diff --git a/test/rails/app-2.1.2/config/environment.rb b/test/rails/app-2.1.2/config/environment.rb new file mode 100644 index 0000000..7c720f6 --- /dev/null +++ b/test/rails/app-2.1.2/config/environment.rb @@ -0,0 +1,15 @@ +unless defined? RAILS_GEM_VERSION + RAILS_GEM_VERSION = ENV['UNICORN_RAILS_VERSION'] +end + +# Bootstrap the Rails environment, frameworks, and default configuration +require File.join(File.dirname(__FILE__), 'boot') + +Rails::Initializer.run do |config| + config.frameworks -= [ :action_web_service, :action_mailer ] + config.action_controller.session_store = :active_record_store + config.action_controller.session = { + :session_key => "_unicorn_rails_test.#{rand}", + :secret => "#{rand}#{rand}#{rand}#{rand}", + } +end diff --git a/test/rails/app-2.1.2/config/environments/development.rb b/test/rails/app-2.1.2/config/environments/development.rb new file mode 100644 index 0000000..7f49032 --- /dev/null +++ b/test/rails/app-2.1.2/config/environments/development.rb @@ -0,0 +1,5 @@ +config.cache_classes = false +config.whiny_nils = true +config.action_controller.consider_all_requests_local = true +config.action_controller.perform_caching = false +config.action_view.debug_rjs = true diff --git a/test/rails/app-2.1.2/config/environments/production.rb b/test/rails/app-2.1.2/config/environments/production.rb new file mode 100644 index 0000000..c4059e3 --- /dev/null +++ b/test/rails/app-2.1.2/config/environments/production.rb @@ -0,0 +1,3 @@ +config.cache_classes = true +config.action_controller.consider_all_requests_local = false +config.action_controller.perform_caching = true diff --git a/test/rails/app-2.1.2/config/routes.rb b/test/rails/app-2.1.2/config/routes.rb new file mode 100644 index 0000000..774028f --- /dev/null +++ b/test/rails/app-2.1.2/config/routes.rb @@ -0,0 +1,4 @@ +ActionController::Routing::Routes.draw do |map| + map.connect ':controller/:action/:id.:format' + map.connect ':controller/:action/:id' +end diff --git a/test/rails/app-2.1.2/db/.gitignore b/test/rails/app-2.1.2/db/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/test/rails/app-2.1.2/public/404.html b/test/rails/app-2.1.2/public/404.html new file mode 100644 index 0000000..44d986c --- /dev/null +++ b/test/rails/app-2.1.2/public/404.html @@ -0,0 +1 @@ +404 Not Found diff --git a/test/rails/app-2.1.2/public/500.html b/test/rails/app-2.1.2/public/500.html new file mode 100644 index 0000000..e534a49 --- /dev/null +++ b/test/rails/app-2.1.2/public/500.html @@ -0,0 +1 @@ +500 Internal Server Error diff --git a/test/rails/app-2.2.2/Rakefile b/test/rails/app-2.2.2/Rakefile new file mode 100644 index 0000000..fbebfca --- /dev/null +++ b/test/rails/app-2.2.2/Rakefile @@ -0,0 +1,7 @@ +require(File.join(File.dirname(__FILE__), 'config', 'boot')) + +require 'rake' +require 'rake/testtask' +require 'rake/rdoctask' + +require 'tasks/rails' diff --git a/test/rails/app-2.2.2/config/environment.rb b/test/rails/app-2.2.2/config/environment.rb index cb90b4b..7c720f6 100644 --- a/test/rails/app-2.2.2/config/environment.rb +++ b/test/rails/app-2.2.2/config/environment.rb @@ -7,6 +7,7 @@ require File.join(File.dirname(__FILE__), 'boot') Rails::Initializer.run do |config| config.frameworks -= [ :action_web_service, :action_mailer ] + config.action_controller.session_store = :active_record_store config.action_controller.session = { :session_key => "_unicorn_rails_test.#{rand}", :secret => "#{rand}#{rand}#{rand}#{rand}", diff --git a/test/rails/app-2.3.2.1/Rakefile b/test/rails/app-2.3.2.1/Rakefile new file mode 100644 index 0000000..fbebfca --- /dev/null +++ b/test/rails/app-2.3.2.1/Rakefile @@ -0,0 +1,7 @@ +require(File.join(File.dirname(__FILE__), 'config', 'boot')) + +require 'rake' +require 'rake/testtask' +require 'rake/rdoctask' + +require 'tasks/rails' diff --git a/test/rails/app-2.3.2.1/config/environment.rb b/test/rails/app-2.3.2.1/config/environment.rb index 18f03f8..17abdb7 100644 --- a/test/rails/app-2.3.2.1/config/environment.rb +++ b/test/rails/app-2.3.2.1/config/environment.rb @@ -6,7 +6,8 @@ end require File.join(File.dirname(__FILE__), 'boot') Rails::Initializer.run do |config| - config.frameworks -= [ :active_record, :active_resource, :action_mailer ] + config.frameworks -= [ :active_resource, :action_mailer ] + config.action_controller.session_store = :active_record_store config.action_controller.session = { :session_key => "_unicorn_rails_test.#{rand}", :secret => "#{rand}#{rand}#{rand}#{rand}", diff --git a/test/rails/test_rails.rb b/test/rails/test_rails.rb index 67d6892..f6bc67e 100644 --- a/test/rails/test_rails.rb +++ b/test/rails/test_rails.rb @@ -74,6 +74,10 @@ logger Logger.new('#{COMMON_TMP.path}') Dir.chdir("#@tmpdir/vendor/rails") do system('git', 'reset', '-q', '--hard', "v#{UNICORN_RAILS_TEST_VERSION}") end + + assert(system('rake', 'db:sessions:create')) + assert(system('rake', 'db:migrate')) + @addr = ENV['UNICORN_TEST_ADDR'] || '127.0.0.1' @port = unused_port(@addr) @start_pid = $$ -- cgit v1.2.3-24-ge0c7