From 68daaab409c6b93423260756417756009cad38e6 Mon Sep 17 00:00:00 2001 From: suke Date: Sat, 27 Jan 2007 09:46:34 +0000 Subject: * ext/win32ole/win32ole.c (ole_val2olevariantdata): bug fix. WIN32OLE_VARIANT.new check that 1st argument should T_ARRAY when variant type is VT_ARRAY. * test/win32ole/test_win32ole_variant.rb: add some test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11581 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/win32ole/test_win32ole_variant.rb | 44 +++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 14 deletions(-) (limited to 'test/win32ole') diff --git a/test/win32ole/test_win32ole_variant.rb b/test/win32ole/test_win32ole_variant.rb index 6d20684b88..6b7d72fcc2 100644 --- a/test/win32ole/test_win32ole_variant.rb +++ b/test/win32ole/test_win32ole_variant.rb @@ -39,24 +39,12 @@ if defined?(WIN32OLE_VARIANT) end def test_new_2_argument - ex = nil - obj = nil - begin - obj = WIN32OLE_VARIANT.new('foo', WIN32OLE::VARIANT::VT_BSTR|WIN32OLE::VARIANT::VT_BYREF) - rescue - ex = $! - end + obj = WIN32OLE_VARIANT.new('foo', WIN32OLE::VARIANT::VT_BSTR|WIN32OLE::VARIANT::VT_BYREF) assert_equal('foo', obj.value); end def test_new_2_argument2 - ex = nil - obj = nil - begin - obj = WIN32OLE_VARIANT.new('foo', WIN32OLE::VARIANT::VT_BSTR) - rescue - ex = $! - end + obj = WIN32OLE_VARIANT.new('foo', WIN32OLE::VARIANT::VT_BSTR) assert_equal('foo', obj.value); end @@ -65,6 +53,22 @@ if defined?(WIN32OLE_VARIANT) assert_equal("124", obj.value); end + def test_conversion_float2int + obj = WIN32OLE_VARIANT.new(12.345, WIN32OLE::VARIANT::VT_I4) + assert_equal(12, obj.value) + end + + def test_conversion_str2num + obj = WIN32OLE_VARIANT.new("12.345", WIN32OLE::VARIANT::VT_R8) + assert_equal(12.345, obj.value) + end + + def test_conversion_ole_variant2ole_variant + obj = WIN32OLE_VARIANT.new("12.345", WIN32OLE::VARIANT::VT_R4) + obj = WIN32OLE_VARIANT.new(obj, WIN32OLE::VARIANT::VT_I4) + assert_equal(12, obj.value) + end + def test_conversion_str2date obj = WIN32OLE_VARIANT.new("2004-12-24 12:24:45", WIN32OLE::VARIANT::VT_DATE) assert_equal("2004/12/24 12:24:45", obj.value) @@ -86,6 +90,13 @@ if defined?(WIN32OLE_VARIANT) assert_equal([1.2, 2.3], obj.value) end + def test_create_vt_array_exc + exc = assert_raise(TypeError) { + obj = WIN32OLE_VARIANT.new(1, WIN32OLE::VARIANT::VT_ARRAY); + } + assert_match(/wrong argument type Fixnum \(expected Array\)/, exc.message) + end + def test_create_vt_array_str2ui1array obj = WIN32OLE_VARIANT.new("ABC", WIN32OLE::VARIANT::VT_ARRAY|WIN32OLE::VARIANT::VT_UI1) assert_equal("ABC", obj.value) @@ -110,6 +121,11 @@ if defined?(WIN32OLE_VARIANT) assert_nil(var.value) end + def test_create_variant_byref + obj = WIN32OLE_VARIANT.new("Str", WIN32OLE::VARIANT::VT_VARIANT|WIN32OLE::VARIANT::VT_BYREF); + assert_equal("Str", obj.value); + end + def test_c_nothing assert_nil(WIN32OLE_VARIANT::Nothing.value) end -- cgit v1.2.3