Merge pull request #225 from Mik-/develop
authorDavid A. Velasco <dvelasco@owncloud.com>
Wed, 31 Jul 2013 11:11:23 +0000 (04:11 -0700)
committerDavid A. Velasco <dvelasco@owncloud.com>
Wed, 31 Jul 2013 11:11:23 +0000 (04:11 -0700)
Bugfix for issue #220: exception on Android 4.3

src/com/owncloud/android/providers/FileContentProvider.java
tests/src/com/owncloud/android/test/AccountUtilsTest.java
tests/src/com/owncloud/android/test/FileContentProviderTest.java [new file with mode: 0644]

index 9b03243..e77556e 100644 (file)
@@ -86,7 +86,7 @@ public class FileContentProvider extends ContentProvider {
     private static final UriMatcher mUriMatcher;
     static {
         mUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
-        mUriMatcher.addURI(ProviderMeta.AUTHORITY_FILES, "/", ROOT_DIRECTORY);
+        mUriMatcher.addURI(ProviderMeta.AUTHORITY_FILES, null, ROOT_DIRECTORY);
         mUriMatcher.addURI(ProviderMeta.AUTHORITY_FILES, "file/", SINGLE_FILE);
         mUriMatcher.addURI(ProviderMeta.AUTHORITY_FILES, "file/#", SINGLE_FILE);
         mUriMatcher.addURI(ProviderMeta.AUTHORITY_FILES, "dir/#", DIRECTORY);
index b51409f..51030a5 100644 (file)
@@ -34,14 +34,21 @@ public class AccountUtilsTest extends AndroidTestCase {
         OwnCloudVersion ocv45 = new OwnCloudVersion(0x040500);
         OwnCloudVersion ocv70 = new OwnCloudVersion(0x070000);
 
-        assertTrue(AccountUtils.getWebdavPath(ocv12).equals("/webdav/owncloud.php"));
-        assertTrue(AccountUtils.getWebdavPath(ocv12s).equals("/webdav/owncloud.php"));
-        assertTrue(AccountUtils.getWebdavPath(ocv22).equals("/files/webdav.php"));
-        assertTrue(AccountUtils.getWebdavPath(ocv30).equals("/files/webdav.php"));
-        assertTrue(AccountUtils.getWebdavPath(ocv33s).equals("/files/webdav.php"));
-        assertTrue(AccountUtils.getWebdavPath(ocv45).equals("/remote.php/webdav"));
-        assertTrue(AccountUtils.getWebdavPath(ocv70).equals("/remote.php/webdav"));
-        assertNull(AccountUtils.getWebdavPath(null));
+        assertTrue(AccountUtils.getWebdavPath(ocv12, false).equals("/webdav/owncloud.php"));
+        assertTrue(AccountUtils.getWebdavPath(ocv12s, false).equals("/webdav/owncloud.php"));
+        assertTrue(AccountUtils.getWebdavPath(ocv22, false).equals("/files/webdav.php"));
+        assertTrue(AccountUtils.getWebdavPath(ocv30,false).equals("/files/webdav.php"));
+        assertTrue(AccountUtils.getWebdavPath(ocv33s, false).equals("/files/webdav.php"));
+        assertTrue(AccountUtils.getWebdavPath(ocv45, false).equals("/remote.php/webdav"));
+        assertTrue(AccountUtils.getWebdavPath(ocv70, false).equals("/remote.php/webdav"));
+        assertNull(AccountUtils.getWebdavPath(null, false));
+        assertTrue(AccountUtils.getWebdavPath(ocv12, true).equals("/remote.php/odav"));
+        assertTrue(AccountUtils.getWebdavPath(ocv12s, true).equals("/remote.php/odav"));
+        assertTrue(AccountUtils.getWebdavPath(ocv22, true).equals("/remote.php/odav"));
+        assertTrue(AccountUtils.getWebdavPath(ocv30, true).equals("/remote.php/odav"));
+        assertTrue(AccountUtils.getWebdavPath(ocv33s, true).equals("/remote.php/odav"));
+        assertTrue(AccountUtils.getWebdavPath(ocv45, true).equals("/remote.php/odav"));
+        assertTrue(AccountUtils.getWebdavPath(ocv70, true).equals("/remote.php/odav"));
 
         OwnCloudVersion invalidVer = new OwnCloudVersion("a.b.c");
         assertFalse(invalidVer.isVersionValid());
diff --git a/tests/src/com/owncloud/android/test/FileContentProviderTest.java b/tests/src/com/owncloud/android/test/FileContentProviderTest.java
new file mode 100644 (file)
index 0000000..e0345e7
--- /dev/null
@@ -0,0 +1,54 @@
+package com.owncloud.android.test;
+
+import com.owncloud.android.db.ProviderMeta.ProviderTableMeta;
+import com.owncloud.android.providers.FileContentProvider;
+
+import android.annotation.TargetApi;
+import android.net.Uri;
+import android.os.Build;
+import android.test.ProviderTestCase2;
+import android.test.mock.MockContentResolver;
+import android.util.Log;
+
+@TargetApi(Build.VERSION_CODES.CUPCAKE)
+public class FileContentProviderTest extends ProviderTestCase2<FileContentProvider> {
+
+       private static final String TAG = FileContentProvider.class.getName();
+       
+       private static MockContentResolver resolve;
+       
+       public FileContentProviderTest(Class<FileContentProvider> providerClass,
+                       String providerAuthority) {
+               super(providerClass, providerAuthority);
+               // TODO Auto-generated constructor stub
+       }
+       
+       public FileContentProviderTest() {
+               super(FileContentProvider.class, "com.owncloud.android.providers.FileContentProvider");
+       }
+       
+       @Override
+       public void setUp() {
+               Log.i(TAG, "Entered setup");
+               try {
+                       super.setUp();
+                       resolve = this.getMockContentResolver();
+               } catch (Exception e) {
+                       
+               }
+       }
+       
+       public void testGetTypeFile() {
+               Uri testuri = Uri.parse("content://org.owncloud/file/");
+               assertEquals(ProviderTableMeta.CONTENT_TYPE_ITEM, resolve.getType(testuri));
+
+               testuri = Uri.parse("content://org.owncloud/file/123");
+               assertEquals(ProviderTableMeta.CONTENT_TYPE_ITEM, resolve.getType(testuri));
+       }
+       
+       public void testGetTypeRoot() {
+               Uri testuri = Uri.parse("content://org.owncloud/");
+               assertEquals(ProviderTableMeta.CONTENT_TYPE, resolve.getType(testuri));
+       }
+
+}