Skip to content

Commit 5a6c0d7

Browse files
author
jomae
committed
1.7.1dev: merge [17859] from 1.6-stable (fix for #13794)
git-svn-id: http://trac.edgewall.org/intertrac/log:/trunk@17860 af82e41b-90c4-0310-8c96-b1721e28e2e2
2 parents 6277cea + 2134384 commit 5a6c0d7

File tree

2 files changed

+30
-3
lines changed

2 files changed

+30
-3
lines changed

trac/versioncontrol/web_ui/changeset.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1173,7 +1173,7 @@ def process_request(self, req):
11731173
rm = RepositoryManager(self.env)
11741174

11751175
if req.is_xhr:
1176-
dirname, prefix = posixpath.split(req.args.get('term'))
1176+
dirname, prefix = posixpath.split(req.args.get('term') or '')
11771177
prefix = prefix.lower()
11781178
reponame, repos, path = rm.get_repository_by_path(dirname)
11791179
# an entry is a (isdir, name, path) tuple
@@ -1196,7 +1196,7 @@ def kind_order(entry):
11961196
for isdir, name, path in sorted(entries, key=kind_order)
11971197
if name.lower().startswith(prefix)]
11981198

1199-
content = to_json(paths)
1199+
content = to_json(paths).encode('utf-8')
12001200
req.send(content, 'application/json', 200)
12011201

12021202
# -- retrieve arguments

trac/versioncontrol/web_ui/tests/changeset.py

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515

1616
from trac.core import TracError
1717
from trac.test import EnvironmentStub, MockRequest, makeSuite
18-
from trac.versioncontrol.web_ui.changeset import ChangesetModule
18+
from trac.versioncontrol.web_ui.changeset import AnyDiffModule, ChangesetModule
19+
from trac.web.api import RequestDone
1920

2021

2122
class ChangesetModuleTestCase(unittest.TestCase):
@@ -30,9 +31,35 @@ def test_default_repository_not_configured(self):
3031
self.assertRaises(TracError, self.cm.process_request, req)
3132

3233

34+
class AnyDiffModuleTestCase(unittest.TestCase):
35+
36+
def setUp(self):
37+
self.env = EnvironmentStub()
38+
self.mod = AnyDiffModule(self.env)
39+
40+
def test_normal(self):
41+
req = MockRequest(self.env, path_info='/diff', args={'term': '/'})
42+
req.environ['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest'
43+
self.assertTrue(self.mod.match_request(req))
44+
self.assertRaises(RequestDone, self.mod.process_request, req)
45+
self.assertEqual(b'[]', req.response_sent.getvalue())
46+
self.assertEqual('application/json;charset=utf-8',
47+
req.headers_sent.get('Content-Type'))
48+
49+
def test_without_term(self):
50+
req = MockRequest(self.env, path_info='/diff')
51+
req.environ['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest'
52+
self.assertTrue(self.mod.match_request(req))
53+
self.assertRaises(RequestDone, self.mod.process_request, req)
54+
self.assertEqual(b'[]', req.response_sent.getvalue())
55+
self.assertEqual('application/json;charset=utf-8',
56+
req.headers_sent.get('Content-Type'))
57+
58+
3359
def test_suite():
3460
suite = unittest.TestSuite()
3561
suite.addTest(makeSuite(ChangesetModuleTestCase))
62+
suite.addTest(makeSuite(AnyDiffModuleTestCase))
3663
return suite
3764

3865

0 commit comments

Comments
 (0)