android/app/src/androidTest/java/com/nextcloud/client/account/UserAccountManagerImplTest....

80 lines
2.8 KiB
Java

/*
* Nextcloud - Android Client
*
* SPDX-FileCopyrightText: 2019-2023 Tobias Kaminsky <tobias@kaminsky.me>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
package com.nextcloud.client.account;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.os.Bundle;
import com.nextcloud.client.preferences.AppPreferences;
import com.nextcloud.client.preferences.AppPreferencesImpl;
import com.owncloud.android.AbstractOnServerIT;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.lib.common.accounts.AccountUtils;
import org.junit.Before;
import org.junit.Test;
import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.assertNull;
import static junit.framework.TestCase.assertTrue;
import static org.junit.Assert.assertFalse;
public class UserAccountManagerImplTest extends AbstractOnServerIT {
private AccountManager accountManager;
@Before
public void setUp() {
accountManager = AccountManager.get(targetContext);
}
@Test
public void updateOneAccount() {
AppPreferences appPreferences = AppPreferencesImpl.fromContext(targetContext);
UserAccountManagerImpl sut = new UserAccountManagerImpl(targetContext, accountManager);
assertEquals(1, sut.getAccounts().length);
assertFalse(appPreferences.isUserIdMigrated());
Account account = sut.getAccounts()[0];
// for testing remove userId
accountManager.setUserData(account, AccountUtils.Constants.KEY_USER_ID, null);
assertNull(accountManager.getUserData(account, AccountUtils.Constants.KEY_USER_ID));
boolean success = sut.migrateUserId();
assertTrue(success);
Bundle arguments = androidx.test.platform.app.InstrumentationRegistry.getArguments();
String userId = arguments.getString("TEST_SERVER_USERNAME");
// assume that userId == loginname (as we manually set it)
assertEquals(userId, accountManager.getUserData(account, AccountUtils.Constants.KEY_USER_ID));
}
@Test
public void checkName() {
UserAccountManagerImpl sut = new UserAccountManagerImpl(targetContext, accountManager);
Account owner = new Account("John@nextcloud.local", "nextcloud");
Account account1 = new Account("John@nextcloud.local", "nextcloud");
Account account2 = new Account("john@nextcloud.local", "nextcloud");
OCFile file1 = new OCFile("/test1.pdf");
file1.setOwnerId("John");
assertTrue(sut.accountOwnsFile(file1, owner));
assertTrue(sut.accountOwnsFile(file1, account1));
assertTrue(sut.accountOwnsFile(file1, account2));
file1.setOwnerId("john");
assertTrue(sut.accountOwnsFile(file1, owner));
assertTrue(sut.accountOwnsFile(file1, account1));
assertTrue(sut.accountOwnsFile(file1, account2));
}
}