mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
84 lines
2.7 KiB
Ruby
84 lines
2.7 KiB
Ruby
|
# You need RubyUnit and MS Excel and MSI to run this test script
|
||
|
|
||
|
require 'rubyunit'
|
||
|
|
||
|
require 'win32ole'
|
||
|
require 'oleserver'
|
||
|
|
||
|
class TestOLEMETHOD < RUNIT::TestCase
|
||
|
include OLESERVER
|
||
|
def setup
|
||
|
@excel_app = WIN32OLE_TYPE.new(MS_EXCEL_TYPELIB, 'Application')
|
||
|
end
|
||
|
def test_s_new
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'Quit')
|
||
|
assert_instance_of(WIN32OLE_METHOD, m)
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'WorkbookOpen')
|
||
|
assert_instance_of(WIN32OLE_METHOD, m)
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'workbookopen')
|
||
|
assert_instance_of(WIN32OLE_METHOD, m)
|
||
|
end
|
||
|
def test_name
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'Quit')
|
||
|
assert_equal('Quit', m.name)
|
||
|
end
|
||
|
def test_return_type
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'ActiveCell')
|
||
|
assert_equal('Range', m.return_type)
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'ActivePrinter')
|
||
|
assert_equal('BSTR', m.return_type)
|
||
|
end
|
||
|
def test_return_vtype
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'ActiveCell')
|
||
|
assert_equal(WIN32OLE::VARIANT::VT_PTR, m.return_vtype)
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'ActivePrinter')
|
||
|
assert_equal(WIN32OLE::VARIANT::VT_BSTR, m.return_vtype)
|
||
|
end
|
||
|
def test_return_type_detail
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'ActiveCell')
|
||
|
assert_equal(['PTR', 'USERDEFINED', 'Range'], m.return_type_detail)
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'ActivePrinter')
|
||
|
assert_equal(['BSTR'], m.return_type_detail)
|
||
|
end
|
||
|
|
||
|
def test_invoke_kind
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'ActiveCell')
|
||
|
assert_equal('PROPERTYGET', m.invoke_kind)
|
||
|
end
|
||
|
def test_visible
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'ActiveCell')
|
||
|
assert(m.visible?)
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'AddRef')
|
||
|
assert(!m.visible?)
|
||
|
end
|
||
|
def test_event
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'WorkbookOpen')
|
||
|
assert(m.event?)
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'ActiveCell')
|
||
|
assert(!m.event?)
|
||
|
end
|
||
|
def test_event_interface
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'WorkbookOpen')
|
||
|
assert_equal('AppEvents', m.event_interface)
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'ActiveCell')
|
||
|
assert_nil(m.event_interface)
|
||
|
end
|
||
|
def test_helpstring
|
||
|
domdoc = WIN32OLE_TYPE.new(MS_XML_TYPELIB, 'DOMDocument')
|
||
|
m = WIN32OLE_METHOD.new(domdoc, 'abort')
|
||
|
assert_equal('abort an asynchronous download', m.helpstring)
|
||
|
end
|
||
|
def test_helpfile
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'ActiveCell')
|
||
|
assert_match(/VBAXL.*\.(HLP|CHM)$/i, m.helpfile)
|
||
|
end
|
||
|
def test_helpcontext
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'ActiveCell')
|
||
|
assert(m.helpcontext > 0)
|
||
|
end
|
||
|
def test_offset_vtbl
|
||
|
m = WIN32OLE_METHOD.new(@excel_app, 'QueryInterface')
|
||
|
assert_equal(0, m.offset_vtbl)
|
||
|
end
|
||
|
end
|