summaryrefslogtreecommitdiff
path: root/test/win32ole/test_win32ole_event.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/win32ole/test_win32ole_event.rb')
-rw-r--r--test/win32ole/test_win32ole_event.rb22
1 files changed, 21 insertions, 1 deletions
diff --git a/test/win32ole/test_win32ole_event.rb b/test/win32ole/test_win32ole_event.rb
index 8fd02b5e9b..522e7a61f0 100644
--- a/test/win32ole/test_win32ole_event.rb
+++ b/test/win32ole/test_win32ole_event.rb
@@ -89,6 +89,26 @@ if defined?(WIN32OLE_EVENT)
assert(@event!="")
end
+ def test_unadvise
+ ev = WIN32OLE_EVENT.new(@ie, 'DWebBrowserEvents')
+ ev.on_event {|*args| default_handler(*args)}
+ @ie.navigate("file:///#{@f}")
+ while @ie.busy
+ sleep 0.1
+ end
+ assert_match(/BeforeNavigate/, @event)
+ ev.unadvise
+ @event = ""
+ @ie.navigate("file:///#{@f}")
+ while @ie.busy
+ sleep 0.1
+ end
+ assert_equal("", @event);
+ assert_raise(WIN32OLERuntimeError) {
+ ev.on_event {|*args| default_handler(*args)}
+ }
+ end
+
def handler1
@event2 = "handler1"
end
@@ -102,9 +122,9 @@ if defined?(WIN32OLE_EVENT)
end
def teardown
- File.unlink(@f)
@ie.quit
@ie = nil
+ File.unlink(@f)
GC.start
end
end