package mobi.monaca.framework.test;
import mobi.monaca.framework.util.UrlUtil;
import android.os.Environment;
import android.test.AndroidTestCase;
public class UrlUtilTest extends AndroidTestCase {
public void testGetUIFileUrl() {
assertEquals("index.ui", UrlUtil.getUIFileUrl("index.html"));
// assertEquals("index.ui", UrlUtil.getUIFileUrl("index.html#hoge")); TODO confirm this should be true
}
public void testIsEmbedding() {
assertTrue(UrlUtil.isEmbedding("index.html#embedding"));
assertTrue(UrlUtil.isEmbedding("../index.html#embedding"));
assertTrue(UrlUtil.isEmbedding("hoge/index.html#embedding"));
assertTrue(UrlUtil.isEmbedding("http://monaca.mobi/#embedding"));
assertTrue(UrlUtil.isEmbedding("file:///android_asset/www/hoge.html#embedding"));
assertTrue(UrlUtil.isEmbedding("file://data/data/hoge.foo/aaa.html#embedding"));
assertTrue(UrlUtil.isEmbedding("file://data/data/hoge.foo/aaa.html##embedding"));
assertFalse(UrlUtil.isEmbedding("index.html"));
assertFalse(UrlUtil.isEmbedding("hoge/index.html"));
assertFalse(UrlUtil.isEmbedding("http://monaca.mobi"));
assertFalse(UrlUtil.isEmbedding("index.html#embedding#hogehoge"));
assertFalse(UrlUtil.isEmbedding("file://data/data/hoge.foo/aaa.html#embeddinghoge"));
assertFalse(UrlUtil.isEmbedding("file://data/data/hoge.foo/aaa.html#embeddinghoge"));
}
public void testIsMonacaUriMethod() {
//Built project uri
assertTrue(UrlUtil.isMonacaUri(mContext, "file:///android_asset/"));
assertTrue(UrlUtil.isMonacaUri(mContext, "file:///android_asset/www/"));
assertTrue(UrlUtil.isMonacaUri(mContext, "file:///android_asset/www/index.html"));
assertTrue(UrlUtil.isMonacaUri(mContext, "file:///android_asset/www/hoge/"));
//DebuggerProject uri
assertTrue(UrlUtil.isMonacaUri(mContext, "file://" + mContext.getApplicationInfo().dataDir));
//others
assertFalse(UrlUtil.isMonacaUri(mContext, "http://www.google.com/"));
assertFalse(UrlUtil.isMonacaUri(mContext, "http://localhost/"));
assertFalse(UrlUtil.isMonacaUri(mContext, "hogehoge"));
assertFalse(UrlUtil.isMonacaUri(mContext, "file:///data/"));
assertFalse(UrlUtil.isMonacaUri(mContext, "file:///data/data"));
assertFalse(UrlUtil.isMonacaUri(mContext, Environment.getExternalStorageDirectory().getAbsolutePath()));
}
public void testGetResolvedUrlMethod() {
// getResolvedUrl is for file protocol
// http protocol should not be resolved
eq("http://monaca.mobi", UrlUtil.getResolvedUrl("http://monaca.mobi"));
eq("http://monaca.mobi/features/../", UrlUtil.getResolvedUrl("http://monaca.mobi/features/../"));
eq("http://blog.asial.co.jp/category/21/../../", UrlUtil.getResolvedUrl("http://blog.asial.co.jp/category/21/../../"));
eq("file:///android_asset/www", "file:///android_asset/www");
eq("file:///android_asset/www/", "file:///android_asset/www/");
eq("file:///android_asset", UrlUtil.getResolvedUrl("file:///android_asset/"));
eq("file:///android_asset", UrlUtil.getResolvedUrl("file:///android_asset/www/../"));
eq("file:///android_asset", UrlUtil.getResolvedUrl("file:///android_asset/www/hoge/../../"));
eq("file:///android_asset", UrlUtil.getResolvedUrl("file:///android_asset/www/hoge/foo/../../../"));
eq("file:///data/data/mobi.monaca.framework.psedo", UrlUtil.getResolvedUrl("file:///data/data/mobi.monaca.framework.psedo/"));
eq("file:///data/data/mobi.monaca.framework.psedo", UrlUtil.getResolvedUrl("file:///data/data/mobi.monaca.framework.psedo/www/../"));
eq("file:///data/data/mobi.monaca.framework.psedo", UrlUtil.getResolvedUrl("file:///data/data/mobi.monaca.framework.psedo/www/hoge/../../"));
eq("file:///data/data/mobi.monaca.framework.psedo", UrlUtil.getResolvedUrl("file:///data/data/mobi.monaca.framework.psedo/www/hoge/foo/../../../"));
}
protected void eq(String expected, String actual) {
LineComparisonFailure.doAssert(expected, actual);
}
}