[前][次][番号順一覧][スレッド一覧]

ruby-changes:6332

From: suke <ko1@a...>
Date: Thu, 3 Jul 2008 19:43:49 +0900 (JST)
Subject: [ruby-changes:6332] Ruby:r17848 (ruby_1_8): commit miss.

suke	2008-07-03 19:43:34 +0900 (Thu, 03 Jul 2008)

  New Revision: 17848

  Added files:
    branches/ruby_1_8/ext/win32ole/tests/test_win32ole_event.rb

  Log:
    commit miss.



  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=17848

Index: ruby_1_8/ext/win32ole/tests/test_win32ole_event.rb
===================================================================
--- ruby_1_8/ext/win32ole/tests/test_win32ole_event.rb	(revision 0)
+++ ruby_1_8/ext/win32ole/tests/test_win32ole_event.rb	(revision 17848)
@@ -0,0 +1,133 @@
+begin
+  require 'win32ole'
+rescue LoadError
+end
+require 'test/unit'
+
+if defined?(WIN32OLE_EVENT)
+  class TestWIN32OLE_EVENT < Test::Unit::TestCase
+    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 setup
+      @ie = WIN32OLE.new("InternetExplorer.Application")
+      @ie.visible = true
+      @event = ""
+      @event2 = ""
+      @event3 = ""
+      @f = create_temp_html
+    end
+
+    def default_handler(event, *args)
+      @event += event
+    end
+
+    def test_on_event
+      ev = WIN32OLE_EVENT.new(@ie, 'DWebBrowserEvents')
+      ev.on_event {|*args| default_handler(*args)}
+      @ie.navigate("file:///#{@f}")
+      while @ie.busy
+        WIN32OLE_EVENT.new(@ie, 'DWebBrowserEvents') 
+        GC.start  
+        sleep 0.1
+      end
+      assert_match(/BeforeNavigate/, @event)
+      assert_match(/NavigateComplete/, @event)
+    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}")
+      while @ie.busy
+        sleep 0.1
+      end
+      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}")
+      while @ie.busy
+        sleep 0.1
+      end
+      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}")
+      while @ie.busy
+        sleep 0.1
+      end
+      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}")
+      while @ie.busy
+        sleep 0.1
+      end
+      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}")
+      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
+
+    def handler2
+      @event2 = "handler2"
+    end
+
+    def handler3(url)
+      @event3 += url
+    end
+
+    def teardown
+      @ie.quit
+      @ie = nil
+      File.unlink(@f)
+      GC.start
+    end
+  end
+end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]