1
2
3
4
5
6
7
8
9
10
11
12
13
14 import os
15 import pkg_resources
16 import unittest
17
18 from trac.search.web_ui import SearchModule
19 from trac.test import EnvironmentStub, MockRequest
20 from trac.ticket.model import Ticket
21 from trac.ticket.web_ui import TicketModule
22 from trac.wiki.admin import WikiAdmin
23 from trac.wiki.web_ui import WikiModule
24 from trac.web.api import RequestDone
25
26
28
37
40
47
49 for _ in range(0, 21):
50 self._insert_ticket(summary="Trac")
51 req = MockRequest(self.env,
52 args={'page': '3', 'q': 'Trac', 'ticket': 'on'})
53
54 data = self.search_module.process_request(req)[1]
55
56 self.assertEqual([], req.chrome['warnings'])
57 self.assertEqual(2, data['results'].page)
58
60 """Out of range value for page defaults to page 1."""
61 for _ in range(0, 20):
62 self._insert_ticket(summary="Trac")
63 req = MockRequest(self.env,
64 args={'page': '3', 'q': 'Trac', 'ticket': 'on'})
65
66 data = self.search_module.process_request(req)[1]
67
68 self.assertIn("Page 3 is out of range.", req.chrome['warnings'])
69 self.assertEqual(0, data['results'].page)
70
72 """CamelCase word does quick-jump."""
73 req = MockRequest(self.env, args={'q': 'WikiStart'})
74
75 self.assertRaises(RequestDone,
76 self.search_module.process_request, req)
77
78 self.assertEqual('http://example.org/trac.cgi/wiki/WikiStart',
79 req.headers_sent['Location'])
80 self.assertIn("You arrived here through", req.chrome['notices'][0])
81 self.assertIn('<a href="/trac.cgi/search?'
82 'q=WikiStart&noquickjump=1">here</a>',
83 req.chrome['notices'][0])
84
97
98
100 suite = unittest.TestSuite()
101 suite.addTest(unittest.makeSuite(SearchModuleTestCase))
102 return suite
103
104
105 if __name__ == '__main__':
106 unittest.main(defaultTest='test_suite')
107