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