Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0689213e authored by Juan Carlos González Cabrero's avatar Juan Carlos González Cabrero
Browse files

New tests for the federated sharing

parent 1e1d424f
Loading
Loading
Loading
Loading
+79 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import java.io.File;
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.resources.shares.ShareType;
import com.owncloud.android.lib.test_project.R;
import com.owncloud.android.lib.test_project.TestActivity;

/**
@@ -47,6 +48,7 @@ public class CreateShareTest extends RemoteTest {
	private TestActivity mActivity;
	private String mFullPath2FileToShare;
	private String mFullPath2NonExistentFile;
	private String mRemoteServer;
	
	@Override
	protected void setUp() throws Exception {
@@ -55,6 +57,7 @@ public class CreateShareTest extends RemoteTest {
	    mActivity = getActivity();
	    mFullPath2FileToShare = mBaseFolderPath + FILE_TO_SHARE;
	    mFullPath2NonExistentFile = mBaseFolderPath + NON_EXISTENT_FILE;
	    mRemoteServer = getActivity().getString(R.string.server_base_url_2);
	    		
		File textFile = mActivity.extractAsset(TestActivity.ASSETS__TEXT_FILE_NAME);
		RemoteOperationResult result = mActivity.uploadFile(
@@ -217,6 +220,82 @@ public class CreateShareTest extends RemoteTest {
		
	}
	
	/**
	 * Test creation of federated shares with remote users
	 */
	public void testCreateFederatedShareWithUser() {
		
		String remoteDomain = mRemoteServer.split("//")[1];
		
		/// Successful cases
		RemoteOperationResult result = mActivity.createShare(
				mFullPath2FileToShare, 
				ShareType.FEDERATED, 
				"admin@" + remoteDomain, 
				false, 
				"", 
				1);
		assertTrue(result.isSuccess());
		
		
		/// Failed cases
		
		// sharee doesn't exist in an existing remote server
		result = mActivity.createShare(
				mFullPath2FileToShare, 
				ShareType.FEDERATED, 
				"no_exist@" + remoteDomain, 
				false, 
				"", 
				31);
		assertFalse(result.isSuccess());
		assertEquals(
				RemoteOperationResult.ResultCode.SHARE_FORBIDDEN, 
				result.getCode()
		);
		assertTrue(		// error message from server as part of the result
				result.getData().size() == 1 && 
				result.getData().get(0) instanceof String
		);
		
		// remote server doesn't exist
				result = mActivity.createShare(
						mFullPath2FileToShare, 
						ShareType.FEDERATED, 
						"no_exist", 
						false, 
						"", 
						31);
				assertFalse(result.isSuccess());
				assertEquals(
						RemoteOperationResult.ResultCode.SHARE_WRONG_PARAMETER, 
						result.getCode()
				);
				assertTrue(		// error message from server as part of the result
						result.getData().size() == 1 && 
						result.getData().get(0) instanceof String
				);
		
		// file doesn't exist
		result = mActivity.createShare(
				mFullPath2NonExistentFile, 
				ShareType.FEDERATED, 
				"admin@" + remoteDomain, 
				false, 
				"", 
				31);
		assertFalse(result.isSuccess());
		assertEquals(
				RemoteOperationResult.ResultCode.SHARE_NOT_FOUND, 
				result.getCode()
		);
		assertTrue(		// error message from server as part of the result
				result.getData().size() == 1 && 
				result.getData().get(0) instanceof String
		);
		
	}
	
	
	@Override
	protected void tearDown() throws Exception {
+55 −1
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ public class GetShareesTest extends RemoteTest {

	private static final String LOG_TAG = GetShareesTest.class.getCanonicalName();
		
	String mServerUri, mUser, mPass;
	String mServerUri, mUser, mPass, mServerUri2;
	OwnCloudClient mClient = null;
	
	public GetShareesTest() {
@@ -191,6 +191,59 @@ public class GetShareesTest extends RemoteTest {
		assertTrue(!result.isSuccess() && result.getHttpCode() == HttpStatus.SC_BAD_REQUEST);
	}
	
	/**
	 *  Test get federated sharees
	 * 
	 *  Requires OC server 8.2 or later
	 */
	public void testGetFederatedShareesOperation() {
		Log.v(LOG_TAG, "testGetFederatedSharees in");

		/// successful cases

		// search for sharees including "@"
		GetRemoteShareesOperation getShareesOperation = new GetRemoteShareesOperation("@", 1, 50);
		RemoteOperationResult result = getShareesOperation.execute(mClient);
		JSONObject resultItem;
		JSONObject value;
		int type;
		int fedCount = 0;
		assertTrue(result.isSuccess() && result.getData().size() > 0);
		try {
			for (int i=0; i<result.getData().size(); i++) {
				resultItem = (JSONObject) result.getData().get(i);
	            value = resultItem.getJSONObject(GetRemoteShareesOperation.NODE_VALUE);
	            type = value.getInt(GetRemoteShareesOperation.PROPERTY_SHARE_TYPE);
				if (type == ShareType.FEDERATED.getValue()) {
					fedCount++;
				}
			}
			assertTrue(fedCount > 0);
		} catch (JSONException e) {
			AssertionFailedError afe = new AssertionFailedError(e.getLocalizedMessage());
			afe.setStackTrace(e.getStackTrace());
			throw afe;
		}

		// search for sharees including "admin@qa2.oc.solidgear.es" - expecting at least 1 result
		String remoteSharee = "admin@" + mServerUri2.split("//")[1];
		getShareesOperation = new GetRemoteShareesOperation(remoteSharee, 1, 50);
		result = getShareesOperation.execute(mClient);
		assertTrue(result.isSuccess() && result.getData().size() > 0);

		
		/// failed cases
		
		// search for sharees including wrong page values
		getShareesOperation = new GetRemoteShareesOperation("@", 0, 50);
		result = getShareesOperation.execute(mClient);
		assertTrue(!result.isSuccess() && result.getHttpCode() == HttpStatus.SC_BAD_REQUEST);
		
		getShareesOperation = new GetRemoteShareesOperation("@", 1, 0);
		result = getShareesOperation.execute(mClient);
		assertTrue(!result.isSuccess() && result.getHttpCode() == HttpStatus.SC_BAD_REQUEST);
	}
	
	@Override
	protected void tearDown() throws Exception {
	    Log.v(LOG_TAG, "Deleting remote fixture...");
@@ -203,6 +256,7 @@ public class GetShareesTest extends RemoteTest {
	    Log.v(LOG_TAG, "Setting up client instance to access OC server...");
		
		mServerUri = context.getString(R.string.server_base_url);
		mServerUri2 = context.getString(R.string.server_base_url_2);
		mUser = context.getString(R.string.username);
		mPass = context.getString(R.string.password);