summaryrefslogtreecommitdiff
path: root/ext/win32ole/tests/testOLETYPELIB.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ext/win32ole/tests/testOLETYPELIB.rb')
-rw-r--r--ext/win32ole/tests/testOLETYPELIB.rb134
1 files changed, 134 insertions, 0 deletions
diff --git a/ext/win32ole/tests/testOLETYPELIB.rb b/ext/win32ole/tests/testOLETYPELIB.rb
new file mode 100644
index 0000000000..9248ecfefb
--- /dev/null
+++ b/ext/win32ole/tests/testOLETYPELIB.rb
@@ -0,0 +1,134 @@
+require 'test/unit'
+require 'win32ole'
+require 'oleserver'
+
+class TestOLETYPELIB < Test::Unit::TestCase
+ include OLESERVER
+ def test_exists_typelib
+ assert(Module.constants.include?("WIN32OLE_TYPELIB"))
+ end
+
+ def test_s_new
+ tlib = WIN32OLE_TYPELIB.new(MS_EXCEL_TYPELIB)
+ end
+
+ def test_s_new_non_exist_tlib
+ exception_occured = false
+ msg = ""
+ begin
+ tlib = WIN32OLE_TYPELIB.new('NON EXIST TYPELIB')
+ rescue WIN32OLERuntimeError
+ msg = $!.to_s
+ exception_occured = true
+ end
+ assert_equal("Not found type library `NON EXIST TYPELIB`", msg)
+ assert(exception_occured)
+ end
+
+ def test_guid
+ tlib = WIN32OLE_TYPELIB.new(MS_EXCEL_TYPELIB)
+ assert_not_equal("", tlib.guid)
+ end
+
+ def test_s_new_from_guid
+ tlib = WIN32OLE_TYPELIB.new(MS_EXCEL_TYPELIB);
+ guid = tlib.guid
+ tlib2 = WIN32OLE_TYPELIB.new(guid);
+ assert_equal(tlib.name, tlib2.name);
+ end
+
+ def test_version
+ tlib = WIN32OLE_TYPELIB.new(MS_EXCEL_TYPELIB);
+ assert(tlib.version > 0)
+ end
+
+ def test_major_version
+ tlib = WIN32OLE_TYPELIB.new(MS_EXCEL_TYPELIB)
+ assert(tlib.major_version > 0)
+ end
+
+ def test_minor_version
+ tlib = WIN32OLE_TYPELIB.new(MS_EXCEL_TYPELIB)
+ assert(tlib.minor_version >= 0)
+ end
+
+ def test_create_tlib_obj
+ ex = nil
+ begin
+ tlib1 = WIN32OLE_TYPELIB.new(MS_EXCEL_TYPELIB)
+ ex = WIN32OLE.new('Excel.Application')
+ tlib2 = ex.ole_typelib
+ assert_equal(tlib1.name, tlib2.name)
+ assert_equal(tlib1.major_version, tlib2.major_version)
+ assert_equal(tlib1.minor_version, tlib2.minor_version)
+ ensure
+ if ex
+ ex.quit
+ end
+ end
+ end
+
+ def test_create_tlib_obj2
+ ex = nil
+ begin
+ tlib1 = WIN32OLE_TYPELIB.new(MS_EXCEL_TYPELIB)
+ tlib2 = WIN32OLE_TYPELIB.new(tlib1.guid, tlib1.major_version, tlib1.minor_version)
+ assert_equal(tlib1.name, tlib2.name)
+ assert_equal(tlib1.major_version, tlib2.major_version)
+ assert_equal(tlib1.minor_version, tlib2.minor_version)
+ ensure
+ if ex
+ ex.quit
+ end
+ end
+ end
+
+ def test_create_tlib_obj3
+ ex = nil
+ begin
+ tlib1 = WIN32OLE_TYPELIB.new(MS_EXCEL_TYPELIB)
+ tlib2 = WIN32OLE_TYPELIB.new(tlib1.guid, tlib1.version)
+ assert_equal(tlib1.name, tlib2.name)
+ assert_equal(tlib1.guid, tlib2.guid)
+ assert_equal(tlib1.major_version, tlib2.major_version)
+ assert_equal(tlib1.minor_version, tlib2.minor_version)
+ ensure
+ if ex
+ ex.quit
+ end
+ end
+ end
+
+ def test_name
+ tlib = WIN32OLE_TYPELIB.new(MS_EXCEL_TYPELIB)
+ assert_equal(MS_EXCEL_TYPELIB, tlib.name)
+ end
+
+ def test_to_s
+ tlib = WIN32OLE_TYPELIB.new(MS_EXCEL_TYPELIB)
+ assert_equal(tlib.name, tlib.to_s)
+ end
+
+ def test_path
+ tlib = WIN32OLE_TYPELIB.new(MS_EXCEL_TYPELIB)
+ assert(/EXCEL/ =~ tlib.path)
+ end
+
+ def test_ole_classes
+ tlib = WIN32OLE_TYPELIB.new(MS_EXCEL_TYPELIB)
+ classes = tlib.ole_classes
+ assert(classes.instance_of?(Array))
+ assert(classes.size > 0)
+ assert('WIN32OLE_TYPE', classes[0].class)
+ assert(classes.collect{|i| i.name}.include?('Workbooks'))
+ end
+
+ def test_s_typelibs
+ tlibs = WIN32OLE_TYPELIB.typelibs
+ assert(tlibs.instance_of?(Array))
+ assert(tlibs.size > 0)
+ assert('WIN32OLE_TYPELIB', tlibs[0].class)
+ tlibnames = tlibs.collect{|i| i.name}
+ tlibnames.include?('Microsoft Internet Controlls')
+ end
+end