a6429f8c22
Completely removed the html5lib sanitizer. Fixed the string-handling to work in both Ruby 1.8.x and 1.9.2. There are still, inexplicably, two functional tests that fail. But the rest seems to work quite well.
110 lines
3.9 KiB
Ruby
110 lines
3.9 KiB
Ruby
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
|
|
|
class WebTest < ActiveSupport::TestCase
|
|
fixtures :system, :webs, :pages, :revisions, :wiki_references
|
|
|
|
def setup
|
|
@web = webs(:instiki)
|
|
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_002_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.page('EverBeenInLove') ])
|
|
assert_equal 1, @web.pages(true).length
|
|
end
|
|
|
|
def test_initialize
|
|
web = Web.new(:name => 'Wiki2', :address => 'wiki2', :password => '123')
|
|
|
|
assert_equal 'Wiki2', web.name
|
|
assert_equal 'wiki2', web.address
|
|
assert_equal '123', web.password
|
|
|
|
# new web should be set for maximum features enabled
|
|
assert_equal :markdownMML, web.markup
|
|
assert_equal '008B26', web.color
|
|
assert !web.safe_mode?
|
|
assert_equal([], web.pages)
|
|
assert web.allow_uploads?
|
|
assert_nil web.additional_style
|
|
assert !web.published?
|
|
assert !web.brackets_only?
|
|
assert !web.count_pages?
|
|
assert_equal 100, web.max_upload_size
|
|
end
|
|
|
|
def test_initialize_invalid_name
|
|
assert_raises(Instiki::ValidationError) {
|
|
Web.create(:name => 'Wiki2', :address => "wiki\234", :password => '123')
|
|
}
|
|
end
|
|
|
|
def test_new_page_linked_from_mother_page
|
|
# this was a bug in revision 204
|
|
home = @web.add_page('HomePage', 'This page refers to AnotherPage',
|
|
Time.local(2004, 4, 4, 16, 50), 'Alexey Verkhovsky', test_renderer)
|
|
@web.add_page('AnotherPage', 'This is \AnotherPage',
|
|
Time.local(2004, 4, 4, 16, 51), 'Alexey Verkhovsky', test_renderer)
|
|
|
|
@web.pages(true)
|
|
assert_equal [home], @web.select.pages_that_link_to('AnotherPage')
|
|
end
|
|
|
|
def test_001_orphaned_pages
|
|
add_sample_pages
|
|
home = @web.add_page('HomePage',
|
|
'This is a home page, it should not be an orphan',
|
|
Time.local(2004, 4, 4, 16, 50), 'AlexeyVerkhovsky', test_renderer)
|
|
author = @web.add_page('AlexeyVerkhovsky',
|
|
'This is an author page, it should not be an orphan',
|
|
Time.local(2004, 4, 4, 16, 50), 'AlexeyVerkhovsky', test_renderer)
|
|
self_linked = @web.add_page('SelfLinked',
|
|
"I am SelfLinked and link to EverBeenInLove\ncategory: fubar",
|
|
Time.local(2004, 4, 4, 16, 50), 'AnonymousCoward', test_renderer)
|
|
|
|
# page that links to itself, and nobody else links to it must be an orphan
|
|
assert_equal ['EverBeenHated', 'SelfLinked'],
|
|
@web.select.orphaned_pages.collect{ |page| page.name }.sort
|
|
pages_in_category = @web.select.pages_in_category('fubar')
|
|
orphaned_pages = @web.select.orphaned_pages
|
|
assert_equal ['SelfLinked'],
|
|
(pages_in_category & orphaned_pages).collect{ |page| page.name }.sort
|
|
end
|
|
|
|
def test_page_names_by_author
|
|
page_names_by_author = webs(:test_wiki).page_names_by_author
|
|
assert_equal %w(AnAuthor DavidHeinemeierHansson Guest Me TreeHugger),
|
|
page_names_by_author.keys.sort
|
|
assert_equal %w(FirstPage HomePage), page_names_by_author['DavidHeinemeierHansson']
|
|
assert_equal %w(Oak), page_names_by_author['TreeHugger']
|
|
end
|
|
|
|
private
|
|
|
|
def add_sample_pages
|
|
@in_love = @web.add_page('EverBeenInLove', "Who am I me\ncategory: fubar",
|
|
Time.local(2004, 4, 4, 16, 50), 'DavidHeinemeierHansson', test_renderer)
|
|
@hated = @web.add_page('EverBeenHated', 'I am me EverBeenHated',
|
|
Time.local(2004, 4, 4, 16, 51), 'DavidHeinemeierHansson', test_renderer)
|
|
end
|
|
end
|