OSDN Git Service

Replaced mongrel with thin
[redminele/redminele.git] / ruby / lib / ruby / gems / 1.8 / gems / eventmachine-0.12.10-x86-mswin32-60 / tests / test_file_watch.rb
diff --git a/ruby/lib/ruby/gems/1.8/gems/eventmachine-0.12.10-x86-mswin32-60/tests/test_file_watch.rb b/ruby/lib/ruby/gems/1.8/gems/eventmachine-0.12.10-x86-mswin32-60/tests/test_file_watch.rb
new file mode 100644 (file)
index 0000000..841fd60
--- /dev/null
@@ -0,0 +1,49 @@
+$:.unshift "../lib"\r
+require 'eventmachine'\r
+require 'test/unit'\r
+\r
+class TestFileWatch < Test::Unit::TestCase\r
+  module FileWatcher\r
+    def file_modified\r
+      $modified = true\r
+    end\r
+    def file_deleted\r
+      $deleted = true\r
+    end\r
+    def unbind\r
+      $unbind = true\r
+      EM.stop\r
+    end\r
+  end\r
+\r
+  def setup\r
+    EM.kqueue = true if EM.kqueue?\r
+  end\r
+\r
+  def teardown\r
+    EM.kqueue = false if EM.kqueue?\r
+  end\r
+\r
+  def test_events\r
+    EM.run{\r
+      require 'tempfile'\r
+      file = Tempfile.new('em-watch')\r
+      $tmp_path = file.path\r
+\r
+      # watch it\r
+      watch = EM.watch_file(file.path, FileWatcher)\r
+      $path = watch.path\r
+\r
+      # modify it\r
+      File.open(file.path, 'w'){ |f| f.puts 'hi' }\r
+\r
+      # delete it\r
+      EM.add_timer(0.25){ file.close; file.delete }\r
+    }\r
+\r
+    assert_equal($path, $tmp_path)\r
+    assert($modified)\r
+    assert($deleted)\r
+    assert($unbind)\r
+  end\r
+end\r