forked from zaclys/searxng
		
	Merge pull request #2300 from dalf/fix-webapp-index
[fix] fix of / and /search
This commit is contained in:
		
						commit
						ebed1461bc
					
				
					 2 changed files with 29 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -547,10 +547,12 @@ def index():
 | 
			
		|||
 | 
			
		||||
    # redirect to search if there's a query in the request
 | 
			
		||||
    if request.form.get('q'):
 | 
			
		||||
        return redirect(url_for('search'), 308)
 | 
			
		||||
        query = ('?' + request.query_string.decode()) if request.query_string else ''
 | 
			
		||||
        return redirect(url_for('search') + query, 308)
 | 
			
		||||
 | 
			
		||||
    return render(
 | 
			
		||||
        'index.html',
 | 
			
		||||
        selected_categories=get_selected_categories(request.preferences, request.form),
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -566,8 +568,8 @@ def search():
 | 
			
		|||
    if output_format not in ['html', 'csv', 'json', 'rss']:
 | 
			
		||||
        output_format = 'html'
 | 
			
		||||
 | 
			
		||||
    # check if there is query
 | 
			
		||||
    if request.form.get('q') is None:
 | 
			
		||||
    # check if there is query (not None and not an empty string)
 | 
			
		||||
    if not request.form.get('q'):
 | 
			
		||||
        if output_format == 'html':
 | 
			
		||||
            return render(
 | 
			
		||||
                'index.html',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -75,9 +75,32 @@ class ViewsTestCase(SearxTestCase):
 | 
			
		|||
        self.assertEqual(result.status_code, 200)
 | 
			
		||||
        self.assertIn(b'<div class="title"><h1>searx</h1></div>', result.data)
 | 
			
		||||
 | 
			
		||||
    def test_index_html(self):
 | 
			
		||||
    def test_index_html_post(self):
 | 
			
		||||
        result = self.app.post('/', data={'q': 'test'})
 | 
			
		||||
        self.assertEqual(result.status_code, 308)
 | 
			
		||||
        self.assertEqual(result.location, 'http://localhost/search')
 | 
			
		||||
 | 
			
		||||
    def test_index_html_get(self):
 | 
			
		||||
        result = self.app.post('/?q=test')
 | 
			
		||||
        self.assertEqual(result.status_code, 308)
 | 
			
		||||
        self.assertEqual(result.location, 'http://localhost/search?q=test')
 | 
			
		||||
 | 
			
		||||
    def test_search_empty_html(self):
 | 
			
		||||
        result = self.app.post('/search', data={'q': ''})
 | 
			
		||||
        self.assertEqual(result.status_code, 200)
 | 
			
		||||
        self.assertIn(b'<div class="title"><h1>searx</h1></div>', result.data)
 | 
			
		||||
 | 
			
		||||
    def test_search_empty_json(self):
 | 
			
		||||
        result = self.app.post('/search', data={'q': '', 'format': 'json'})
 | 
			
		||||
        self.assertEqual(result.status_code, 400)
 | 
			
		||||
 | 
			
		||||
    def test_search_empty_csv(self):
 | 
			
		||||
        result = self.app.post('/search', data={'q': '', 'format': 'csv'})
 | 
			
		||||
        self.assertEqual(result.status_code, 400)
 | 
			
		||||
 | 
			
		||||
    def test_search_empty_rss(self):
 | 
			
		||||
        result = self.app.post('/search', data={'q': '', 'format': 'rss'})
 | 
			
		||||
        self.assertEqual(result.status_code, 400)
 | 
			
		||||
 | 
			
		||||
    def test_search_html(self):
 | 
			
		||||
        result = self.app.post('/search', data={'q': 'test'})
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue