@@ -68,6 +68,7 @@ class TestQwantEngine(SearxTestCase):
6868 }
6969 """
7070 response = mock.Mock(text=json)
71+ qwant.search_url_keyword = 'web'
7172 results = qwant.response(response)
7273 self.assertEqual(type(results), list)
7374 self.assertEqual(len(results), 1)
@@ -75,6 +76,181 @@ class TestQwantEngine(SearxTestCase):
7576 self.assertEqual(results[0]['url'], 'http://www.url.xyz')
7677 self.assertEqual(results[0]['content'], 'Description')
7778
79+ json = """
80+ {
81+ "status": "success",
82+ "data": {
83+ "query": {
84+ "locale": "en_us",
85+ "query": "Test",
86+ "offset": 10
87+ },
88+ "result": {
89+ "items": [
90+ {
91+ "title": "Title",
92+ "score": 9999,
93+ "url": "http://www.url.xyz",
94+ "source": "...",
95+ "media": "http://image.jpg",
96+ "desc": "",
97+ "thumbnail": "http://thumbnail.jpg",
98+ "date": "",
99+ "_id": "db0aadd62c2a8565567ffc382f5c61fa",
100+ "favicon": "https://s.qwant.com/fav.ico"
101+ }
102+ ],
103+ "filters": []
104+ },
105+ "cache": {
106+ "key": "e66aa864c00147a0e3a16ff7a5efafde",
107+ "created": 1433092754,
108+ "expiration": 259200,
109+ "status": "miss",
110+ "age": 0
111+ }
112+ }
113+ }
114+ """
115+ response = mock.Mock(text=json)
116+ qwant.search_url_keyword = 'images'
117+ results = qwant.response(response)
118+ self.assertEqual(type(results), list)
119+ self.assertEqual(len(results), 1)
120+ self.assertEqual(results[0]['title'], 'Title')
121+ self.assertEqual(results[0]['url'], 'http://www.url.xyz')
122+ self.assertEqual(results[0]['content'], '')
123+ self.assertEqual(results[0]['thumbnail_src'], 'http://thumbnail.jpg')
124+ self.assertEqual(results[0]['img_src'], 'http://image.jpg')
125+
126+ json = """
127+ {
128+ "status": "success",
129+ "data": {
130+ "query": {
131+ "locale": "en_us",
132+ "query": "Test",
133+ "offset": 10
134+ },
135+ "result": {
136+ "items": [
137+ {
138+ "title": "Title",
139+ "score": 9999,
140+ "url": "http://www.url.xyz",
141+ "source": "...",
142+ "desc": "Description",
143+ "date": 1433260920,
144+ "_id": "db0aadd62c2a8565567ffc382f5c61fa",
145+ "favicon": "https://s.qwant.com/fav.ico"
146+ }
147+ ],
148+ "filters": []
149+ },
150+ "cache": {
151+ "key": "e66aa864c00147a0e3a16ff7a5efafde",
152+ "created": 1433092754,
153+ "expiration": 259200,
154+ "status": "miss",
155+ "age": 0
156+ }
157+ }
158+ }
159+ """
160+ response = mock.Mock(text=json)
161+ qwant.search_url_keyword = 'news'
162+ results = qwant.response(response)
163+ self.assertEqual(type(results), list)
164+ self.assertEqual(len(results), 1)
165+ self.assertEqual(results[0]['title'], 'Title')
166+ self.assertEqual(results[0]['url'], 'http://www.url.xyz')
167+ self.assertEqual(results[0]['content'], 'Description')
168+ self.assertIn('publishedDate', results[0])
169+
170+ json = """
171+ {
172+ "status": "success",
173+ "data": {
174+ "query": {
175+ "locale": "en_us",
176+ "query": "Test",
177+ "offset": 10
178+ },
179+ "result": {
180+ "items": [
181+ {
182+ "title": "Title",
183+ "score": 9999,
184+ "url": "http://www.url.xyz",
185+ "source": "...",
186+ "desc": "Description",
187+ "date": 1433260920,
188+ "_id": "db0aadd62c2a8565567ffc382f5c61fa",
189+ "favicon": "https://s.qwant.com/fav.ico"
190+ }
191+ ],
192+ "filters": []
193+ },
194+ "cache": {
195+ "key": "e66aa864c00147a0e3a16ff7a5efafde",
196+ "created": 1433092754,
197+ "expiration": 259200,
198+ "status": "miss",
199+ "age": 0
200+ }
201+ }
202+ }
203+ """
204+ response = mock.Mock(text=json)
205+ qwant.search_url_keyword = 'social'
206+ results = qwant.response(response)
207+ self.assertEqual(type(results), list)
208+ self.assertEqual(len(results), 1)
209+ self.assertEqual(results[0]['title'], 'Title')
210+ self.assertEqual(results[0]['url'], 'http://www.url.xyz')
211+ self.assertEqual(results[0]['content'], 'Description')
212+ self.assertIn('publishedDate', results[0])
213+
214+ json = """
215+ {
216+ "status": "success",
217+ "data": {
218+ "query": {
219+ "locale": "en_us",
220+ "query": "Test",
221+ "offset": 10
222+ },
223+ "result": {
224+ "items": [
225+ {
226+ "title": "Title",
227+ "score": 9999,
228+ "url": "http://www.url.xyz",
229+ "source": "...",
230+ "desc": "Description",
231+ "date": 1433260920,
232+ "_id": "db0aadd62c2a8565567ffc382f5c61fa",
233+ "favicon": "https://s.qwant.com/fav.ico"
234+ }
235+ ],
236+ "filters": []
237+ },
238+ "cache": {
239+ "key": "e66aa864c00147a0e3a16ff7a5efafde",
240+ "created": 1433092754,
241+ "expiration": 259200,
242+ "status": "miss",
243+ "age": 0
244+ }
245+ }
246+ }
247+ """
248+ response = mock.Mock(text=json)
249+ qwant.search_url_keyword = ''
250+ results = qwant.response(response)
251+ self.assertEqual(type(results), list)
252+ self.assertEqual(len(results), 0)
253+
78254 json = """
79255 {
80256 "status": "success",