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

REALLY use Travis build number to avoid parallel tests interfere each other

This commit is contained in:
David A. Velasco 2014-11-12 18:18:04 +01:00
parent 1f27c0f318
commit 57173b175c
15 changed files with 306 additions and 219 deletions

View File

@ -1,5 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="custom_rules">
<target name="-pre-build" >
<!-- Make Travis build number available to the test app in the emulator -->
<if>
<condition>
<isset property="env.TRAVIS_BUILD_NUMBER" />
</condition>
<then>
<replaceregexp
file="res/values/setup.xml"
match='("build_number"&gt;)\s*(&lt;)'
replace="\1${env.TRAVIS_BUILD_NUMBER}\2"
byline="true" />
</then>
</if>
</target>
<!-- Run regular Android target 'test', but fails if any test is not successful -->
<target name="acceptance-test" depends="clean, debug, install" >
<property name="log.file" value="tests_output.txt" />

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<resources>
<string name="build_number"></string>
</resources>

View File

@ -23,9 +23,7 @@
*/
package com.owncloud.android.lib.test_project.test;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
@ -33,52 +31,47 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2;
/**
* Class to test Create Folder Operation
* @author masensio
* @author David A. Velasco
*
*/
public class CreateFolderTest extends ActivityInstrumentationTestCase2<TestActivity> {
public class CreateFolderTest extends RemoteTest {
private static final String LOG_TAG = CreateFolderTest.class.getCanonicalName();
private static final String FOLDER_PATH_BASE = "/testCreateFolder" + Utils.getBuildNumber();
private static final String FOLDER_PATH_BASE = "/testCreateFolder";
private TestActivity mActivity;
private String mCurrentDate;
private List<String> mCreatedFolderPaths;
private String mFullPath2FolderBase;
public CreateFolderTest() {
super(TestActivity.class);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
mCurrentDate = sdf.format(new Date());
super();
mCreatedFolderPaths = new ArrayList<String>();
}
@Override
protected void setUp() throws Exception {
super.setUp();
setActivityInitialTouchMode(false);
mActivity = getActivity();
mCreatedFolderPaths.clear();
mFullPath2FolderBase = mBaseFolderPath + FOLDER_PATH_BASE;
}
/**
* Test Create Folder
*/
public void testCreateFolder() {
String remotePath = FOLDER_PATH_BASE + mCurrentDate;
String remotePath = mFullPath2FolderBase;
mCreatedFolderPaths.add(remotePath);
RemoteOperationResult result = mActivity.createFolder(remotePath, true);
assertTrue(result.isSuccess() || result.getCode() == ResultCode.TIMEOUT);
// Create Subfolder
remotePath = FOLDER_PATH_BASE + mCurrentDate + FOLDER_PATH_BASE + mCurrentDate;
remotePath = mFullPath2FolderBase + FOLDER_PATH_BASE;
mCreatedFolderPaths.add(remotePath);
result = mActivity.createFolder(remotePath, true);
assertTrue(result.isSuccess() || result.getCode() == ResultCode.TIMEOUT);
@ -90,35 +83,35 @@ public class CreateFolderTest extends ActivityInstrumentationTestCase2<TestActiv
*/
public void testCreateFolderSpecialCharacters() {
String remotePath = FOLDER_PATH_BASE + "_\\" + mCurrentDate;
String remotePath = mFullPath2FolderBase + "_\\";
RemoteOperationResult result = mActivity.createFolder(remotePath, true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
remotePath = FOLDER_PATH_BASE + "_<" + mCurrentDate;
remotePath = mFullPath2FolderBase + "_<";
result = mActivity.createFolder(remotePath, true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
remotePath = FOLDER_PATH_BASE + "_>" + mCurrentDate;
remotePath = mFullPath2FolderBase + "_>";
result = mActivity.createFolder(remotePath, true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
remotePath = FOLDER_PATH_BASE + "_:" + mCurrentDate;
remotePath = mFullPath2FolderBase + "_:";
result = mActivity.createFolder(remotePath, true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
remotePath = FOLDER_PATH_BASE + "_\"" + mCurrentDate;
remotePath = mFullPath2FolderBase + "_\"";
result = mActivity.createFolder(remotePath, true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
remotePath = FOLDER_PATH_BASE + "_|" + mCurrentDate;
remotePath = mFullPath2FolderBase + "_|";
result = mActivity.createFolder(remotePath, true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
remotePath = FOLDER_PATH_BASE + "_?" + mCurrentDate;
remotePath = mFullPath2FolderBase + "_?";
result = mActivity.createFolder(remotePath, true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
remotePath = FOLDER_PATH_BASE + "_*" + mCurrentDate;
remotePath = mFullPath2FolderBase + "_*";
result = mActivity.createFolder(remotePath, true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
}

View File

@ -31,32 +31,27 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCo
import com.owncloud.android.lib.resources.shares.ShareType;
import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2;
public class CreateShareTest extends ActivityInstrumentationTestCase2<TestActivity> {
public class CreateShareTest extends RemoteTest {
private static final String LOG_TAG = CreateShareTest.class.getCanonicalName();
/* File to share.*/
private static final String FILE_TO_SHARE = "/fileToShare" + Utils.getBuildNumber() + ".txt";
private static final String FILE_TO_SHARE = "/fileToShare.txt";
private TestActivity mActivity;
public CreateShareTest() {
super(TestActivity.class);
}
private String mFullPath2FileToShare;
@Override
protected void setUp() throws Exception {
super.setUp();
setActivityInitialTouchMode(false);
mActivity = getActivity();
mFullPath2FileToShare = mBaseFolderPath + FILE_TO_SHARE;
File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME);
RemoteOperationResult result = mActivity.uploadFile(
textFile.getAbsolutePath(),
FILE_TO_SHARE,
mFullPath2FileToShare,
"txt/plain");
if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result);
@ -68,7 +63,7 @@ public class CreateShareTest extends ActivityInstrumentationTestCase2<TestActivi
*/
public void testCreatePublicShare() {
RemoteOperationResult result = mActivity.createShare(
FILE_TO_SHARE,
mFullPath2FileToShare,
ShareType.PUBLIC_LINK,
"",
false,
@ -80,7 +75,7 @@ public class CreateShareTest extends ActivityInstrumentationTestCase2<TestActivi
@Override
protected void tearDown() throws Exception {
RemoteOperationResult removeResult = mActivity.removeFile(FILE_TO_SHARE);
RemoteOperationResult removeResult = mActivity.removeFile(mFullPath2FileToShare);
if (!removeResult.isSuccess() && removeResult.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, removeResult);
}

View File

@ -30,7 +30,6 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
/**
@ -39,34 +38,34 @@ import android.util.Log;
*
*/
public class DeleteFileTest extends ActivityInstrumentationTestCase2<TestActivity> {
public class DeleteFileTest extends RemoteTest {
private static final String LOG_TAG = DeleteFileTest.class.getCanonicalName();
/* Folder data to delete. */
private static final String FOLDER_PATH = "/folderToDelete" + Utils.getBuildNumber();
private static final String FOLDER_PATH = "/folderToDelete";
/* File to delete. */
private static final String FILE_PATH = "/fileToDelete" + Utils.getBuildNumber() + ".txt";
private static final String FILE_PATH = "/fileToDelete.txt";
private static boolean mGlobalSetupDone = false;
private TestActivity mActivity;
public DeleteFileTest() {
super(TestActivity.class);
}
private String mFullPath2Folder;
private String mFullPath2File;
@Override
protected void setUp() throws Exception {
super.setUp();
setActivityInitialTouchMode(false);
mActivity = getActivity();
mFullPath2Folder = mBaseFolderPath + FOLDER_PATH;
mFullPath2File = mBaseFolderPath + FILE_PATH;
if (!mGlobalSetupDone) {
Log.v(LOG_TAG, "Starting global set up");
RemoteOperationResult result = mActivity.createFolder(FOLDER_PATH, true);
RemoteOperationResult result = mActivity.createFolder(mFullPath2Folder, true);
if (!result.isSuccess() && result.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, result);
}
@ -74,7 +73,7 @@ public class DeleteFileTest extends ActivityInstrumentationTestCase2<TestActivit
File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME);
result = mActivity.uploadFile(
textFile.getAbsolutePath(),
FILE_PATH,
mFullPath2File,
"txt/plain");
if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result);
@ -91,7 +90,7 @@ public class DeleteFileTest extends ActivityInstrumentationTestCase2<TestActivit
*/
public void testRemoveFolder() {
RemoteOperationResult result = mActivity.removeFile(FOLDER_PATH);
RemoteOperationResult result = mActivity.removeFile(mFullPath2Folder);
assertTrue(result.isSuccess());
}
@ -100,7 +99,7 @@ public class DeleteFileTest extends ActivityInstrumentationTestCase2<TestActivit
*/
public void testRemoveFile() {
RemoteOperationResult result = mActivity.removeFile(FILE_PATH);
RemoteOperationResult result = mActivity.removeFile(mFullPath2File);
assertTrue(result.isSuccess());
}

View File

@ -31,7 +31,6 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
/**
@ -40,50 +39,56 @@ import android.util.Log;
* @author David A. Velasco
*/
public class DownloadFileTest extends ActivityInstrumentationTestCase2<TestActivity> {
public class DownloadFileTest extends RemoteTest {
private static final String LOG_TAG = DownloadFileTest.class.getCanonicalName();
/* Files to download. These files must exist on the account */
private static final String IMAGE_PATH = "/fileToDownload" + Utils.getBuildNumber() + ".png";
private static final String IMAGE_PATH_WITH_SPECIAL_CHARS = "/@file@download" + Utils.getBuildNumber() + ".png";
private static final String IMAGE_NOT_FOUND = "/fileNotFound" + Utils.getBuildNumber() + ".png";
private static final String [] FILE_PATHS = { IMAGE_PATH, IMAGE_PATH_WITH_SPECIAL_CHARS };
private static final String IMAGE_PATH = "/fileToDownload.png";
private static final String IMAGE_PATH_WITH_SPECIAL_CHARS = "/@file@download.png";
private static final String IMAGE_NOT_FOUND = "/fileNotFound.png";
private static boolean mGlobalSetupDone = false;
private String mFullPath2Image;
private String mFullPath2ImageWitSpecialChars;
private String mFullPath2ImageNotFound;
private String mDownloadedFilePath;
private TestActivity mActivity;
public DownloadFileTest() {
super(TestActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
setActivityInitialTouchMode(false);
mActivity = getActivity();
mDownloadedFilePath = null;
mFullPath2Image = mBaseFolderPath + IMAGE_PATH;
mFullPath2ImageWitSpecialChars = mBaseFolderPath + IMAGE_PATH_WITH_SPECIAL_CHARS;
mFullPath2ImageNotFound = mBaseFolderPath + IMAGE_NOT_FOUND;
if (!mGlobalSetupDone) {
RemoteOperationResult result = null;
File imageFile = mActivity.extractAsset(TestActivity.ASSETS__IMAGE_FILE_NAME);
for (int i=0; i<FILE_PATHS.length && (result == null || result.isSuccess()); i++) {
result = mActivity.uploadFile(
imageFile.getAbsolutePath(),
FILE_PATHS[i],
"image/png");
}
RemoteOperationResult result = mActivity.uploadFile(
imageFile.getAbsolutePath(),
mFullPath2Image,
"image/png");
if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result);
}
result = mActivity.removeFile(IMAGE_NOT_FOUND);
result = mActivity.uploadFile(
imageFile.getAbsolutePath(),
mFullPath2ImageWitSpecialChars,
"image/png");
if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result);
}
result = mActivity.removeFile(mFullPath2ImageNotFound);
if (!result.isSuccess() && result.getCode() != ResultCode.FILE_NOT_FOUND) {
Utils.logAndThrow(LOG_TAG, result);
}
@ -99,10 +104,10 @@ public class DownloadFileTest extends ActivityInstrumentationTestCase2<TestActiv
*/
public void testDownloadFile() {
RemoteOperationResult result = mActivity.downloadFile(
new RemoteFile(IMAGE_PATH),
new RemoteFile(mFullPath2Image),
mActivity.getFilesDir().getAbsolutePath()
);
mDownloadedFilePath = IMAGE_PATH;
mDownloadedFilePath = mFullPath2Image;
assertTrue(result.isSuccess());
// TODO some checks involving the local file
}
@ -112,10 +117,10 @@ public class DownloadFileTest extends ActivityInstrumentationTestCase2<TestActiv
*/
public void testDownloadFileSpecialChars() {
RemoteOperationResult result = mActivity.downloadFile(
new RemoteFile(IMAGE_PATH_WITH_SPECIAL_CHARS),
new RemoteFile(mFullPath2ImageWitSpecialChars),
mActivity.getFilesDir().getAbsolutePath()
);
mDownloadedFilePath = IMAGE_PATH_WITH_SPECIAL_CHARS;
mDownloadedFilePath = mFullPath2ImageWitSpecialChars;
assertTrue(result.isSuccess());
// TODO some checks involving the local file
}
@ -125,7 +130,7 @@ public class DownloadFileTest extends ActivityInstrumentationTestCase2<TestActiv
*/
public void testDownloadFileNotFound() {
RemoteOperationResult result = mActivity.downloadFile(
new RemoteFile(IMAGE_NOT_FOUND),
new RemoteFile(mFullPath2ImageNotFound),
mActivity.getFilesDir().getAbsolutePath()
);
assertFalse(result.isSuccess());

View File

@ -31,8 +31,6 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCo
import com.owncloud.android.lib.resources.shares.ShareType;
import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2;
/**
* Class to test Get Shares Operation
*
@ -40,35 +38,32 @@ import android.test.ActivityInstrumentationTestCase2;
*
*/
public class GetSharesTest extends ActivityInstrumentationTestCase2<TestActivity> {
public class GetSharesTest extends RemoteTest {
private static final String LOG_TAG = GetSharesTest.class.getCanonicalName();
private static final String SHARED_FILE = "/sharedFileToGet" + Utils.getBuildNumber() + ".txt";
private static final String SHARED_FILE = "/sharedFileToGet.txt";
private TestActivity mActivity;
private String mFullPath2SharedFile;
public GetSharesTest() {
super(TestActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
setActivityInitialTouchMode(false);
mActivity = getActivity();
mFullPath2SharedFile = mBaseFolderPath + SHARED_FILE;
File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME);
RemoteOperationResult result = mActivity.uploadFile(
textFile.getAbsolutePath(),
SHARED_FILE,
mFullPath2SharedFile,
"txt/plain");
if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result);
}
result = mActivity.createShare(SHARED_FILE, ShareType.PUBLIC_LINK, "", false, "", 1);
result = mActivity.createShare(mFullPath2SharedFile, ShareType.PUBLIC_LINK, "", false, "", 1);
if (!result.isSuccess() && result.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, result);
}
@ -87,7 +82,7 @@ public class GetSharesTest extends ActivityInstrumentationTestCase2<TestActivity
@Override
protected void tearDown() throws Exception {
RemoteOperationResult removeResult = mActivity.removeFile(SHARED_FILE);
RemoteOperationResult removeResult = mActivity.removeFile(mFullPath2SharedFile);
if (!removeResult.isSuccess() && removeResult.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, removeResult);
}

View File

@ -46,8 +46,6 @@ import com.owncloud.android.lib.test_project.TestActivity;
import android.content.Context;
import android.net.Uri;
import android.test.ActivityInstrumentationTestCase2;
//import android.test.AndroidTestCase;
import android.util.Log;
/**
@ -69,15 +67,15 @@ import android.util.Log;
*/
//public class MoveFileTest extends AndroidTestCase {
public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity> {
public class MoveFileTest extends RemoteTest {
private static final String LOG_TAG = MoveFileTest.class.getCanonicalName();
/// Paths to files and folders in fixture
private static final String SRC_BASE_FOLDER = "/src" + Utils.getBuildNumber() + "/";
private static final String TARGET_BASE_FOLDER = "/target" + Utils.getBuildNumber() + "/";
private static final String SRC_BASE_FOLDER = "/src/";
private static final String TARGET_BASE_FOLDER = "/target/";
private static final String NO_FILE = "nofile.txt";
private static final String FILE1 = "file1.txt";
private static final String FILE2 = "file2.txt";
@ -209,7 +207,7 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
OwnCloudClient mClient = null;
public MoveFileTest() {
super(TestActivity.class);
super();
Protocol pr = Protocol.getProtocol("https");
if (pr == null || !(pr.getSocketFactory() instanceof SelfSignedConfidentSslSocketFactory)) {
@ -244,7 +242,7 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
RemoteOperationResult result = null;
for (String folderPath : FOLDERS_IN_FIXTURE) {
result = TestActivity.createFolder(folderPath, true, mClient);
result = TestActivity.createFolder(mBaseFolderPath + folderPath, true, mClient);
if (!result.isSuccess() && result.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, result);
}
@ -255,7 +253,7 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
);
for (String filePath : FILES_IN_FIXTURE) {
result = TestActivity.uploadFile(
txtFile.getAbsolutePath(), filePath, "txt/plain", mClient
txtFile.getAbsolutePath(), mBaseFolderPath + filePath, "txt/plain", mClient
);
if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result);
@ -277,8 +275,8 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move file
MoveRemoteFileOperation moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FILE_1,
TARGET_PATH_TO_FILE_1,
mBaseFolderPath + SRC_PATH_TO_FILE_1,
mBaseFolderPath + TARGET_PATH_TO_FILE_1,
false
);
RemoteOperationResult result = moveOperation.execute(mClient);
@ -286,8 +284,8 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move & rename file, different location
moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FILE_2,
TARGET_PATH_TO_FILE_2_RENAMED,
mBaseFolderPath + SRC_PATH_TO_FILE_2,
mBaseFolderPath + TARGET_PATH_TO_FILE_2_RENAMED,
false
);
result = moveOperation.execute(mClient);
@ -295,8 +293,8 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move & rename file, same location (rename file)
moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FILE_3,
SRC_PATH_TO_FILE_3_RENAMED,
mBaseFolderPath + SRC_PATH_TO_FILE_3,
mBaseFolderPath + SRC_PATH_TO_FILE_3_RENAMED,
false
);
result = moveOperation.execute(mClient);
@ -304,8 +302,8 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move empty folder
moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_EMPTY_FOLDER,
TARGET_PATH_TO_EMPTY_FOLDER,
mBaseFolderPath + SRC_PATH_TO_EMPTY_FOLDER,
mBaseFolderPath + TARGET_PATH_TO_EMPTY_FOLDER,
false
);
result = moveOperation.execute(mClient);
@ -313,8 +311,8 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move non-empty folder
moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FULL_FOLDER_1,
TARGET_PATH_TO_FULL_FOLDER_1,
mBaseFolderPath + SRC_PATH_TO_FULL_FOLDER_1,
mBaseFolderPath + TARGET_PATH_TO_FULL_FOLDER_1,
false
);
result = moveOperation.execute(mClient);
@ -322,8 +320,8 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move & rename folder, different location
moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FULL_FOLDER_2,
TARGET_PATH_TO_FULL_FOLDER_2_RENAMED,
mBaseFolderPath + SRC_PATH_TO_FULL_FOLDER_2,
mBaseFolderPath + TARGET_PATH_TO_FULL_FOLDER_2_RENAMED,
false
);
result = moveOperation.execute(mClient);
@ -331,8 +329,8 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move & rename folder, same location (rename folder)
moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FULL_FOLDER_3,
SRC_PATH_TO_FULL_FOLDER_3_RENAMED,
mBaseFolderPath + SRC_PATH_TO_FULL_FOLDER_3,
mBaseFolderPath + SRC_PATH_TO_FULL_FOLDER_3_RENAMED,
false
);
result = moveOperation.execute(mClient);
@ -340,8 +338,8 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move for nothing (success, but no interaction with network)
moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FILE_4,
SRC_PATH_TO_FILE_4,
mBaseFolderPath + SRC_PATH_TO_FILE_4,
mBaseFolderPath + SRC_PATH_TO_FILE_4,
false
);
result = moveOperation.execute(mClient);
@ -349,9 +347,9 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move overwriting
moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FULL_FOLDER_4,
TARGET_PATH_TO_ALREADY_EXISTENT_EMPTY_FOLDER_4,
true
mBaseFolderPath + SRC_PATH_TO_FULL_FOLDER_4,
mBaseFolderPath + TARGET_PATH_TO_ALREADY_EXISTENT_EMPTY_FOLDER_4,
true
);
result = moveOperation.execute(mClient);
assertTrue(result.isSuccess());
@ -361,45 +359,45 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// file to move does not exist
moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_NON_EXISTENT_FILE,
TARGET_PATH_TO_NON_EXISTENT_FILE,
false
mBaseFolderPath + SRC_PATH_TO_NON_EXISTENT_FILE,
mBaseFolderPath + TARGET_PATH_TO_NON_EXISTENT_FILE,
false
);
result = moveOperation.execute(mClient);
assertTrue(result.getCode() == ResultCode.FILE_NOT_FOUND);
// folder to move into does no exist
moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FILE_5,
TARGET_PATH_TO_FILE_5_INTO_NON_EXISTENT_FOLDER,
false
mBaseFolderPath + SRC_PATH_TO_FILE_5,
mBaseFolderPath + TARGET_PATH_TO_FILE_5_INTO_NON_EXISTENT_FOLDER,
false
);
result = moveOperation.execute(mClient);
assertTrue(result.getHttpCode() == HttpStatus.SC_CONFLICT);
// target location (renaming) has invalid characters
moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FILE_6,
TARGET_PATH_RENAMED_WITH_INVALID_CHARS,
false
mBaseFolderPath + SRC_PATH_TO_FILE_6,
mBaseFolderPath + TARGET_PATH_RENAMED_WITH_INVALID_CHARS,
false
);
result = moveOperation.execute(mClient);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
// name collision
moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FILE_7,
TARGET_PATH_TO_ALREADY_EXISTENT_FILE_7,
false
mBaseFolderPath + SRC_PATH_TO_FILE_7,
mBaseFolderPath + TARGET_PATH_TO_ALREADY_EXISTENT_FILE_7,
false
);
result = moveOperation.execute(mClient);
assertTrue(result.getCode() == ResultCode.INVALID_OVERWRITE);
// move a folder into a descendant
moveOperation = new MoveRemoteFileOperation(
SRC_BASE_FOLDER,
SRC_PATH_TO_EMPTY_FOLDER,
false
mBaseFolderPath + SRC_BASE_FOLDER,
mBaseFolderPath + SRC_PATH_TO_EMPTY_FOLDER,
false
);
result = moveOperation.execute(mClient);
assertTrue(result.getCode() == ResultCode.INVALID_MOVE_INTO_DESCENDANT);
@ -411,8 +409,8 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
Log.v(LOG_TAG, "Deleting remote fixture...");
String[] mPathsToCleanUp = {
SRC_BASE_FOLDER,
TARGET_BASE_FOLDER
mBaseFolderPath + SRC_BASE_FOLDER,
mBaseFolderPath + TARGET_BASE_FOLDER
};
for (String path : mPathsToCleanUp) {

View File

@ -29,25 +29,20 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2;
/**
* Class to test Read File Operation
* @author masensio
* @author David A. Velasco
*/
public class ReadFileTest extends ActivityInstrumentationTestCase2<TestActivity> {
public class ReadFileTest extends RemoteTest {
private static final String LOG_TAG = ReadFileTest.class.getCanonicalName();
private TestActivity mActivity;
private String FILE_PATH = "/fileToRead" + Utils.getBuildNumber() + ".txt";
public ReadFileTest() {
super(TestActivity.class);
}
private String FILE_PATH = "/fileToRead.txt";
private String mFullPath2File;
@Override
protected void setUp() throws Exception {
@ -55,11 +50,12 @@ public class ReadFileTest extends ActivityInstrumentationTestCase2<TestActivity
setActivityInitialTouchMode(false);
mActivity = getActivity();
mFullPath2File = mBaseFolderPath + FILE_PATH;
File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME);
RemoteOperationResult uploadResult = mActivity.uploadFile(
textFile.getAbsolutePath(),
FILE_PATH,
mFullPath2File,
"txt/plain");
if (!uploadResult.isSuccess()) {
Utils.logAndThrow(LOG_TAG, uploadResult);
@ -70,7 +66,7 @@ public class ReadFileTest extends ActivityInstrumentationTestCase2<TestActivity
* Test Read File
*/
public void testReadFile() {
RemoteOperationResult result = mActivity.readFile(FILE_PATH);
RemoteOperationResult result = mActivity.readFile(mFullPath2File);
assertTrue(result.getData() != null && result.getData().size() == 1);
assertTrue(result.isSuccess());
// TODO check more properties of the result
@ -78,7 +74,7 @@ public class ReadFileTest extends ActivityInstrumentationTestCase2<TestActivity
@Override
protected void tearDown() throws Exception {
RemoteOperationResult removeResult = mActivity.removeFile(FILE_PATH);
RemoteOperationResult removeResult = mActivity.removeFile(mFullPath2File);
if (!removeResult.isSuccess() && removeResult.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, removeResult);
}

View File

@ -30,19 +30,17 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2;
/**
* Class to test Read Folder Operation
* @author masensio
* @author David A. Velasco
*/
public class ReadFolderTest extends ActivityInstrumentationTestCase2<TestActivity> {
public class ReadFolderTest extends RemoteTest {
private static final String LOG_TAG = ReadFolderTest.class.getCanonicalName();
private static final String FOLDER_PATH = "/folderToRead" + Utils.getBuildNumber();
private static final String FOLDER_PATH = "/folderToRead";
private static final String [] FILE_PATHS = {
FOLDER_PATH + "/file1.txt",
FOLDER_PATH + "/file2.txt",
@ -51,24 +49,22 @@ public class ReadFolderTest extends ActivityInstrumentationTestCase2<TestActivit
private TestActivity mActivity;
public ReadFolderTest() {
super(TestActivity.class);
}
private String mFullPathToFolder;
@Override
protected void setUp() throws Exception {
super.setUp();
setActivityInitialTouchMode(false);
mActivity = getActivity();
mFullPathToFolder = mBaseFolderPath + FOLDER_PATH;
File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME);
RemoteOperationResult result = mActivity.createFolder(FOLDER_PATH, true);
RemoteOperationResult result = mActivity.createFolder( mFullPathToFolder, true);
if (result.isSuccess()) {
for (int i=0; i<FILE_PATHS.length && result.isSuccess(); i++) {
result = mActivity.uploadFile(
textFile.getAbsolutePath(),
FILE_PATHS[i],
mBaseFolderPath + FILE_PATHS[i],
"txt/plain");
}
}
@ -84,7 +80,7 @@ public class ReadFolderTest extends ActivityInstrumentationTestCase2<TestActivit
*/
public void testReadFolder() {
RemoteOperationResult result = mActivity.readFile(FOLDER_PATH);
RemoteOperationResult result = mActivity.readFile(mFullPathToFolder);
assertTrue(result.isSuccess());
assertTrue(result.getData() != null && result.getData().size() > 1);
assertTrue(result.getData().size() == 4);
@ -94,7 +90,7 @@ public class ReadFolderTest extends ActivityInstrumentationTestCase2<TestActivit
@Override
protected void tearDown() throws Exception {
RemoteOperationResult removeResult = mActivity.removeFile(FOLDER_PATH);
RemoteOperationResult removeResult = mActivity.removeFile(mFullPathToFolder);
if (!removeResult.isSuccess() && removeResult.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, removeResult);
}

View File

@ -0,0 +1,69 @@
/* 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 com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2;
/**
* Class to test Create Folder Operation
* @author David A. Velasco
*
*/
public class RemoteTest extends ActivityInstrumentationTestCase2<TestActivity> {
private static final String LOG_TAG = RemoteTest.class.getSimpleName();
protected String mBaseFolderPath = "/test_for_build_";
public RemoteTest() {
super(TestActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
setActivityInitialTouchMode(false);
mBaseFolderPath += Utils.getBuildNumber(getActivity());
RemoteOperationResult result = getActivity().createFolder(mBaseFolderPath, true);
if (!result.isSuccess() && result.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, result);
}
}
@Override
protected void tearDown() throws Exception {
RemoteOperationResult removeResult = getActivity().removeFile(mBaseFolderPath);
if (!removeResult.isSuccess() && removeResult.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, removeResult);
}
super.tearDown();
}
}

View File

@ -32,39 +32,35 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2;
public class RemoveShareTest extends ActivityInstrumentationTestCase2<TestActivity> {
public class RemoveShareTest extends RemoteTest {
private static final String LOG_TAG = RemoveShareTest.class.getCanonicalName();
private static final String FILE_TO_UNSHARE = "/fileToUnshare" + Utils.getBuildNumber() + ".txt";
private static final String FILE_TO_UNSHARE = "/fileToUnshare.txt";
private TestActivity mActivity;
private String mFullPath2FileToUnshare;
private long mShareId;
public RemoveShareTest() {
super(TestActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
setActivityInitialTouchMode(false);
mActivity = getActivity();
mFullPath2FileToUnshare = mBaseFolderPath + FILE_TO_UNSHARE;
File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME);
RemoteOperationResult result = mActivity.uploadFile(
textFile.getAbsolutePath(),
FILE_TO_UNSHARE,
mFullPath2FileToUnshare,
"txt/plain");
if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result);
}
result = mActivity.createShare(FILE_TO_UNSHARE, ShareType.PUBLIC_LINK, "", false, "", 1);
result = mActivity.createShare(mFullPath2FileToUnshare, ShareType.PUBLIC_LINK, "", false, "", 1);
if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result);
} else {
@ -85,7 +81,7 @@ public class RemoveShareTest extends ActivityInstrumentationTestCase2<TestActivi
@Override
protected void tearDown() throws Exception {
RemoteOperationResult removeResult = mActivity.removeFile(FILE_TO_UNSHARE);
RemoteOperationResult removeResult = mActivity.removeFile(mFullPath2FileToUnshare);
if (!removeResult.isSuccess() && removeResult.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, removeResult);
}

View File

@ -31,7 +31,6 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCo
import com.owncloud.android.lib.resources.files.FileUtils;
import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
/**
@ -40,20 +39,20 @@ import android.util.Log;
*
*/
public class RenameFileTest extends ActivityInstrumentationTestCase2<TestActivity> {
public class RenameFileTest extends RemoteTest {
private static final String LOG_TAG = RenameFileTest.class.getCanonicalName();
/* Folder data to rename. This folder must exist on the account */
private static final String OLD_FOLDER_NAME = "folderToRename" + Utils.getBuildNumber();
private static final String OLD_FOLDER_NAME = "folderToRename";
private static final String OLD_FOLDER_PATH = FileUtils.PATH_SEPARATOR + OLD_FOLDER_NAME;
private static final String NEW_FOLDER_NAME = "renamedFolder" + Utils.getBuildNumber();
private static final String NEW_FOLDER_NAME = "renamedFolder";
private static final String NEW_FOLDER_PATH = FileUtils.PATH_SEPARATOR + NEW_FOLDER_NAME;
/* File data to rename. This file must exist on the account */
private static final String OLD_FILE_NAME = "fileToRename" + Utils.getBuildNumber() + ".png";
private static final String OLD_FILE_NAME = "fileToRename.png";
private static final String OLD_FILE_PATH = FileUtils.PATH_SEPARATOR + OLD_FILE_NAME;
private static final String NEW_FILE_NAME = "renamedFile" + Utils.getBuildNumber() + ".png";
private static final String NEW_FILE_NAME = "renamedFile.png";
private static final String NEW_FILE_PATH = FileUtils.PATH_SEPARATOR + NEW_FILE_NAME;
@ -61,22 +60,26 @@ public class RenameFileTest extends ActivityInstrumentationTestCase2<TestActivit
private String mToCleanUpInServer;
private TestActivity mActivity;
public RenameFileTest() {
super(TestActivity.class);
}
private String mFullPath2OldFolder;
private String mFullPath2NewFolder;
private String mFullPath2OldFile;
private String mFullPath2NewFile;
@Override
protected void setUp() throws Exception {
super.setUp();
setActivityInitialTouchMode(false);
mActivity = getActivity();
mFullPath2OldFolder = mBaseFolderPath + OLD_FOLDER_PATH;
mFullPath2NewFolder = mBaseFolderPath + NEW_FOLDER_PATH;
mFullPath2OldFile = mBaseFolderPath + OLD_FILE_PATH;
mFullPath2NewFile = mBaseFolderPath + NEW_FILE_PATH;
if (!mGlobalSetupDone) {
Log.v(LOG_TAG, "Starting global set up");
RemoteOperationResult result = mActivity.createFolder(OLD_FOLDER_NAME, true);
RemoteOperationResult result = mActivity.createFolder(mFullPath2OldFolder, true);
if (!result.isSuccess() && result.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, result);
}
@ -84,7 +87,7 @@ public class RenameFileTest extends ActivityInstrumentationTestCase2<TestActivit
File imageFile = mActivity.extractAsset(TestActivity.ASSETS__IMAGE_FILE_NAME);
result = mActivity.uploadFile(
imageFile.getAbsolutePath(),
OLD_FILE_PATH,
mFullPath2OldFile,
"image/png");
if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result);
@ -102,14 +105,14 @@ public class RenameFileTest extends ActivityInstrumentationTestCase2<TestActivit
*/
public void testRenameFolder() {
mToCleanUpInServer = OLD_FOLDER_PATH;
mToCleanUpInServer = mFullPath2OldFolder;
RemoteOperationResult result = mActivity.renameFile(
OLD_FOLDER_NAME,
OLD_FOLDER_PATH,
mFullPath2OldFolder,
NEW_FOLDER_NAME,
true);
assertTrue(result.isSuccess());
mToCleanUpInServer = NEW_FOLDER_PATH;
mToCleanUpInServer = mFullPath2NewFolder;
}
/**
@ -117,35 +120,35 @@ public class RenameFileTest extends ActivityInstrumentationTestCase2<TestActivit
*/
public void testRenameFolderForbiddenChars() {
RemoteOperationResult result = mActivity.renameFile(OLD_FOLDER_NAME, OLD_FOLDER_PATH,
RemoteOperationResult result = mActivity.renameFile(OLD_FOLDER_NAME, mFullPath2OldFolder,
NEW_FOLDER_NAME + "\\", true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile(OLD_FOLDER_NAME, OLD_FOLDER_PATH,
result = mActivity.renameFile(OLD_FOLDER_NAME, mFullPath2OldFolder,
NEW_FOLDER_NAME + "<", true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile(OLD_FOLDER_NAME, OLD_FOLDER_PATH,
result = mActivity.renameFile(OLD_FOLDER_NAME, mFullPath2OldFolder,
NEW_FOLDER_NAME + ">", true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile(OLD_FOLDER_NAME, OLD_FOLDER_PATH,
result = mActivity.renameFile(OLD_FOLDER_NAME, mFullPath2OldFolder,
NEW_FOLDER_NAME + ":", true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile(OLD_FOLDER_NAME, OLD_FOLDER_PATH,
result = mActivity.renameFile(OLD_FOLDER_NAME, mFullPath2OldFolder,
NEW_FOLDER_NAME + "\"", true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile(OLD_FOLDER_NAME, OLD_FOLDER_PATH,
result = mActivity.renameFile(OLD_FOLDER_NAME, mFullPath2OldFolder,
NEW_FOLDER_NAME + "|", true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile(OLD_FOLDER_NAME, OLD_FOLDER_PATH,
result = mActivity.renameFile(OLD_FOLDER_NAME, mFullPath2OldFolder,
NEW_FOLDER_NAME + "?", true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile(OLD_FOLDER_NAME, OLD_FOLDER_PATH,
result = mActivity.renameFile(OLD_FOLDER_NAME, mFullPath2OldFolder,
NEW_FOLDER_NAME + "*", true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
}
@ -154,14 +157,14 @@ public class RenameFileTest extends ActivityInstrumentationTestCase2<TestActivit
* Test Rename File
*/
public void testRenameFile() {
mToCleanUpInServer = OLD_FILE_PATH;
mToCleanUpInServer = mFullPath2OldFile;
RemoteOperationResult result = mActivity.renameFile(
OLD_FILE_NAME,
OLD_FILE_PATH,
mFullPath2OldFile,
NEW_FILE_NAME,
false);
assertTrue(result.isSuccess());
mToCleanUpInServer = NEW_FILE_PATH;
mToCleanUpInServer = mFullPath2NewFile;
}
@ -171,56 +174,56 @@ public class RenameFileTest extends ActivityInstrumentationTestCase2<TestActivit
public void testRenameFileForbiddenChars() {
RemoteOperationResult result = mActivity.renameFile(
OLD_FILE_NAME,
OLD_FILE_PATH,
mFullPath2OldFile,
"\\" + NEW_FILE_NAME,
false);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile(
OLD_FILE_NAME,
OLD_FILE_PATH,
mFullPath2OldFile,
"<" + NEW_FILE_NAME,
false);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile(
OLD_FILE_NAME,
OLD_FILE_PATH,
mFullPath2OldFile,
">" + NEW_FILE_NAME,
false);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile(
OLD_FILE_NAME,
OLD_FILE_PATH,
mFullPath2OldFile,
":" + NEW_FILE_NAME,
false);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile(
OLD_FILE_NAME,
OLD_FILE_PATH,
mFullPath2OldFile,
"\"" + NEW_FILE_NAME,
false);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile(
OLD_FILE_NAME,
OLD_FILE_PATH,
mFullPath2OldFile,
"|" + NEW_FILE_NAME,
false);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile(
OLD_FILE_NAME,
OLD_FILE_PATH,
mFullPath2OldFile,
"?" + NEW_FILE_NAME,
false);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile(
OLD_FILE_NAME,
OLD_FILE_PATH,
mFullPath2OldFile,
"*" + NEW_FILE_NAME, false);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);

View File

@ -26,8 +26,6 @@ package com.owncloud.android.lib.test_project.test;
import java.io.File;
import android.test.ActivityInstrumentationTestCase2;
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.test_project.TestActivity;
@ -39,15 +37,15 @@ import com.owncloud.android.lib.test_project.TestActivity;
*
*/
public class UploadFileTest extends ActivityInstrumentationTestCase2<TestActivity> {
public class UploadFileTest extends RemoteTest {
private static final String LOG_TAG = UploadFileTest.class.getCanonicalName();
private static final String UPLOAD_PATH = "/uploadedImage" + Utils.getBuildNumber() + ".png";
private static final String UPLOAD_PATH = "/uploadedImage.png";
private static final String CHUNKED_UPLOAD_PATH = "/uploadedVideo" + Utils.getBuildNumber() + ".MP4";
private static final String CHUNKED_UPLOAD_PATH = "/uploadedVideo.MP4";
private static final String FILE_NOT_FOUND_PATH = "/notFoundShouldNotBeHere" + Utils.getBuildNumber() + ".png";
private static final String FILE_NOT_FOUND_PATH = "/notFoundShouldNotBeHere.png";
private TestActivity mActivity;
@ -55,10 +53,6 @@ public class UploadFileTest extends ActivityInstrumentationTestCase2<TestActivit
private String mUploadedFilePath;
public UploadFileTest() {
super(TestActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
@ -76,12 +70,13 @@ public class UploadFileTest extends ActivityInstrumentationTestCase2<TestActivit
*/
public void testUploadFile() {
String fullPath2Upload = mBaseFolderPath + UPLOAD_PATH;
RemoteOperationResult result = mActivity.uploadFile(
mFileToUpload.getAbsolutePath(),
UPLOAD_PATH,
fullPath2Upload,
"image/png"
);
mUploadedFilePath = UPLOAD_PATH;
mUploadedFilePath = fullPath2Upload;
assertTrue(result.isSuccess());
}
@ -90,12 +85,13 @@ public class UploadFileTest extends ActivityInstrumentationTestCase2<TestActivit
*/
public void testUploadFileWithChunks() {
String fullPath2Upload = mBaseFolderPath + CHUNKED_UPLOAD_PATH;
RemoteOperationResult result = mActivity.uploadFile(
mFileToUploadWithChunks.getAbsolutePath(),
CHUNKED_UPLOAD_PATH,
fullPath2Upload,
"video/mp4"
);
mUploadedFilePath = CHUNKED_UPLOAD_PATH;
mUploadedFilePath = fullPath2Upload;
assertTrue(result.isSuccess());
}
@ -104,12 +100,13 @@ public class UploadFileTest extends ActivityInstrumentationTestCase2<TestActivit
*/
public void testUploadFileNotFound() {
String fullPath2Upload = mBaseFolderPath + FILE_NOT_FOUND_PATH;
RemoteOperationResult result = mActivity.uploadFile(
FILE_NOT_FOUND_PATH,
FILE_NOT_FOUND_PATH,
fullPath2Upload,
"image/png"
);
mUploadedFilePath = FILE_NOT_FOUND_PATH;
mUploadedFilePath = fullPath2Upload;
assertFalse(result.isSuccess());
}

View File

@ -24,6 +24,7 @@
package com.owncloud.android.lib.test_project.test;
import android.content.Context;
import android.util.Log;
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
@ -32,7 +33,6 @@ public class Utils {
private static String LOG_TAG = Utils.class.getSimpleName();
private static final String BUILD_NUMBER_ENV_VAR = "TRAVIS_BUILD_NUMBER";
private static String sBuildNumber = null;
public static void logAndThrow(String tag, RemoteOperationResult result) throws Exception {
@ -40,10 +40,10 @@ public class Utils {
throw new Exception(result.getLogMessage(), result.getException());
}
public static String getBuildNumber() {
public static String getBuildNumber(Context context) {
if (sBuildNumber == null) {
sBuildNumber = System.getenv(BUILD_NUMBER_ENV_VAR);
if (sBuildNumber == null) {
sBuildNumber = context.getString(R.string.build_number);
if (sBuildNumber == null || sBuildNumber.length() == 0) {
Log.w(LOG_TAG, "Build number unknown, using current time instead");
sBuildNumber = Long.toString(System.currentTimeMillis());
}