106 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import unittest
 | |
| 
 | |
| from zope.component import createObject
 | |
| 
 | |
| 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 zope.component import provideAdapter
 | |
| 
 | |
| from plone.app.discussion.catalog import comment_title, comment_text, comment_searchable_text
 | |
| 
 | |
| class IndexersTest(PloneTestCase):
 | |
| 
 | |
|     layer = DiscussionLayer
 | |
| 
 | |
|     def afterSetUp(self):
 | |
|         # First we need to create some content.
 | |
|         self.loginAsPortalOwner()
 | |
|         typetool = self.portal.portal_types
 | |
|         typetool.constructContent('Document', self.portal, 'doc1')
 | |
|         provideAdapter(comment_title, name='title')
 | |
| 
 | |
|     def test_comment_title(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_title(comment)(), 'Comment 1')
 | |
| 
 | |
|     def test_comment_text(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_text(comment)(), 'Comment text')
 | |
| 
 | |
|     def test_dates(self):
 | |
|         # created, modified, effective etc
 | |
|         pass
 | |
| 
 | |
|     def test_searchable_text(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_searchable_text(comment)(), ('Comment 1', 'Comment text'))
 | |
| 
 | |
|     def test_creator(self):
 | |
|         pass
 | |
| 
 | |
|     def test_title(self):
 | |
|         pass
 | |
| 
 | |
|     def test_in_reply_to(self):
 | |
|         pass
 | |
| 
 | |
|     def test_path(self):
 | |
|         pass
 | |
| 
 | |
|     def test_review_state(self):
 | |
|         pass
 | |
| 
 | |
|     def test_object_provides(self):
 | |
|         pass
 | |
| 
 | |
| def test_suite():
 | |
|     return unittest.defaultTestLoader.loadTestsFromName(__name__) |