Adding unit tests. Cleaning up code.
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/ImportUriFixerAndResolver_apply_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/ImportUriFixerAndResolver_apply_Test.java
new file mode 100644
index 0000000..8cfe447
--- /dev/null
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/ImportUriFixerAndResolver_apply_Test.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2011 Google Inc.
+ *
+ * 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
+ */
+package com.google.eclipse.protobuf.scoping;
+
+import static org.hamcrest.core.IsEqual.equalTo;
+import static org.junit.Assert.assertThat;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.scoping.impl.ImportUriResolver;
+import org.junit.*;
+
+import com.google.eclipse.protobuf.junit.XtextRule;
+import com.google.eclipse.protobuf.protobuf.Import;
+import com.google.eclipse.protobuf.protobuf.Protobuf;
+
+/**
+ * Tests for <code>{@link ImportUriFixerAndResolver#apply(EObject)}</code>.
+ *
+ * @author alruiz@google.com (Alex Ruiz)
+ */
+public class ImportUriFixerAndResolver_apply_Test {
+
+  @Rule public XtextRule xtext = new XtextRule();
+  
+  private ImportUriFixerAndResolver resolver;
+  
+  @Before public void setUp() {
+    resolver = (ImportUriFixerAndResolver) xtext.getInstanceOf(ImportUriResolver.class);
+  }
+  
+  @Test public void should_fix_import_URI_if_missing_scheme() {
+    StringBuilder proto = new StringBuilder();
+    proto.append("import \"folder1/test.proto\";"); 
+    Protobuf root = xtext.parse(proto);
+    Import anImport = root.getImports().get(0);
+    String resolved = resolver.apply(anImport);
+    assertThat(resolved, equalTo("platform:/resource/folder1/test.proto"));
+  }
+
+}
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/labeling/Labels.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/labeling/Labels.java
index 13abf5f..90ccad9 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/labeling/Labels.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/labeling/Labels.java
@@ -8,7 +8,7 @@
  */
 package com.google.eclipse.protobuf.ui.labeling;
 
-import static com.google.eclipse.protobuf.scoping.SimpleImportUriResolver.URI_PREFIX;
+import static com.google.eclipse.protobuf.scoping.ImportUriFixerAndResolver.URI_PREFIX;
 
 import com.google.eclipse.protobuf.protobuf.*;
 import com.google.eclipse.protobuf.ui.util.Properties;
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/ProtobufRuntimeModule.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/ProtobufRuntimeModule.java
index 4896ae9..a8b9ace 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/ProtobufRuntimeModule.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/ProtobufRuntimeModule.java
@@ -12,7 +12,7 @@
 import org.eclipse.xtext.scoping.impl.ImportUriResolver;
 
 import com.google.eclipse.protobuf.naming.ProtobufQualifiedNameProvider;
-import com.google.eclipse.protobuf.scoping.SimpleImportUriResolver;
+import com.google.eclipse.protobuf.scoping.ImportUriFixerAndResolver;
 import com.google.inject.Binder;
 
 /**
@@ -26,6 +26,6 @@
   }
 
   public void configureImportUriResolver(Binder binder) {
-    binder.bind(ImportUriResolver.class).to(SimpleImportUriResolver.class);
+    binder.bind(ImportUriResolver.class).to(ImportUriFixerAndResolver.class);
   }
 }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/SimpleImportUriResolver.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ImportUriFixerAndResolver.java
similarity index 74%
rename from com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/SimpleImportUriResolver.java
rename to com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ImportUriFixerAndResolver.java
index 866eebf..2de2ca2 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/SimpleImportUriResolver.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/scoping/ImportUriFixerAndResolver.java
@@ -8,8 +8,6 @@
  */
 package com.google.eclipse.protobuf.scoping;
 
-import java.util.List;
-
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.xtext.scoping.impl.ImportUriResolver;
@@ -27,7 +25,7 @@
  * 
  * @author alruiz@google.com (Alex Ruiz)
  */
-public class SimpleImportUriResolver extends ImportUriResolver {
+public class ImportUriFixerAndResolver extends ImportUriResolver {
 
   private static final String PREFIX = "platform:/resource";
 
@@ -63,22 +61,9 @@
    * We need to have the import URI as "platform:/resource/protobuf-test/folder/proto2.proto" for the editor to see it.
    */
   private void fixUri(Import i) {
-    String prefix = uriPrefix(i.eResource().getURI());
-    String uri = i.getImportURI();
-    if (!uri.startsWith(prefix)) {
-      if (!uri.startsWith(prefix)) prefix += "/";
-      i.setImportURI(prefix + uri);
-    }
-  }
-
-  private String uriPrefix(URI containerUri) {
-    StringBuilder prefix = new StringBuilder();
-    prefix.append(PREFIX);
-    int start = (containerUri.scheme() == null) ? 0 : 1; // ignore the scheme if present (e.g. "resource")
-    List<String> segments = containerUri.segmentsList();
-    int end = segments.size() - 1; // ignore file name (at the end of the URI)
-    for (int j = start; j < end; j++)
-      prefix.append("/").append(segments.get(j));
-    return prefix.toString();
+    URI importUri = URI.createURI(i.getImportURI());
+    if (importUri.scheme() != null) return;
+    URI fixedUri = URI.createURI(PREFIX).appendSegments(importUri.segments());
+    i.setImportURI(fixedUri.toString());
   }
 }