1
# You need RubyUnit and MS Excel and MSI to run this test script
8
class TestOLETYPE < RUNIT::TestCase
11
type = WIN32OLE_TYPE.new(MS_EXCEL_TYPELIB, 'Application')
12
assert_instance_of(WIN32OLE_TYPE, type)
14
def test_s_ole_classes
15
classes = WIN32OLE_TYPE.ole_classes(MS_EXCEL_TYPELIB)
16
assert(classes.size > 0)
19
libs = WIN32OLE_TYPE.typelibs
20
assert(libs.include?(MS_EXCEL_TYPELIB))
21
assert(libs.include?(MS_XML_TYPELIB))
24
progids = WIN32OLE_TYPE.progids
25
assert(progids.include?('Excel.Application'))
28
classes = WIN32OLE_TYPE.ole_classes(MS_EXCEL_TYPELIB)
29
class_names = classes.collect{|c|
32
assert(class_names.include?('Application'))
36
classes = WIN32OLE_TYPE.ole_classes(MS_EXCEL_TYPELIB)
37
class_names = classes.collect{|c|
40
assert(class_names.include?('Application'))
44
classes = WIN32OLE_TYPE.ole_classes(MS_EXCEL_TYPELIB)
45
app = classes.find {|c| c.name == 'Application'}
46
assert_equal('Class', app.ole_type)
47
app = classes.find {|c| c.name == '_Application'}
48
assert_equal('Dispatch', app.ole_type)
51
classes = WIN32OLE_TYPE.ole_classes(MS_EXCEL_TYPELIB)
52
app = classes.find {|c| c.name == 'Application'}
53
assert_equal(5, app.typekind)
56
classes = WIN32OLE_TYPE.ole_classes(MS_EXCEL_TYPELIB)
57
app = classes.find {|c| c.name == 'Application'}
59
app = classes.find {|c| c.name == 'IAppEvents'}
63
classes = WIN32OLE_TYPE.ole_classes(MS_XML_TYPELIB)
64
domnode = classes.find {|c| c.name == 'DOMNodeType'}
65
assert_equal('tagDOMNodeType', domnode.src_type)
68
classes = WIN32OLE_TYPE.ole_classes(MS_XML_TYPELIB)
69
domdoc = classes.find {|c| c.name == 'DOMDocument'}
70
assert_equal('W3C-DOM XML Document', domdoc.helpstring)
73
classes = WIN32OLE_TYPE.ole_classes(MS_EXCEL_TYPELIB)
74
xlchart = classes.find {|c| c.name == 'XlChartType'}
75
assert(xlchart.variables.size > 0)
78
classes = WIN32OLE_TYPE.ole_classes(MS_EXCEL_TYPELIB)
79
worksheet = classes.find {|c| c.name == 'Worksheet'}
80
assert(worksheet.ole_methods.size > 0)
83
classes = WIN32OLE_TYPE.ole_classes(MS_EXCEL_TYPELIB)
84
worksheet = classes.find {|c| c.name == 'Worksheet'}
85
assert_match(/VBAXL.*\.(CHM|HLP)$/, worksheet.helpfile)
88
classes = WIN32OLE_TYPE.ole_classes(MS_EXCEL_TYPELIB)
89
worksheet = classes.find {|c| c.name == 'Worksheet'}
90
assert_equal(131088, worksheet.helpcontext)
93
type = WIN32OLE_TYPE.new(MS_EXCEL_TYPELIB, 'Application')
94
assert_equal("Application", "#{type}");
97
type = WIN32OLE_TYPE.new(MS_EXCEL_TYPELIB, 'Application')
98
tlib = type.ole_typelib
99
assert_instance_of(WIN32OLE_TYPELIB, tlib);
100
assert_equal(MS_EXCEL_TYPELIB, tlib.name);
103
def test_implemented_ole_types
104
type = WIN32OLE_TYPE.new(MS_EXCEL_TYPELIB, 'Application')
105
impltypes = type.implemented_ole_types
106
assert_instance_of(Array, impltypes);
107
assert_equal('_Application', impltypes[0].name)
108
assert_equal('AppEvents', impltypes[1].name)