UserAccountManagerImplTest.java 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.nextcloud.client.account;
  2. import android.accounts.Account;
  3. import android.accounts.AccountManager;
  4. import android.os.Bundle;
  5. import com.nextcloud.client.preferences.AppPreferences;
  6. import com.nextcloud.client.preferences.AppPreferencesImpl;
  7. import com.owncloud.android.AbstractOnServerIT;
  8. import com.owncloud.android.datamodel.OCFile;
  9. import com.owncloud.android.lib.common.accounts.AccountUtils;
  10. import org.junit.Before;
  11. import org.junit.Test;
  12. import static junit.framework.TestCase.assertEquals;
  13. import static junit.framework.TestCase.assertNull;
  14. import static junit.framework.TestCase.assertTrue;
  15. import static org.junit.Assert.assertFalse;
  16. public class UserAccountManagerImplTest extends AbstractOnServerIT {
  17. private AccountManager accountManager;
  18. @Before
  19. public void setUp() {
  20. accountManager = AccountManager.get(targetContext);
  21. }
  22. @Test
  23. public void updateOneAccount() {
  24. AppPreferences appPreferences = AppPreferencesImpl.fromContext(targetContext);
  25. UserAccountManagerImpl sut = new UserAccountManagerImpl(targetContext, accountManager);
  26. assertEquals(1, sut.getAccounts().length);
  27. assertFalse(appPreferences.isUserIdMigrated());
  28. Account account = sut.getAccounts()[0];
  29. // for testing remove userId
  30. accountManager.setUserData(account, AccountUtils.Constants.KEY_USER_ID, null);
  31. assertNull(accountManager.getUserData(account, AccountUtils.Constants.KEY_USER_ID));
  32. boolean success = sut.migrateUserId();
  33. assertTrue(success);
  34. Bundle arguments = androidx.test.platform.app.InstrumentationRegistry.getArguments();
  35. String userId = arguments.getString("TEST_SERVER_USERNAME");
  36. // assume that userId == loginname (as we manually set it)
  37. assertEquals(userId, accountManager.getUserData(account, AccountUtils.Constants.KEY_USER_ID));
  38. }
  39. @Test
  40. public void checkName() {
  41. UserAccountManagerImpl sut = new UserAccountManagerImpl(targetContext, accountManager);
  42. Account owner = new Account("John@nextcloud.local", "nextcloud");
  43. Account account1 = new Account("John@nextcloud.local", "nextcloud");
  44. Account account2 = new Account("john@nextcloud.local", "nextcloud");
  45. OCFile file1 = new OCFile("/test1.pdf");
  46. file1.setOwnerId("John");
  47. assertTrue(sut.accountOwnsFile(file1, owner));
  48. assertTrue(sut.accountOwnsFile(file1, account1));
  49. assertTrue(sut.accountOwnsFile(file1, account2));
  50. file1.setOwnerId("john");
  51. assertTrue(sut.accountOwnsFile(file1, owner));
  52. assertTrue(sut.accountOwnsFile(file1, account1));
  53. assertTrue(sut.accountOwnsFile(file1, account2));
  54. }
  55. }