mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
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
2 changed files with 33 additions and 23 deletions
|
@ -13,5 +13,29 @@ if defined?(WIN32OLE)
|
|||
rescue
|
||||
false
|
||||
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
|
||||
|
|
|
@ -6,38 +6,24 @@ end
|
|||
require 'test/unit'
|
||||
|
||||
if defined?(WIN32OLE_PARAM)
|
||||
|
||||
def ado_installed?
|
||||
installed = false
|
||||
if defined?(WIN32OLE)
|
||||
begin
|
||||
WIN32OLE.new('ADODB.Connection')
|
||||
installed = true
|
||||
rescue
|
||||
end
|
||||
end
|
||||
installed
|
||||
end
|
||||
require_relative 'available_ole'
|
||||
|
||||
class TestWIN32OLE_PARAM_EVENT < Test::Unit::TestCase
|
||||
unless ado_installed?
|
||||
def test_dummy_for_skip_message
|
||||
skip 'ActiveX Data Object Library not found'
|
||||
end
|
||||
else
|
||||
if AvailableOLE.msxml_available? || AvailableOLE.ado_available?
|
||||
def setup
|
||||
typelib = WIN32OLE.new('ADODB.Connection').ole_typelib
|
||||
otype = WIN32OLE_TYPE.new(typelib.name, 'Connection')
|
||||
m_will_connect = WIN32OLE_METHOD.new(otype, 'WillConnect')
|
||||
@param_user_id = m_will_connect.params[0]
|
||||
@param = AvailableOLE.event_param
|
||||
end
|
||||
|
||||
def test_input?
|
||||
assert_equal(true, @param_user_id.input?)
|
||||
assert_equal(true, @param.input?)
|
||||
end
|
||||
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue