@@ -83,3 +83,50 @@ class SelfIPTest(SearxTestCase):
8383 search = get_search_mock(query='What is my User-Agent?', pageno=2)
8484 store.call(store.plugins, 'post_search', request, search)
8585 self.assertFalse('user-agent' in search.result_container.answers)
86+
87+class HashPluginTest(SearxTestCase):
88+
89+ def test_PluginStore_init(self):
90+ store = plugins.PluginStore()
91+ store.register(plugins.hash_plugin)
92+
93+ self.assertTrue(len(store.plugins) == 1)
94+
95+ request = Mock(remote_addr='127.0.0.1')
96+ request.headers.getlist.return_value = []
97+
98+ # MD5
99+ search = get_search_mock(query=b'md5 test', pageno=1)
100+ store.call(store.plugins, 'post_search', request, search)
101+ self.assertTrue('md5 hash function: 098f6bcd4621d373cade4e832627b4f6' in search.result_container.answers)
102+
103+ search = get_search_mock(query=b'md5 test', pageno=2)
104+ store.call(store.plugins, 'post_search', request, search)
105+ self.assertFalse('md5 hash function: 098f6bcd4621d373cade4e832627b4f6' in search.result_container.answers)
106+
107+ # SHA1
108+ search = get_search_mock(query=b'sha1 test', pageno=1)
109+ store.call(store.plugins, 'post_search', request, search)
110+ self.assertTrue('sha1 hash function: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3' in search.result_container.answers)
111+
112+ # SHA224
113+ search = get_search_mock(query=b'sha224 test', pageno=1)
114+ store.call(store.plugins, 'post_search', request, search)
115+ self.assertTrue('sha224 hash function: 90a3ed9e32b2aaf4c61c410eb925426119e1a9dc53d4286ade99a809' in search.result_container.answers)
116+
117+ # SHA256
118+ search = get_search_mock(query=b'sha256 test', pageno=1)
119+ store.call(store.plugins, 'post_search', request, search)
120+ self.assertTrue('sha256 hash function: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08' in search.result_container.answers)
121+
122+ # SHA384
123+ search = get_search_mock(query=b'sha384 test', pageno=1)
124+ store.call(store.plugins, 'post_search', request, search)
125+ self.assertTrue('sha384 hash function: 768412320f7b0aa5812fce428dc4706b3cae50e02a64caa16a782249bfe8efc4b' \
126+ '7ef1ccb126255d196047dfedf17a0a9' in search.result_container.answers)
127+
128+ # SHA512
129+ search = get_search_mock(query=b'sha512 test', pageno=1)
130+ store.call(store.plugins, 'post_search', request, search)
131+ self.assertTrue('sha512 hash function: ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27a' \
132+'c185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff' in search.result_container.answers)