AbstractIT.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package com.owncloud.android;
  2. import android.accounts.Account;
  3. import android.accounts.AccountManager;
  4. import android.accounts.AuthenticatorException;
  5. import android.accounts.OperationCanceledException;
  6. import android.content.ActivityNotFoundException;
  7. import android.content.Context;
  8. import com.owncloud.android.datamodel.FileDataStorageManager;
  9. import com.owncloud.android.lib.common.OwnCloudClient;
  10. import com.owncloud.android.lib.common.OwnCloudClientFactory;
  11. import com.owncloud.android.lib.common.accounts.AccountUtils;
  12. import com.owncloud.android.utils.FileStorageUtils;
  13. import org.junit.BeforeClass;
  14. import org.junit.runner.RunWith;
  15. import java.io.File;
  16. import java.io.FileWriter;
  17. import java.io.IOException;
  18. import androidx.test.InstrumentationRegistry;
  19. import androidx.test.runner.AndroidJUnit4;
  20. /**
  21. * Common base for all integration tests
  22. */
  23. @RunWith(AndroidJUnit4.class)
  24. public abstract class AbstractIT {
  25. protected static OwnCloudClient client;
  26. static Account account;
  27. protected static Context context;
  28. private static final String username = "test";
  29. private static final String password = "test";
  30. private static final String baseUrl = "server";
  31. @BeforeClass
  32. public static void beforeAll() {
  33. try {
  34. context = InstrumentationRegistry.getTargetContext();
  35. Account temp = new Account(username + "@" + baseUrl, MainApp.getAccountType(context));
  36. if (!com.owncloud.android.authentication.AccountUtils.exists(temp, context)) {
  37. AccountManager accountManager = AccountManager.get(context);
  38. accountManager.addAccountExplicitly(temp, password, null);
  39. accountManager.setUserData(temp, AccountUtils.Constants.KEY_OC_ACCOUNT_VERSION,
  40. Integer.toString(com.owncloud.android.authentication.AccountUtils.ACCOUNT_VERSION));
  41. accountManager.setUserData(temp, AccountUtils.Constants.KEY_OC_VERSION, "14.0.0.0");
  42. accountManager.setUserData(temp, AccountUtils.Constants.KEY_OC_BASE_URL, "http://" + baseUrl);
  43. }
  44. account = com.owncloud.android.authentication.AccountUtils.getOwnCloudAccountByName(context,
  45. username + "@" + baseUrl);
  46. if (account == null) {
  47. throw new ActivityNotFoundException();
  48. }
  49. client = OwnCloudClientFactory.createOwnCloudClient(account, context);
  50. createDummyFiles();
  51. } catch (OperationCanceledException e) {
  52. e.printStackTrace();
  53. } catch (AuthenticatorException e) {
  54. e.printStackTrace();
  55. } catch (IOException e) {
  56. e.printStackTrace();
  57. } catch (AccountUtils.AccountNotFoundException e) {
  58. e.printStackTrace();
  59. }
  60. }
  61. FileDataStorageManager getStorageManager() {
  62. return new FileDataStorageManager(account, context.getContentResolver());
  63. }
  64. private static void createDummyFiles() throws IOException {
  65. new File(FileStorageUtils.getSavePath(account.name)).mkdirs();
  66. createFile("empty.txt", 0);
  67. createFile("nonEmpty.txt", 100);
  68. createFile("chunkedFile.txt", 500000);
  69. }
  70. private static void createFile(String name, int iteration) throws IOException {
  71. File file = new File(FileStorageUtils.getSavePath(account.name) + File.separator + name);
  72. file.createNewFile();
  73. FileWriter writer = new FileWriter(file);
  74. for (int i = 0; i < iteration; i++) {
  75. writer.write("123123123123123123123123123\n");
  76. }
  77. writer.flush();
  78. writer.close();
  79. }
  80. }