You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by so...@apache.org on 2017/06/02 06:03:57 UTC

[17/46] incubator-weex git commit: * [android] fix URI adapter, return base url when uri is empty

* [android] fix URI adapter, return base url when uri is empty


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/eeaf303a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/eeaf303a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/eeaf303a

Branch: refs/heads/master
Commit: eeaf303aecc091d37d8b6d9b16d88dd5e5c97ed2
Parents: 448ab1f
Author: sospartan <so...@apache.org>
Authored: Mon May 15 18:31:27 2017 +0800
Committer: sospartan <so...@apache.org>
Committed: Tue May 16 11:02:31 2017 +0800

----------------------------------------------------------------------
 .../java/com/taobao/weex/adapter/DefaultUriAdapter.java  | 11 ++++++++---
 .../com/taobao/weex/adapter/DefaultUriAdapterTest.java   |  9 ++++++---
 2 files changed, 14 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/eeaf303a/android/sdk/src/main/java/com/taobao/weex/adapter/DefaultUriAdapter.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/adapter/DefaultUriAdapter.java b/android/sdk/src/main/java/com/taobao/weex/adapter/DefaultUriAdapter.java
index 03a66f5..fb03b2f 100644
--- a/android/sdk/src/main/java/com/taobao/weex/adapter/DefaultUriAdapter.java
+++ b/android/sdk/src/main/java/com/taobao/weex/adapter/DefaultUriAdapter.java
@@ -44,9 +44,14 @@ public class DefaultUriAdapter implements URIAdapter {
     Uri base = Uri.parse(instance.getBundleUrl());
     Uri.Builder resultBuilder = uri.buildUpon();
 
-    if (uri.isRelative()) {
-      resultBuilder = buildRelativeURI(resultBuilder, base, uri);
-      return resultBuilder.build();
+   if (uri.isRelative()) {
+      //When uri is empty, means use the base url instead. Web broswer behave this way.
+      if(uri.getEncodedPath().length() == 0){
+        return base;
+      } else {
+        resultBuilder = buildRelativeURI(resultBuilder, base, uri);
+        return resultBuilder.build();
+      }
     }
     return uri;
   }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/eeaf303a/android/sdk/src/test/java/com/taobao/weex/adapter/DefaultUriAdapterTest.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/test/java/com/taobao/weex/adapter/DefaultUriAdapterTest.java b/android/sdk/src/test/java/com/taobao/weex/adapter/DefaultUriAdapterTest.java
index 1de08c6..ce26d57 100644
--- a/android/sdk/src/test/java/com/taobao/weex/adapter/DefaultUriAdapterTest.java
+++ b/android/sdk/src/test/java/com/taobao/weex/adapter/DefaultUriAdapterTest.java
@@ -81,12 +81,12 @@ public class DefaultUriAdapterTest {
 
 
     instance.renderByUrl("", bundle, null, null, 0, 0, WXRenderStrategy.APPEND_ONCE);
-    testRelative(host, base);
+    testRelative(host, base, bundle);
     instance.renderByUrl("", bundleWithSlash, null, null, 0, 0, WXRenderStrategy.APPEND_ONCE);
-    testRelative(host, base);
+    testRelative(host, base, bundleWithSlash);
   }
 
-  private void testRelative(String host, String baseWithSlash) {
+  private void testRelative(String host, String baseWithSlash, String bundleUrl) {
     Uri uri = adapter.rewrite(instance, URIAdapter.IMAGE, Uri.parse("./456"));
     assertEquals(Uri.parse(baseWithSlash + "./456"), uri);
 
@@ -108,6 +108,9 @@ public class DefaultUriAdapterTest {
 
     uri = adapter.rewrite(instance, URIAdapter.IMAGE, Uri.parse("/test2"));
     assertEquals(Uri.parse(host + "/test2"), uri);
+
+    uri = adapter.rewrite(instance, URIAdapter.IMAGE, Uri.parse(""));
+    assertEquals(Uri.parse(bundleUrl), uri);
   }
 
 }