@@ -0,0 +1,69 @@
1+import mock
2+from searx.testing import SearxTestCase
3+from searx import utils
4+
5+
6+class TestUtils(SearxTestCase):
7+
8+ def test_gen_useragent(self):
9+ self.assertIsInstance(utils.gen_useragent(), str)
10+ self.assertIsNotNone(utils.gen_useragent())
11+ self.assertTrue(utils.gen_useragent().startswith('Mozilla'))
12+
13+ def test_highlight_content(self):
14+ self.assertEqual(utils.highlight_content(0, None), None)
15+ self.assertEqual(utils.highlight_content(None, None), None)
16+ self.assertEqual(utils.highlight_content('', None), None)
17+ self.assertEqual(utils.highlight_content(False, None), None)
18+
19+ contents = [
20+ '<html></html>'
21+ 'not<'
22+ ]
23+ for content in contents:
24+ self.assertEqual(utils.highlight_content(content, None), content)
25+
26+ content = 'a'
27+ query = 'test'
28+ self.assertEqual(utils.highlight_content(content, query), content)
29+ query = 'a test'
30+ self.assertEqual(utils.highlight_content(content, query), content)
31+
32+
33+class TestHTMLTextExtractor(SearxTestCase):
34+
35+ def setUp(self):
36+ self.html_text_extractor = utils.HTMLTextExtractor()
37+
38+ def test__init__(self):
39+ self.assertEqual(self.html_text_extractor.result, [])
40+
41+ def test_handle_charref(self):
42+ self.html_text_extractor.handle_charref('xF')
43+ self.assertIn(u'\x0f', self.html_text_extractor.result)
44+ self.html_text_extractor.handle_charref('XF')
45+ self.assertIn(u'\x0f', self.html_text_extractor.result)
46+
47+ self.html_text_extractor.handle_charref('97')
48+ self.assertIn(u'a', self.html_text_extractor.result)
49+
50+ def test_handle_entityref(self):
51+ entity = 'test'
52+ self.html_text_extractor.handle_entityref(entity)
53+ self.assertIn(entity, self.html_text_extractor.result)
54+
55+
56+class TestUnicodeWriter(SearxTestCase):
57+
58+ def setUp(self):
59+ self.unicode_writer = utils.UnicodeWriter(mock.MagicMock())
60+
61+ def test_write_row(self):
62+ row = [1, 2, 3]
63+ self.assertEqual(self.unicode_writer.writerow(row), None)
64+
65+ def test_write_rows(self):
66+ self.unicode_writer.writerow = mock.MagicMock()
67+ rows = [1, 2, 3]
68+ self.unicode_writer.writerows(rows)
69+ self.assertEqual(self.unicode_writer.writerow.call_count, len(rows))