123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- package com.owncloud.android;
- import android.accounts.Account;
- import android.accounts.AccountManager;
- import android.accounts.AuthenticatorException;
- import android.accounts.OperationCanceledException;
- import android.content.ActivityNotFoundException;
- import android.content.Context;
- import android.net.Uri;
- import android.os.Bundle;
- import com.owncloud.android.datamodel.FileDataStorageManager;
- import com.owncloud.android.lib.common.OwnCloudClient;
- import com.owncloud.android.lib.common.OwnCloudClientFactory;
- import com.owncloud.android.lib.common.accounts.AccountUtils;
- import com.owncloud.android.utils.FileStorageUtils;
- import org.apache.commons.httpclient.HttpStatus;
- import org.apache.commons.httpclient.methods.GetMethod;
- import org.junit.Assert;
- import org.junit.BeforeClass;
- import org.junit.runner.RunWith;
- import java.io.File;
- import java.io.FileWriter;
- import java.io.IOException;
- import androidx.test.ext.junit.runners.AndroidJUnit4;
- import androidx.test.platform.app.InstrumentationRegistry;
- /**
- * Common base for all integration tests
- */
- @RunWith(AndroidJUnit4.class)
- public abstract class AbstractIT {
- protected static OwnCloudClient client;
- static Account account;
- protected static Context targetContext;
- @BeforeClass
- public static void beforeAll() {
- try {
- targetContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
- Bundle arguments = androidx.test.platform.app.InstrumentationRegistry.getArguments();
- Uri baseUrl = Uri.parse(arguments.getString("TEST_SERVER_URL"));
- String username = arguments.getString("TEST_SERVER_USERNAME");
- String password = arguments.getString("TEST_SERVER_PASSWORD");
- Account temp = new Account(username + "@" + baseUrl, MainApp.getAccountType(targetContext));
- if (!com.owncloud.android.authentication.AccountUtils.exists(temp, targetContext)) {
- AccountManager accountManager = AccountManager.get(targetContext);
- accountManager.addAccountExplicitly(temp, password, null);
- accountManager.setUserData(temp, AccountUtils.Constants.KEY_OC_ACCOUNT_VERSION,
- Integer.toString(com.owncloud.android.authentication.AccountUtils.ACCOUNT_VERSION));
- accountManager.setUserData(temp, AccountUtils.Constants.KEY_OC_VERSION, "14.0.0.0");
- accountManager.setUserData(temp, AccountUtils.Constants.KEY_OC_BASE_URL, baseUrl.toString());
- accountManager.setUserData(temp, AccountUtils.Constants.KEY_USER_ID, username);
- }
- account = com.owncloud.android.authentication.AccountUtils.getOwnCloudAccountByName(targetContext,
- username + "@" + baseUrl);
- if (account == null) {
- throw new ActivityNotFoundException();
- }
- client = OwnCloudClientFactory.createOwnCloudClient(account, targetContext);
- createDummyFiles();
- waitForServer(client, baseUrl);
- } catch (OperationCanceledException e) {
- e.printStackTrace();
- } catch (AuthenticatorException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } catch (AccountUtils.AccountNotFoundException e) {
- e.printStackTrace();
- }
- }
- FileDataStorageManager getStorageManager() {
- return new FileDataStorageManager(account, targetContext.getContentResolver());
- }
- private static void createDummyFiles() throws IOException {
- new File(FileStorageUtils.getSavePath(account.name)).mkdirs();
- createFile("empty.txt", 0);
- createFile("nonEmpty.txt", 100);
- createFile("chunkedFile.txt", 500000);
- }
- private static void createFile(String name, int iteration) throws IOException {
- File file = new File(FileStorageUtils.getSavePath(account.name) + File.separator + name);
- file.createNewFile();
- FileWriter writer = new FileWriter(file);
- for (int i = 0; i < iteration; i++) {
- writer.write("123123123123123123123123123\n");
- }
- writer.flush();
- writer.close();
- }
- private static void waitForServer(OwnCloudClient client, Uri baseUrl) {
- GetMethod get = new GetMethod(baseUrl + "/status.php");
- try {
- int i = 0;
- while (client.executeMethod(get) != HttpStatus.SC_OK && i < 3) {
- System.out.println("wait…");
- Thread.sleep(60 * 1000);
- i++;
- }
- if (i == 3) {
- Assert.fail("Server not ready!");
- }
- } catch (IOException e) {
- e.printStackTrace();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
|