Sha256: b26aab09e9544c5e57a6c6bef0e96975ae3a4219a2d7a5992b04a5f483d78d47

Contents?: true

Size: 1.81 KB

Versions: 4

Compression:

Stored size: 1.81 KB

Contents

# -*- coding: utf-8 -*-

$:.unshift(File.dirname(__FILE__))
require 'spec_helper'
require 'tmpdir'
require 'fileutils'

describe "MyHotEntry" do
	def cache_filename
		"#{File.basename(__FILE__, ".rb")}-#{$$}"
	end
	before(:each) do
		fake_plugin(:my_hotentry)
		@cache_path = File.join(Dir.tmpdir, cache_filename)
		Dir.mkdir(@cache_path)
		@dbfile = "#{@cache_path}/my_hotentry.dat"
		@base_url = 'http://d.hatena.ne.jp/'
		@hotentry = MyHotEntry.new(@dbfile)
	end

	after(:each) do
		FileUtils.rmtree(@cache_path)
	end

	describe "#update" do
		before do
			@hotentry.update(@base_url)
			@entries = @hotentry.entries
		end

		it "キャッシュファイルが生成されていること" do
			File.should be_file(@dbfile)
		end

		it "人気の日記が取得できていること" do
			@entries.size.should > 0
		end

		it "取得したエントリにbase_urlとタイトルが含まれていること" do
			@entries.each do |entry|
				entry[:url].should be_include(@base_url)
				entry[:title].size.should > 0
			end
		end
	end

	describe "何度もupdateした場合" do
		before do
			@hotentry.update(@base_url)
			@original_entry_size = @hotentry.entries.size
			@hotentry.update(@base_url)
			@entry_size = @hotentry.entries.size
		end

		it "キャッシュサイズが大きくならないこと" do
			@entry_size.should == @original_entry_size
		end
	end

	describe "取得結果が空の場合" do
		before do
			@exist_url = 'http://d.hatena.ne.jp/'
			@empty_url = 'http://empty-url.example.com/'
		end

		it "キャッシュをクリアしないこと" do
			@hotentry.update(@empty_url)
			@hotentry.entries.size.should == 0

			@hotentry.update(@exist_url)
			@hotentry.entries.size.should > 0
			exist_size = @hotentry.entries.size

			@hotentry.update(@empty_url)
			@hotentry.entries.size.should == exist_size
		end
	end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
tdiary-contrib-4.0.2.1 spec/my_hotentry_spec.rb
tdiary-contrib-4.0.2 spec/my_hotentry_spec.rb
tdiary-contrib-3.2.2.20130614 spec/my_hotentry_spec.rb
tdiary-contrib-3.2.2.20130518 spec/my_hotentry_spec.rb