filewatch 0.6.7 → 0.6.8

Sign up to get free protection for your applications and to get access to all the features.
data/spec/watch_spec.rb DELETED
@@ -1,120 +0,0 @@
1
- require 'filewatch/watch'
2
- require 'stud/temporary'
3
-
4
- describe FileWatch::Watch do
5
- before(:all) do
6
- @thread_abort = Thread.abort_on_exception
7
- Thread.abort_on_exception = true
8
- end
9
-
10
- after(:all) do
11
- Thread.abort_on_exception = @thread_abort
12
- end
13
-
14
- let(:directory) { Stud::Temporary.directory }
15
- let(:file_path) { File.join(directory, "1.log") }
16
- let(:loggr) { double("loggr", :debug? => true) }
17
- let(:results) { [] }
18
- let(:quit_proc) do
19
- lambda do
20
- Thread.new do
21
- sleep 1
22
- subject.quit
23
- end
24
- end
25
- end
26
- let(:subscribe_proc) do
27
- lambda do
28
- subject.subscribe(0.1, 4) do |event, path|
29
- results.push([event, path])
30
- end
31
- end
32
- end
33
- let(:write_lines_1_and_2_proc) do
34
- lambda do
35
- File.open(file_path, "wb") { |file| file.write("line1\nline2\n") }
36
- end
37
- end
38
-
39
- subject { FileWatch::Watch.new(:logger => loggr) }
40
-
41
- before do
42
- allow(loggr).to receive(:debug)
43
- end
44
-
45
- after do
46
- FileUtils.rm_rf(directory)
47
- end
48
-
49
- context "when watching a directory with files" do
50
- it "yields create_initial and one modify file events" do
51
- write_lines_1_and_2_proc.call
52
- subject.watch(File.join(directory, "*"))
53
- quit_proc.call
54
- subscribe_proc.call
55
- expect(results).to eq([[:create_initial, file_path], [:modify, file_path]])
56
- end
57
- end
58
-
59
- context "when watching a directory without files and one is added" do
60
- it "yields create and one modify file events" do
61
- subject.watch(File.join(directory, "*"))
62
- write_lines_1_and_2_proc.call
63
-
64
- quit_proc.call
65
- subscribe_proc.call
66
-
67
- expect(results).to eq([[:create, file_path], [:modify, file_path]])
68
- end
69
- end
70
-
71
- context "when watching a directory with files and data is appended" do
72
- let(:write_lines_3_and_4_proc) do
73
- lambda do
74
- Thread.new do
75
- sleep 0.5
76
- File.open(file_path, "ab") { |file| file.write("line3\nline4\n") }
77
- end
78
- end
79
- end
80
-
81
- it "yields create_initial and two modified file events" do
82
- write_lines_1_and_2_proc.call
83
- subject.watch(File.join(directory, "*"))
84
-
85
- write_lines_3_and_4_proc.call # asynchronous
86
-
87
- quit_proc.call
88
- subscribe_proc.call
89
-
90
- expect(results).to eq([[:create_initial, file_path], [:modify, file_path], [:modify, file_path]])
91
- end
92
- end
93
-
94
- context "when unwatching a file and data is appended" do
95
- let(:write_lines_3_and_4_proc) do
96
- lambda do
97
- Thread.new do
98
- sleep 0.2
99
- results.clear
100
- subject.unwatch(file_path)
101
- sleep 0.2
102
- File.open(file_path, "ab") { |file| file.write("line3\nline4\n") }
103
- end
104
- end
105
- end
106
-
107
- it "does not yield events after unwatching" do
108
- write_lines_1_and_2_proc.call
109
- subject.watch(File.join(directory, "*"))
110
-
111
- write_lines_3_and_4_proc.call # asynchronous
112
-
113
- quit_proc.call
114
- subscribe_proc.call
115
-
116
- expect(results).to eq([])
117
- end
118
- end
119
-
120
- end
@@ -1,22 +0,0 @@
1
- require "stud/temporary"
2
- require "fileutils"
3
-
4
- if Gem.win_platform?
5
- require "lib/filewatch/winhelper"
6
-
7
- describe Winhelper do
8
- let(:path) { Stud::Temporary.file.path }
9
-
10
- after do
11
- FileUtils.rm_rf(path)
12
- end
13
-
14
- it "return a unique file identifier" do
15
- volume_serial, file_index_low, file_index_high = Winhelper.GetWindowsUniqueFileIdentifier(path).split("").map(&:to_i)
16
-
17
- expect(volume_serial).not_to eq(0)
18
- expect(file_index_low).not_to eq(0)
19
- expect(file_index_high).not_to eq(0)
20
- end
21
- end
22
- end