diff --git a/plone/app/discussion/catalog.py b/plone/app/discussion/catalog.py
index bba83ea..29b4c8c 100644
--- a/plone/app/discussion/catalog.py
+++ b/plone/app/discussion/catalog.py
@@ -12,6 +12,11 @@ from plone.app.discussion.interfaces import IComment
def comment_title(object):
return object.title
+@indexer(IComment)
+def comment_description(object):
+ # Todo: this is wrong!!!
+ return object.title
+
@indexer(IComment)
def comment_searchable_text(object):
return object.title, object.text
diff --git a/plone/app/discussion/configure.zcml b/plone/app/discussion/configure.zcml
index 945b1f9..20dcada 100644
--- a/plone/app/discussion/configure.zcml
+++ b/plone/app/discussion/configure.zcml
@@ -59,6 +59,7 @@
+
diff --git a/plone/app/discussion/tests/test_indexers.py b/plone/app/discussion/tests/test_indexers.py
index be579ed..ac6a2a3 100644
--- a/plone/app/discussion/tests/test_indexers.py
+++ b/plone/app/discussion/tests/test_indexers.py
@@ -6,11 +6,13 @@ from Products.PloneTestCase.ptc import PloneTestCase
from plone.app.discussion.tests.layer import DiscussionLayer
from plone.app.discussion.interfaces import IConversation
+
from plone.indexer import indexer
+from plone.indexer.delegate import DelegatingIndexerFactory
from zope.component import provideAdapter
-from plone.app.discussion.catalog import comment_title, comment_searchable_text
+from plone.app.discussion.catalog import comment_title, comment_description, comment_searchable_text
class IndexersTest(PloneTestCase):
@@ -40,7 +42,30 @@ class IndexersTest(PloneTestCase):
comment.text = 'Comment text'
new_id = conversation.addComment(comment)
+
self.assertEquals(comment_title(comment)(), 'Comment 1')
+ self.assert_(isinstance(comment_title, DelegatingIndexerFactory))
+
+ def test_comment_description(self):
+
+ # Create a conversation. In this case we doesn't assign it to an
+ # object, as we just want to check the Conversation object API.
+ conversation = IConversation(self.portal.doc1)
+
+ # Pretend that we have traversed to the comment by aq wrapping it.
+ conversation = conversation.__of__(self.portal.doc1)
+
+ # Add a comment. Note: in real life, we always create comments via the factory
+ # to allow different factories to be swapped in
+
+ comment = createObject('plone.Comment')
+ comment.title = 'Comment 1'
+ comment.text = 'Comment text'
+
+ new_id = conversation.addComment(comment)
+
+ self.assertEquals(comment_description(comment)(), 'Comment 1')
+ self.assert_(isinstance(comment_description, DelegatingIndexerFactory))
def test_dates(self):
# created, modified, effective etc
@@ -64,6 +89,7 @@ class IndexersTest(PloneTestCase):
new_id = conversation.addComment(comment)
self.assertEquals(comment_searchable_text(comment)(), ('Comment 1', 'Comment text'))
+ self.assert_(isinstance(comment_searchable_text, DelegatingIndexerFactory))
def test_creator(self):
pass