{
CookieSource source = newMock(CookieSource.class);
WebRequest request = newRequest();
ThreadLocale tl = newMock(ThreadLocale.class);
// Training
expect(source.readCookieValue(TapestryConstants.LOCALE_COOKIE_NAME)).andReturn(null);
expect(request.getLocale()).andReturn(Locale.JAPANESE);
tl.setLocale(Locale.JAPANESE);
replay();
RequestLocaleManagerImpl manager = new RequestLocaleManagerImpl();
manager.setCookieSource(source);
manager.setRequest(request);
manager.setThreadLocale(tl);
Locale actual = manager.extractLocaleForCurrentRequest();
assertEquals(Locale.JAPANESE, actual);
verify();
expect(tl.getLocale()).andReturn(Locale.JAPANESE);
replay();
// Should do nothing, beacuse it isn't a change.