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