From 436c9d85eea9d970390da00813239c4f9d91f598 Mon Sep 17 00:00:00 2001 From: Armando Neto Date: Jul 12 2022 14:38:17 +0000 Subject: webui: Do not allow empty pagination size Pagination size must be required, the current validators are triggered after form is submitted, thus the only way for check if data is not empty is by making the field required. Fixes: https://pagure.io/freeipa/issue/9192 Signed-off-by: Armando Neto Reviewed-By: Florence Blanc-Renaud --- diff --git a/install/ui/src/freeipa/Application_controller.js b/install/ui/src/freeipa/Application_controller.js index 46aabc9..140ee8f 100644 --- a/install/ui/src/freeipa/Application_controller.js +++ b/install/ui/src/freeipa/Application_controller.js @@ -318,6 +318,7 @@ define([ $type: 'text', name: 'pagination_size', label: '@i18n:customization.table_pagination', + required: true, validators: ['positive_integer'] } ] diff --git a/ipatests/test_webui/test_misc_cases.py b/ipatests/test_webui/test_misc_cases.py index 5f7ffb5..aca9e1a 100644 --- a/ipatests/test_webui/test_misc_cases.py +++ b/ipatests/test_webui/test_misc_cases.py @@ -11,6 +11,11 @@ from ipatests.test_webui.ui_driver import screenshot import pytest import re +try: + from selenium.webdriver.common.by import By +except ImportError: + pass + @pytest.mark.tier1 class TestMiscCases(UI_driver): @@ -26,3 +31,17 @@ class TestMiscCases(UI_driver): ver_re = re.compile('version: .*') assert re.search(ver_re, about_text), 'Version not found' self.dialog_button_click('ok') + + @screenshot + def test_customization_pagination_input_required(self): + """Test if 'pagination size' is required when submitting the form.""" + self.init_app() + + self.profile_menu_action('configuration') + self.fill_input('pagination_size', '') + self.dialog_button_click('save') + + pagination_size_elem = self.find( + ".widget[name='pagination_size']", By.CSS_SELECTOR) + + self.assert_field_validation_required(parent=pagination_size_elem)