Skip to content

Commit

Permalink
Merge pull request #826 from opensrp/fix_login_failure_when_username_…
Browse files Browse the repository at this point in the history
…has_caps

Sets username to lower case on login
  • Loading branch information
paulinembabu committed Aug 20, 2021
2 parents 81a273d + 2d1ff96 commit 41c86e4
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 9 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
VERSION_NAME=4.3.16-SNAPSHOT
VERSION_NAME=4.3.17-SNAPSHOT
VERSION_CODE=1
GROUP=org.smartregister
POM_SETTING_DESCRIPTION=OpenSRP Client Core Application
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.smartregister.view.activity;

import static org.smartregister.AllConstants.ACCOUNT_DISABLED;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
Expand All @@ -8,9 +10,6 @@
import android.content.pm.PackageManager;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.StringRes;
import androidx.appcompat.app.AppCompatActivity;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.util.Log;
Expand All @@ -25,6 +24,10 @@
import android.widget.EditText;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.annotation.StringRes;
import androidx.appcompat.app.AppCompatActivity;

import org.joda.time.DateTime;
import org.smartregister.AllConstants;
import org.smartregister.R;
Expand All @@ -34,15 +37,15 @@
import org.smartregister.util.Utils;
import org.smartregister.view.contract.BaseLoginContract;

import static org.smartregister.AllConstants.ACCOUNT_DISABLED;
import java.util.Locale;

/**
* Created by manu on 01/11/2018.
*/

public abstract class BaseLoginActivity extends MultiLanguageActivity implements BaseLoginContract.View, TextView.OnEditorActionListener, View.OnClickListener {
private ProgressDialog progressDialog;
protected BaseLoginContract.Presenter mLoginPresenter;
private ProgressDialog progressDialog;
private EditText userNameEditText;
private EditText passwordEditText;
private TextView showPasswordCheckBoxText;
Expand Down Expand Up @@ -231,7 +234,7 @@ public void onClick(View v) {
}

protected void attemptLogin() {
String username = userNameEditText.getText().toString().trim();
String username = userNameEditText.getText().toString().trim().toLowerCase(Locale.ENGLISH);
char[] password = SecurityHelper.readValue(passwordEditText.getText());
mLoginPresenter.attemptLogin(username, password);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package org.smartregister.view.activity;

import static org.robolectric.util.ReflectionHelpers.ClassParameter.from;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
Expand All @@ -24,6 +26,8 @@
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.Mockito;
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
Expand All @@ -37,8 +41,6 @@
import org.smartregister.util.SyncUtils;
import org.smartregister.view.contract.BaseLoginContract;

import static org.robolectric.util.ReflectionHelpers.ClassParameter.from;

/**
* Created by Ephraim Kigamba - nek.eam@gmail.com on 23-06-2020.
*/
Expand All @@ -47,6 +49,8 @@ public class BaseLoginActivityTest extends BaseRobolectricUnitTest {
private BaseLoginActivity baseLoginActivity;

private ActivityController<BaseLoginActivityImpl> controller;
@Captor
private ArgumentCaptor<String> stringArgumentCaptor;

@BeforeClass
public static void resetCoreLibrary() {
Expand Down Expand Up @@ -110,6 +114,18 @@ public void onCreateShouldCallSetupOperations() {
Assert.assertNotNull((ProgressDialog) ReflectionHelpers.getField(baseLoginActivity, "progressDialog"));
}

@Test
public void testAttemptLoginInvokesLoginPresenterWithCorrectCaseUserName() {
String username = "JANE";
EditText userNameEditText = ReflectionHelpers.getField(baseLoginActivity, "userNameEditText");
ReflectionHelpers.setField(baseLoginActivity, "userNameEditText", userNameEditText);
userNameEditText.setText(username);
baseLoginActivity.attemptLogin();
Mockito.verify(baseLoginActivity.mLoginPresenter).attemptLogin(stringArgumentCaptor.capture(), Mockito.any(char[].class));
Assert.assertNotEquals("JANE", stringArgumentCaptor.getValue());
Assert.assertEquals("jane", stringArgumentCaptor.getValue());
}

@Test
public void onClickLoginShouldCallAttemptLogin() {
View view = Mockito.mock(View.class);
Expand Down

0 comments on commit 41c86e4

Please sign in to comment.