1
# Copyright 2009 Canonical Ltd. This software is licensed under the
2
# GNU Affero General Public License version 3 (see the file LICENSE).
8
from zope.component import getUtility
10
from canonical.testing.layers import DatabaseFunctionalLayer
12
from lp.answers.browser.question import QuestionEditMenu, QuestionExtrasMenu
13
from lp.services.worlddata.interfaces.language import ILanguageSet
14
from lp.testing import login_person, TestCaseWithFactory
15
from lp.testing.menu import check_menu_links
18
class TestQuestionMenus(TestCaseWithFactory):
19
"""Test specification menus links."""
20
layer = DatabaseFunctionalLayer
23
TestCaseWithFactory.setUp(self)
24
self.person = self.factory.makePerson()
25
login_person(self.person)
26
self.question = self.factory.makeQuestion()
28
def test_QuestionEditMenu(self):
29
menu = QuestionEditMenu(self.question)
30
self.assertTrue(check_menu_links(menu))
32
def test_QuestionExtrasMenu(self):
33
menu = QuestionExtrasMenu(self.question)
34
self.assertTrue(check_menu_links(menu))
36
def test_link_linkfaq(self):
37
# A question without a linked FAQ has an 'add' icon.
38
menu = QuestionExtrasMenu(self.question)
40
self.assertEqual('add', link.icon)
41
# A question with a linked FAQ has an 'edit' icon.
42
self.person.addLanguage(getUtility(ILanguageSet)['en'])
43
target = self.question.target
44
target.addAnswerContact(self.person)
45
faq = self.factory.makeFAQ(target=target)
46
self.question.linkFAQ(self.person, faq, 'message')
48
self.assertEqual('edit', link.icon)
52
suite = unittest.TestSuite()
53
suite.addTest(unittest.TestLoader().loadTestsFromName(__name__))
57
if __name__ == '__main__':
58
unittest.TextTestRunner().run(test_suite())