summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
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
commit1c9fa55dc6a14cc5dc83540d1584a34290f70f0a (patch)
tree8b12e33790596b0c3f2ac960aa7a09906bf63fbb /test
parent7d51b94ac92857fb71e2b33f74ce03530b83ec63 (diff)
downloaderubis-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.rb72
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__