summaryrefslogtreecommitdiff
path: root/test/win32ole
diff options
context:
space:
mode:
authorsuke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-10-20 14:34:30 +0000
committersuke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-10-20 14:34:30 +0000
commit2afc2a058133affff5fa49c1ce92beb7ab5b88cb (patch)
tree8d8b3879caf5463b484bf82a6ea9a7dc8026e083 /test/win32ole
parentb4766a4d9ee5dca0d9491ae320131f065242b574 (diff)
downloadruby-2afc2a058133affff5fa49c1ce92beb7ab5b88cb.tar.gz
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/win32ole')
-rw-r--r--test/win32ole/available_ole.rb24
-rw-r--r--test/win32ole/test_win32ole_param_event.rb32
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