Hi
i would like to test my code on new session creation in application.
A task in this process is to validate the resulting session locale.
Because the session locale will be taken from the request i have to provide my
test value in the Wickettester.servletRequest attribute.
But how can i set it manually to avoid usage of system default locale?
MyApplication
public Session newSession(Request request, Response response) {
MySession session = new MySession(request);
if (isInvalid(session.getLocale())) {
session.setLocale(Locale.ENGLISH);
}
return session;
}
private boolean isInvalid(Locale locale) {
return isUndefined(new Locale(locale.getLanguage()))
&& isUndefined(locale);
}
private boolean isUndefined(Locale locale) {
return !_locales.contains(locale);
}
MyApplicationTest
@Test
public void invalidLanguageLocale() {
assertEquals(Locale.CHINESE,
prepareSession(toHtmlHeaderString(Locale.ENGLISH)).getLocale());
}
private String toHtmlHeaderString(Locale locale) {
String result = locale.getLanguage();
if (locale.getCountry() != null
&& locale.getCountry().trim().length() > 0) {
result = result + "-" + locale.getCountry();
}
return result;
}
private Session prepareSession(String locale) {
_tester.setupRequestAndResponse();
MockHttpServletRequest request = _tester.getServletRequest();
request.addHeader("Accept-Language", locale);
Session session = (Session)
_testee.newSession(_tester.getWicketRequest(),
_tester.getWicketResponse());
return session;
}
--
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]