diff options
author | (no author) <(no author)@c9e70521-770b-0410-b9ac-ce6205b42a9f> | 2007-02-03 03:39:08 +0000 |
---|---|---|
committer | (no author) <(no author)@c9e70521-770b-0410-b9ac-ce6205b42a9f> | 2007-02-03 03:39:08 +0000 |
commit | 1c9fa55dc6a14cc5dc83540d1584a34290f70f0a (patch) | |
tree | 8b12e33790596b0c3f2ac960aa7a09906bf63fbb /test | |
parent | 7d51b94ac92857fb71e2b33f74ce03530b83ec63 (diff) | |
download | erubis-1c9fa55dc6a14cc5dc83540d1584a34290f70f0a.tar.gz |
- [change] engine.rb: Erubis::Engine.load_file(filename) creates cache file automatically.
Diffstat (limited to 'test')
-rw-r--r-- | test/test-erubis.rb | 72 |
1 files changed, 65 insertions, 7 deletions
diff --git a/test/test-erubis.rb b/test/test-erubis.rb index 0058e61..7b64079 100644 --- a/test/test-erubis.rb +++ b/test/test-erubis.rb @@ -41,20 +41,22 @@ class ErubisTest < Test::Unit::TestCase end end if @chomp - if @testopt != 'load_file' - if @klass == Erubis::TinyEruby - eruby = @klass.new(@input) - else - eruby = @klass.new(@input, @options) - end - else + if @testopt == 'load_file' filename = "tmp.#{@name}.eruby" begin File.open(filename, 'w') { |f| f.write(@input) } eruby = @klass.load_file(filename, @options) ensure + cachename = filename + '.cache' + File.unlink(cachename) if test(?f, cachename) File.unlink(filename) if test(?f, filename) end + else + if @klass == Erubis::TinyEruby + eruby = @klass.new(@input) + else + eruby = @klass.new(@input, @options) + end end assert_text_equal(@src, eruby.src) @@ -96,6 +98,62 @@ class ErubisTest < Test::Unit::TestCase end end + + def test_load_file_cache1 + @input = <<END +<ul> +<% for item in @list %> + <li><%= item %></li> +<% end %> +</ul> +END + @src = <<END +_buf = ''; _buf << '<ul> +'; for item in @list + _buf << ' <li>'; _buf << ( item ).to_s; _buf << '</li> +'; end + _buf << '</ul> +'; +_buf.to_s +END + @klass = Erubis::Eruby + filename = 'tmp.load_file_timestamp1' + cachename = filename + '.cache' + begin + File.open(filename, 'w') { |f| f.write(@input) } + assert_block() { !test(?f, cachename) } + engine = @klass.load_file(filename) + assert_block() { test(?f, cachename) } + assert_block() { File.mtime(filename) <= File.mtime(cachename) } + assert_text_equal(@src, engine.src) + # + input2 = @input.gsub(/ul>/, 'ol>') + src2 = @src.gsub(/ul>/, 'ol>') + mtime = File.mtime(filename) + File.open(filename, 'w') { |f| f.write(input2) } + t1 = Time.now() + sleep(1) + t2 = Time.now() + File.utime(t1, t1, filename) + File.utime(t2, t2, cachename) + assert_block('cache should be newer') { File.mtime(filename) < File.mtime(cachename) } + engine = @klass.load_file(filename) + assert_block('cache should be newer') { File.mtime(filename) < File.mtime(cachename) } + assert_text_equal(@src, engine.src) + # + File.utime(t2, t2, filename) + File.utime(t1, t1, cachename) + assert_block('cache should be older') { File.mtime(filename) > File.mtime(cachename) } + engine = @klass.load_file(filename) + assert_block('cache should be newer') { File.mtime(filename) <= File.mtime(cachename) } + assert_text_equal(src2, engine.src) + ensure + File.unlink(cachename) if File.file?(cachename) + File.unlink(filename) if File.file?(filename) + end + end + + end __END__ |