X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=vendor%2Frails%2Factiverecord%2Ftest%2Fcases%2Fconnection_test_mysql.rb;fp=vendor%2Frails%2Factiverecord%2Ftest%2Fcases%2Fconnection_test_mysql.rb;h=f79ee2f1f77a9d9d01a227f19dbbc6abc71a3dff;hb=437aa336c44c74a30aeea16a06743c32747ed661;hp=0000000000000000000000000000000000000000;hpb=97a0772b06264134cfe38e7494f9427efe0840a0;p=feedcatcher.git

diff --git a/vendor/rails/activerecord/test/cases/connection_test_mysql.rb b/vendor/rails/activerecord/test/cases/connection_test_mysql.rb
new file mode 100644
index 0000000..f79ee2f
--- /dev/null
+++ b/vendor/rails/activerecord/test/cases/connection_test_mysql.rb
@@ -0,0 +1,56 @@
+require "cases/helper"
+
+class MysqlConnectionTest < ActiveRecord::TestCase
+  def setup
+    super
+    @connection = ActiveRecord::Base.connection
+  end
+
+  def test_mysql_reconnect_attribute_after_connection_with_reconnect_true
+    run_without_connection do |orig_connection|
+      ActiveRecord::Base.establish_connection(orig_connection.merge({:reconnect => true}))
+      assert ActiveRecord::Base.connection.raw_connection.reconnect
+    end
+  end
+
+  def test_mysql_reconnect_attribute_after_connection_with_reconnect_false
+    run_without_connection do |orig_connection|
+      ActiveRecord::Base.establish_connection(orig_connection.merge({:reconnect => false}))
+      assert !ActiveRecord::Base.connection.raw_connection.reconnect
+    end
+  end
+
+  def test_no_automatic_reconnection_after_timeout
+    assert @connection.active?
+    @connection.update('set @@wait_timeout=1')
+    sleep 2
+    assert !@connection.active?
+  end
+
+  def test_successful_reconnection_after_timeout_with_manual_reconnect
+    assert @connection.active?
+    @connection.update('set @@wait_timeout=1')
+    sleep 2
+    @connection.reconnect!
+    assert @connection.active?
+  end
+
+  def test_successful_reconnection_after_timeout_with_verify
+    assert @connection.active?
+    @connection.update('set @@wait_timeout=1')
+    sleep 2
+    @connection.verify!
+    assert @connection.active?
+  end
+
+  private
+
+  def run_without_connection
+    original_connection = ActiveRecord::Base.remove_connection
+    begin
+      yield original_connection
+    ensure
+      ActiveRecord::Base.establish_connection(original_connection)
+    end
+  end
+end