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