Mock TypeOracle allows XMLElementTest to be restored. Also replace
DummyMortalLogger with MortalLogger.NULL

reviewed by jgw

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@6671 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/uibinder/parsers/DockLayoutPanelParser.java b/user/src/com/google/gwt/uibinder/parsers/DockLayoutPanelParser.java
index e903a4b..0bf38f5 100644
--- a/user/src/com/google/gwt/uibinder/parsers/DockLayoutPanelParser.java
+++ b/user/src/com/google/gwt/uibinder/parsers/DockLayoutPanelParser.java
@@ -66,8 +66,10 @@
       // Make sure the element is one of the fixed set of valid directions.
       if (!isValidChildElement(elem, child)) {
         writer.die(
-            "In %s, child must be one of {north, south, east, west, center}",
-            elem);
+            "In %1$s, child must be one of " +
+            "<%2$s:north>, <%2$s:south>, <%2$s:east>, <%2$s:west> or <%2$s:center>, " +
+            "but found %3$s",
+            elem, elem.getPrefix(), child);
       }
 
       // Consume the single widget element.
@@ -99,14 +101,10 @@
 
   private boolean isValidChildElement(XMLElement parent, XMLElement child) {
     String childNsUri = child.getNamespaceUri();
-    String parentNsUri = parent.getNamespaceUri();
-    if (childNsUri == null && parentNsUri != null) {
+    if (childNsUri == null) {
         return false;
     } 
-    if (childNsUri != null && parentNsUri == null) {
-        return false;
-    } 
-    if (!childNsUri.equals(parentNsUri)) {
+    if (!childNsUri.equals(parent.getNamespaceUri())) {
       return false;
     }
     if (!DOCK_NAMES.containsKey(child.getLocalName())) {
diff --git a/user/src/com/google/gwt/uibinder/rebind/MortalLogger.java b/user/src/com/google/gwt/uibinder/rebind/MortalLogger.java
index d0c77d2..bdd3fc8 100644
--- a/user/src/com/google/gwt/uibinder/rebind/MortalLogger.java
+++ b/user/src/com/google/gwt/uibinder/rebind/MortalLogger.java
@@ -24,6 +24,11 @@
  * Treelogger.
  */
 public class MortalLogger {
+  /**
+   * A valid logger that ignores all messages, handy for testing.
+   */
+  public static final MortalLogger NULL = new MortalLogger(TreeLogger.NULL);
+
   private final TreeLogger logger;
 
   public MortalLogger(TreeLogger logger) {
diff --git a/user/test/com/google/gwt/uibinder/parsers/IntAttributeParserTest.java b/user/test/com/google/gwt/uibinder/parsers/IntAttributeParserTest.java
index 4a52f0e..d00e336 100644
--- a/user/test/com/google/gwt/uibinder/parsers/IntAttributeParserTest.java
+++ b/user/test/com/google/gwt/uibinder/parsers/IntAttributeParserTest.java
@@ -16,7 +16,7 @@
 package com.google.gwt.uibinder.parsers;
 
 import com.google.gwt.core.ext.UnableToCompleteException;
-import com.google.gwt.uibinder.rebind.DummyMortalLogger;
+import com.google.gwt.uibinder.rebind.MortalLogger;
 
 import junit.framework.TestCase;
 
@@ -25,23 +25,21 @@
  */
 public class IntAttributeParserTest extends TestCase {
   private IntAttributeParser parser;
-  private DummyMortalLogger logger;
 
   @Override
   public void setUp() throws Exception {
     super.setUp();
     parser = new IntAttributeParser();
-    logger = new DummyMortalLogger();
   }
 
   public void testGood() throws UnableToCompleteException {
-    assertEquals("1234", parser.parse("1234", logger));
-    assertEquals("-4321", parser.parse("-4321", logger));
+    assertEquals("1234", parser.parse("1234", MortalLogger.NULL));
+    assertEquals("-4321", parser.parse("-4321", MortalLogger.NULL));
   }
 
   public void testBad() {
     try {
-      parser.parse("fnord", logger);
+      parser.parse("fnord", MortalLogger.NULL);
       fail("Expected UnableToCompleteException");
     } catch (UnableToCompleteException e) {
       /* pass */
@@ -49,6 +47,7 @@
   }
 
   public void testFieldRef() throws UnableToCompleteException {
-    assertEquals("foo.bar().baz()", parser.parse("{foo.bar.baz}", logger));
+    assertEquals("foo.bar().baz()", parser.parse("{foo.bar.baz}",
+        MortalLogger.NULL));
   }
 }
diff --git a/user/test/com/google/gwt/uibinder/rebind/DummyMortalLogger.java b/user/test/com/google/gwt/uibinder/rebind/DummyMortalLogger.java
deleted file mode 100644
index 827cb66..0000000
--- a/user/test/com/google/gwt/uibinder/rebind/DummyMortalLogger.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright 2009 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.uibinder.rebind;
-
-import com.google.gwt.core.ext.TreeLogger;
-
-/**
- * A MortalLogger using a dummy logger.
- */
-public class DummyMortalLogger extends MortalLogger {
-  public DummyMortalLogger() {
-    super(TreeLogger.NULL);
-  }
-}
diff --git a/user/test/com/google/gwt/uibinder/rebind/XMLElementTest.java b/user/test/com/google/gwt/uibinder/rebind/XMLElementTest.java
index 2159dea..f47e96e 100644
--- a/user/test/com/google/gwt/uibinder/rebind/XMLElementTest.java
+++ b/user/test/com/google/gwt/uibinder/rebind/XMLElementTest.java
@@ -15,7 +15,12 @@
  */
 package com.google.gwt.uibinder.rebind;
 
+import com.google.gwt.core.ext.TreeLogger;
 import com.google.gwt.core.ext.UnableToCompleteException;
+import com.google.gwt.core.ext.typeinfo.TypeOracle;
+import com.google.gwt.dev.javac.CompilationState;
+import com.google.gwt.dev.javac.impl.JavaResourceBase;
+import com.google.gwt.dev.javac.impl.MockResourceOracle;
 import com.google.gwt.uibinder.parsers.NullInterpreter;
 
 import junit.framework.TestCase;
@@ -40,17 +45,43 @@
   private Element item;
   private XMLElement elm;
   private XMLElementProvider elemProvider;
+  
+  TypeOracle oracle;
+  
+  @Override
+  public void setUp() throws Exception {
+    super.setUp();
+    init("<doc><elm attr1=\"attr1Value\" attr2=\"attr2Value\"/></doc>");
 
-  public void testConsumeRawAttribute() {
-    assertEquals("attr1Value", elm.consumeRawAttribute("attr1"));
-    assertEquals("", elm.consumeRawAttribute("attr1"));
+    MockResourceOracle resourceOracle = new MockResourceOracle(
+        JavaResourceBase.getStandardResources());
+
+    CompilationState state = new CompilationState(TreeLogger.NULL,
+        resourceOracle);
+    oracle = state.getTypeOracle();
   }
 
-  public void testConsumeRawAttributeWithDefault() {
-    assertEquals("attr1Value", elm.consumeRawAttribute("attr1", "default"));
-    assertEquals("default", elm.consumeRawAttribute("attr1", "default"));
-    assertEquals("otherDefault", elm.consumeRawAttribute("unsetthing",
-        "otherDefault"));
+  public void testConsumeBoolean() throws ParserConfigurationException,
+      SAXException, IOException, UnableToCompleteException {
+    init("<doc><elm yes='true' no='false' "
+        + "fnord='fnord' ref='{foo.bar.baz}'/></doc>");
+
+    assertEquals("", elm.consumeBooleanAttribute("foo"));
+
+    assertEquals("true", elm.consumeBooleanAttribute("yes"));
+    assertEquals("", elm.consumeBooleanAttribute("yes"));
+
+    assertEquals("false", elm.consumeBooleanAttribute("no"));
+    assertEquals("", elm.consumeBooleanAttribute("no"));
+
+    assertEquals("foo.bar().baz()", elm.consumeBooleanAttribute("ref"));
+
+    try {
+      elm.consumeBooleanAttribute("fnord");
+      fail("Should throw UnableToCompleteException on misparse");
+    } catch (UnableToCompleteException c) {
+      /* pass */
+    }
   }
 
   public void testConsumeBooleanConstant() throws ParserConfigurationException,
@@ -81,47 +112,23 @@
     }
   }
 
-  // TODO(rjrjr) To turn these back on need to learn how to mock out TypeOracle 
-//  public void testConsumeBoolean() throws ParserConfigurationException,
-//      SAXException, IOException, UnableToCompleteException {
-//    init("<doc><elm yes='true' no='false' "
-//        + "fnord='fnord' ref='{foo.bar.baz}'/></doc>");
-//
-//    assertEquals("", elm.consumeBooleanAttribute("foo"));
-//
-//    assertEquals("true", elm.consumeBooleanAttribute("yes"));
-//    assertEquals("", elm.consumeBooleanAttribute("yes"));
-//
-//    assertEquals("false", elm.consumeBooleanAttribute("no"));
-//    assertEquals("", elm.consumeBooleanAttribute("no"));
-//
-//    assertEquals("foo.bar().baz()", elm.consumeBooleanAttribute("ref"));
-//
-//    try {
-//      elm.consumeBooleanAttribute("fnord");
-//      fail("Should throw UnableToCompleteException on misparse");
-//    } catch (UnableToCompleteException c) {
-//      /* pass */
-//    }
-//  }
-//
-//  public void testConsumeDouble() throws UnableToCompleteException,
-//      ParserConfigurationException, SAXException, IOException {
-//    init("<doc><elm minus='-123.45' plus='123.45' minus-one='-1' "
-//        + "plus-one='1' fnord='fnord' ref='{foo.bar.baz}'/></doc>");
-//    assertEquals("1", elm.consumeDoubleAttribute("plus-one"));
-//    assertEquals("-1", elm.consumeDoubleAttribute("minus-one"));
-//    assertEquals("123.45", elm.consumeDoubleAttribute("plus"));
-//    assertEquals("-123.45", elm.consumeDoubleAttribute("minus"));
-//    assertEquals("foo.bar().baz()", elm.consumeBooleanAttribute("ref"));
-//
-//    try {
-//      elm.consumeBooleanAttribute("fnord");
-//      fail("Should throw UnableToCompleteException on misparse");
-//    } catch (UnableToCompleteException c) {
-//      /* pass */
-//    }
-//  }
+  public void testConsumeDouble() throws UnableToCompleteException,
+      ParserConfigurationException, SAXException, IOException {
+    init("<doc><elm minus='-123.45' plus='123.45' minus-one='-1' "
+        + "plus-one='1' fnord='fnord' ref='{foo.bar.baz}'/></doc>");
+    assertEquals("1", elm.consumeDoubleAttribute("plus-one"));
+    assertEquals("-1", elm.consumeDoubleAttribute("minus-one"));
+    assertEquals("123.45", elm.consumeDoubleAttribute("plus"));
+    assertEquals("-123.45", elm.consumeDoubleAttribute("minus"));
+    assertEquals("foo.bar().baz()", elm.consumeBooleanAttribute("ref"));
+
+    try {
+      elm.consumeBooleanAttribute("fnord");
+      fail("Should throw UnableToCompleteException on misparse");
+    } catch (UnableToCompleteException c) {
+      /* pass */
+    }
+  }
 
   public void testConsumeInnerTextEscapedAsHtmlStringLiteral()
       throws UnableToCompleteException {
@@ -138,6 +145,18 @@
         elm.consumeInnerTextEscapedAsHtmlStringLiteral(new NullInterpreter<String>()));
   }
 
+  public void testConsumeRawAttribute() {
+    assertEquals("attr1Value", elm.consumeRawAttribute("attr1"));
+    assertEquals("", elm.consumeRawAttribute("attr1"));
+  }
+
+  public void testConsumeRawAttributeWithDefault() {
+    assertEquals("attr1Value", elm.consumeRawAttribute("attr1", "default"));
+    assertEquals("default", elm.consumeRawAttribute("attr1", "default"));
+    assertEquals("otherDefault", elm.consumeRawAttribute("unsetthing",
+        "otherDefault"));
+  }
+
   public void testConsumeRequired() throws UnableToCompleteException {
     assertEquals("attr1Value", elm.consumeRequiredRawAttribute("attr1"));
     try {
@@ -210,12 +229,6 @@
     assertEquals("", elm.getClosingTag());
   }
 
-  @Override
-  protected void setUp() throws Exception {
-    super.setUp();
-    init("<doc><elm attr1=\"attr1Value\" attr2=\"attr2Value\"/></doc>");
-  }
-
   private void appendText(final String text) {
     Text t = doc.createTextNode(text);
     item.appendChild(t);
@@ -228,7 +241,7 @@
         0);
 
     elemProvider = new XMLElementProviderImpl(new AttributeParsers(), null,
-        null, new DummyMortalLogger());
+        oracle, MortalLogger.NULL);
     elm = elemProvider.get(item);
   }
 }
diff --git a/user/test/com/google/gwt/uibinder/rebind/model/OwnerClassTest.java b/user/test/com/google/gwt/uibinder/rebind/model/OwnerClassTest.java
index 68756b6..59c8029 100644
--- a/user/test/com/google/gwt/uibinder/rebind/model/OwnerClassTest.java
+++ b/user/test/com/google/gwt/uibinder/rebind/model/OwnerClassTest.java
@@ -24,7 +24,6 @@
 import com.google.gwt.uibinder.client.UiFactory;
 import com.google.gwt.uibinder.client.UiField;
 import com.google.gwt.uibinder.client.UiHandler;
-import com.google.gwt.uibinder.rebind.DummyMortalLogger;
 import com.google.gwt.uibinder.rebind.JClassTypeAdapter;
 import com.google.gwt.uibinder.rebind.MortalLogger;
 import com.google.gwt.user.client.ui.Button;
@@ -43,13 +42,11 @@
 public class OwnerClassTest extends TestCase {
 
   private JClassTypeAdapter gwtTypeAdapter;
-  private MortalLogger logger;
 
   @Override
   protected void setUp() throws Exception {
     super.setUp();
 
-    logger = new DummyMortalLogger();
     gwtTypeAdapter = new JClassTypeAdapter();
   }
 
@@ -62,7 +59,7 @@
   public void testOwnerClass_empty() throws Exception {
     JClassType ownerType = gwtTypeAdapter.adaptJavaClass(EmptyOwnerClass.class);
     JClassType labelType = gwtTypeAdapter.adaptJavaClass(Label.class);
-    OwnerClass ownerClass = new OwnerClass(ownerType, logger);
+    OwnerClass ownerClass = new OwnerClass(ownerType, MortalLogger.NULL);
 
     assertNull(ownerClass.getUiFactoryMethod(labelType));
     assertNull(ownerClass.getUiField("fieldName"));
@@ -87,7 +84,7 @@
   public void testOwnerClass_uiFactory() throws Exception {
     JClassType ownerType = gwtTypeAdapter.adaptJavaClass(UiFactoryClass.class);
     JClassType labelType = gwtTypeAdapter.adaptJavaClass(Label.class);
-    OwnerClass ownerClass = new OwnerClass(ownerType, logger);
+    OwnerClass ownerClass = new OwnerClass(ownerType, MortalLogger.NULL);
 
     JMethod uiFactoryMethod = ownerClass.getUiFactoryMethod(labelType);
     assertNotNull(uiFactoryMethod);
@@ -114,7 +111,7 @@
   public void testOwnerClass_uiFactoryBadType() {
     JClassType ownerType = gwtTypeAdapter.adaptJavaClass(BadUiFactoryClass.class);
     try {
-      new OwnerClass(ownerType, logger);
+      new OwnerClass(ownerType, MortalLogger.NULL);
       fail("Expected exception not thrown.");
     } catch (UnableToCompleteException utce) {
       // Expected
@@ -142,7 +139,7 @@
   public void testOwnerClass_uiFactoryDuplicateType() {
     JClassType ownerType = gwtTypeAdapter.adaptJavaClass(DuplicateUiFactoryClass.class);
     try {
-      new OwnerClass(ownerType, logger);
+      new OwnerClass(ownerType, MortalLogger.NULL);
       fail("Expected exception not thrown.");
     } catch (UnableToCompleteException utce) {
       // Expected
@@ -168,7 +165,7 @@
     JClassType ownerType = gwtTypeAdapter.adaptJavaClass(UiFieldsClass.class);
     JClassType labelType = gwtTypeAdapter.adaptJavaClass(Label.class);
     JClassType buttonType = gwtTypeAdapter.adaptJavaClass(Button.class);
-    OwnerClass ownerClass = new OwnerClass(ownerType, logger);
+    OwnerClass ownerClass = new OwnerClass(ownerType, MortalLogger.NULL);
 
     OwnerField labelField = ownerClass.getUiField("label1");
     OwnerField labelField2 = ownerClass.getUiFieldForType(labelType);
@@ -210,7 +207,7 @@
   public void testOwnerClass_uiFieldsBadType() {
     JClassType ownerType = gwtTypeAdapter.adaptJavaClass(BadUiFieldsClass.class);
     try {
-      new OwnerClass(ownerType, logger);
+      new OwnerClass(ownerType, MortalLogger.NULL);
       fail("Expected exception not thrown.");
     } catch (UnableToCompleteException utce) {
       // Expected
@@ -237,7 +234,7 @@
 
   public void testOwnerClass_uiHandlers() throws Exception {
     JClassType ownerType = gwtTypeAdapter.adaptJavaClass(UiHandlersClass.class);
-    OwnerClass ownerClass = new OwnerClass(ownerType, logger);
+    OwnerClass ownerClass = new OwnerClass(ownerType, MortalLogger.NULL);
 
     // Assert the two expected handlers are there
     List<JMethod> uiHandlers = ownerClass.getUiHandlers();
@@ -327,7 +324,7 @@
         gwtTypeAdapter.adaptJavaClass(ChildUiBinderClass.class);
     JClassType labelType = gwtTypeAdapter.adaptJavaClass(Label.class);
     JClassType buttonType = gwtTypeAdapter.adaptJavaClass(Button.class);
-    OwnerClass ownerClass = new OwnerClass(ownerType, logger);
+    OwnerClass ownerClass = new OwnerClass(ownerType, MortalLogger.NULL);
 
     // Test fields
     OwnerField labelField = ownerClass.getUiField("label1");
diff --git a/user/test/com/google/gwt/uibinder/rebind/model/OwnerFieldClassTest.java b/user/test/com/google/gwt/uibinder/rebind/model/OwnerFieldClassTest.java
index 7746a02..6ea4cbe 100644
--- a/user/test/com/google/gwt/uibinder/rebind/model/OwnerFieldClassTest.java
+++ b/user/test/com/google/gwt/uibinder/rebind/model/OwnerFieldClassTest.java
@@ -23,7 +23,6 @@
 import com.google.gwt.core.ext.typeinfo.JPrimitiveType;
 import com.google.gwt.core.ext.typeinfo.JType;
 import com.google.gwt.uibinder.client.UiConstructor;
-import com.google.gwt.uibinder.rebind.DummyMortalLogger;
 import com.google.gwt.uibinder.rebind.JClassTypeAdapter;
 import com.google.gwt.uibinder.rebind.MortalLogger;
 import com.google.gwt.user.client.ui.Label;
@@ -36,7 +35,6 @@
 public class OwnerFieldClassTest extends TestCase {
 
   private JClassTypeAdapter gwtTypeAdapter;
-  private MortalLogger logger = new DummyMortalLogger();
 
   @Override
   protected void setUp() throws Exception {
@@ -50,7 +48,8 @@
     JClassType labelType = gwtTypeAdapter.adaptJavaClass(Label.class);
 
     // Now get its field class model
-    OwnerFieldClass fieldClass = OwnerFieldClass.getFieldClass(labelType, logger);
+    OwnerFieldClass fieldClass = OwnerFieldClass.getFieldClass(labelType,
+        MortalLogger.NULL);
 
     // Check the class model properties
     assertEquals(labelType, fieldClass.getRawType());
@@ -60,7 +59,8 @@
     assertMethod(setter, "setVisible", JPrimitiveType.BOOLEAN);
 
     // Check that the same instance of the model is returned if asked again
-    assertSame(fieldClass, OwnerFieldClass.getFieldClass(labelType, logger));
+    assertSame(fieldClass, OwnerFieldClass.getFieldClass(labelType,
+        MortalLogger.NULL));
 
     gwtTypeAdapter.verifyAll();
   }
@@ -136,7 +136,8 @@
     JClassType settersType =
         gwtTypeAdapter.adaptJavaClass(SettersTestClass.class);
     JClassType stringType = gwtTypeAdapter.adaptJavaClass(String.class);
-    OwnerFieldClass settersClass = OwnerFieldClass.getFieldClass(settersType, logger);
+    OwnerFieldClass settersClass = OwnerFieldClass.getFieldClass(settersType,
+        MortalLogger.NULL);
     assertEquals(settersType, settersClass.getRawType());
     assertNull(settersClass.getUiConstructor());
 
@@ -158,7 +159,8 @@
     JClassType settersType =
         gwtTypeAdapter.adaptJavaClass(SettersTestClass.class);
     JClassType stringType = gwtTypeAdapter.adaptJavaClass(String.class);
-    OwnerFieldClass settersClass = OwnerFieldClass.getFieldClass(settersType, logger);
+    OwnerFieldClass settersClass = OwnerFieldClass.getFieldClass(settersType,
+        MortalLogger.NULL);
     assertEquals(settersType, settersClass.getRawType());
 
     JMethod bleSetter = settersClass.getSetter("ble");
@@ -223,7 +225,8 @@
     JClassType settersType =
         gwtTypeAdapter.adaptJavaClass(OverriddenSettersTestClass.class);
     JClassType stringType = gwtTypeAdapter.adaptJavaClass(String.class);
-    OwnerFieldClass settersClass = OwnerFieldClass.getFieldClass(settersType, logger);
+    OwnerFieldClass settersClass = OwnerFieldClass.getFieldClass(settersType,
+        MortalLogger.NULL);
     assertEquals(settersType, settersClass.getRawType());
 
     // setBlaBla is not ambiguous, though overridden
@@ -291,7 +294,7 @@
     JClassType constructorsType =
         gwtTypeAdapter.adaptJavaClass(UiConstructorClass.class);
     OwnerFieldClass constructorsClass =
-        OwnerFieldClass.getFieldClass(constructorsType, logger);
+        OwnerFieldClass.getFieldClass(constructorsType, MortalLogger.NULL);
     assertEquals(constructorsType, constructorsClass.getRawType());
 
     JConstructor constructor = constructorsClass.getUiConstructor();
@@ -328,7 +331,7 @@
         gwtTypeAdapter.adaptJavaClass(MultiUiConstructorsClass.class);
 
     try {
-      OwnerFieldClass.getFieldClass(constructorsType, logger);
+      OwnerFieldClass.getFieldClass(constructorsType, MortalLogger.NULL);
       fail("Expected exception not thrown");
     } catch (UnableToCompleteException utce) {
       // Expected
diff --git a/user/test/com/google/gwt/uibinder/rebind/model/OwnerFieldTest.java b/user/test/com/google/gwt/uibinder/rebind/model/OwnerFieldTest.java
index c34347f..5aa4e7d 100644
--- a/user/test/com/google/gwt/uibinder/rebind/model/OwnerFieldTest.java
+++ b/user/test/com/google/gwt/uibinder/rebind/model/OwnerFieldTest.java
@@ -19,7 +19,6 @@
 import com.google.gwt.core.ext.typeinfo.JClassType;
 import com.google.gwt.core.ext.typeinfo.JField;
 import com.google.gwt.uibinder.client.UiField;
-import com.google.gwt.uibinder.rebind.DummyMortalLogger;
 import com.google.gwt.uibinder.rebind.JClassTypeAdapter;
 import com.google.gwt.uibinder.rebind.MortalLogger;
 import com.google.gwt.user.client.ui.Button;
@@ -34,13 +33,11 @@
 
   private JClassTypeAdapter gwtTypeAdapter;
   private JClassType ownerType;
-  private MortalLogger logger;
 
   @Override
   protected void setUp() throws Exception {
     super.setUp();
 
-    logger = new DummyMortalLogger();
     gwtTypeAdapter = new JClassTypeAdapter();
     ownerType = gwtTypeAdapter.adaptJavaClass(this.getClass());
   }
@@ -64,14 +61,15 @@
 
     JField someGwtField = gwtTypeAdapter.adaptField(
         this.getClass().getDeclaredField("someField"), ownerType);
-    OwnerField someOwnerField = new OwnerField(someGwtField, logger);
+    OwnerField someOwnerField = new OwnerField(someGwtField, MortalLogger.NULL);
     assertEquals("someField", someOwnerField.getName());
     assertEquals(labelType, someOwnerField.getType().getRawType());
     assertFalse(someOwnerField.isProvided());
 
     JField providedGwtField = gwtTypeAdapter.adaptField(
         this.getClass().getDeclaredField("providedField"), ownerType);
-    OwnerField providedOwnerField = new OwnerField(providedGwtField, logger);
+    OwnerField providedOwnerField = new OwnerField(providedGwtField,
+        MortalLogger.NULL);
     assertEquals("providedField", providedOwnerField.getName());
     assertEquals(buttonType, providedOwnerField.getType().getRawType());
     assertTrue(providedOwnerField.isProvided());
@@ -83,7 +81,7 @@
     JField someGwtField = gwtTypeAdapter.adaptField(
         this.getClass().getDeclaredField("badTypeField"), ownerType);
     try {
-      new OwnerField(someGwtField, logger);
+      new OwnerField(someGwtField, MortalLogger.NULL);
       fail("Expected exception not thrown.");
     } catch (UnableToCompleteException utce) {
       // Expected
@@ -96,7 +94,7 @@
     JField someGwtField = gwtTypeAdapter.adaptField(
         this.getClass().getDeclaredField("nonAnnotatedField"), ownerType);
     try {
-      new OwnerField(someGwtField, logger);
+      new OwnerField(someGwtField, MortalLogger.NULL);
       fail("Expected exception not thrown.");
     } catch (UnableToCompleteException utce) {
       // Expected