aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/file_update_checker_with_enumerable_test_cases.rb
diff options
context:
space:
mode:
authorXavier Noria <fxn@hashref.com>2015-10-12 21:44:21 +0200
committerXavier Noria <fxn@hashref.com>2015-11-08 22:49:49 -0800
commit087a79ab2fe4dfbe1cf1daafe91be5c9ef39be0c (patch)
treeb10090acc443dd58c7a7cef2f028b8bb7a51c0d5 /activesupport/test/file_update_checker_with_enumerable_test_cases.rb
parent785adabc4b8d892b6e06fca2f259e9c5147e9ca5 (diff)
downloadrails-087a79ab2fe4dfbe1cf1daafe91be5c9ef39be0c.tar.gz
rails-087a79ab2fe4dfbe1cf1daafe91be5c9ef39be0c.tar.bz2
rails-087a79ab2fe4dfbe1cf1daafe91be5c9ef39be0c.zip
initial edit pass over the evented file checker patch
Diffstat (limited to 'activesupport/test/file_update_checker_with_enumerable_test_cases.rb')
-rw-r--r--activesupport/test/file_update_checker_with_enumerable_test_cases.rb88
1 files changed, 60 insertions, 28 deletions
diff --git a/activesupport/test/file_update_checker_with_enumerable_test_cases.rb b/activesupport/test/file_update_checker_with_enumerable_test_cases.rb
index cd1f12d42f..c7b5ffb7a5 100644
--- a/activesupport/test/file_update_checker_with_enumerable_test_cases.rb
+++ b/activesupport/test/file_update_checker_with_enumerable_test_cases.rb
@@ -2,71 +2,95 @@ module FileUpdateCheckerWithEnumerableTestCases
FILES = %w(1.txt 2.txt 3.txt)
def setup
- FileUtils.mkdir_p("tmp_watcher")
+ FileUtils.mkdir_p('tmp_watcher')
FileUtils.touch(FILES)
end
def teardown
- FileUtils.rm_rf("tmp_watcher")
+ FileUtils.rm_rf('tmp_watcher')
FileUtils.rm_rf(FILES)
end
def test_should_not_execute_the_block_if_no_paths_are_given
i = 0
- checker = build_new_watcher([]){ i += 1}
+
+ checker = build_new_watcher([]) { i += 1 }
checker.execute_if_updated
+
assert_equal 0, i
end
def test_should_not_invoke_the_block_if_no_file_has_changed
i = 0
- checker = build_new_watcher(FILES){ i += 1 }
- 5.times { assert !checker.execute_if_updated }
+
+ checker = build_new_watcher(FILES) { i += 1 }
+
+ assert !checker.execute_if_updated
assert_equal 0, i
end
def test_should_invoke_the_block_if_a_file_has_changed
i = 0
- checker = build_new_watcher(FILES){ i += 1 }
- sleep(1)
+
+ checker = build_new_watcher(FILES) { i += 1 }
+ sleep 1
+
FileUtils.touch(FILES)
- sleep(1) #extra
+ sleep 1
+
assert checker.execute_if_updated
assert_equal 1, i
end
+ def test_updated_should_become_true_when_watched_files_are_deleted
+ watcher = build_new_watcher(FILES) { i += 1 }
+ assert !watcher.updated?
+
+ FileUtils.rm(FILES)
+ sleep 1
+
+ assert watcher.updated?
+ end
+
def test_should_be_robust_enough_to_handle_deleted_files
i = 0
- checker = build_new_watcher(FILES){ i += 1 }
- FileUtils.rm(FILES)
- sleep(1) #extra
+
+ checker = build_new_watcher(FILES) { i += 1 }
+ FileUtils.rm_f(FILES)
+
+ sleep 1
+
assert checker.execute_if_updated
assert_equal 1, i
end
def test_should_be_robust_to_handle_files_with_wrong_modified_time
i = 0
+
now = Time.now
time = Time.mktime(now.year + 1, now.month, now.day) # wrong mtime from the future
- File.utime time, time, FILES[2]
+ File.utime(time, time, FILES[2])
- checker = build_new_watcher(FILES){ i += 1 }
+ checker = build_new_watcher(FILES) { i += 1 }
+ sleep 1
- sleep(1)
FileUtils.touch(FILES[0..1])
- sleep(1) #extra
+ sleep 1
+
assert checker.execute_if_updated
assert_equal 1, i
end
def test_should_cache_updated_result_until_execute
i = 0
- checker = build_new_watcher(FILES){ i += 1 }
+
+ checker = build_new_watcher(FILES) { i += 1 }
assert !checker.updated?
+ sleep 1
- sleep(1)
FileUtils.touch(FILES)
- sleep(1) #extra
+ sleep 1
+
assert checker.updated?
checker.execute
assert !checker.updated?
@@ -74,34 +98,42 @@ module FileUpdateCheckerWithEnumerableTestCases
def test_should_invoke_the_block_if_a_watched_dir_changed_its_glob
i = 0
- checker = build_new_watcher([], "tmp_watcher" => [:txt]){ i += 1 }
- FileUtils.cd "tmp_watcher" do
+
+ checker = build_new_watcher([], 'tmp_watcher' => [:txt]) { i += 1 }
+
+ FileUtils.cd 'tmp_watcher' do
FileUtils.touch(FILES)
end
- sleep(1) #extra
+ sleep 1
+
assert checker.execute_if_updated
assert_equal 1, i
end
def test_should_not_invoke_the_block_if_a_watched_dir_changed_its_glob
i = 0
- checker = build_new_watcher([], "tmp_watcher" => :rb){ i += 1 }
- FileUtils.cd "tmp_watcher" do
+
+ checker = build_new_watcher([], 'tmp_watcher' => :rb) { i += 1 }
+
+ FileUtils.cd 'tmp_watcher' do
FileUtils.touch(FILES)
end
- sleep(1) #extra
+ sleep 1
+
assert !checker.execute_if_updated
assert_equal 0, i
end
- def test_should_not_block_if_a_strange_filename_used
- FileUtils.mkdir_p("tmp_watcher/valid,yetstrange,path,")
- FileUtils.touch(FILES.map { |file_name| "tmp_watcher/valid,yetstrange,path,/#{file_name}" })
+ def test_should_not_block_with_unusual_file_names
+ unusual_dirname = 'tmp_watcher/valid,yetstrange,path,'
+ FileUtils.mkdir_p(unusual_dirname)
+ FileUtils.touch(FILES.map { |file_name| "#{unusual_dirname}/#{file_name}" })
test = Thread.new do
- build_new_watcher([],"tmp_watcher/valid,yetstrange,path," => :txt) { i += 1 }
+ build_new_watcher([], unusual_dirname => :txt) { i += 1 }
Thread.exit
end
+
test.priority = -1
test.join(5)