1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-07-23 18:06:17 +00:00

Updated ReadFolderTest to work with an empty OC server

This commit is contained in:
David A. Velasco 2014-04-15 13:22:45 +02:00
parent e2380a6a5c
commit 596c793243
4 changed files with 103 additions and 30 deletions

View File

@ -28,7 +28,6 @@ import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream;
import java.security.GeneralSecurityException; import java.security.GeneralSecurityException;
import org.apache.commons.httpclient.protocol.Protocol; import org.apache.commons.httpclient.protocol.Protocol;
@ -56,7 +55,6 @@ import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment; import android.os.Environment;
import android.app.Activity; import android.app.Activity;
import android.content.res.AssetManager;
import android.util.Log; import android.util.Log;
import android.view.Menu; import android.view.Menu;
@ -78,6 +76,8 @@ public class TestActivity extends Activity {
private static final String WEBDAV_PATH = "/remote.php/webdav"; private static final String WEBDAV_PATH = "/remote.php/webdav";
private static final int BUFFER_SIZE = 1024; private static final int BUFFER_SIZE = 1024;
public static final String ASSETS__TEXT_FILE_NAME = "textFile.txt";
//private Account mAccount = null; //private Account mAccount = null;
private OwnCloudClient mClient; private OwnCloudClient mClient;

View File

@ -30,7 +30,6 @@ import com.owncloud.android.lib.resources.files.FileUtils;
import com.owncloud.android.lib.test_project.TestActivity; import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2; import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
/** /**
* Class to test Read File Operation * Class to test Read File Operation
@ -42,10 +41,10 @@ public class ReadFileTest extends ActivityInstrumentationTestCase2<TestActivity
private static final String LOG_TAG = ReadFileTest.class.getCanonicalName(); private static final String LOG_TAG = ReadFileTest.class.getCanonicalName();
private static final String TEXT_FILE_NAME = "textFile.txt";
private TestActivity mActivity; private TestActivity mActivity;
private String mFilePath;
public ReadFileTest() { public ReadFileTest() {
super(TestActivity.class); super(TestActivity.class);
} }
@ -56,14 +55,15 @@ public class ReadFileTest extends ActivityInstrumentationTestCase2<TestActivity
setActivityInitialTouchMode(false); setActivityInitialTouchMode(false);
mActivity = getActivity(); mActivity = getActivity();
mFilePath = FileUtils.PATH_SEPARATOR + TestActivity.ASSETS__TEXT_FILE_NAME;
File textFile = mActivity.extractAsset(TEXT_FILE_NAME);
File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME);
RemoteOperationResult uploadResult = mActivity.uploadFile( RemoteOperationResult uploadResult = mActivity.uploadFile(
textFile.getAbsolutePath(), textFile.getAbsolutePath(),
FileUtils.PATH_SEPARATOR + TEXT_FILE_NAME, mFilePath,
"txt/plain"); "txt/plain");
if (!uploadResult.isSuccess()) { if (!uploadResult.isSuccess()) {
logAndThrow(uploadResult); Utils.logAndThrow(LOG_TAG, uploadResult);
} }
} }
@ -71,25 +71,20 @@ public class ReadFileTest extends ActivityInstrumentationTestCase2<TestActivity
* Test Read File * Test Read File
*/ */
public void testReadFile() { public void testReadFile() {
RemoteOperationResult result = mActivity.readFile(TEXT_FILE_NAME); RemoteOperationResult result = mActivity.readFile(mFilePath);
assertTrue(result.getData().size() == 1); assertTrue(result.getData() != null && result.getData().size() == 1);
assertTrue(result.isSuccess()); assertTrue(result.isSuccess());
// TODO check more properties of the result // TODO check more properties of the result
} }
@Override @Override
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
RemoteOperationResult removeResult = mActivity.removeFile(TEXT_FILE_NAME); RemoteOperationResult removeResult = mActivity.removeFile(mFilePath);
if (!removeResult.isSuccess()) { if (!removeResult.isSuccess()) {
logAndThrow(removeResult); Utils.logAndThrow(LOG_TAG, removeResult);
} }
super.tearDown(); super.tearDown();
} }
private void logAndThrow(RemoteOperationResult result) throws Exception {
Log.e(LOG_TAG, result.getLogMessage(), result.getException());
throw new Exception(result.getLogMessage(), result.getException());
}
} }

