<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>test/rails/2.3.2/spec/controllers/trans_sid_spec.rb</filename>
    </added>
    <added>
      <filename>test/rails/overrides/app/controllers/application_controller.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,18 +1,34 @@
+# -*- coding: utf-8 -*-
 # = &#12475;&#12483;&#12471;&#12519;&#12531;ID&#12398;&#20184;&#19982;
+require 'active_support/version'
+
+module ParamsOverCookie
+  # cookie &#12424;&#12426;&#12418; params &#12434;&#20808;&#12395;&#35211;&#12427;&#12497;&#12483;&#12481;
+  def load_session(env)
+    request = Rack::Request.new(env)
+    unless @cookie_only
+      sid = request.params[@key]
+    end
+    sid ||= request.cookies[@key]
+
+    sid, session = get_session(env, sid)
+    [sid, session]
+  end
+end
 
 module ActionController
   # cookie &#12424;&#12426;&#12418; params &#12434;&#20808;&#12395;&#35211;&#12427;&#12497;&#12483;&#12481;
   module Session
     class AbstractStore
-      def load_session(env)
-        request = Rack::Request.new(env)
-        unless @cookie_only
-          sid = request.params[@key]
+      if ActiveSupport::VERSION::TINY == 2
+        # for 2.3.2
+        include ParamsOverCookie
+      end
+      class SessionHash
+        if ActiveSupport::VERSION::TINY == 2
+          # for 2.3.3
+          include ParamsOverCookie
         end
-        sid ||= request.cookies[@key]
-
-        sid, session = get_session(env, sid)
-        [sid, session]
       end
     end
   end
@@ -56,6 +72,7 @@ module ActionController
     private
     # trans_sid&#12434;&#36969;&#29992;&#12377;&#12409;&#12365;&#12363;&#12434;&#36820;&#12377;&#12290;
     def apply_trans_sid?
+      return false if (jpmobile_session_id rescue nil).blank?
       return false if trans_sid_mode == :none
       return true if trans_sid_mode == :always
       if trans_sid_mode == :mobile
@@ -87,7 +104,7 @@ module Jpmobile::TransSid #:nodoc:
   private
   # session_key&#12434;&#36820;&#12377;&#12290;
   def session_key
-    (request.session_options || ActionController::Base.session_options)[:key]
+    ActionController::Base.session_options.merge(request.session_options || {})[:key]
   end
   # session_id&#12434;&#36820;&#12377;
   def jpmobile_session_id</diff>
      <filename>lib/jpmobile/trans_sid.rb</filename>
    </modified>
    <modified>
      <diff>@@ -26,39 +26,54 @@ namespace :test do
     t.verbose = true
   end
   desc &quot;Generate rails app and run jpmobile tests in the app&quot;
-  task :rails do |t, args|
-    puts &quot;Running tests in Rails 2.3.2&quot;
+  task :rails, [:versions] do |t, args|
+    rails_root     = &quot;test/rails/rails_root&quot;
+    relative_root  = &quot;../../../&quot;
+    rails_versions = args.versions.split(&quot;/&quot;) rescue [&quot;2.3.3&quot;]
 
-    # generate rails app
-    rails_root = &quot;test/rails/rails_root&quot;
-    FileUtils.rm_rf(rails_root)
-    FileUtils.mkdir_p(rails_root)
-    system &quot;rails _2.3.2_ --force #{rails_root}&quot;
+    puts &quot;Running tests in Rails #{rails_versions.join(', ')}&quot;
 
-    # setup jpmobile
-    plugin_path = File.join(rails_root, 'vendor', 'plugins', 'jpmobile')
-    FileUtils.mkdir_p(plugin_path)
-    FileList[&quot;*&quot;].exclude(&quot;test&quot;).each do |file|
-      FileUtils.cp_r(file, plugin_path)
-    end
+    rails_versions.each do |rails_version|
+      puts &quot;  for #{rails_version}&quot;
+      # generate rails app
+      FileUtils.rm_rf(rails_root)
+      FileUtils.mkdir_p(rails_root)
+      system &quot;rails _#{rails_version}_ --force #{rails_root}&quot;
 
