diff options
author | suke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-10-20 14:34:30 +0000 |
---|---|---|
committer | suke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-10-20 14:34:30 +0000 |
commit | 2afc2a058133affff5fa49c1ce92beb7ab5b88cb (patch) | |
tree | 8d8b3879caf5463b484bf82a6ea9a7dc8026e083 /test | |
parent | b4766a4d9ee5dca0d9491ae320131f065242b574 (diff) |
Merge branch 'modify_test_win32ole' into trunk
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/win32ole/available_ole.rb | 24 | ||||
-rw-r--r-- | test/win32ole/test_win32ole_param_event.rb | 32 |
2 files changed, 33 insertions, 23 deletions
diff --git a/test/win32ole/available_ole.rb b/test/win32ole/available_ole.rb index e697092032..ebc9baae66 100644 --- a/test/win32ole/available_ole.rb +++ b/test/win32ole/available_ole.rb @@ -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 diff --git a/test/win32ole/test_win32ole_param_event.rb b/test/win32ole/test_win32ole_param_event.rb index 730161021f..64812e567d 100644 --- a/test/win32ole/test_win32ole_param_event.rb +++ b/test/win32ole/test_win32ole_param_event.rb @@ -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 |