View File

@ -24,7 +24,10 @@
package com.owncloud.android.lib.test_project.test; package com.owncloud.android.lib.test_project.test;
import java.io.File;
import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.resources.files.FileUtils;
import com.owncloud.android.lib.test_project.TestActivity; import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2; import android.test.ActivityInstrumentationTestCase2;
@ -32,27 +35,52 @@ import android.test.ActivityInstrumentationTestCase2;
/** /**
* Class to test Read Folder Operation * Class to test Read Folder Operation
* @author masensio * @author masensio
* * @author David A. Velasco
*/ */
public class ReadFolderTest extends ActivityInstrumentationTestCase2<TestActivity> { public class ReadFolderTest extends ActivityInstrumentationTestCase2<TestActivity> {
private static final String LOG_TAG = ReadFolderTest.class.getCanonicalName();
private static final String FOLDER_PATH = "/folderToRead";
private static final String FILE1_NAME = "file1.txt";
private static final String FILE2_NAME = "file2.txt";
private static final String FILE3_NAME = "file3.txt";
/* Folder data to read. This folder must exist on the account */
private final String mRemoteFolderPath = "/folderToRead";
private TestActivity mActivity; private TestActivity mActivity;
public ReadFolderTest() { public ReadFolderTest() {
super(TestActivity.class); super(TestActivity.class);
} }
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
setActivityInitialTouchMode(false); setActivityInitialTouchMode(false);
mActivity = getActivity(); mActivity = getActivity();
File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME);
RemoteOperationResult result = mActivity.createFolder(FOLDER_PATH, true);
if (result.isSuccess()) {
String [] filePaths = {
FOLDER_PATH + FileUtils.PATH_SEPARATOR + FILE1_NAME,
FOLDER_PATH + FileUtils.PATH_SEPARATOR + FILE2_NAME,
FOLDER_PATH + FileUtils.PATH_SEPARATOR + FILE3_NAME
};
for (int i=0; i<filePaths.length && result.isSuccess(); i++) {
result = mActivity.uploadFile(
textFile.getAbsolutePath(),
filePaths[i],
"txt/plain");
}
}
if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result);
}
} }
/** /**
@ -60,10 +88,22 @@ public class ReadFolderTest extends ActivityInstrumentationTestCase2<TestActivit
*/ */
public void testReadFolder() { public void testReadFolder() {
RemoteOperationResult result = mActivity.readFile(mRemoteFolderPath); RemoteOperationResult result = mActivity.readFile(FOLDER_PATH);
assertTrue(result.getData().size() > 1);
assertTrue(result.getData().size() == 4);
assertTrue(result.isSuccess()); assertTrue(result.isSuccess());
assertTrue(result.getData() != null && result.getData().size() > 1);
assertTrue(result.getData().size() == 4);
// TODO assert more properties about the result
}
@Override
protected void tearDown() throws Exception {
RemoteOperationResult removeResult = mActivity.removeFile(FOLDER_PATH);
if (!removeResult.isSuccess()) {
Utils.logAndThrow(LOG_TAG, removeResult);
}
super.tearDown();
} }
} }

View File

@ -0,0 +1,38 @@
/* ownCloud Android Library is available under MIT license
* Copyright (C) 2014 ownCloud Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
*/
package com.owncloud.android.lib.test_project.test;
import android.util.Log;
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
public class Utils {
public static void logAndThrow(String tag, RemoteOperationResult result) throws Exception {
Log.e(tag, result.getLogMessage(), result.getException());
throw new Exception(result.getLogMessage(), result.getException());
}
}