mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
91 lines
1.9 KiB
Ruby
91 lines
1.9 KiB
Ruby
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
|
|
|