-    # setup tests
-    FileList[&quot;test/rails/overrides/*&quot;].each do |file|
-      FileUtils.cp_r(file, rails_root)
-    end
+      # setup jpmobile
+      plugin_path = File.join(rails_root, 'vendor', 'plugins', 'jpmobile')
+      FileUtils.mkdir_p(plugin_path)
+      FileList[&quot;*&quot;].exclude(&quot;test&quot;).each do |file|
+        FileUtils.cp_r(file, plugin_path)
+      end
+
+      # setup tests
+      FileList[&quot;test/rails/overrides/*&quot;].each do |file|
+        FileUtils.cp_r(file, rails_root)
+      end
+
+      # for 2.3.2
+      if rails_version == &quot;2.3.2&quot;
+        FileList[&quot;test/rails/2.3.2/*&quot;].each do |file|
+          FileUtils.cp_r(file, rails_root)
+        end
+      end
 
-    # for 2.3.2
-    config_path = File.join(rails_root, 'config', 'environment.rb')
-    File.open(config_path, 'a') do |file|
-      file.write &lt;&lt;-END
+      # for cookie_only option
+      config_path = File.join(rails_root, 'config', 'environment.rb')
+      File.open(config_path, 'a') do |file|
+        file.write &lt;&lt;-END
 
 ActionController::Base.session = {:key =&gt; &quot;_session_id&quot;, :cookie_only =&gt; false}
 END
-    end
+      end
+
+      # run tests in rails
+      cd rails_root
+      sh &quot;rake db:migrate&quot;
+      sh &quot;rake spec&quot;
 
-    # run tests in rails
-    cd rails_root
-    sh &quot;rake db:migrate&quot;
-    sh &quot;rake spec&quot;
+      cd relative_root
+    end
   end
 end</diff>
      <filename>tasks/jpmobile_tasks.rake</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
 require File.dirname(__FILE__) + '/../spec_helper'
 
 describe &quot;trans_sid &#12364;&#36215;&#21205;&#12375;&#12394;&#12356;&#12392;&#12365;&quot;, :shared =&gt; true do
@@ -17,7 +18,7 @@ end
 
 describe &quot;trans_sid &#12364;&#36215;&#21205;&#12377;&#12427;&#12392;&#12365;&quot;, :shared =&gt; true do
   before :each do
-    request.session.session_id = &quot;mysessionid&quot;
+    request.session_options[:id] = &quot;mysessionid&quot;
   end
   it &quot;&#12391; link_to &#12398;&#33258;&#21205;&#26360;&#12365;&#25563;&#12360;&#12364;&#34892;&#12431;&#12428;&#12427;&quot; do
     get :link
@@ -52,7 +53,7 @@ end
 describe TransSidAlwaysController, &quot;&#12392;&#12356;&#12358; trans_sid :always &#12364;&#25351;&#23450;&#12373;&#12428;&#12390;&#12356;&#12427;&#12467;&#12531;&#12488;&#12525;&#12540;&#12521;&quot; do
   controller_name :trans_sid_always
   before :each do
-    request.session.session_id = &quot;mysessionid&quot;
+    request.session_options[:id] = &quot;mysessionid&quot;
   end
   it &quot;&#12398; trans_sid_mode &#12399; :always&quot; do
     controller.trans_sid_mode.should == :always</diff>
      <filename>test/rails/overrides/spec/controllers/trans_sid_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>test/rails/overrides/app/controllers/application.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>ecb66814fcd79317ebf4e4ddeff02d44c27cd83e</id>
    </parent>
  </parents>
  <author>
    <name>Shin-ichiro OGAWA</name>
    <email>rust.stnard+git@gmail.com</email>
  </author>
  <url>http://github.com/darashi/jpmobile/commit/3ca47ea693743f4fa825f2610258f1c1f689410e</url>
  <id>3ca47ea693743f4fa825f2610258f1c1f689410e</id>
  <committed-date>2009-08-05T22:26:59-07:00</committed-date>
  <authored-date>2009-08-05T22:26:59-07:00</authored-date>
  <message>Rails 2.3.3&#23550;&#24540;

Rails 2.3.3&#12408;&#12398;&#23550;&#24540;&#12392;&#12486;&#12473;&#12488;&#12398;&#19968;&#37096;&#20462;&#27491;
session &#12364;&#26377;&#21177;&#12391;&#12394;&#12356;&#12392;&#12365;&#12395;&#12418; trans_sid &#12364;&#26377;&#21177;&#12395;&#12394;&#12387;&#12390;&#12356;&#12383;&#21839;&#38988;&#12398;&#23550;&#20966;
Signed-off-by: Shin-ichiro OGAWA &lt;rust.stnard+git@gmail.com&gt;</message>
  <tree>557caec9d6a91c16ae6869c4c226ac90ca099678</tree>
  <committer>
    <name>Shin-ichiro OGAWA</name>
    <email>rust.stnard+git@gmail.com</email>
  </committer>
</commit>
