summaryrefslogtreecommitdiff
path: root/trunk/test/win32ole/test_win32ole_event.rb
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/test/win32ole/test_win32ole_event.rb')
-rw-r--r--trunk/test/win32ole/test_win32ole_event.rb333
1 files changed, 0 insertions, 333 deletions
diff --git a/trunk/test/win32ole/test_win32ole_event.rb b/trunk/test/win32ole/test_win32ole_event.rb
deleted file mode 100644
index 5b2a1af420..0000000000
--- a/trunk/test/win32ole/test_win32ole_event.rb
+++ /dev/null
@@ -1,333 +0,0 @@
-begin
- require 'win32ole'
-rescue LoadError
-end
-require 'test/unit'
-
-if defined?(WIN32OLE_EVENT)
- class TestWIN32OLE_EVENT < Test::Unit::TestCase
- module IE
- end
- def create_temp_html
- fso = WIN32OLE.new('Scripting.FileSystemObject')
- dummy_file = fso.GetTempName + ".html"
- cfolder = fso.getFolder(".")
- f = cfolder.CreateTextFile(dummy_file)
- f.writeLine("<html><body>This is test HTML file for Win32OLE.</body></html>")
- f.close
- dummy_path = cfolder.path + "\\" + dummy_file
- dummy_path
- end
-
- def message_loop
- WIN32OLE_EVENT.message_loop
- sleep 0.1
- end
-
- def wait_ie
- while @ie.readyState != IE::READYSTATE_COMPLETE
- message_loop
- end
- end
-
- def setup
- WIN32OLE_EVENT.message_loop
- @ie = WIN32OLE.new("InternetExplorer.Application")
- if !defined?(IE::READYSTATE_COMPLETE)
- WIN32OLE.const_load(@ie, IE)
- end
- @ie.visible = true
- message_loop
- @event = ""
- @event2 = ""
- @event3 = ""
- @f = create_temp_html
- end
-
- def default_handler(event, *args)
- @event += event
- end
-
- def test_s_new
- assert_raise(TypeError) {
- ev = WIN32OLE_EVENT.new("A")
- }
- end
-
- def test_s_new_without_itf
- ev = WIN32OLE_EVENT.new(@ie)
- ev.on_event {|*args| default_handler(*args)}
- @ie.navigate("file:///#{@f}")
- while @ie.busy
- WIN32OLE_EVENT.new(@ie)
- GC.start
- message_loop
- end
- assert_match(/BeforeNavigate/, @event)
- assert_match(/NavigateComplete/, @event)
- end
-
- def test_on_event
- ev = WIN32OLE_EVENT.new(@ie, 'DWebBrowserEvents')
- ev.on_event {|*args| default_handler(*args)}
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert_match(/BeforeNavigate/, @event)
- assert_match(/NavigateComplete/, @event)
- end
-
- def test_on_event_symbol
- ev = WIN32OLE_EVENT.new(@ie)
- ev.on_event(:BeforeNavigate2) {|*args|
- handler1
- }
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert_equal("handler1", @event2)
- end
-
- def test_on_event2
- ev = WIN32OLE_EVENT.new(@ie, 'DWebBrowserEvents')
- ev.on_event('BeforeNavigate') {|*args| handler1}
- ev.on_event('BeforeNavigate') {|*args| handler2}
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert_equal("handler2", @event2)
- end
-
- def test_on_event3
- ev = WIN32OLE_EVENT.new(@ie, 'DWebBrowserEvents')
- ev.on_event {|*args| handler1}
- ev.on_event {|*args| handler2}
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert_equal("handler2", @event2)
- end
-
- def test_on_event4
- ev = WIN32OLE_EVENT.new(@ie, 'DWebBrowserEvents')
- ev.on_event{|*args| handler1}
- ev.on_event{|*args| handler2}
- ev.on_event('NavigateComplete'){|*args| handler3(*args)}
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert(@event3!="")
- assert("handler2", @event2)
- end
-
- def test_on_event5
- ev = WIN32OLE_EVENT.new(@ie, 'DWebBrowserEvents')
- ev.on_event {|*args| default_handler(*args)}
- ev.on_event('NavigateComplete'){|*args| handler3(*args)}
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert_match(/BeforeNavigate/, @event)
- assert(/NavigateComplete/ !~ @event)
- assert(@event!="")
- end
-
- def test_unadvise
- ev = WIN32OLE_EVENT.new(@ie, 'DWebBrowserEvents')
- ev.on_event {|*args| default_handler(*args)}
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert_match(/BeforeNavigate/, @event)
- ev.unadvise
- @event = ""
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert_equal("", @event);
- assert_raise(WIN32OLERuntimeError) {
- ev.on_event {|*args| default_handler(*args)}
- }
- end
-
- def test_non_exist_event
- assert_raise(RuntimeError) {
- ev = WIN32OLE_EVENT.new(@ie, 'XXXX')
- }
- dict = WIN32OLE.new('Scripting.Dictionary')
- assert_raise(RuntimeError) {
- ev = WIN32OLE_EVENT.new(dict)
- }
- end
-
- def test_on_event_with_outargs
- ev = WIN32OLE_EVENT.new(@ie)
- # ev.on_event_with_outargs('BeforeNavigate'){|*args|
- # args.last[5] = true # Cancel = true
- # }
- ev.on_event_with_outargs('BeforeNavigate2'){|*args|
- args.last[6] = true # Cancel = true
- }
- bl = @ie.locationURL
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert_equal(bl, @ie.locationURL)
- end
-
- def test_on_event_hash_return
- ev = WIN32OLE_EVENT.new(@ie)
- ev.on_event('BeforeNavigate2'){|*args|
- {:return => 1, :Cancel => true}
- }
- bl = @ie.locationURL
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert_equal(bl, @ie.locationURL)
- end
-
- def test_on_event_hash_return2
- ev = WIN32OLE_EVENT.new(@ie)
- ev.on_event('BeforeNavigate2'){|*args|
- {:Cancel => true}
- }
- bl = @ie.locationURL
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert_equal(bl, @ie.locationURL)
- end
-
- def test_on_event_hash_return3
- ev = WIN32OLE_EVENT.new(@ie)
- ev.on_event('BeforeNavigate2'){|*args|
- {'Cancel' => true}
- }
- bl = @ie.locationURL
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert_equal(bl, @ie.locationURL)
- end
-
- def test_on_event_hash_return4
- ev = WIN32OLE_EVENT.new(@ie)
- ev.on_event('BeforeNavigate2'){|*args|
- {'return' => 2, 'Cancel' => true}
- }
- bl = @ie.locationURL
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert_equal(bl, @ie.locationURL)
- end
-
- def test_on_event_hash_return5
- ev = WIN32OLE_EVENT.new(@ie)
- ev.on_event('BeforeNavigate2'){|*args|
- {6 => true}
- }
- bl = @ie.locationURL
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert_equal(bl, @ie.locationURL)
- end
-
- def test_off_event
- ev = WIN32OLE_EVENT.new(@ie)
- ev.on_event{handler1}
- ev.off_event
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert_equal("", @event2)
- end
-
- def test_off_event_arg
- ev = WIN32OLE_EVENT.new(@ie)
- ev.on_event('BeforeNavigate2'){handler1}
- ev.off_event('BeforeNavigate2')
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert_equal("", @event2)
- end
-
- def test_off_event_sym_arg
- ev = WIN32OLE_EVENT.new(@ie)
- ev.on_event('BeforeNavigate2'){handler1}
- ev.off_event(:BeforeNavigate2)
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert_equal("", @event2)
- end
-
- def handler1
- @event2 = "handler1"
- end
-
- def handler2
- @event2 = "handler2"
- end
-
- def handler3(url)
- @event3 += url
- end
-
- def teardown
- @ie.quit
- message_loop
- @ie = nil
- i = 0
- begin
- i += 1
- File.unlink(@f) if i < 10
- rescue Errno::EACCES
- message_loop
- retry
- end
- message_loop
- GC.start
- message_loop
- end
-
- class Handler1
- attr_reader :val1, :val2, :val3, :val4
- def initialize
- @val1 = nil
- @val2 = nil
- @val3 = nil
- @val4 = nil
- end
- def onStatusTextChange(t)
- @val1 = t
- end
- def onProgressChange(p, pmax)
- @val2 = p
- @val3 = pmax
- end
- def onPropertyChange(p)
- @val4 = p
- end
- end
-
- class Handler2
- attr_reader :ev
- def initialize
- @ev = ""
- end
- def method_missing(ev, *arg)
- @ev += ev
- end
- end
-
- def test_handler1
- ev = WIN32OLE_EVENT.new(@ie)
- h1 = Handler1.new
- ev.handler = h1
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert(h1.val1)
- assert_equal(h1.val1, ev.handler.val1)
- assert(h1.val2)
- assert(h1.val3)
- assert(h1.val4)
- end
-
- def test_handler2
- ev = WIN32OLE_EVENT.new(@ie)
- h2 = Handler2.new
- ev.handler = h2
- @ie.navigate("file:///#{@f}")
- wait_ie
- assert(h2.ev != "")
- end
-
- end
-end