spec/caching.spec in public-suffix-list-0.0.3 vs spec/caching.spec in public-suffix-list-0.0.4

- old
+ new

@@ -1,21 +1,59 @@ require 'tmpdir' require 'lib/public_suffix_list' -options = { - :cache_dir => Dir.tmpdir, - :cache_expiry_period => 10, - :effective_tld_names_url => "spec/test.dat" -} - describe PublicSuffixList do + FILE = File.join(Dir.tmpdir, "test.dat.cache") + before do - File.delete(File.join(Dir.tmpdir, "test.dat.cache")) if File.exist?(File.join(Dir.tmpdir, "test.dat.cache")) + File.delete(FILE) if File.exist?(FILE) end - it "should cache when instructed to" do - public_suffix_list = PublicSuffixList.new(options) - File.exist?(File.join(Dir.tmpdir, "test.dat.cache")).should be true + it "should cache when instructed to do so" do + File.exist?(FILE).should be false + public_suffix_list = PublicSuffixList.new(:effective_tld_names_url => "spec/test.dat", :cache_dir => Dir.tmpdir, :cache_expiry_period => 10) + public_suffix_list.cache_file.cache?.should be true + public_suffix_list.cache_file.exist?.should be true + created_at = public_suffix_list.cache_file.read_attribute(:created_at) + tag = public_suffix_list.cache_file.read_attribute(:tag) + public_suffix_list = PublicSuffixList.new(:effective_tld_names_url => "spec/test.dat", :cache_dir => Dir.tmpdir, :cache_expiry_period => 10) + public_suffix_list.cache_file.cache?.should be true + public_suffix_list.cache_file.exist?.should be true + public_suffix_list.cache_file.read_attribute(:created_at).should == created_at + public_suffix_list.cache_file.read_attribute(:tag).should == tag + public_suffix_list.cache_file.write_attribute :created_at, Time.now - 100 + public_suffix_list.cache_file.dump_data + public_suffix_list = PublicSuffixList.new(:effective_tld_names_url => "spec/test.dat", :cache_dir => Dir.tmpdir, :cache_expiry_period => 10) + public_suffix_list.cache_file.cache?.should be true + public_suffix_list.cache_file.exist?.should be true + public_suffix_list.cache_file.read_attribute(:created_at).should_not == created_at + public_suffix_list.cache_file.read_attribute(:tag).should_not == tag + end + + it "should allow 0 or nil to specify an infinite cache expiry period" do + File.exist?(FILE).should be false + public_suffix_list = PublicSuffixList.new(:effective_tld_names_url => "spec/test.dat", :cache_dir => Dir.tmpdir, :cache_expiry_period => 10) + public_suffix_list.cache_file.exist?.should be true + public_suffix_list.cache_file.expired?.should be false + public_suffix_list.cache_file.write_attribute :created_at, Time.now - 100 + public_suffix_list.cache_file.expired?.should be true + public_suffix_list.cache_file.exist?.should be true + public_suffix_list.cache_file.delete + public_suffix_list.cache_file.exist?.should be false + public_suffix_list = PublicSuffixList.new(:effective_tld_names_url => "spec/test.dat", :cache_dir => Dir.tmpdir, :cache_expiry_period => 0) + public_suffix_list.cache_file.exist?.should be true + public_suffix_list.cache_file.expired?.should be false + public_suffix_list.cache_file.write_attribute :created_at, Time.now - 10000000 + public_suffix_list.cache_file.expired?.should be false + public_suffix_list.cache_file.exist?.should be true + public_suffix_list.cache_file.delete + public_suffix_list.cache_file.exist?.should be false + public_suffix_list = PublicSuffixList.new(:effective_tld_names_url => "spec/test.dat", :cache_dir => Dir.tmpdir, :cache_expiry_period => nil) + public_suffix_list.cache_file.exist?.should be true + public_suffix_list.cache_file.expired?.should be false + public_suffix_list.cache_file.write_attribute :created_at, Time.now - 10000000 + public_suffix_list.cache_file.expired?.should be false + public_suffix_list.cache_file.exist?.should be true end end