/* (c) 2017 Open Source Geospatial Foundation - all rights reserved
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.opensearch.eo.web;
import static org.junit.Assert.*;
import org.apache.wicket.feedback.FeedbackMessage;
import org.apache.wicket.util.tester.FormTester;
import org.geoserver.opensearch.eo.OSEOInfo;
import org.junit.Before;
import org.junit.Test;
public class OSEOAdminPageTest extends OSEOWebTestSupport {
@Before
public void startPage() {
login();
tester.startPage(OSEOAdminPage.class);
}
@Test
public void smokeTest() throws Exception {
tester.assertNoErrorMessage();
tester.assertModelValue("form:maximumRecordsPerPage", OSEOInfo.DEFAULT_MAXIMUM_RECORDS);
tester.assertModelValue("form:recordsPerPage", OSEOInfo.DEFAULT_RECORDS_PER_PAGE);
// print(tester.getLastRenderedPage(), true, true);
}
@Test
public void verifyRequiredFields() throws Exception {
checkRequired("maximumRecordsPerPage");
checkRequired("recordsPerPage");
}
@Test
public void testPagingValidation() throws Exception {
setupPagingValues(-10, 100);
assertEquals(1, tester.getMessages(FeedbackMessage.ERROR).size());
setupPagingValues(100, -10);
assertEquals(1, tester.getMessages(FeedbackMessage.ERROR).size());
setupPagingValues(100, 10);
assertEquals(1, tester.getMessages(FeedbackMessage.ERROR).size());
setupPagingValues(2, 1000);
tester.assertNoErrorMessage();
}
private void setupPagingValues(int records, int maxRecords) {
tester.startPage(OSEOAdminPage.class);
FormTester formTester = tester.newFormTester("form");
formTester.setValue("recordsPerPage", "" + records);
formTester.setValue("maximumRecordsPerPage", "" + maxRecords);
formTester.submit();
}
private void checkRequired(String componentName) {
tester.startPage(OSEOAdminPage.class);
FormTester formTester = tester.newFormTester("form");
formTester.setValue(componentName, null);
formTester.submit();
assertEquals(1, tester.getMessages(FeedbackMessage.ERROR).size());
}
}