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
1 $:.unshift "../lib"\r
2 require 'eventmachine'\r
3 require 'test/unit'\r
4 \r
5 class TestFileWatch < Test::Unit::TestCase\r
6   module FileWatcher\r
7     def file_modified\r
8       $modified = true\r
9     end\r
10     def file_deleted\r
11       $deleted = true\r
12     end\r
13     def unbind\r
14       $unbind = true\r
15       EM.stop\r
16     end\r
17   end\r
18 \r
19   def setup\r
20     EM.kqueue = true if EM.kqueue?\r
21   end\r
22 \r
23   def teardown\r
24     EM.kqueue = false if EM.kqueue?\r
25   end\r
26 \r
27   def test_events\r
28     EM.run{\r
29       require 'tempfile'\r
30       file = Tempfile.new('em-watch')\r
31       $tmp_path = file.path\r
32 \r
33       # watch it\r
34       watch = EM.watch_file(file.path, FileWatcher)\r
35       $path = watch.path\r
36 \r
37       # modify it\r
38       File.open(file.path, 'w'){ |f| f.puts 'hi' }\r
39 \r
40       # delete it\r
41       EM.add_timer(0.25){ file.close; file.delete }\r
42     }\r
43 \r
44     assert_equal($path, $tmp_path)\r
45     assert($modified)\r
46     assert($deleted)\r
47     assert($unbind)\r
48   end\r
49 end\r