Fix Category Listing Bugs

The links to the category listings
were bogus, and the category listing
page needed some XSS-unprotection.
This commit is contained in:
Jacques Distler 2010-05-27 00:27:49 -05:00
parent b5a4e2fd9c
commit a57152d743
6 changed files with 30 additions and 13 deletions

View file

@ -65,11 +65,25 @@ end
# It provides a easy way to test whether a chunk matches a particular string
# and any the values of any fields that should be set after a match.
class ContentStub < String
attr_reader :web
include ChunkManager
def initialize(str)
super
init_chunk_manager
@web = Object.new
class << @web
def address
'wiki1'
end
end
end
def url_generator
StubUrlGenerator.new
end
def page_link(*); end
end
@ -108,7 +122,11 @@ class StubUrlGenerator < AbstractUrlGenerator
end
def url_for(hash = {})
'../files/pngs'
if(hash[:action] == 'list')
"http://example.com/#{hash[:web]}/list"
else
'../files/pngs'
end
end
def file_link(mode, name, text, web_name, known_file, description)

View file

@ -7,8 +7,10 @@ class CategoryTest < Test::Unit::TestCase
include ChunkMatch
def test_single_category
match(Category, 'category: test', :list => ['test'], :hidden => nil)
match(Category, 'category : chunk test ', :list => ['chunk test'], :hidden => nil)
match(Category, 'category: test', :list => ['test'], :hidden => nil, :unmask_text =>
"<div class=\"property\"> category: <a class=\"category_link\" href=\"http://example.com/wiki1/list/test\">test</a></div>")
match(Category, 'category : chunk test ', :list => ['chunk test'], :hidden => nil, :unmask_text =>
"<div class=\"property\"> category: <a class=\"category_link\" href=\"http://example.com/wiki1/list/chunk+test\">chunk test</a></div>")
match(Category, ':category: test', :list => ['test'], :hidden => ':')
end