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

Updated ReadFileTest to work with an empty OC server

This commit is contained in:
David A. Velasco 2014-04-15 12:32:03 +02:00
parent f3eac35cd3
commit e2380a6a5c
3 changed files with 97 additions and 29 deletions

View File

@ -0,0 +1,3 @@
This is a simple text file.
To make some tests.

View File

@ -25,6 +25,10 @@
package com.owncloud.android.lib.test_project; package com.owncloud.android.lib.test_project;
import java.io.File; import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
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;
@ -52,6 +56,7 @@ 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;
@ -66,11 +71,13 @@ public class TestActivity extends Activity {
private static final String TAG = null; private static final String TAG = null;
// This account must exists on the server side // This account must exists on the server side
private String mServerUri; private String mServerUri;
private String mWebdavPath;
private String mUser; private String mUser;
private String mPass; private String mPass;
private boolean mChunked; private boolean mChunked;
private static final String WEBDAV_PATH = "/remote.php/webdav";
private static final int BUFFER_SIZE = 1024;
//private Account mAccount = null; //private Account mAccount = null;
private OwnCloudClient mClient; private OwnCloudClient mClient;
@ -80,7 +87,6 @@ public class TestActivity extends Activity {
setContentView(R.layout.activity_test); setContentView(R.layout.activity_test);
mServerUri = getString(R.string.server_base_url); mServerUri = getString(R.string.server_base_url);
mWebdavPath = getString(R.string.webdav_path);
mUser = getString(R.string.username); mUser = getString(R.string.username);
mPass = getString(R.string.password); mPass = getString(R.string.password);
mChunked = getResources().getBoolean(R.bool.chunked); mChunked = getResources().getBoolean(R.bool.chunked);
@ -98,7 +104,7 @@ public class TestActivity extends Activity {
} }
} }
Uri uri = Uri.parse(mServerUri + mWebdavPath); Uri uri = Uri.parse(mServerUri + WEBDAV_PATH);
mClient = new OwnCloudClient(NetworkUtils.getMultiThreadedConnManager()); mClient = new OwnCloudClient(NetworkUtils.getMultiThreadedConnManager());
mClient.setDefaultTimeouts( mClient.setDefaultTimeouts(
OwnCloudClientFactory.DEFAULT_DATA_TIMEOUT, OwnCloudClientFactory.DEFAULT_DATA_TIMEOUT,
@ -107,6 +113,8 @@ public class TestActivity extends Activity {
mClient.setFollowRedirects(true); mClient.setFollowRedirects(true);
mClient.setBasicCredentials(mUser, mPass); mClient.setBasicCredentials(mUser, mPass);
mClient.setBaseUri(Uri.parse(mServerUri)); mClient.setBaseUri(Uri.parse(mServerUri));
Log.v(TAG, "onCreate finished, ownCloud client ready");
} }
@ -273,4 +281,33 @@ public class TestActivity extends Activity {
return result; return result;
} }
/**
* Extracts file from AssetManager to cache folder.
*
* @param fileName Name of the asset file to extract.
* @return File instance of the extracted file.
*/
public File extractAsset(String fileName) throws IOException {
File extractedFile = new File(getCacheDir() + File.separator + fileName);
if (!extractedFile.exists()) {
InputStream in = null;
FileOutputStream out = null;
in = getAssets().open(fileName);
out = new FileOutputStream(extractedFile);
byte[] buffer = new byte[BUFFER_SIZE];
int readCount;
while((readCount = in.read(buffer)) != -1){
out.write(buffer, 0, readCount);
}
out.flush();
out.close();
in.close();
}
return extractedFile;
}
} }

View File

@ -23,45 +23,73 @@
*/ */
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;
import android.util.Log;
/** /**
* Class to test Read File Operation * Class to test Read File Operation
* @author masensio * @author masensio
* * @author David A. Velasco
*/ */
public class ReadFileTest extends ActivityInstrumentationTestCase2<TestActivity> { public class ReadFileTest extends ActivityInstrumentationTestCase2<TestActivity> {
/* File data to read. This file must exist on the account */ private static final String LOG_TAG = ReadFileTest.class.getCanonicalName();
private final String mRemoteFolderPath = "/fileToRead.txt";
private static final String TEXT_FILE_NAME = "textFile.txt";
private TestActivity mActivity;
public ReadFileTest() {
super(TestActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
setActivityInitialTouchMode(false);
mActivity = getActivity();
}
/** private TestActivity mActivity;
* Test Read File
*/ public ReadFileTest() {
public void testReadFile() { super(TestActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
RemoteOperationResult result = mActivity.readFile(mRemoteFolderPath); setActivityInitialTouchMode(false);
assertTrue(result.getData().size() == 1); mActivity = getActivity();
assertTrue(result.isSuccess());
} File textFile = mActivity.extractAsset(TEXT_FILE_NAME);
RemoteOperationResult uploadResult = mActivity.uploadFile(
textFile.getAbsolutePath(),
FileUtils.PATH_SEPARATOR + TEXT_FILE_NAME,
"txt/plain");
if (!uploadResult.isSuccess()) {
logAndThrow(uploadResult);
}
}
/**
* Test Read File
*/
public void testReadFile() {
RemoteOperationResult result = mActivity.readFile(TEXT_FILE_NAME);
assertTrue(result.getData().size() == 1);
assertTrue(result.isSuccess());
// TODO check more properties of the result
}
@Override
protected void tearDown() throws Exception {
RemoteOperationResult removeResult = mActivity.removeFile(TEXT_FILE_NAME);
if (!removeResult.isSuccess()) {
logAndThrow(removeResult);
}
super.tearDown();
}
private void logAndThrow(RemoteOperationResult result) throws Exception {
Log.e(LOG_TAG, result.getLogMessage(), result.getException());
throw new Exception(result.getLogMessage(), result.getException());
}
} }