Merge branch 'modify_test_win32ole' into trunk
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b4766a4d9e
commit
2afc2a0581
@ -13,5 +13,29 @@ if defined?(WIN32OLE)
|
|||||||
rescue
|
rescue
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def ado_available?
|
||||||
|
WIN32OLE.new('ADODB.Connection')
|
||||||
|
true
|
||||||
|
rescue
|
||||||
|
false
|
||||||
|
end
|
||||||
|
|
||||||
|
def msxml_available?
|
||||||
|
!WIN32OLE_TYPELIB.typelibs.find { |t| t.name.start_with?('Microsoft XML') }.nil?
|
||||||
|
end
|
||||||
|
|
||||||
|
def event_param
|
||||||
|
method = if msxml_available?
|
||||||
|
typelib = WIN32OLE_TYPELIB.typelibs.find { |t| t.name.start_with?('Microsoft XML') }
|
||||||
|
ole_type = WIN32OLE_TYPE.new(typelib.name, 'IVBSAXContentHandler')
|
||||||
|
WIN32OLE_METHOD.new(ole_type, 'startElement')
|
||||||
|
elsif ado_available?
|
||||||
|
typelib = WIN32OLE.new('ADODB.Connection').ole_typelib
|
||||||
|
ole_type = WIN32OLE_TYPE.new(typelib.name, 'Connection')
|
||||||
|
WIN32OLE_METHOD.new(ole_type, 'WillConnect')
|
||||||
|
end
|
||||||
|
method && method.params[0]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -6,38 +6,24 @@ end
|
|||||||
require 'test/unit'
|
require 'test/unit'
|
||||||
|
|
||||||
if defined?(WIN32OLE_PARAM)
|
if defined?(WIN32OLE_PARAM)
|
||||||
|
require_relative 'available_ole'
|
||||||
def ado_installed?
|
|
||||||
installed = false
|
|
||||||
if defined?(WIN32OLE)
|
|
||||||
begin
|
|
||||||
WIN32OLE.new('ADODB.Connection')
|
|
||||||
installed = true
|
|
||||||
rescue
|
|
||||||
end
|
|
||||||
end
|
|
||||||
installed
|
|
||||||
end
|
|
||||||
|
|
||||||
class TestWIN32OLE_PARAM_EVENT < Test::Unit::TestCase
|
class TestWIN32OLE_PARAM_EVENT < Test::Unit::TestCase
|
||||||
unless ado_installed?
|
if AvailableOLE.msxml_available? || AvailableOLE.ado_available?
|
||||||
def test_dummy_for_skip_message
|
|
||||||
skip 'ActiveX Data Object Library not found'
|
|
||||||
end
|
|
||||||
else
|
|
||||||
def setup
|
def setup
|
||||||
typelib = WIN32OLE.new('ADODB.Connection').ole_typelib
|
@param = AvailableOLE.event_param
|
||||||
otype = WIN32OLE_TYPE.new(typelib.name, 'Connection')
|
|
||||||
m_will_connect = WIN32OLE_METHOD.new(otype, 'WillConnect')
|
|
||||||
@param_user_id = m_will_connect.params[0]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_input?
|
def test_input?
|
||||||
assert_equal(true, @param_user_id.input?)
|
assert_equal(true, @param.input?)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_output?
|
def test_output?
|
||||||
assert_equal(true, @param_user_id.output?)
|
assert_equal(true, @param.output?)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
def test_dummy_for_skip_message
|
||||||
|
skip 'ActiveX Data Object Library and MS XML not found'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user