mirror of
https://github.com/TracksApp/tracks.git
synced 2026-02-24 08:04:08 +01:00
freeze rails 2.2
This commit is contained in:
parent
fe5f962dcf
commit
59d5d4c8b6
1468 changed files with 213171 additions and 0 deletions
141
vendor/rails/actionpack/test/activerecord/active_record_store_test.rb
vendored
Normal file
141
vendor/rails/actionpack/test/activerecord/active_record_store_test.rb
vendored
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
# These tests exercise CGI::Session::ActiveRecordStore, so you're going to
|
||||
# need AR in a sibling directory to AP and have SQLite installed.
|
||||
require 'active_record_unit'
|
||||
require 'action_controller/session/active_record_store'
|
||||
|
||||
module CommonActiveRecordStoreTests
|
||||
def test_basics
|
||||
s = session_class.new(:session_id => '1234', :data => { 'foo' => 'bar' })
|
||||
assert_equal 'bar', s.data['foo']
|
||||
assert s.save
|
||||
assert_equal 'bar', s.data['foo']
|
||||
|
||||
assert_not_nil t = session_class.find_by_session_id('1234')
|
||||
assert_not_nil t.data
|
||||
assert_equal 'bar', t.data['foo']
|
||||
end
|
||||
|
||||
def test_reload_same_session
|
||||
@new_session.update
|
||||
reloaded = CGI::Session.new(CGI.new, 'session_id' => @new_session.session_id, 'database_manager' => CGI::Session::ActiveRecordStore)
|
||||
assert_equal 'bar', reloaded['foo']
|
||||
end
|
||||
|
||||
def test_tolerates_close_close
|
||||
assert_nothing_raised do
|
||||
@new_session.close
|
||||
@new_session.close
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class ActiveRecordStoreTest < ActiveRecordTestCase
|
||||
include CommonActiveRecordStoreTests
|
||||
|
||||
def session_class
|
||||
CGI::Session::ActiveRecordStore::Session
|
||||
end
|
||||
|
||||
def session_id_column
|
||||
"session_id"
|
||||
end
|
||||
|
||||
def setup
|
||||
session_class.create_table!
|
||||
|
||||
ENV['REQUEST_METHOD'] = 'GET'
|
||||
ENV['REQUEST_URI'] = '/'
|
||||
CGI::Session::ActiveRecordStore.session_class = session_class
|
||||
|
||||
@cgi = CGI.new
|
||||
@new_session = CGI::Session.new(@cgi, 'database_manager' => CGI::Session::ActiveRecordStore, 'new_session' => true)
|
||||
@new_session['foo'] = 'bar'
|
||||
end
|
||||
|
||||
# this test only applies for eager session saving
|
||||
# def test_another_instance
|
||||
# @another = CGI::Session.new(@cgi, 'session_id' => @new_session.session_id, 'database_manager' => CGI::Session::ActiveRecordStore)
|
||||
# assert_equal @new_session.session_id, @another.session_id
|
||||
# end
|
||||
|
||||
def test_model_attribute
|
||||
assert_kind_of CGI::Session::ActiveRecordStore::Session, @new_session.model
|
||||
assert_equal({ 'foo' => 'bar' }, @new_session.model.data)
|
||||
end
|
||||
|
||||
def test_save_unloaded_session
|
||||
c = session_class.connection
|
||||
bogus_class = c.quote(ActiveSupport::Base64.encode64("\004\010o:\vBlammo\000"))
|
||||
c.insert("INSERT INTO #{session_class.table_name} ('#{session_id_column}', 'data') VALUES ('abcdefghijklmnop', #{bogus_class})")
|
||||
|
||||
sess = session_class.find_by_session_id('abcdefghijklmnop')
|
||||
assert_not_nil sess
|
||||
assert !sess.loaded?
|
||||
|
||||
# because the session is not loaded, the save should be a no-op. If it
|
||||
# isn't, this'll try and unmarshall the bogus class, and should get an error.
|
||||
assert_nothing_raised { sess.save }
|
||||
end
|
||||
|
||||
def teardown
|
||||
session_class.drop_table!
|
||||
end
|
||||
end
|
||||
|
||||
class ColumnLimitTest < ActiveRecordTestCase
|
||||
def setup
|
||||
@session_class = CGI::Session::ActiveRecordStore::Session
|
||||
@session_class.create_table!
|
||||
end
|
||||
|
||||
def teardown
|
||||
@session_class.drop_table!
|
||||
end
|
||||
|
||||
def test_protection_from_data_larger_than_column
|
||||
# Can't test this unless there is a limit
|
||||
return unless limit = @session_class.data_column_size_limit
|
||||
too_big = ':(' * limit
|
||||
s = @session_class.new(:session_id => '666', :data => {'foo' => too_big})
|
||||
s.data
|
||||
assert_raise(ActionController::SessionOverflowError) { s.save }
|
||||
end
|
||||
end
|
||||
|
||||
class DeprecatedActiveRecordStoreTest < ActiveRecordStoreTest
|
||||
def session_id_column
|
||||
"sessid"
|
||||
end
|
||||
|
||||
def setup
|
||||
session_class.connection.execute 'create table old_sessions (id integer primary key, sessid text unique, data text)'
|
||||
session_class.table_name = 'old_sessions'
|
||||
session_class.send :setup_sessid_compatibility!
|
||||
|
||||
ENV['REQUEST_METHOD'] = 'GET'
|
||||
CGI::Session::ActiveRecordStore.session_class = session_class
|
||||
|
||||
@new_session = CGI::Session.new(CGI.new, 'database_manager' => CGI::Session::ActiveRecordStore, 'new_session' => true)
|
||||
@new_session['foo'] = 'bar'
|
||||
end
|
||||
|
||||
def teardown
|
||||
session_class.connection.execute 'drop table old_sessions'
|
||||
session_class.table_name = 'sessions'
|
||||
end
|
||||
end
|
||||
|
||||
class SqlBypassActiveRecordStoreTest < ActiveRecordStoreTest
|
||||
def session_class
|
||||
unless defined? @session_class
|
||||
@session_class = CGI::Session::ActiveRecordStore::SqlBypass
|
||||
@session_class.connection = CGI::Session::ActiveRecordStore::Session.connection
|
||||
end
|
||||
@session_class
|
||||
end
|
||||
|
||||
def test_model_attribute
|
||||
assert_kind_of CGI::Session::ActiveRecordStore::SqlBypass, @new_session.model
|
||||
assert_equal({ 'foo' => 'bar' }, @new_session.model.data)
|
||||
end
|
||||
end
|
||||
204
vendor/rails/actionpack/test/activerecord/render_partial_with_record_identification_test.rb
vendored
Normal file
204
vendor/rails/actionpack/test/activerecord/render_partial_with_record_identification_test.rb
vendored
Normal file
|
|
@ -0,0 +1,204 @@
|
|||
require 'active_record_unit'
|
||||
|
||||
class RenderPartialWithRecordIdentificationController < ActionController::Base
|
||||
def render_with_has_many_and_belongs_to_association
|
||||
@developer = Developer.find(1)
|
||||
render :partial => @developer.projects
|
||||
end
|
||||
|
||||
def render_with_has_many_association
|
||||
@topic = Topic.find(1)
|
||||
render :partial => @topic.replies
|
||||
end
|
||||
|
||||
def render_with_named_scope
|
||||
render :partial => Reply.base
|
||||
end
|
||||
|
||||
def render_with_has_many_through_association
|
||||
@developer = Developer.find(:first)
|
||||
render :partial => @developer.topics
|
||||
end
|
||||
|
||||
def render_with_has_one_association
|
||||
@company = Company.find(1)
|
||||
render :partial => @company.mascot
|
||||
end
|
||||
|
||||
def render_with_belongs_to_association
|
||||
@reply = Reply.find(1)
|
||||
render :partial => @reply.topic
|
||||
end
|
||||
|
||||
def render_with_record
|
||||
@developer = Developer.find(:first)
|
||||
render :partial => @developer
|
||||
end
|
||||
|
||||
def render_with_record_collection
|
||||
@developers = Developer.find(:all)
|
||||
render :partial => @developers
|
||||
end
|
||||
|
||||
def render_with_record_collection_and_spacer_template
|
||||
@developer = Developer.find(1)
|
||||
render :partial => @developer.projects, :spacer_template => 'test/partial_only'
|
||||
end
|
||||
end
|
||||
|
||||
class RenderPartialWithRecordIdentificationTest < ActiveRecordTestCase
|
||||
fixtures :developers, :projects, :developers_projects, :topics, :replies, :companies, :mascots
|
||||
|
||||
def setup
|
||||
@controller = RenderPartialWithRecordIdentificationController.new
|
||||
@request = ActionController::TestRequest.new
|
||||
@response = ActionController::TestResponse.new
|
||||
super
|
||||
end
|
||||
|
||||
def test_rendering_partial_with_has_many_and_belongs_to_association
|
||||
get :render_with_has_many_and_belongs_to_association
|
||||
assert_template 'projects/_project'
|
||||
assert_equal 'Active RecordActive Controller', @response.body
|
||||
end
|
||||
|
||||
def test_rendering_partial_with_has_many_association
|
||||
get :render_with_has_many_association
|
||||
assert_template 'replies/_reply'
|
||||
assert_equal 'Birdman is better!', @response.body
|
||||
end
|
||||
|
||||
def test_rendering_partial_with_named_scope
|
||||
get :render_with_named_scope
|
||||
assert_template 'replies/_reply'
|
||||
assert_equal 'Birdman is better!Nuh uh!', @response.body
|
||||
end
|
||||
|
||||
def test_render_with_record
|
||||
get :render_with_record
|
||||
assert_template 'developers/_developer'
|
||||
assert_equal 'David', @response.body
|
||||
end
|
||||
|
||||
def test_render_with_record_collection
|
||||
get :render_with_record_collection
|
||||
assert_template 'developers/_developer'
|
||||
assert_equal 'DavidJamisfixture_3fixture_4fixture_5fixture_6fixture_7fixture_8fixture_9fixture_10Jamis', @response.body
|
||||
end
|
||||
|
||||
def test_render_with_record_collection_and_spacer_template
|
||||
get :render_with_record_collection_and_spacer_template
|
||||
assert_equal 'Active Recordonly partialActive Controller', @response.body
|
||||
end
|
||||
|
||||
def test_rendering_partial_with_has_one_association
|
||||
mascot = Company.find(1).mascot
|
||||
get :render_with_has_one_association
|
||||
assert_template 'mascots/_mascot'
|
||||
assert_equal mascot.name, @response.body
|
||||
end
|
||||
end
|
||||
|
||||
class RenderPartialWithRecordIdentificationController < ActionController::Base
|
||||
def render_with_has_many_and_belongs_to_association
|
||||
@developer = Developer.find(1)
|
||||
render :partial => @developer.projects
|
||||
end
|
||||
|
||||
def render_with_has_many_association
|
||||
@topic = Topic.find(1)
|
||||
render :partial => @topic.replies
|
||||
end
|
||||
|
||||
def render_with_has_many_through_association
|
||||
@developer = Developer.find(:first)
|
||||
render :partial => @developer.topics
|
||||
end
|
||||
|
||||
def render_with_belongs_to_association
|
||||
@reply = Reply.find(1)
|
||||
render :partial => @reply.topic
|
||||
end
|
||||
|
||||
def render_with_record
|
||||
@developer = Developer.find(:first)
|
||||
render :partial => @developer
|
||||
end
|
||||
|
||||
def render_with_record_collection
|
||||
@developers = Developer.find(:all)
|
||||
render :partial => @developers
|
||||
end
|
||||
end
|
||||
|
||||
class Game < Struct.new(:name, :id)
|
||||
def to_param
|
||||
id.to_s
|
||||
end
|
||||
end
|
||||
|
||||
module Fun
|
||||
class NestedController < ActionController::Base
|
||||
def render_with_record_in_nested_controller
|
||||
render :partial => Game.new("Pong")
|
||||
end
|
||||
|
||||
def render_with_record_collection_in_nested_controller
|
||||
render :partial => [ Game.new("Pong"), Game.new("Tank") ]
|
||||
end
|
||||
end
|
||||
|
||||
module Serious
|
||||
class NestedDeeperController < ActionController::Base
|
||||
def render_with_record_in_deeper_nested_controller
|
||||
render :partial => Game.new("Chess")
|
||||
end
|
||||
|
||||
def render_with_record_collection_in_deeper_nested_controller
|
||||
render :partial => [ Game.new("Chess"), Game.new("Sudoku"), Game.new("Solitaire") ]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class RenderPartialWithRecordIdentificationAndNestedControllersTest < ActiveRecordTestCase
|
||||
def setup
|
||||
@controller = Fun::NestedController.new
|
||||
@request = ActionController::TestRequest.new
|
||||
@response = ActionController::TestResponse.new
|
||||
super
|
||||
end
|
||||
|
||||
def test_render_with_record_in_nested_controller
|
||||
get :render_with_record_in_nested_controller
|
||||
assert_template 'fun/games/_game'
|
||||
assert_equal 'Pong', @response.body
|
||||
end
|
||||
|
||||
def test_render_with_record_collection_in_nested_controller
|
||||
get :render_with_record_collection_in_nested_controller
|
||||
assert_template 'fun/games/_game'
|
||||
assert_equal 'PongTank', @response.body
|
||||
end
|
||||
end
|
||||
|
||||
class RenderPartialWithRecordIdentificationAndNestedDeeperControllersTest < ActiveRecordTestCase
|
||||
def setup
|
||||
@controller = Fun::Serious::NestedDeeperController.new
|
||||
@request = ActionController::TestRequest.new
|
||||
@response = ActionController::TestResponse.new
|
||||
super
|
||||
end
|
||||
|
||||
def test_render_with_record_in_deeper_nested_controller
|
||||
get :render_with_record_in_deeper_nested_controller
|
||||
assert_template 'fun/serious/games/_game'
|
||||
assert_equal 'Chess', @response.body
|
||||
end
|
||||
|
||||
def test_render_with_record_collection_in_deeper_nested_controller
|
||||
get :render_with_record_collection_in_deeper_nested_controller
|
||||
assert_template 'fun/serious/games/_game'
|
||||
assert_equal 'ChessSudokuSolitaire', @response.body
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue