From 1e760c0be3ed35874204114e7454509f740c0fe2 Mon Sep 17 00:00:00 2001 From: shyouhei Date: Wed, 22 Aug 2007 01:53:51 +0000 Subject: add tag v1_8_6_71 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_5_71@13189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ruby_1_8_6/ext/win32ole/tests/testOLEEVENT.rb | 91 +++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 ruby_1_8_6/ext/win32ole/tests/testOLEEVENT.rb (limited to 'ruby_1_8_6/ext/win32ole/tests/testOLEEVENT.rb') diff --git a/ruby_1_8_6/ext/win32ole/tests/testOLEEVENT.rb b/ruby_1_8_6/ext/win32ole/tests/testOLEEVENT.rb new file mode 100644 index 0000000000..0901158642 --- /dev/null +++ b/ruby_1_8_6/ext/win32ole/tests/testOLEEVENT.rb @@ -0,0 +1,91 @@ +require 'rubyunit' +require 'win32ole' + +class TestWIN32OLE_EVENT < RUNIT::TestCase + def setup + @excel = WIN32OLE.new("Excel.Application") + @excel.visible = true + @event = "" + @event2 = "" + end + def test_on_event + book = @excel.workbooks.Add + value = "" + begin + ev = WIN32OLE_EVENT.new(book, 'WorkbookEvents') + ev.on_event('SheetChange'){|arg1, arg2| + begin + value = arg1.value + rescue + value = $!.message + end + } + book.Worksheets(1).Range("A1").value = "OK" + ensure + book.saved = true + end + assert_equal("OK", value) + end + + def handler1 + @event += "handler1" + end + def handler2 + @event += "handler2" + end + + def handler3 + @event += "handler3" + end + + def test_on_event2 + book = @excel.workbooks.Add + begin + ev = WIN32OLE_EVENT.new(book, 'WorkbookEvents') + ev.on_event('SheetChange'){|arg1, arg2| + handler1 + } + ev.on_event('SheetChange'){|arg1, arg2| + handler2 + } + book.Worksheets(1).Range("A1").value = "OK" + ensure + book.saved = true + end + assert_equal("handler2", @event) + end + + def test_on_event3 + book = @excel.workbooks.Add + begin + ev = WIN32OLE_EVENT.new(book, 'WorkbookEvents') + ev.on_event{ handler1 } + ev.on_event{ handler2 } + book.Worksheets(1).Range("A1").value = "OK" + ensure + book.saved = true + end + assert_equal("handler2", @event) + end + + def test_on_event4 + book = @excel.workbooks.Add + begin + ev = WIN32OLE_EVENT.new(book, 'WorkbookEvents') + ev.on_event{ handler1 } + ev.on_event{ handler2 } + ev.on_event('SheetChange'){|arg1, arg2| handler3 } + book.Worksheets(1).Range("A1").value = "OK" + ensure + book.saved = true + end + assert_equal("handler3", @event) + end + + def teardown + @excel.quit + @excel = nil + GC.start + end +end + -- cgit v1.2.3