package org.geoserver.web.security.user; import java.util.Locale; import org.acegisecurity.userdetails.UserDetails; import org.apache.wicket.extensions.markup.html.form.palette.component.Recorder; import org.apache.wicket.util.tester.FormTester; import org.geoserver.security.GeoserverUserDao; import org.geoserver.web.GeoServerWicketTestSupport; public class NewUserPageTest extends GeoServerWicketTestSupport { private GeoserverUserDao dao; @Override protected void setUpInternal() throws Exception { dao = GeoserverUserDao.get(); login(); tester.startPage(new NewUserPage()); } public void testRenders() { tester.assertRenderedPage(NewUserPage.class); } public void testFill() { Locale.setDefault(Locale.ENGLISH); // make sure the recorder is where we think it is, it contains the palette selection tester.assertComponent("userForm:roles:roles:recorder", Recorder.class); FormTester form = tester.newFormTester("userForm"); form.setValue("username", "user"); form.setValue("password", "pwd"); form.setValue("confirmPassword", "pwd"); form.setValue("roles:roles:recorder", "ROLE_FOO1"); form.submit("save"); tester.assertErrorMessages(new String[0]); tester.assertRenderedPage(UserPage.class); dao.reload(); UserDetails user = dao.loadUserByUsername("user"); assertEquals("pwd", user.getPassword()); // no good way to test the authorities, the palette is not participating // in the submit the same way other components are // assertEquals(1, user.getAuthorities().length); } // public void testPasswordsDontMatch() { // Locale.setDefault(Locale.ENGLISH); // // FormTester form = tester.newFormTester("userForm"); // form.setValue("username", "user"); // form.setValue("password", "pwd1"); // form.setValue("confirmPassword", "pwd2"); // form.setValue("roles:recorder", "ROLE_FOO"); // form.submit("save"); // // tester.assertErrorMessages(new String[] {"'pwd1' from Password and 'pwd2' from Confirm password must be equal."}); // tester.assertRenderedPage(NewUserPage.class); // } }