summaryrefslogtreecommitdiff
path: root/trunk/test/win32ole/test_win32ole.rb
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/test/win32ole/test_win32ole.rb')
-rw-r--r--trunk/test/win32ole/test_win32ole.rb445
1 files changed, 0 insertions, 445 deletions
diff --git a/trunk/test/win32ole/test_win32ole.rb b/trunk/test/win32ole/test_win32ole.rb
deleted file mode 100644
index d9e595347c..0000000000
--- a/trunk/test/win32ole/test_win32ole.rb
+++ /dev/null
@@ -1,445 +0,0 @@
-#
-
-begin
- require 'win32ole'
-rescue LoadError
-end
-require 'test/unit'
-
-if defined?(WIN32OLE)
- module CONST1
- end
- module CONST2
- end
-
- module TestCaseForDict
- def test_convert_bignum
- @dict1.add("a", 9999999999)
- @dict1.add("b", 999999999)
- @dict1.add("c", @dict1.item("b") * 10 + 9)
- assert_equal(9999999999, @dict1.item("a"))
- assert_equal(9999999999, @dict1.item("c"))
- end
- def test_add
- @dict1.add("a", 1000)
- assert_equal(1000, @dict1.item("a"))
- end
- def test_setproperty_equal_ended
- @dict1.compareMode = 1
- @dict1.add("one", 1)
- assert_equal(1, @dict1.item("ONE"))
- @dict2.add("one", 1)
- assert_nil(@dict2.item("ONE"))
- assert_equal(1, @dict2.item("one"))
- end
- def test_non_exist_property
- assert_raise(WIN32OLERuntimeError) {
- @dict1.unknown_property = 1
- }
- end
-
- def test_raise_message
- exc = assert_raise(WIN32OLERuntimeError) {
- @dict1.add
- }
- assert_match(/^\(in OLE method `add': \)/, exc.message) #`
-
- exc = assert_raise(WIN32OLERuntimeError) {
- @dict1._invoke(1, [], [])
- }
- assert_match(/^\(in OLE method `<dispatch id:1>': \)/, exc.message) #`
-
- exc = assert_raise(WIN32OLERuntimeError) {
- @dict1.compareMode = -1
- }
- assert_match(/^\(in setting property `compareMode': \)/, exc.message) #`
- end
-
- def test_ole_methods
- methods = @dict1.ole_methods
- mnames = methods.collect {|m|
- m.name
- }
- assert(mnames.include?("Add"))
- end
-
- def test_ole_func_methods
- methods = @dict1.ole_func_methods
- mnames = methods.collect {|m|
- m.name
- }
- assert(mnames.include?("Add"))
- end
-
- def test_ole_put_methods
- methods = @dict1.ole_put_methods
- mnames = methods.collect {|m|
- m.name
- }
- assert(mnames.include?("CompareMode"))
- end
-
- def test_ole_get_methods
- methods = @dict1.ole_get_methods
- mnames = methods.collect {|m|
- m.name
- }
- assert(mnames.include?("Count"))
- end
-
- def test_ole_mehtod_help
- minfo = @dict1.ole_method_help("Add")
- assert_equal(2, minfo.size_params)
- end
-
- def test_ole_typelib
- tlib = @dict1.ole_typelib
- assert_equal("Microsoft Scripting Runtime", tlib.name);
- end
-
- def test_each
- @dict1.add("one", 1)
- @dict1.add("two", 2)
- i = 0
- @dict1.keys.each do |item|
- i += 1
- end
- assert_equal(2, i)
- end
-
- def test_bracket
- @dict1.add("foo", "FOO")
- assert_equal("FOO", @dict1.item("foo"))
- assert_equal("FOO", @dict1["foo"])
- end
-
- def test_bracket_equal
- @dict1.add("foo", "FOO")
- @dict1["foo"] = "BAR"
- assert_equal("BAR", @dict1["foo"])
- end
-
- def test_invoke_with_array
- @dict1.add("ary1", [1,2,3])
- assert_equal([1,2,3], @dict1["ary1"])
-
- @dict1.add("ary2", [[1,2,"a"], [3,4,"b"]])
- assert_equal([[1,2,"a"], [3,4,"b"]], @dict1["ary2"])
-
- @dict1.add("ary3", [[[1]]])
- assert_equal([[[1]]], @dict1["ary3"])
-
- @dict1.add("ary4", [[[1], [2], [3]], [[4], [5], [6]]])
- assert_equal([[[1],[2], [3]], [[4], [5], [6]]], @dict1["ary4"])
- end
- end
-
- class TestWin32OLE < Test::Unit::TestCase
- include TestCaseForDict
- def setup
- @dict1 = WIN32OLE.new('Scripting.Dictionary')
- @dict2 = WIN32OLE.new('Scripting.Dictionary')
- end
- def test_s_new
- assert_instance_of(WIN32OLE, @dict1)
- assert_instance_of(WIN32OLE, @dict2)
- end
-
- def test_s_new_DCOM
- rshell = WIN32OLE.new("Shell.Application")
- assert_instance_of(WIN32OLE, rshell)
- end
-
- def test_s_new_from_clsid
- shell = WIN32OLE.new("{13709620-C279-11CE-A49E-444553540000}")
- assert_instance_of(WIN32OLE, shell)
- exc = assert_raise(WIN32OLERuntimeError) {
- WIN32OLE.new("{000}")
- }
- assert_match(/unknown OLE server: `\{000\}'/, exc.message) #`
- end
-
- def test_s_connect
- obj = WIN32OLE.connect("winmgmts:")
- assert_instance_of(WIN32OLE, obj)
- end
-
- def test_invoke_accept_symbol_hash_key
- fso = WIN32OLE.new('Scripting.FileSystemObject')
- afolder = fso.getFolder(".")
- bfolder = fso.getFolder({"FolderPath" => "."})
- cfolder = fso.getFolder({:FolderPath => "."})
- assert_equal(afolder.path, bfolder.path)
- assert_equal(afolder.path, cfolder.path)
- fso = nil
- end
-
- def test_setproperty
- installer = WIN32OLE.new("WindowsInstaller.Installer")
- record = installer.CreateRecord(2)
- # this is the way to set property with argument in Win32OLE.
- record.setproperty( "StringData", 1, 'dddd')
- assert_equal('dddd', record.StringData(1))
- end
-
- def test_ole_type
- fso = WIN32OLE.new('Scripting.FileSystemObject')
- tobj = fso.ole_type
- assert_match(/^IFileSystem/, tobj.name)
- end
-
- def test_ole_obj_help
- fso = WIN32OLE.new('Scripting.FileSystemObject')
- tobj = fso.ole_obj_help
- assert_match(/^IFileSystem/, tobj.name)
- end
-
-
- def test_invoke_hash_key_non_str_sym
- fso = WIN32OLE.new('Scripting.FileSystemObject')
- begin
- bfolder = fso.getFolder({1 => "."})
- assert(false)
- rescue TypeError
- assert(true)
- end
- fso = nil
- end
-
- def test_get_win32ole_object
- shell = WIN32OLE.new('Shell.Application')
- folder = shell.nameSpace(0)
- assert_instance_of(WIN32OLE, folder)
- end
-
- def test_invoke_accept_multi_hash_key
- shell = WIN32OLE.new('Shell.Application')
- folder = shell.nameSpace(0)
- item = folder.items.item(0)
- name = folder.getDetailsOf(item, 0)
- assert_equal(item.name, name)
- name = folder.getDetailsOf({:vItem => item, :iColumn => 0})
- assert_equal(item.name, name)
- name = folder.getDetailsOf({"vItem" => item, :iColumn => 0})
- assert_equal(item.name, name)
- end
-
- def test_ole_invoke_with_named_arg_last
- shell = WIN32OLE.new('Shell.Application')
- folder = shell.nameSpace(0)
- item = folder.items.item(0)
- name = folder.getDetailsOf(item, {:iColumn => 0})
- assert_equal(item.name, name)
- end
-
- def test__invoke
- shell=WIN32OLE.new('Shell.Application')
- assert_equal(shell.NameSpace(0).title, shell._invoke(0x60020002, [0], [WIN32OLE::VARIANT::VT_VARIANT]).title)
- end
-
- def test_ole_query_interface
- shell=WIN32OLE.new('Shell.Application')
- assert_raise(ArgumentError) {
- shell2 = shell.ole_query_interface
- }
- shell2 = shell.ole_query_interface('{A4C6892C-3BA9-11D2-9DEA-00C04FB16162}')
- assert_instance_of(WIN32OLE, shell2)
- end
-
- def test_ole_respond_to
- fso = WIN32OLE.new('Scripting.FileSystemObject')
- assert(fso.ole_respond_to?('getFolder'))
- assert(fso.ole_respond_to?('GETFOLDER'))
- assert(fso.ole_respond_to?(:getFolder))
- assert(!fso.ole_respond_to?('XXXXX'))
- assert_raise(TypeError) {
- assert_raise(fso.ole_respond_to?(1))
- }
- end
-
- def test_invoke
- fso = WIN32OLE.new('Scripting.FileSystemObject')
- assert(fso.invoke(:getFolder, "."))
- assert(fso.invoke('getFolder', "."))
- end
-
- def test_s_const_load
- assert(!defined?(CONST1::SsfWINDOWS))
- shell=WIN32OLE.new('Shell.Application')
- WIN32OLE.const_load(shell, CONST1)
- assert_equal(36, CONST1::SsfWINDOWS)
-
- assert(!defined?(CONST2::SsfWINDOWS))
- WIN32OLE.const_load("Microsoft Shell Controls And Automation", CONST2)
- assert_equal(36, CONST2::SsfWINDOWS)
- end
-
- def test_s_create_guid
- guid = WIN32OLE.create_guid
- assert_match(/^\{[A-Z0-9]{8}\-[A-Z0-9]{4}\-[A-Z0-9]{4}\-[A-Z0-9]{4}\-[A-Z0-9]{12}/,
- guid)
- end
-
- #
- # WIN32OLE.codepage is initialized according to Encoding.default_external.
- #
- # def test_s_codepage
- # assert_equal(WIN32OLE::CP_ACP, WIN32OLE.codepage)
- # end
-
- def test_s_codepage_set
- cp = WIN32OLE.codepage
- WIN32OLE.codepage = WIN32OLE::CP_UTF8
- assert_equal(WIN32OLE::CP_UTF8, WIN32OLE.codepage)
- WIN32OLE.codepage = cp
- end
-
- def test_s_codepage_changed
- cp = WIN32OLE.codepage
- fso = WIN32OLE.new("Scripting.FileSystemObject")
- fname = fso.getTempName
- begin
- obj = WIN32OLE_VARIANT.new([0x3042].pack("U*").force_encoding("UTF-8"))
- WIN32OLE.codepage = WIN32OLE::CP_UTF8
- assert_equal("\xE3\x81\x82".force_encoding("CP65001"), obj.value)
-
- begin
- WIN32OLE.codepage = 932 # Windows-31J
- rescue WIN32OLERuntimeError
- end
- if (WIN32OLE.codepage == 932)
- assert_equal("\x82\xA0".force_encoding("CP932"), obj.value)
- end
-
- begin
- WIN32OLE.codepage = 20932 # MS EUC-JP
- rescue WIN32OLERuntimeError
- end
- if (WIN32OLE.codepage == 20932)
- assert_equal("\xA4\xA2".force_encoding("CP20932"), obj.value)
- end
-
- WIN32OLE.codepage = cp
- file = fso.opentextfile(fname, 2, true)
- file.write [0x3042].pack("U*").force_encoding("UTF-8")
- file.close
- str = ""
- open(fname, "r:ascii-8bit") {|ifs|
- str = ifs.read
- }
- assert_equal("\202\240", str)
-
- # This test fail if codepage 20932 (euc) is not installed.
- begin
- WIN32OLE.codepage = 20932
- rescue WIN32OLERuntimeError
- end
- if (WIN32OLE.codepage == 20932)
- WIN32OLE.codepage = cp
- file = fso.opentextfile(fname, 2, true)
- file.write [164, 162].pack("c*").force_encoding("EUC-JP")
- file.close
- open(fname, "r:ascii-8bit") {|ifs|
- str = ifs.read
- }
- assert_equal("\202\240", str)
- end
-
- ensure
- WIN32OLE.codepage = cp
- if (File.exist?(fname))
- File.unlink(fname)
- end
- end
- end
-
- def test_s_locale
- assert_equal(WIN32OLE::LOCALE_SYSTEM_DEFAULT, WIN32OLE.locale)
- end
-
- def test_s_locale_set
- begin
- WIN32OLE.locale = 1041
- assert_equal(1041, WIN32OLE.locale)
- WIN32OLE.locale = WIN32OLE::LOCALE_SYSTEM_DEFAULT
- assert_raise(WIN32OLERuntimeError) {
- WIN32OLE.locale = 111
- }
- assert_equal(WIN32OLE::LOCALE_SYSTEM_DEFAULT, WIN32OLE.locale)
- ensure
- WIN32OLE.locale = WIN32OLE::LOCALE_SYSTEM_DEFAULT
- end
- end
-
- def test_s_locale_change
- begin
- WIN32OLE.locale = 0x0411
- obj = WIN32OLE_VARIANT.new("\\100,000", WIN32OLE::VARIANT::VT_CY)
- assert_equal("100000", obj.value)
- assert_raise(WIN32OLERuntimeError) {
- obj = WIN32OLE_VARIANT.new("$100.000", WIN32OLE::VARIANT::VT_CY)
- }
-
- WIN32OLE.locale = 1033
- obj = WIN32OLE_VARIANT.new("$100,000", WIN32OLE::VARIANT::VT_CY)
- assert_equal("100000", obj.value)
- ensure
- WIN32OLE.locale = WIN32OLE::LOCALE_SYSTEM_DEFAULT
- end
- end
-
- def test_const_CP_ACP
- assert_equal(0, WIN32OLE::CP_ACP)
- end
-
- def test_const_CP_OEMCP
- assert_equal(1, WIN32OLE::CP_OEMCP)
- end
-
- def test_const_CP_MACCP
- assert_equal(2, WIN32OLE::CP_MACCP)
- end
-
- def test_const_CP_THREAD_ACP
- assert_equal(3, WIN32OLE::CP_THREAD_ACP)
- end
-
- def test_const_CP_SYMBOL
- assert_equal(42, WIN32OLE::CP_SYMBOL)
- end
-
- def test_const_CP_UTF7
- assert_equal(65000, WIN32OLE::CP_UTF7)
- end
-
- def test_const_CP_UTF8
- assert_equal(65001, WIN32OLE::CP_UTF8)
- end
-
- def test_const_LOCALE_SYSTEM_DEFAULT
- assert_equal(0x0800, WIN32OLE::LOCALE_SYSTEM_DEFAULT);
- end
-
- def test_const_LOCALE_USER_DEFAULT
- assert_equal(0x0400, WIN32OLE::LOCALE_USER_DEFAULT);
- end
- end
-
- # test of subclass of WIN32OLE
- class MyDict < WIN32OLE
- def MyDict.new
- super('Scripting.Dictionary')
- end
- end
- class TestMyDict < Test::Unit::TestCase
- include TestCaseForDict
- def setup
- @dict1 = MyDict.new
- @dict2 = MyDict.new
- end
- def test_s_new
- assert_instance_of(MyDict, @dict1)
- assert_instance_of(MyDict, @dict2)
- end
- end
-end