#!/usr/bin/ruby require 'test/unit' require 'wiki_service' class WebTest < Test::Unit::TestCase def setup @web = Web.new 'Instiki', 'instiki' end def test_wiki_word_linking @web.add_page(Page.new(@web, 'SecondPage', 'Yo, yo. Have you EverBeenHated', Time.now, 'DavidHeinemeierHansson')) assert_equal('

Yo, yo. Have you Ever Been Hated' + '?

', @web.pages["SecondPage"].display_content) @web.add_page(Page.new(@web, 'EverBeenHated', 'Yo, yo. Have you EverBeenHated', Time.now, 'DavidHeinemeierHansson')) assert_equal('

Yo, yo. Have you Ever Been Hated

', @web.pages['SecondPage'].display_content) end def test_pages_by_revision add_sample_pages assert_equal 'EverBeenHated', @web.select.by_revision.first.name end def test_pages_by_match add_sample_pages assert_equal 2, @web.select { |page| page.content =~ /me/i }.length assert_equal 1, @web.select { |page| page.content =~ /Who/i }.length assert_equal 0, @web.select { |page| page.content =~ /none/i }.length end def test_references add_sample_pages assert_equal 1, @web.select.pages_that_reference('EverBeenHated').length assert_equal 0, @web.select.pages_that_reference('EverBeenInLove').length end def test_delete add_sample_pages assert_equal 2, @web.pages.length @web.remove_pages([ @web.pages['EverBeenInLove'] ]) assert_equal 1, @web.pages.length end def test_make_link add_sample_pages existing_page_wiki_url = 'Ever Been In Love' existing_page_published_url = 'Ever Been In Love' existing_page_static_url = 'Ever Been In Love' new_page_wiki_url = 'Unknown Word?' new_page_published_url = new_page_static_url = 'Unknown Word' # no options assert_equal existing_page_wiki_url, @web.make_link('EverBeenInLove') # :mode => :export assert_equal existing_page_static_url, @web.make_link('EverBeenInLove', nil, :mode => :export) # :mode => :publish assert_equal existing_page_published_url, @web.make_link('EverBeenInLove', nil, :mode => :publish) # new page, no options assert_equal new_page_wiki_url, @web.make_link('UnknownWord') # new page, :mode => :export assert_equal new_page_static_url, @web.make_link('UnknownWord', nil, :mode => :export) # new page, :mode => :publish assert_equal new_page_published_url, @web.make_link('UnknownWord', nil, :mode => :publish) # Escaping special characters in the name assert_equal( 'Smith & Wesson?', @web.make_link('Smith & Wesson')) # optionally using text as the link text assert_equal( existing_page_published_url.sub(/>Ever Been In LoveHaven't you ever been in love?<"), @web.make_link('EverBeenInLove', "Haven't you ever been in love?", :mode => :publish)) end private def add_sample_pages @web.add_page(Page.new(@web, 'EverBeenInLove', 'Who am I me', Time.local(2004, 4, 4, 16, 50), 'DavidHeinemeierHansson')) @web.add_page(Page.new(@web, 'EverBeenHated', 'I am me EverBeenHated', Time.local(2004, 4, 4, 16, 51), 'DavidHeinemeierHansson')) end end