1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-08 08:26:10 +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"?> <?xml version="1.0" encoding="UTF-8"?>
<project name="custom_rules"> <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 --> <!-- Run regular Android target 'test', but fails if any test is not successful -->
<target name="acceptance-test" depends="clean, debug, install" > <target name="acceptance-test" depends="clean, debug, install" >
<property name="log.file" value="tests_output.txt" /> <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; package com.owncloud.android.lib.test_project.test;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; 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.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.test_project.TestActivity; import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2;
/** /**
* Class to test Create Folder Operation * Class to test Create Folder Operation
* @author masensio * @author masensio
* @author David A. Velasco * @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 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 TestActivity mActivity;
private String mCurrentDate;
private List<String> mCreatedFolderPaths; private List<String> mCreatedFolderPaths;
private String mFullPath2FolderBase;
public CreateFolderTest() { public CreateFolderTest() {
super(TestActivity.class); super();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
mCurrentDate = sdf.format(new Date());
mCreatedFolderPaths = new ArrayList<String>(); mCreatedFolderPaths = new ArrayList<String>();
} }
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
setActivityInitialTouchMode(false);
mActivity = getActivity(); mActivity = getActivity();
mCreatedFolderPaths.clear(); mCreatedFolderPaths.clear();
mFullPath2FolderBase = mBaseFolderPath + FOLDER_PATH_BASE;
} }
/** /**
* Test Create Folder * Test Create Folder
*/ */
public void testCreateFolder() { public void testCreateFolder() {
String remotePath = FOLDER_PATH_BASE + mCurrentDate; String remotePath = mFullPath2FolderBase;
mCreatedFolderPaths.add(remotePath); mCreatedFolderPaths.add(remotePath);
RemoteOperationResult result = mActivity.createFolder(remotePath, true); RemoteOperationResult result = mActivity.createFolder(remotePath, true);
assertTrue(result.isSuccess() || result.getCode() == ResultCode.TIMEOUT); assertTrue(result.isSuccess() || result.getCode() == ResultCode.TIMEOUT);
// Create Subfolder // Create Subfolder
remotePath = FOLDER_PATH_BASE + mCurrentDate + FOLDER_PATH_BASE + mCurrentDate; remotePath = mFullPath2FolderBase + FOLDER_PATH_BASE;
mCreatedFolderPaths.add(remotePath); mCreatedFolderPaths.add(remotePath);
result = mActivity.createFolder(remotePath, true); result = mActivity.createFolder(remotePath, true);
assertTrue(result.isSuccess() || result.getCode() == ResultCode.TIMEOUT); assertTrue(result.isSuccess() || result.getCode() == ResultCode.TIMEOUT);
@ -90,35 +83,35 @@ public class CreateFolderTest extends ActivityInstrumentationTestCase2<TestActiv
*/ */
public void testCreateFolderSpecialCharacters() { public void testCreateFolderSpecialCharacters() {
String remotePath = FOLDER_PATH_BASE + "_\\" + mCurrentDate; String remotePath = mFullPath2FolderBase + "_\\";
RemoteOperationResult result = mActivity.createFolder(remotePath, true); RemoteOperationResult result = mActivity.createFolder(remotePath, true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
remotePath = FOLDER_PATH_BASE + "_<" + mCurrentDate; remotePath = mFullPath2FolderBase + "_<";
result = mActivity.createFolder(remotePath, true); result = mActivity.createFolder(remotePath, true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
remotePath = FOLDER_PATH_BASE + "_>" + mCurrentDate; remotePath = mFullPath2FolderBase + "_>";
result = mActivity.createFolder(remotePath, true); result = mActivity.createFolder(remotePath, true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
remotePath = FOLDER_PATH_BASE + "_:" + mCurrentDate; remotePath = mFullPath2FolderBase + "_:";
result = mActivity.createFolder(remotePath, true); result = mActivity.createFolder(remotePath, true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
remotePath = FOLDER_PATH_BASE + "_\"" + mCurrentDate; remotePath = mFullPath2FolderBase + "_\"";
result = mActivity.createFolder(remotePath, true); result = mActivity.createFolder(remotePath, true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
remotePath = FOLDER_PATH_BASE + "_|" + mCurrentDate; remotePath = mFullPath2FolderBase + "_|";
result = mActivity.createFolder(remotePath, true); result = mActivity.createFolder(remotePath, true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
remotePath = FOLDER_PATH_BASE + "_?" + mCurrentDate; remotePath = mFullPath2FolderBase + "_?";
result = mActivity.createFolder(remotePath, true); result = mActivity.createFolder(remotePath, true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
remotePath = FOLDER_PATH_BASE + "_*" + mCurrentDate; remotePath = mFullPath2FolderBase + "_*";
result = mActivity.createFolder(remotePath, true); result = mActivity.createFolder(remotePath, true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); 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.resources.shares.ShareType;
import com.owncloud.android.lib.test_project.TestActivity; import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2; public class CreateShareTest extends RemoteTest {
public class CreateShareTest extends ActivityInstrumentationTestCase2<TestActivity> {
private static final String LOG_TAG = CreateShareTest.class.getCanonicalName(); private static final String LOG_TAG = CreateShareTest.class.getCanonicalName();
/* File to share.*/ /* 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; private TestActivity mActivity;
private String mFullPath2FileToShare;
public CreateShareTest() {
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();
mFullPath2FileToShare = mBaseFolderPath + FILE_TO_SHARE;
File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME); File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME);
RemoteOperationResult result = mActivity.uploadFile( RemoteOperationResult result = mActivity.uploadFile(
textFile.getAbsolutePath(), textFile.getAbsolutePath(),
FILE_TO_SHARE, mFullPath2FileToShare,
"txt/plain"); "txt/plain");
if (!result.isSuccess()) { if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result); Utils.logAndThrow(LOG_TAG, result);
@ -68,7 +63,7 @@ public class CreateShareTest extends ActivityInstrumentationTestCase2<TestActivi
*/ */
public void testCreatePublicShare() { public void testCreatePublicShare() {
RemoteOperationResult result = mActivity.createShare( RemoteOperationResult result = mActivity.createShare(
FILE_TO_SHARE, mFullPath2FileToShare,
ShareType.PUBLIC_LINK, ShareType.PUBLIC_LINK,
"", "",
false, false,
@ -80,7 +75,7 @@ public class CreateShareTest extends ActivityInstrumentationTestCase2<TestActivi
@Override @Override
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
RemoteOperationResult removeResult = mActivity.removeFile(FILE_TO_SHARE); RemoteOperationResult removeResult = mActivity.removeFile(mFullPath2FileToShare);
if (!removeResult.isSuccess() && removeResult.getCode() != ResultCode.TIMEOUT) { if (!removeResult.isSuccess() && removeResult.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, removeResult); 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.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.test_project.TestActivity; import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log; 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(); private static final String LOG_TAG = DeleteFileTest.class.getCanonicalName();
/* Folder data to delete. */ /* Folder data to delete. */
private static final String FOLDER_PATH = "/folderToDelete" + Utils.getBuildNumber(); private static final String FOLDER_PATH = "/folderToDelete";
/* File to delete. */ /* 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 static boolean mGlobalSetupDone = false;
private TestActivity mActivity; private TestActivity mActivity;
private String mFullPath2Folder;
public DeleteFileTest() { private String mFullPath2File;
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();
mFullPath2Folder = mBaseFolderPath + FOLDER_PATH;
mFullPath2File = mBaseFolderPath + FILE_PATH;
if (!mGlobalSetupDone) { if (!mGlobalSetupDone) {
Log.v(LOG_TAG, "Starting global set up"); 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) { if (!result.isSuccess() && result.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, result); Utils.logAndThrow(LOG_TAG, result);
} }
@ -74,7 +73,7 @@ public class DeleteFileTest extends ActivityInstrumentationTestCase2<TestActivit
File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME); File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME);
result = mActivity.uploadFile( result = mActivity.uploadFile(
textFile.getAbsolutePath(), textFile.getAbsolutePath(),
FILE_PATH, mFullPath2File,
"txt/plain"); "txt/plain");
if (!result.isSuccess()) { if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result); Utils.logAndThrow(LOG_TAG, result);
@ -91,7 +90,7 @@ public class DeleteFileTest extends ActivityInstrumentationTestCase2<TestActivit
*/ */
public void testRemoveFolder() { public void testRemoveFolder() {
RemoteOperationResult result = mActivity.removeFile(FOLDER_PATH); RemoteOperationResult result = mActivity.removeFile(mFullPath2Folder);
assertTrue(result.isSuccess()); assertTrue(result.isSuccess());
} }
@ -100,7 +99,7 @@ public class DeleteFileTest extends ActivityInstrumentationTestCase2<TestActivit
*/ */
public void testRemoveFile() { public void testRemoveFile() {
RemoteOperationResult result = mActivity.removeFile(FILE_PATH); RemoteOperationResult result = mActivity.removeFile(mFullPath2File);
assertTrue(result.isSuccess()); 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.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.test_project.TestActivity; import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log; import android.util.Log;
/** /**
@ -40,50 +39,56 @@ import android.util.Log;
* @author David A. Velasco * @author David A. Velasco
*/ */
public class DownloadFileTest extends ActivityInstrumentationTestCase2<TestActivity> { public class DownloadFileTest extends RemoteTest {
private static final String LOG_TAG = DownloadFileTest.class.getCanonicalName(); private static final String LOG_TAG = DownloadFileTest.class.getCanonicalName();
/* Files to download. These files must exist on the account */ /* 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 = "/fileToDownload.png";
private static final String IMAGE_PATH_WITH_SPECIAL_CHARS = "/@file@download" + Utils.getBuildNumber() + ".png"; private static final String IMAGE_PATH_WITH_SPECIAL_CHARS = "/@file@download.png";
private static final String IMAGE_NOT_FOUND = "/fileNotFound" + Utils.getBuildNumber() + ".png"; private static final String IMAGE_NOT_FOUND = "/fileNotFound.png";
private static final String [] FILE_PATHS = { IMAGE_PATH, IMAGE_PATH_WITH_SPECIAL_CHARS };
private static boolean mGlobalSetupDone = false; private static boolean mGlobalSetupDone = false;
private String mFullPath2Image;
private String mFullPath2ImageWitSpecialChars;
private String mFullPath2ImageNotFound;
private String mDownloadedFilePath; private String mDownloadedFilePath;
private TestActivity mActivity; private TestActivity mActivity;
public DownloadFileTest() {
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();
mDownloadedFilePath = null; mDownloadedFilePath = null;
mFullPath2Image = mBaseFolderPath + IMAGE_PATH;
mFullPath2ImageWitSpecialChars = mBaseFolderPath + IMAGE_PATH_WITH_SPECIAL_CHARS;
mFullPath2ImageNotFound = mBaseFolderPath + IMAGE_NOT_FOUND;
if (!mGlobalSetupDone) { if (!mGlobalSetupDone) {
RemoteOperationResult result = null;
File imageFile = mActivity.extractAsset(TestActivity.ASSETS__IMAGE_FILE_NAME); File imageFile = mActivity.extractAsset(TestActivity.ASSETS__IMAGE_FILE_NAME);
for (int i=0; i<FILE_PATHS.length && (result == null || result.isSuccess()); i++) { RemoteOperationResult result = mActivity.uploadFile(
result = mActivity.uploadFile( imageFile.getAbsolutePath(),
imageFile.getAbsolutePath(), mFullPath2Image,
FILE_PATHS[i], "image/png");
"image/png");
}
if (!result.isSuccess()) { if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result); 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) { if (!result.isSuccess() && result.getCode() != ResultCode.FILE_NOT_FOUND) {
Utils.logAndThrow(LOG_TAG, result); Utils.logAndThrow(LOG_TAG, result);
} }
@ -99,10 +104,10 @@ public class DownloadFileTest extends ActivityInstrumentationTestCase2<TestActiv
*/ */
public void testDownloadFile() { public void testDownloadFile() {
RemoteOperationResult result = mActivity.downloadFile( RemoteOperationResult result = mActivity.downloadFile(
new RemoteFile(IMAGE_PATH), new RemoteFile(mFullPath2Image),
mActivity.getFilesDir().getAbsolutePath() mActivity.getFilesDir().getAbsolutePath()
); );
mDownloadedFilePath = IMAGE_PATH; mDownloadedFilePath = mFullPath2Image;
assertTrue(result.isSuccess()); assertTrue(result.isSuccess());
// TODO some checks involving the local file // TODO some checks involving the local file
} }
@ -112,10 +117,10 @@ public class DownloadFileTest extends ActivityInstrumentationTestCase2<TestActiv
*/ */
public void testDownloadFileSpecialChars() { public void testDownloadFileSpecialChars() {
RemoteOperationResult result = mActivity.downloadFile( RemoteOperationResult result = mActivity.downloadFile(
new RemoteFile(IMAGE_PATH_WITH_SPECIAL_CHARS), new RemoteFile(mFullPath2ImageWitSpecialChars),
mActivity.getFilesDir().getAbsolutePath() mActivity.getFilesDir().getAbsolutePath()
); );
mDownloadedFilePath = IMAGE_PATH_WITH_SPECIAL_CHARS; mDownloadedFilePath = mFullPath2ImageWitSpecialChars;
assertTrue(result.isSuccess()); assertTrue(result.isSuccess());
// TODO some checks involving the local file // TODO some checks involving the local file
} }
@ -125,7 +130,7 @@ public class DownloadFileTest extends ActivityInstrumentationTestCase2<TestActiv
*/ */
public void testDownloadFileNotFound() { public void testDownloadFileNotFound() {
RemoteOperationResult result = mActivity.downloadFile( RemoteOperationResult result = mActivity.downloadFile(
new RemoteFile(IMAGE_NOT_FOUND), new RemoteFile(mFullPath2ImageNotFound),
mActivity.getFilesDir().getAbsolutePath() mActivity.getFilesDir().getAbsolutePath()
); );
assertFalse(result.isSuccess()); 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.resources.shares.ShareType;
import com.owncloud.android.lib.test_project.TestActivity; import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2;
/** /**
* Class to test Get Shares Operation * 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 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 TestActivity mActivity;
private String mFullPath2SharedFile;
public GetSharesTest() {
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();
mFullPath2SharedFile = mBaseFolderPath + SHARED_FILE;
File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME); File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME);
RemoteOperationResult result = mActivity.uploadFile( RemoteOperationResult result = mActivity.uploadFile(
textFile.getAbsolutePath(), textFile.getAbsolutePath(),
SHARED_FILE, mFullPath2SharedFile,
"txt/plain"); "txt/plain");
if (!result.isSuccess()) { if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result); 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) { if (!result.isSuccess() && result.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, result); Utils.logAndThrow(LOG_TAG, result);
} }
@ -87,7 +82,7 @@ public class GetSharesTest extends ActivityInstrumentationTestCase2<TestActivity
@Override @Override
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
RemoteOperationResult removeResult = mActivity.removeFile(SHARED_FILE); RemoteOperationResult removeResult = mActivity.removeFile(mFullPath2SharedFile);
if (!removeResult.isSuccess() && removeResult.getCode() != ResultCode.TIMEOUT) { if (!removeResult.isSuccess() && removeResult.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, removeResult); 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.content.Context;
import android.net.Uri; import android.net.Uri;
import android.test.ActivityInstrumentationTestCase2;
//import android.test.AndroidTestCase;
import android.util.Log; import android.util.Log;
/** /**
@ -69,15 +67,15 @@ import android.util.Log;
*/ */
//public class MoveFileTest extends AndroidTestCase { //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(); private static final String LOG_TAG = MoveFileTest.class.getCanonicalName();
/// Paths to files and folders in fixture /// Paths to files and folders in fixture
private static final String SRC_BASE_FOLDER = "/src" + Utils.getBuildNumber() + "/"; private static final String SRC_BASE_FOLDER = "/src/";
private static final String TARGET_BASE_FOLDER = "/target" + Utils.getBuildNumber() + "/"; private static final String TARGET_BASE_FOLDER = "/target/";
private static final String NO_FILE = "nofile.txt"; private static final String NO_FILE = "nofile.txt";
private static final String FILE1 = "file1.txt"; private static final String FILE1 = "file1.txt";
private static final String FILE2 = "file2.txt"; private static final String FILE2 = "file2.txt";
@ -209,7 +207,7 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
OwnCloudClient mClient = null; OwnCloudClient mClient = null;
public MoveFileTest() { public MoveFileTest() {
super(TestActivity.class); super();
Protocol pr = Protocol.getProtocol("https"); Protocol pr = Protocol.getProtocol("https");
if (pr == null || !(pr.getSocketFactory() instanceof SelfSignedConfidentSslSocketFactory)) { if (pr == null || !(pr.getSocketFactory() instanceof SelfSignedConfidentSslSocketFactory)) {
@ -244,7 +242,7 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
RemoteOperationResult result = null; RemoteOperationResult result = null;
for (String folderPath : FOLDERS_IN_FIXTURE) { 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) { if (!result.isSuccess() && result.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, result); Utils.logAndThrow(LOG_TAG, result);
} }
@ -255,7 +253,7 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
); );
for (String filePath : FILES_IN_FIXTURE) { for (String filePath : FILES_IN_FIXTURE) {
result = TestActivity.uploadFile( result = TestActivity.uploadFile(
txtFile.getAbsolutePath(), filePath, "txt/plain", mClient txtFile.getAbsolutePath(), mBaseFolderPath + filePath, "txt/plain", mClient
); );
if (!result.isSuccess()) { if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result); Utils.logAndThrow(LOG_TAG, result);
@ -277,8 +275,8 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move file // move file
MoveRemoteFileOperation moveOperation = new MoveRemoteFileOperation( MoveRemoteFileOperation moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FILE_1, mBaseFolderPath + SRC_PATH_TO_FILE_1,
TARGET_PATH_TO_FILE_1, mBaseFolderPath + TARGET_PATH_TO_FILE_1,
false false
); );
RemoteOperationResult result = moveOperation.execute(mClient); RemoteOperationResult result = moveOperation.execute(mClient);
@ -286,8 +284,8 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move & rename file, different location // move & rename file, different location
moveOperation = new MoveRemoteFileOperation( moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FILE_2, mBaseFolderPath + SRC_PATH_TO_FILE_2,
TARGET_PATH_TO_FILE_2_RENAMED, mBaseFolderPath + TARGET_PATH_TO_FILE_2_RENAMED,
false false
); );
result = moveOperation.execute(mClient); result = moveOperation.execute(mClient);
@ -295,8 +293,8 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move & rename file, same location (rename file) // move & rename file, same location (rename file)
moveOperation = new MoveRemoteFileOperation( moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FILE_3, mBaseFolderPath + SRC_PATH_TO_FILE_3,
SRC_PATH_TO_FILE_3_RENAMED, mBaseFolderPath + SRC_PATH_TO_FILE_3_RENAMED,
false false
); );
result = moveOperation.execute(mClient); result = moveOperation.execute(mClient);
@ -304,8 +302,8 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move empty folder // move empty folder
moveOperation = new MoveRemoteFileOperation( moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_EMPTY_FOLDER, mBaseFolderPath + SRC_PATH_TO_EMPTY_FOLDER,
TARGET_PATH_TO_EMPTY_FOLDER, mBaseFolderPath + TARGET_PATH_TO_EMPTY_FOLDER,
false false
); );
result = moveOperation.execute(mClient); result = moveOperation.execute(mClient);
@ -313,8 +311,8 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move non-empty folder // move non-empty folder
moveOperation = new MoveRemoteFileOperation( moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FULL_FOLDER_1, mBaseFolderPath + SRC_PATH_TO_FULL_FOLDER_1,
TARGET_PATH_TO_FULL_FOLDER_1, mBaseFolderPath + TARGET_PATH_TO_FULL_FOLDER_1,
false false
); );
result = moveOperation.execute(mClient); result = moveOperation.execute(mClient);
@ -322,8 +320,8 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move & rename folder, different location // move & rename folder, different location
moveOperation = new MoveRemoteFileOperation( moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FULL_FOLDER_2, mBaseFolderPath + SRC_PATH_TO_FULL_FOLDER_2,
TARGET_PATH_TO_FULL_FOLDER_2_RENAMED, mBaseFolderPath + TARGET_PATH_TO_FULL_FOLDER_2_RENAMED,
false false
); );
result = moveOperation.execute(mClient); result = moveOperation.execute(mClient);
@ -331,8 +329,8 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move & rename folder, same location (rename folder) // move & rename folder, same location (rename folder)
moveOperation = new MoveRemoteFileOperation( moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FULL_FOLDER_3, mBaseFolderPath + SRC_PATH_TO_FULL_FOLDER_3,
SRC_PATH_TO_FULL_FOLDER_3_RENAMED, mBaseFolderPath + SRC_PATH_TO_FULL_FOLDER_3_RENAMED,
false false
); );
result = moveOperation.execute(mClient); result = moveOperation.execute(mClient);
@ -340,8 +338,8 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move for nothing (success, but no interaction with network) // move for nothing (success, but no interaction with network)
moveOperation = new MoveRemoteFileOperation( moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FILE_4, mBaseFolderPath + SRC_PATH_TO_FILE_4,
SRC_PATH_TO_FILE_4, mBaseFolderPath + SRC_PATH_TO_FILE_4,
false false
); );
result = moveOperation.execute(mClient); result = moveOperation.execute(mClient);
@ -349,9 +347,9 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// move overwriting // move overwriting
moveOperation = new MoveRemoteFileOperation( moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FULL_FOLDER_4, mBaseFolderPath + SRC_PATH_TO_FULL_FOLDER_4,
TARGET_PATH_TO_ALREADY_EXISTENT_EMPTY_FOLDER_4, mBaseFolderPath + TARGET_PATH_TO_ALREADY_EXISTENT_EMPTY_FOLDER_4,
true true
); );
result = moveOperation.execute(mClient); result = moveOperation.execute(mClient);
assertTrue(result.isSuccess()); assertTrue(result.isSuccess());
@ -361,45 +359,45 @@ public class MoveFileTest extends ActivityInstrumentationTestCase2<TestActivity>
// file to move does not exist // file to move does not exist
moveOperation = new MoveRemoteFileOperation( moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_NON_EXISTENT_FILE, mBaseFolderPath + SRC_PATH_TO_NON_EXISTENT_FILE,
TARGET_PATH_TO_NON_EXISTENT_FILE, mBaseFolderPath + TARGET_PATH_TO_NON_EXISTENT_FILE,
false false
); );
result = moveOperation.execute(mClient); result = moveOperation.execute(mClient);
assertTrue(result.getCode() == ResultCode.FILE_NOT_FOUND); assertTrue(result.getCode() == ResultCode.FILE_NOT_FOUND);
// folder to move into does no exist // folder to move into does no exist
moveOperation = new MoveRemoteFileOperation( moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FILE_5, mBaseFolderPath + SRC_PATH_TO_FILE_5,
TARGET_PATH_TO_FILE_5_INTO_NON_EXISTENT_FOLDER, mBaseFolderPath + TARGET_PATH_TO_FILE_5_INTO_NON_EXISTENT_FOLDER,
false false
); );
result = moveOperation.execute(mClient); result = moveOperation.execute(mClient);
assertTrue(result.getHttpCode() == HttpStatus.SC_CONFLICT); assertTrue(result.getHttpCode() == HttpStatus.SC_CONFLICT);
// target location (renaming) has invalid characters // target location (renaming) has invalid characters
moveOperation = new MoveRemoteFileOperation( moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FILE_6, mBaseFolderPath + SRC_PATH_TO_FILE_6,
TARGET_PATH_RENAMED_WITH_INVALID_CHARS, mBaseFolderPath + TARGET_PATH_RENAMED_WITH_INVALID_CHARS,
false false
); );
result = moveOperation.execute(mClient); result = moveOperation.execute(mClient);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
// name collision // name collision
moveOperation = new MoveRemoteFileOperation( moveOperation = new MoveRemoteFileOperation(
SRC_PATH_TO_FILE_7, mBaseFolderPath + SRC_PATH_TO_FILE_7,
TARGET_PATH_TO_ALREADY_EXISTENT_FILE_7, mBaseFolderPath + TARGET_PATH_TO_ALREADY_EXISTENT_FILE_7,
false false
); );
result = moveOperation.execute(mClient); result = moveOperation.execute(mClient);
assertTrue(result.getCode() == ResultCode.INVALID_OVERWRITE); assertTrue(result.getCode() == ResultCode.INVALID_OVERWRITE);
// move a folder into a descendant // move a folder into a descendant
moveOperation = new MoveRemoteFileOperation( moveOperation = new MoveRemoteFileOperation(
SRC_BASE_FOLDER, mBaseFolderPath + SRC_BASE_FOLDER,
SRC_PATH_TO_EMPTY_FOLDER, mBaseFolderPath + SRC_PATH_TO_EMPTY_FOLDER,
false false
); );
result = moveOperation.execute(mClient); result = moveOperation.execute(mClient);
assertTrue(result.getCode() == ResultCode.INVALID_MOVE_INTO_DESCENDANT); 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..."); Log.v(LOG_TAG, "Deleting remote fixture...");
String[] mPathsToCleanUp = { String[] mPathsToCleanUp = {
SRC_BASE_FOLDER, mBaseFolderPath + SRC_BASE_FOLDER,
TARGET_BASE_FOLDER mBaseFolderPath + TARGET_BASE_FOLDER
}; };
for (String path : mPathsToCleanUp) { 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.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.test_project.TestActivity; import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2;
/** /**
* Class to test Read File Operation * Class to test Read File Operation
* @author masensio * @author masensio
* @author David A. Velasco * @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 static final String LOG_TAG = ReadFileTest.class.getCanonicalName();
private TestActivity mActivity; private TestActivity mActivity;
private String FILE_PATH = "/fileToRead" + Utils.getBuildNumber() + ".txt"; private String FILE_PATH = "/fileToRead.txt";
private String mFullPath2File;
public ReadFileTest() {
super(TestActivity.class);
}
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
@ -55,11 +50,12 @@ public class ReadFileTest extends ActivityInstrumentationTestCase2<TestActivity
setActivityInitialTouchMode(false); setActivityInitialTouchMode(false);
mActivity = getActivity(); mActivity = getActivity();
mFullPath2File = mBaseFolderPath + FILE_PATH;
File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME); File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME);
RemoteOperationResult uploadResult = mActivity.uploadFile( RemoteOperationResult uploadResult = mActivity.uploadFile(
textFile.getAbsolutePath(), textFile.getAbsolutePath(),
FILE_PATH, mFullPath2File,
"txt/plain"); "txt/plain");
if (!uploadResult.isSuccess()) { if (!uploadResult.isSuccess()) {
Utils.logAndThrow(LOG_TAG, uploadResult); Utils.logAndThrow(LOG_TAG, uploadResult);
@ -70,7 +66,7 @@ public class ReadFileTest extends ActivityInstrumentationTestCase2<TestActivity
* Test Read File * Test Read File
*/ */
public void testReadFile() { public void testReadFile() {
RemoteOperationResult result = mActivity.readFile(FILE_PATH); RemoteOperationResult result = mActivity.readFile(mFullPath2File);
assertTrue(result.getData() != null && 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
@ -78,7 +74,7 @@ public class ReadFileTest extends ActivityInstrumentationTestCase2<TestActivity
@Override @Override
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
RemoteOperationResult removeResult = mActivity.removeFile(FILE_PATH); RemoteOperationResult removeResult = mActivity.removeFile(mFullPath2File);
if (!removeResult.isSuccess() && removeResult.getCode() != ResultCode.TIMEOUT) { if (!removeResult.isSuccess() && removeResult.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, removeResult); 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.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.test_project.TestActivity; import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2;
/** /**
* Class to test Read Folder Operation * Class to test Read Folder Operation
* @author masensio * @author masensio
* @author David A. Velasco * @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 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 = { private static final String [] FILE_PATHS = {
FOLDER_PATH + "/file1.txt", FOLDER_PATH + "/file1.txt",
FOLDER_PATH + "/file2.txt", FOLDER_PATH + "/file2.txt",
@ -51,24 +49,22 @@ public class ReadFolderTest extends ActivityInstrumentationTestCase2<TestActivit
private TestActivity mActivity; private TestActivity mActivity;
private String mFullPathToFolder;
public ReadFolderTest() {
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();
mFullPathToFolder = mBaseFolderPath + FOLDER_PATH;
File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME); 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()) { if (result.isSuccess()) {
for (int i=0; i<FILE_PATHS.length && result.isSuccess(); i++) { for (int i=0; i<FILE_PATHS.length && result.isSuccess(); i++) {
result = mActivity.uploadFile( result = mActivity.uploadFile(
textFile.getAbsolutePath(), textFile.getAbsolutePath(),
FILE_PATHS[i], mBaseFolderPath + FILE_PATHS[i],
"txt/plain"); "txt/plain");
} }
} }
@ -84,7 +80,7 @@ public class ReadFolderTest extends ActivityInstrumentationTestCase2<TestActivit
*/ */
public void testReadFolder() { public void testReadFolder() {
RemoteOperationResult result = mActivity.readFile(FOLDER_PATH); RemoteOperationResult result = mActivity.readFile(mFullPathToFolder);
assertTrue(result.isSuccess()); assertTrue(result.isSuccess());
assertTrue(result.getData() != null && result.getData().size() > 1); assertTrue(result.getData() != null && result.getData().size() > 1);
assertTrue(result.getData().size() == 4); assertTrue(result.getData().size() == 4);
@ -94,7 +90,7 @@ public class ReadFolderTest extends ActivityInstrumentationTestCase2<TestActivit
@Override @Override
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
RemoteOperationResult removeResult = mActivity.removeFile(FOLDER_PATH); RemoteOperationResult removeResult = mActivity.removeFile(mFullPathToFolder);
if (!removeResult.isSuccess() && removeResult.getCode() != ResultCode.TIMEOUT) { if (!removeResult.isSuccess() && removeResult.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, removeResult); 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.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.test_project.TestActivity; import com.owncloud.android.lib.test_project.TestActivity;
import android.test.ActivityInstrumentationTestCase2; public class RemoveShareTest extends RemoteTest {
public class RemoveShareTest extends ActivityInstrumentationTestCase2<TestActivity> {
private static final String LOG_TAG = RemoveShareTest.class.getCanonicalName(); 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 TestActivity mActivity;
private String mFullPath2FileToUnshare;
private long mShareId; private long mShareId;
public RemoveShareTest() {
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();
mFullPath2FileToUnshare = mBaseFolderPath + FILE_TO_UNSHARE;
File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME); File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME);
RemoteOperationResult result = mActivity.uploadFile( RemoteOperationResult result = mActivity.uploadFile(
textFile.getAbsolutePath(), textFile.getAbsolutePath(),
FILE_TO_UNSHARE, mFullPath2FileToUnshare,
"txt/plain"); "txt/plain");
if (!result.isSuccess()) { if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result); 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()) { if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result); Utils.logAndThrow(LOG_TAG, result);
} else { } else {
@ -85,7 +81,7 @@ public class RemoveShareTest extends ActivityInstrumentationTestCase2<TestActivi
@Override @Override
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
RemoteOperationResult removeResult = mActivity.removeFile(FILE_TO_UNSHARE); RemoteOperationResult removeResult = mActivity.removeFile(mFullPath2FileToUnshare);
if (!removeResult.isSuccess() && removeResult.getCode() != ResultCode.TIMEOUT) { if (!removeResult.isSuccess() && removeResult.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, removeResult); 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.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.util.Log; 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(); private static final String LOG_TAG = RenameFileTest.class.getCanonicalName();
/* Folder data to rename. This folder must exist on the account */ /* 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 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; private static final String NEW_FOLDER_PATH = FileUtils.PATH_SEPARATOR + NEW_FOLDER_NAME;
/* File data to rename. This file must exist on the account */ /* 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 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; 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 String mToCleanUpInServer;
private TestActivity mActivity; private TestActivity mActivity;
private String mFullPath2OldFolder;
public RenameFileTest() { private String mFullPath2NewFolder;
super(TestActivity.class); private String mFullPath2OldFile;
private String mFullPath2NewFile;
}
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
setActivityInitialTouchMode(false); setActivityInitialTouchMode(false);
mActivity = getActivity(); mActivity = getActivity();
mFullPath2OldFolder = mBaseFolderPath + OLD_FOLDER_PATH;
mFullPath2NewFolder = mBaseFolderPath + NEW_FOLDER_PATH;
mFullPath2OldFile = mBaseFolderPath + OLD_FILE_PATH;
mFullPath2NewFile = mBaseFolderPath + NEW_FILE_PATH;
if (!mGlobalSetupDone) { if (!mGlobalSetupDone) {
Log.v(LOG_TAG, "Starting global set up"); 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) { if (!result.isSuccess() && result.getCode() != ResultCode.TIMEOUT) {
Utils.logAndThrow(LOG_TAG, result); Utils.logAndThrow(LOG_TAG, result);
} }
@ -84,7 +87,7 @@ public class RenameFileTest extends ActivityInstrumentationTestCase2<TestActivit
File imageFile = mActivity.extractAsset(TestActivity.ASSETS__IMAGE_FILE_NAME); File imageFile = mActivity.extractAsset(TestActivity.ASSETS__IMAGE_FILE_NAME);
result = mActivity.uploadFile( result = mActivity.uploadFile(
imageFile.getAbsolutePath(), imageFile.getAbsolutePath(),
OLD_FILE_PATH, mFullPath2OldFile,
"image/png"); "image/png");
if (!result.isSuccess()) { if (!result.isSuccess()) {
Utils.logAndThrow(LOG_TAG, result); Utils.logAndThrow(LOG_TAG, result);
@ -102,14 +105,14 @@ public class RenameFileTest extends ActivityInstrumentationTestCase2<TestActivit
*/ */
public void testRenameFolder() { public void testRenameFolder() {
mToCleanUpInServer = OLD_FOLDER_PATH; mToCleanUpInServer = mFullPath2OldFolder;
RemoteOperationResult result = mActivity.renameFile( RemoteOperationResult result = mActivity.renameFile(
OLD_FOLDER_NAME, OLD_FOLDER_NAME,
OLD_FOLDER_PATH, mFullPath2OldFolder,
NEW_FOLDER_NAME, NEW_FOLDER_NAME,
true); true);
assertTrue(result.isSuccess()); assertTrue(result.isSuccess());
mToCleanUpInServer = NEW_FOLDER_PATH; mToCleanUpInServer = mFullPath2NewFolder;
} }
/** /**
@ -117,35 +120,35 @@ public class RenameFileTest extends ActivityInstrumentationTestCase2<TestActivit
*/ */
public void testRenameFolderForbiddenChars() { 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); NEW_FOLDER_NAME + "\\", true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); 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); NEW_FOLDER_NAME + "<", true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); 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); NEW_FOLDER_NAME + ">", true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); 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); NEW_FOLDER_NAME + ":", true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); 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); NEW_FOLDER_NAME + "\"", true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); 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); NEW_FOLDER_NAME + "|", true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); 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); NEW_FOLDER_NAME + "?", true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); 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); NEW_FOLDER_NAME + "*", true);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
} }
@ -154,14 +157,14 @@ public class RenameFileTest extends ActivityInstrumentationTestCase2<TestActivit
* Test Rename File * Test Rename File
*/ */
public void testRenameFile() { public void testRenameFile() {
mToCleanUpInServer = OLD_FILE_PATH; mToCleanUpInServer = mFullPath2OldFile;
RemoteOperationResult result = mActivity.renameFile( RemoteOperationResult result = mActivity.renameFile(
OLD_FILE_NAME, OLD_FILE_NAME,
OLD_FILE_PATH, mFullPath2OldFile,
NEW_FILE_NAME, NEW_FILE_NAME,
false); false);
assertTrue(result.isSuccess()); assertTrue(result.isSuccess());
mToCleanUpInServer = NEW_FILE_PATH; mToCleanUpInServer = mFullPath2NewFile;
} }
@ -171,56 +174,56 @@ public class RenameFileTest extends ActivityInstrumentationTestCase2<TestActivit
public void testRenameFileForbiddenChars() { public void testRenameFileForbiddenChars() {
RemoteOperationResult result = mActivity.renameFile( RemoteOperationResult result = mActivity.renameFile(
OLD_FILE_NAME, OLD_FILE_NAME,
OLD_FILE_PATH, mFullPath2OldFile,
"\\" + NEW_FILE_NAME, "\\" + NEW_FILE_NAME,
false); false);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile( result = mActivity.renameFile(
OLD_FILE_NAME, OLD_FILE_NAME,
OLD_FILE_PATH, mFullPath2OldFile,
"<" + NEW_FILE_NAME, "<" + NEW_FILE_NAME,
false); false);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile( result = mActivity.renameFile(
OLD_FILE_NAME, OLD_FILE_NAME,
OLD_FILE_PATH, mFullPath2OldFile,
">" + NEW_FILE_NAME, ">" + NEW_FILE_NAME,
false); false);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile( result = mActivity.renameFile(
OLD_FILE_NAME, OLD_FILE_NAME,
OLD_FILE_PATH, mFullPath2OldFile,
":" + NEW_FILE_NAME, ":" + NEW_FILE_NAME,
false); false);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile( result = mActivity.renameFile(
OLD_FILE_NAME, OLD_FILE_NAME,
OLD_FILE_PATH, mFullPath2OldFile,
"\"" + NEW_FILE_NAME, "\"" + NEW_FILE_NAME,
false); false);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile( result = mActivity.renameFile(
OLD_FILE_NAME, OLD_FILE_NAME,
OLD_FILE_PATH, mFullPath2OldFile,
"|" + NEW_FILE_NAME, "|" + NEW_FILE_NAME,
false); false);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile( result = mActivity.renameFile(
OLD_FILE_NAME, OLD_FILE_NAME,
OLD_FILE_PATH, mFullPath2OldFile,
"?" + NEW_FILE_NAME, "?" + NEW_FILE_NAME,
false); false);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME);
result = mActivity.renameFile( result = mActivity.renameFile(
OLD_FILE_NAME, OLD_FILE_NAME,
OLD_FILE_PATH, mFullPath2OldFile,
"*" + NEW_FILE_NAME, false); "*" + NEW_FILE_NAME, false);
assertTrue(result.getCode() == ResultCode.INVALID_CHARACTER_IN_NAME); 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 java.io.File;
import android.test.ActivityInstrumentationTestCase2;
import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode; import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.test_project.TestActivity; 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 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; private TestActivity mActivity;
@ -55,10 +53,6 @@ public class UploadFileTest extends ActivityInstrumentationTestCase2<TestActivit
private String mUploadedFilePath; private String mUploadedFilePath;
public UploadFileTest() {
super(TestActivity.class);
}
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
@ -76,12 +70,13 @@ public class UploadFileTest extends ActivityInstrumentationTestCase2<TestActivit
*/ */
public void testUploadFile() { public void testUploadFile() {
String fullPath2Upload = mBaseFolderPath + UPLOAD_PATH;
RemoteOperationResult result = mActivity.uploadFile( RemoteOperationResult result = mActivity.uploadFile(
mFileToUpload.getAbsolutePath(), mFileToUpload.getAbsolutePath(),
UPLOAD_PATH, fullPath2Upload,
"image/png" "image/png"
); );
mUploadedFilePath = UPLOAD_PATH; mUploadedFilePath = fullPath2Upload;
assertTrue(result.isSuccess()); assertTrue(result.isSuccess());
} }
@ -90,12 +85,13 @@ public class UploadFileTest extends ActivityInstrumentationTestCase2<TestActivit
*/ */
public void testUploadFileWithChunks() { public void testUploadFileWithChunks() {
String fullPath2Upload = mBaseFolderPath + CHUNKED_UPLOAD_PATH;
RemoteOperationResult result = mActivity.uploadFile( RemoteOperationResult result = mActivity.uploadFile(
mFileToUploadWithChunks.getAbsolutePath(), mFileToUploadWithChunks.getAbsolutePath(),
CHUNKED_UPLOAD_PATH, fullPath2Upload,
"video/mp4" "video/mp4"
); );
mUploadedFilePath = CHUNKED_UPLOAD_PATH; mUploadedFilePath = fullPath2Upload;
assertTrue(result.isSuccess()); assertTrue(result.isSuccess());
} }
@ -104,12 +100,13 @@ public class UploadFileTest extends ActivityInstrumentationTestCase2<TestActivit
*/ */
public void testUploadFileNotFound() { public void testUploadFileNotFound() {
String fullPath2Upload = mBaseFolderPath + FILE_NOT_FOUND_PATH;
RemoteOperationResult result = mActivity.uploadFile( RemoteOperationResult result = mActivity.uploadFile(
FILE_NOT_FOUND_PATH, FILE_NOT_FOUND_PATH,
FILE_NOT_FOUND_PATH, fullPath2Upload,
"image/png" "image/png"
); );
mUploadedFilePath = FILE_NOT_FOUND_PATH; mUploadedFilePath = fullPath2Upload;
assertFalse(result.isSuccess()); assertFalse(result.isSuccess());
} }

View File

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