summaryrefslogtreecommitdiff
path: root/test/win32ole
diff options
context:
space:
mode:
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