~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/answers/browser/tests/test_menus.py

  • Committer: Curtis Hovey
  • Date: 2009-11-11 22:17:17 UTC
  • mto: This revision was merged to the branch mainline in revision 9883.
  • Revision ID: curtis.hovey@canonical.com-20091111221717-8l2hwfi6idgolzl1
Updated the question index to follow the preferred layout for artefacts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Copyright 2009 Canonical Ltd.  This software is licensed under the
 
2
# GNU Affero General Public License version 3 (see the file LICENSE).
 
3
 
 
4
__metaclass__ = type
 
5
 
 
6
import unittest
 
7
 
 
8
from zope.component import getUtility
 
9
 
 
10
from canonical.testing.layers import DatabaseFunctionalLayer
 
11
 
 
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
 
16
 
 
17
 
 
18
class TestQuestionMenus(TestCaseWithFactory):
 
19
    """Test specification menus links."""
 
20
    layer = DatabaseFunctionalLayer
 
21
 
 
22
    def setUp(self):
 
23
        TestCaseWithFactory.setUp(self)
 
24
        self.person = self.factory.makePerson()
 
25
        login_person(self.person)
 
26
        self.question = self.factory.makeQuestion()
 
27
 
 
28
    def test_QuestionEditMenu(self):
 
29
        menu = QuestionEditMenu(self.question)
 
30
        self.assertTrue(check_menu_links(menu))
 
31
 
 
32
    def test_QuestionExtrasMenu(self):
 
33
        menu = QuestionExtrasMenu(self.question)
 
34
        self.assertTrue(check_menu_links(menu))
 
35
 
 
36
    def test_link_linkfaq(self):
 
37
        # A question without a linked FAQ has an 'add' icon.
 
38
        menu = QuestionExtrasMenu(self.question)
 
39
        link = menu.linkfaq()
 
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')
 
47
        link = menu.linkfaq()
 
48
        self.assertEqual('edit', link.icon)
 
49
 
 
50
 
 
51
def test_suite():
 
52
    suite = unittest.TestSuite()
 
53
    suite.addTest(unittest.TestLoader().loadTestsFromName(__name__))
 
54
    return suite
 
55
 
 
56
 
 
57
if __name__ == '__main__':
 
58
    unittest.TextTestRunner().run(test_suite())