test/sitemapper_test.rb in taq-sitemapper-0.0.3 vs test/sitemapper_test.rb in taq-sitemapper-0.0.4

- old
+ new

@@ -1,10 +1,28 @@ +require "rubygems" require "nokogiri" require "test/unit" -require "#{File.expand_path(File.dirname(__FILE__))}/collections.rb" +require "active_record" require "#{File.expand_path(File.dirname(__FILE__))}/../lib/sitemapper.rb" +ActiveRecord::Base.establish_connection({ + adapter: "sqlite3", + database: "sitemapper.sqlite" +}) + +class SitemapperTestAR < ActiveRecord::Base + include SiteMapper + def self.sitemap_extra + [{loc: "One" , lastmod: Time.now, freq: "monthly", priority: 1}, + {loc: "Two" , lastmod: Time.now, freq: "monthly", priority: 1}, + {loc: "Three", lastmod: Time.now, freq: "monthly", priority: 1}] + end + def loc + url + end +end + class SiteMapperTest < Test::Unit::TestCase def setup @arraytest = [{url: "One" , lastmod: Time.now, freq: "monthly", priority: 1}, {url: "Two" , lastmod: Time.now, freq: "monthly", priority: 1}, {url: "Three", lastmod: Time.now, freq: "monthly", priority: 1}] @@ -12,29 +30,76 @@ @sitemapper = SiteMapper::SiteMapper.new @sitemapper.url = "http://localhost.com/sitemap.xml" @sitemapper.loc = :url @sitemapper.changefreq = :freq @sitemapper.priority = :priority - @sitemapper.sitemap = "/tmp/sitemap.xml" + @sitemapper.file = "/tmp/sitemap.xml" end def test_write_sitemap - File.unlink(@sitemapper.sitemap) if File.exists?(@sitemapper.sitemap) + File.unlink(@sitemapper.file) if File.exists?(@sitemapper.file) @sitemapper.write_sitemap(@arraytest.entries) - assert File.exists?(@sitemapper.sitemap), "sitemap file not found" + assert File.exists?(@sitemapper.file), "sitemap file not found" end def test_url_size test_write_sitemap - doc = Nokogiri::XML(File.open(@sitemapper.sitemap)) + doc = Nokogiri::XML(File.open(@sitemapper.file)) assert_equal @arraytest.entries.size, doc.search("url").size end def test_write_sitemap_with_extras - File.unlink(@sitemapper.sitemap) if File.exists?(@sitemapper.sitemap) + File.unlink(@sitemapper.file) if File.exists?(@sitemapper.file) extras = [{url: "Four", lastmod: Time.now, freq: "yearly", priority: 0.5}, {url: "Five", lastmod: Time.now, freq: "yearly", priority: 0.5}] @sitemapper.write_sitemap(@arraytest.entries,extras.entries) - doc = Nokogiri::XML(File.open(@sitemapper.sitemap)) + doc = Nokogiri::XML(File.open(@sitemapper.file)) assert_equal @arraytest.entries.size+extras.size, doc.search("url").size + end + + def test_ar_class_methods + assert_respond_to SitemapperTestAR, :write_sitemap + assert_respond_to SitemapperTestAR, :ping + end + + def test_ar_class_attrs + assert_respond_to SitemapperTestAR, :sitemap + end + + def test_class_collection + assert_equal :all, SitemapperTestAR.sitemap[:collection] + end + + def test_class_collection + assert_nil SitemapperTestAR.sitemap[:extra] + end + + def test_rw_class_attrs + str = "yearly" + SitemapperTestAR.sitemap[:changefreq] = str + assert_equal str, SitemapperTestAR.sitemap[:changefreq] + end + + def test_class_methods_default_values + assert_equal "daily", SitemapperTestAR.sitemap[:changefreq] + end + + def test_write_sitemap_on_class + file = SitemapperTestAR.sitemap[:file] + File.unlink(file) if File.exists?(file) + SitemapperTestAR.write_sitemap + assert File.exists?(file), "sitemap file not found" + doc = Nokogiri::XML(File.open(file)) + assert_equal SitemapperTestAR.all.size, doc.search("url").size + end + + def test_write_sitemap_on_class_with_extras + file = SitemapperTestAR.sitemap[:file] + File.unlink(file) if File.exists?(file) + SitemapperTestAR.sitemap[:extra] = :sitemap_extra + + SitemapperTestAR.write_sitemap + assert File.exists?(file), "sitemap file not found" + doc = Nokogiri::XML(File.open(file)) + assert_equal SitemapperTestAR.all.size+3, doc.search("url").size end end