GWT Messages can support SafeHtml output. Add this support to the FakeMessagesMaker as well.

Review at http://gwt-code-reviews.appspot.com/1890803

Review by: skybrian@google.com

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@11529 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/junit/FakeMessagesMaker.java b/user/src/com/google/gwt/junit/FakeMessagesMaker.java
index dc37afc..9576a6c 100644
--- a/user/src/com/google/gwt/junit/FakeMessagesMaker.java
+++ b/user/src/com/google/gwt/junit/FakeMessagesMaker.java
@@ -16,6 +16,8 @@
 package com.google.gwt.junit;
 
 import com.google.gwt.i18n.client.Messages;
+import com.google.gwt.safehtml.shared.SafeHtml;
+import com.google.gwt.safehtml.shared.SafeHtmlUtils;
 
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
@@ -57,7 +59,11 @@
       throws Throwable {
     String name = method.getName();
 
-    return (args == null || args.length == 0) ? name : name
+    String result = (args == null || args.length == 0) ? name : name
         + Arrays.asList(args);
+    if (SafeHtml.class.isAssignableFrom(method.getReturnType())) {
+      return SafeHtmlUtils.fromString(result);
+    }
+    return result;
   }
 }
diff --git a/user/test/com/google/gwt/junit/FakeMessagesMakerTest.java b/user/test/com/google/gwt/junit/FakeMessagesMakerTest.java
index ddf541e..98866cf 100644
--- a/user/test/com/google/gwt/junit/FakeMessagesMakerTest.java
+++ b/user/test/com/google/gwt/junit/FakeMessagesMakerTest.java
@@ -16,6 +16,7 @@
 package com.google.gwt.junit;
 
 import com.google.gwt.i18n.client.Messages;
+import com.google.gwt.safehtml.shared.SafeHtml;
 
 import junit.framework.TestCase;
 
@@ -27,21 +28,30 @@
     @DefaultMessage("Isn''t this the fakiest?")
     @Description("A sample message to be tested.")
     String myMessage();
-    
+
     @DefaultMessage("Isn''t this the fakiest? Pick one: {1} or {2}?")
     @Description("A sample message with parameters.")
     String myArgumentedMessage(@Example("yes") String yes, 
         @Example("no") String no);
+
+    @DefaultMessage("This should be safe HTML")
+    @Description("A sample SafeHtml message.")
+    SafeHtml mySafeHtmlMessage();
   }
-  
+
   public void testSimple() {
     MyMessages messages = FakeMessagesMaker.create(MyMessages.class);
     assertEquals("myMessage", messages.myMessage());
   }
-  
+
   public void testArgs() {
     MyMessages messages = FakeMessagesMaker.create(MyMessages.class);
     assertEquals("myArgumentedMessage[oui, non]", 
         messages.myArgumentedMessage("oui", "non"));
   }
+
+  public void testSafeHtml() {
+    MyMessages messages = FakeMessagesMaker.create(MyMessages.class);
+    assertEquals("mySafeHtmlMessage", messages.mySafeHtmlMessage().asString());
+  }
 }