/*******************************************************************************
* Copyright (c) 2002, 2007 Innoopract Informationssysteme GmbH.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Innoopract Informationssysteme GmbH - initial API and implementation
******************************************************************************/
package org.eclipse.rwt;
import java.util.Locale;
import junit.framework.TestCase;
import org.eclipse.rwt.internal.service.ContextProvider;
public class NLS_Test extends TestCase {
private static Locale localeBuffer;
final static class TestMessages {
private static final String BUNDLE_NAME = "org.eclipse.rwt.messages";
public String MyMessage;
public static TestMessages get() {
return ( TestMessages )RWT.NLS.getISO8859_1Encoded( BUNDLE_NAME,
TestMessages.class );
}
private TestMessages() {
}
}
final static class TestMessagesUTF8 {
private static final String BUNDLE_NAME = "org.eclipse.rwt.messages_utf8";
public String MyMessage;
public static TestMessagesUTF8 get() {
Class clazz = TestMessagesUTF8.class;
return ( TestMessagesUTF8 )RWT.NLS.getUTF8Encoded( BUNDLE_NAME, clazz );
}
private TestMessagesUTF8() {
}
}
final static class TestIncompleteMessages {
private static final String BUNDLE_NAME
= "org.eclipse.rwt.incomplete_messages";
public String NoTranslationAvailable;
public static TestIncompleteMessages get() {
Class clazz = TestIncompleteMessages.class;
Object messages = RWT.NLS.getISO8859_1Encoded( BUNDLE_NAME, clazz );
return ( TestIncompleteMessages )messages;
}
private TestIncompleteMessages() {
}
}
protected void setUp() throws Exception {
localeBuffer = Locale.getDefault();
Locale.setDefault( Locale.ENGLISH );
Fixture.fakeContext();
}
protected void tearDown() throws Exception {
ContextProvider.disposeContext();
Locale.setDefault( localeBuffer );
}
public void testLocale() {
Locale locale = RWT.getLocale();
assertSame( Locale.getDefault(), locale );
TestRequest request = ( TestRequest )ContextProvider.getRequest();
request.setLocale( Locale.ITALIAN );
locale = RWT.getLocale();
assertSame( Locale.ITALIAN, locale );
RWT.setLocale( Locale.UK );
locale = RWT.getLocale();
assertSame( Locale.UK, RWT.getLocale() );
}
public void testNLS() {
assertEquals( "My Message", TestMessages.get().MyMessage );
TestRequest request = ( TestRequest )ContextProvider.getRequest();
request.setLocale( Locale.ITALIAN );
assertEquals( "Il mio messaggio", TestMessages.get().MyMessage );
RWT.setLocale( Locale.GERMAN );
assertEquals( "Meine Nachricht", TestMessages.get().MyMessage );
assertSame( TestMessages.get(), TestMessages.get() );
}
public void testNLS_UTF8() {
assertEquals( "My Message", TestMessagesUTF8.get().MyMessage );
TestRequest request = ( TestRequest )ContextProvider.getRequest();
request.setLocale( Locale.ITALIAN );
assertEquals( "Il mio messaggio", TestMessagesUTF8.get().MyMessage );
RWT.setLocale( Locale.GERMAN );
assertEquals( "Meine Nachricht", TestMessagesUTF8.get().MyMessage );
assertSame( TestMessagesUTF8.get(), TestMessagesUTF8.get() );
}
public void testNLSWithIncompleteLocalization() {
assertEquals( "", TestIncompleteMessages.get().NoTranslationAvailable );
}
}