Sto provando a testare il mio progetto wicket utilizzando Wicket Page Test.Test della pagina Wicket, configurazione di sicurezza Jetty
Avvio del test fa sì Jetty di gettare questo errore:
2015-03-24 17:46:24,789 WARN [:] [main] [] [||] - org.eclipse.jetty.webapp.WebAppContext - Failed startup of context o.e.j.w.WebAppContext
java.lang.IllegalStateException: No LoginService for org.eclipse.jetty.secur[email protected] in [email protected]
mia suite TestNG assomiglia a questo:
<suite name="wicket-page-test-sample">
<test verbose="2" name="tests" annotations="JDK">
<packages>
<package name="..."></package>
</packages>
<classes>
<class name="com.ttdev.wicketpagetest.WebPageTestContext"></class>
<class name="nl.pack.test.MessagePanelTest"></class>
</classes>
</test>
La classe di test si presenta così:
@Test
public class MessagePanelTest
{
public void testOpenComponent()
{
final StringBuffer log = new StringBuffer();
MockableSpringBeanInjector.mockBean("hibernateService", mock(HibernateService.class));
WicketSeleniumDriver ws = WebPageTestContext.getWicketSelenium();
ws.openComponent(new ComponentFactory()
{
private static final long serialVersionUID = 1L;
public Component createComponent(String id)
{
return new MessagePanel(mock(AjaxRequestTarget.class));
}
});
assert ws.getText(By.id("info")).equals("Hello");
}
}
Ho trovato alcuni suggerimenti su internet su come cambiare la configurazione Jetty come questo:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Get name="securityHandler">
<Set name="loginService">
<New class="org.eclipse.jetty.security.HashLoginService">
<Set name="name">MySecurityRealm</Set>
<Set name="config">src/test/resources/jetty-realm.properties</Set>
<Call name="start"/>
</New>
</Set>
<Set name="checkWelcomeFiles">true</Set>
</Get>
</Configure>
Ma non sarebbe ora come includere questa configurazione nel mio test. Cosa mi manca? Come dovrei configurare il jetty per il mio test?
Può darci alcuni più input su come il vostro web.xml è strutturato? Il problema principale è ovviamente che il molo non riesce a trovare un loginService per la login-config. Con un molo incorporato, normalmente è possibile aggiungere questo servizio "server.addBean (loginService);" - ma wicket-tester non consente molta personalizzazione su come avviare il server jetty ecc. –