forked from github/wulkanowy-mirror
Add dynamic nick/email in login (#676)
This commit is contained in:
parent
720a530a6c
commit
bdbf1fe304
@ -35,8 +35,8 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
||||
else -> "HYBRID"
|
||||
}
|
||||
|
||||
override val formNameValue: String
|
||||
get() = loginFormName.text.toString().trim()
|
||||
override val formUsernameValue: String
|
||||
get() = loginFormUsername.text.toString().trim()
|
||||
|
||||
override val formPassValue: String
|
||||
get() = loginFormPass.text.toString().trim()
|
||||
@ -45,8 +45,8 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
||||
|
||||
private lateinit var hostValues: Array<String>
|
||||
|
||||
override val formHostValue: String?
|
||||
get() = hostValues.getOrNull(hostKeys.indexOf(loginFormHost.text.toString()))
|
||||
override val formHostValue: String
|
||||
get() = hostValues.getOrNull(hostKeys.indexOf(loginFormHost.text.toString())).orEmpty()
|
||||
|
||||
override val formPinValue: String
|
||||
get() = loginFormPin.text.toString().trim()
|
||||
@ -57,6 +57,12 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
||||
override val formTokenValue: String
|
||||
get() = loginFormToken.text.toString().trim()
|
||||
|
||||
override val nicknameLabel: String
|
||||
get() = getString(R.string.login_nickname_hint)
|
||||
|
||||
override val emailLabel: String
|
||||
get() = getString(R.string.login_email_hint)
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
return inflater.inflate(R.layout.fragment_login_advanced, container, false)
|
||||
}
|
||||
@ -70,7 +76,7 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
||||
hostKeys = resources.getStringArray(R.array.hosts_keys)
|
||||
hostValues = resources.getStringArray(R.array.hosts_values)
|
||||
|
||||
loginFormName.doOnTextChanged { _, _, _, _ -> presenter.onNameTextChanged() }
|
||||
loginFormUsername.doOnTextChanged { _, _, _, _ -> presenter.onUsernameTextChanged() }
|
||||
loginFormPass.doOnTextChanged { _, _, _, _ -> presenter.onPassTextChanged() }
|
||||
loginFormPin.doOnTextChanged { _, _, _, _ -> presenter.onPinTextChanged() }
|
||||
loginFormSymbol.doOnTextChanged { _, _, _, _ -> presenter.onSymbolTextChanged() }
|
||||
@ -103,16 +109,20 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
||||
}
|
||||
}
|
||||
|
||||
override fun setDefaultCredentials(name: String, pass: String, symbol: String, token: String, pin: String) {
|
||||
loginFormName.setText(name)
|
||||
override fun setDefaultCredentials(username: String, pass: String, symbol: String, token: String, pin: String) {
|
||||
loginFormUsername.setText(username)
|
||||
loginFormPass.setText(pass)
|
||||
loginFormToken.setText(token)
|
||||
loginFormSymbol.setText(symbol)
|
||||
loginFormPin.setText(pin)
|
||||
}
|
||||
|
||||
override fun setErrorNameRequired() {
|
||||
with(loginFormNameLayout) {
|
||||
override fun setUsernameLabel(label: String) {
|
||||
loginFormUsernameLayout.hint = label
|
||||
}
|
||||
|
||||
override fun setErrorUsernameRequired() {
|
||||
with(loginFormUsernameLayout) {
|
||||
requestFocus()
|
||||
error = getString(R.string.login_field_required)
|
||||
}
|
||||
@ -181,8 +191,8 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
||||
}
|
||||
}
|
||||
|
||||
override fun clearNameError() {
|
||||
loginFormNameLayout.error = null
|
||||
override fun clearUsernameError() {
|
||||
loginFormUsernameLayout.error = null
|
||||
}
|
||||
|
||||
override fun clearPassError() {
|
||||
@ -202,7 +212,7 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
||||
}
|
||||
|
||||
override fun showOnlyHybridModeInputs() {
|
||||
loginFormNameLayout.visibility = View.VISIBLE
|
||||
loginFormUsernameLayout.visibility = View.VISIBLE
|
||||
loginFormPassLayout.visibility = View.VISIBLE
|
||||
loginFormHostLayout.visibility = View.VISIBLE
|
||||
loginFormPinLayout.visibility = View.GONE
|
||||
@ -211,7 +221,7 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
||||
}
|
||||
|
||||
override fun showOnlyScrapperModeInputs() {
|
||||
loginFormNameLayout.visibility = View.VISIBLE
|
||||
loginFormUsernameLayout.visibility = View.VISIBLE
|
||||
loginFormPassLayout.visibility = View.VISIBLE
|
||||
loginFormHostLayout.visibility = View.VISIBLE
|
||||
loginFormPinLayout.visibility = View.GONE
|
||||
@ -220,7 +230,7 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
||||
}
|
||||
|
||||
override fun showOnlyMobileApiModeInputs() {
|
||||
loginFormNameLayout.visibility = View.GONE
|
||||
loginFormUsernameLayout.visibility = View.GONE
|
||||
loginFormPassLayout.visibility = View.GONE
|
||||
loginFormHostLayout.visibility = View.GONE
|
||||
loginFormPinLayout.visibility = View.VISIBLE
|
||||
@ -246,12 +256,17 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
||||
|
||||
override fun notifyParentAccountLogged(students: List<Student>) {
|
||||
(activity as? LoginActivity)?.onFormFragmentAccountLogged(students, Triple(
|
||||
loginFormName.text.toString(),
|
||||
loginFormUsername.text.toString(),
|
||||
loginFormPass.text.toString(),
|
||||
resources.getStringArray(R.array.hosts_values)[1]
|
||||
))
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
presenter.updateUsernameLabel()
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
presenter.onDetachView()
|
||||
|
@ -65,13 +65,20 @@ class LoginAdvancedPresenter @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
fun updateUsernameLabel() {
|
||||
view?.apply {
|
||||
setUsernameLabel(if ("vulcan" in formHostValue || "fakelog" in formHostValue) emailLabel else nicknameLabel)
|
||||
}
|
||||
}
|
||||
|
||||
fun onHostSelected() {
|
||||
view?.apply {
|
||||
clearPassError()
|
||||
clearNameError()
|
||||
if (formHostValue?.contains("fakelog") == true) {
|
||||
clearUsernameError()
|
||||
if (formHostValue.contains("fakelog")) {
|
||||
setDefaultCredentials("jan@fakelog.cf", "jan123", "powiatwulkanowy", "FK100000", "999999")
|
||||
}
|
||||
updateUsernameLabel()
|
||||
}
|
||||
}
|
||||
|
||||
@ -89,8 +96,8 @@ class LoginAdvancedPresenter @Inject constructor(
|
||||
view?.clearPassError()
|
||||
}
|
||||
|
||||
fun onNameTextChanged() {
|
||||
view?.clearNameError()
|
||||
fun onUsernameTextChanged() {
|
||||
view?.clearUsernameError()
|
||||
}
|
||||
|
||||
fun onPinTextChanged() {
|
||||
@ -137,7 +144,7 @@ class LoginAdvancedPresenter @Inject constructor(
|
||||
}
|
||||
|
||||
private fun getStudentsAppropriatesToLoginType(): Single<List<Student>> {
|
||||
val email = view?.formNameValue.orEmpty()
|
||||
val email = view?.formUsernameValue.orEmpty()
|
||||
val password = view?.formPassValue.orEmpty()
|
||||
val endpoint = view?.formHostValue.orEmpty()
|
||||
|
||||
@ -153,7 +160,7 @@ class LoginAdvancedPresenter @Inject constructor(
|
||||
}
|
||||
|
||||
private fun validateCredentials(): Boolean {
|
||||
val login = view?.formNameValue.orEmpty()
|
||||
val login = view?.formUsernameValue.orEmpty()
|
||||
val password = view?.formPassValue.orEmpty()
|
||||
|
||||
val pin = view?.formPinValue.orEmpty()
|
||||
@ -181,7 +188,7 @@ class LoginAdvancedPresenter @Inject constructor(
|
||||
}
|
||||
Sdk.Mode.SCRAPPER -> {
|
||||
if (login.isEmpty()) {
|
||||
view?.setErrorNameRequired()
|
||||
view?.setErrorUsernameRequired()
|
||||
isCorrect = false
|
||||
}
|
||||
|
||||
@ -197,7 +204,7 @@ class LoginAdvancedPresenter @Inject constructor(
|
||||
}
|
||||
Sdk.Mode.HYBRID -> {
|
||||
if (login.isEmpty()) {
|
||||
view?.setErrorNameRequired()
|
||||
view?.setErrorUsernameRequired()
|
||||
isCorrect = false
|
||||
}
|
||||
|
||||
|
@ -5,11 +5,11 @@ import io.github.wulkanowy.ui.base.BaseView
|
||||
|
||||
interface LoginAdvancedView : BaseView {
|
||||
|
||||
val formNameValue: String
|
||||
val formUsernameValue: String
|
||||
|
||||
val formPassValue: String
|
||||
|
||||
val formHostValue: String?
|
||||
val formHostValue: String
|
||||
|
||||
val formLoginType: String
|
||||
|
||||
@ -19,11 +19,17 @@ interface LoginAdvancedView : BaseView {
|
||||
|
||||
val formTokenValue: String
|
||||
|
||||
val nicknameLabel: String
|
||||
|
||||
val emailLabel: String
|
||||
|
||||
fun initView()
|
||||
|
||||
fun setDefaultCredentials(name: String, pass: String, symbol: String, token: String, pin: String)
|
||||
fun setDefaultCredentials(username: String, pass: String, symbol: String, token: String, pin: String)
|
||||
|
||||
fun setErrorNameRequired()
|
||||
fun setUsernameLabel(label: String)
|
||||
|
||||
fun setErrorUsernameRequired()
|
||||
|
||||
fun setErrorPassRequired(focus: Boolean)
|
||||
|
||||
@ -31,7 +37,7 @@ interface LoginAdvancedView : BaseView {
|
||||
|
||||
fun setErrorPassIncorrect()
|
||||
|
||||
fun clearNameError()
|
||||
fun clearUsernameError()
|
||||
|
||||
fun clearPassError()
|
||||
|
||||
|
@ -34,11 +34,20 @@ class LoginFormFragment : BaseFragment(), LoginFormView {
|
||||
fun newInstance() = LoginFormFragment()
|
||||
}
|
||||
|
||||
override val formNameValue get() = loginFormName.text.toString()
|
||||
override val formUsernameValue: String
|
||||
get() = loginFormUsername.text.toString()
|
||||
|
||||
override val formPassValue get() = loginFormPass.text.toString()
|
||||
override val formPassValue: String
|
||||
get() = loginFormPass.text.toString()
|
||||
|
||||
override val formHostValue get() = hostValues.getOrNull(hostKeys.indexOf(loginFormHost.text.toString()))
|
||||
override val formHostValue: String
|
||||
get() = hostValues.getOrNull(hostKeys.indexOf(loginFormHost.text.toString())).orEmpty()
|
||||
|
||||
override val nicknameLabel: String
|
||||
get() = getString(R.string.login_nickname_hint)
|
||||
|
||||
override val emailLabel: String
|
||||
get() = getString(R.string.login_email_hint)
|
||||
|
||||
private lateinit var hostKeys: Array<String>
|
||||
|
||||
@ -57,7 +66,7 @@ class LoginFormFragment : BaseFragment(), LoginFormView {
|
||||
hostKeys = resources.getStringArray(R.array.hosts_keys)
|
||||
hostValues = resources.getStringArray(R.array.hosts_values)
|
||||
|
||||
loginFormName.doOnTextChanged { _, _, _, _ -> presenter.onNameTextChanged() }
|
||||
loginFormUsername.doOnTextChanged { _, _, _, _ -> presenter.onUsernameTextChanged() }
|
||||
loginFormPass.doOnTextChanged { _, _, _, _ -> presenter.onPassTextChanged() }
|
||||
loginFormHost.setOnItemClickListener { _, _, _, _ -> presenter.onHostSelected() }
|
||||
loginFormSignIn.setOnClickListener { presenter.onSignInClick() }
|
||||
@ -76,13 +85,17 @@ class LoginFormFragment : BaseFragment(), LoginFormView {
|
||||
}
|
||||
}
|
||||
|
||||
override fun setCredentials(name: String, pass: String) {
|
||||
loginFormName.setText(name)
|
||||
override fun setCredentials(username: String, pass: String) {
|
||||
loginFormUsername.setText(username)
|
||||
loginFormPass.setText(pass)
|
||||
}
|
||||
|
||||
override fun setErrorNameRequired() {
|
||||
with(loginFormNameLayout) {
|
||||
override fun setUsernameLabel(label: String) {
|
||||
loginFormUsernameLayout.hint = label
|
||||
}
|
||||
|
||||
override fun setErrorUsernameRequired() {
|
||||
with(loginFormUsernameLayout) {
|
||||
requestFocus()
|
||||
error = getString(R.string.login_field_required)
|
||||
}
|
||||
@ -109,8 +122,8 @@ class LoginFormFragment : BaseFragment(), LoginFormView {
|
||||
}
|
||||
}
|
||||
|
||||
override fun clearNameError() {
|
||||
loginFormNameLayout.error = null
|
||||
override fun clearUsernameError() {
|
||||
loginFormUsernameLayout.error = null
|
||||
}
|
||||
|
||||
override fun clearPassError() {
|
||||
@ -163,6 +176,11 @@ class LoginFormFragment : BaseFragment(), LoginFormView {
|
||||
context?.openInternetBrowser("https://wulkanowy.github.io/czesto-zadawane-pytania/dlaczego-nie-moge-sie-zalogowac", ::showMessage)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
presenter.updateUsernameLabel()
|
||||
}
|
||||
|
||||
override fun openEmail() {
|
||||
context?.openEmailClient(
|
||||
requireContext().getString(R.string.login_email_intent_title),
|
||||
|
@ -42,10 +42,17 @@ class LoginFormPresenter @Inject constructor(
|
||||
fun onHostSelected() {
|
||||
view?.apply {
|
||||
clearPassError()
|
||||
clearNameError()
|
||||
if (formHostValue?.contains("fakelog") == true) {
|
||||
clearUsernameError()
|
||||
if (formHostValue.contains("fakelog")) {
|
||||
setCredentials("jan@fakelog.cf", "jan123")
|
||||
}
|
||||
updateUsernameLabel()
|
||||
}
|
||||
}
|
||||
|
||||
fun updateUsernameLabel() {
|
||||
view?.apply {
|
||||
setUsernameLabel(if ("vulcan" in formHostValue || "fakelog" in formHostValue) emailLabel else nicknameLabel)
|
||||
}
|
||||
}
|
||||
|
||||
@ -53,12 +60,12 @@ class LoginFormPresenter @Inject constructor(
|
||||
view?.clearPassError()
|
||||
}
|
||||
|
||||
fun onNameTextChanged() {
|
||||
view?.clearNameError()
|
||||
fun onUsernameTextChanged() {
|
||||
view?.clearUsernameError()
|
||||
}
|
||||
|
||||
fun onSignInClick() {
|
||||
val email = view?.formNameValue.orEmpty().trim()
|
||||
val email = view?.formUsernameValue.orEmpty().trim()
|
||||
val password = view?.formPassValue.orEmpty().trim()
|
||||
val endpoint = view?.formHostValue.orEmpty().trim()
|
||||
|
||||
@ -105,7 +112,7 @@ class LoginFormPresenter @Inject constructor(
|
||||
var isCorrect = true
|
||||
|
||||
if (login.isEmpty()) {
|
||||
view?.setErrorNameRequired()
|
||||
view?.setErrorUsernameRequired()
|
||||
isCorrect = false
|
||||
}
|
||||
|
||||
|
@ -7,15 +7,21 @@ interface LoginFormView : BaseView {
|
||||
|
||||
fun initView()
|
||||
|
||||
val formNameValue: String
|
||||
val formUsernameValue: String
|
||||
|
||||
val formPassValue: String
|
||||
|
||||
val formHostValue: String?
|
||||
val formHostValue: String
|
||||
|
||||
fun setCredentials(name: String, pass: String)
|
||||
val nicknameLabel: String
|
||||
|
||||
fun setErrorNameRequired()
|
||||
val emailLabel: String
|
||||
|
||||
fun setCredentials(username: String, pass: String)
|
||||
|
||||
fun setUsernameLabel(label: String)
|
||||
|
||||
fun setErrorUsernameRequired()
|
||||
|
||||
fun setErrorPassRequired(focus: Boolean)
|
||||
|
||||
@ -23,7 +29,7 @@ interface LoginFormView : BaseView {
|
||||
|
||||
fun setErrorPassIncorrect()
|
||||
|
||||
fun clearNameError()
|
||||
fun clearUsernameError()
|
||||
|
||||
fun clearPassError()
|
||||
|
||||
|
@ -52,7 +52,7 @@
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal"
|
||||
android:paddingTop="24dp"
|
||||
app:layout_constraintBottom_toTopOf="@+id/loginFormNameLayout"
|
||||
app:layout_constraintBottom_toTopOf="@+id/loginFormUsernameLayout"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/loginFormHeader">
|
||||
@ -81,7 +81,7 @@
|
||||
</RadioGroup>
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/loginFormNameLayout"
|
||||
android:id="@+id/loginFormUsernameLayout"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@ -98,7 +98,7 @@
|
||||
app:layout_constraintTop_toBottomOf="@+id/loginTypeSwitch">
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/loginFormName"
|
||||
android:id="@+id/loginFormUsername"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:autofillHints="username|emailAddress"
|
||||
@ -125,7 +125,7 @@
|
||||
app:layout_constraintBottom_toTopOf="@+id/loginFormHostLayout"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/loginFormNameLayout"
|
||||
app:layout_constraintTop_toBottomOf="@+id/loginFormUsernameLayout"
|
||||
app:passwordToggleEnabled="true">
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
|
@ -105,7 +105,7 @@
|
||||
android:text="@string/login_header_default"
|
||||
android:textSize="16sp"
|
||||
app:fontFamily="sans-serif-light"
|
||||
app:layout_constraintBottom_toTopOf="@+id/loginFormNameLayout"
|
||||
app:layout_constraintBottom_toTopOf="@+id/loginFormUsernameLayout"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/loginFormContact"
|
||||
@ -113,7 +113,7 @@
|
||||
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/loginFormNameLayout"
|
||||
android:id="@+id/loginFormUsernameLayout"
|
||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@ -130,7 +130,7 @@
|
||||
app:layout_constraintTop_toBottomOf="@+id/loginFormHeader">
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/loginFormName"
|
||||
android:id="@+id/loginFormUsername"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:autofillHints="username|emailAddress"
|
||||
@ -157,7 +157,7 @@
|
||||
app:layout_constraintBottom_toTopOf="@+id/loginFormHostLayout"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/loginFormNameLayout"
|
||||
app:layout_constraintTop_toBottomOf="@+id/loginFormUsernameLayout"
|
||||
app:passwordToggleEnabled="true">
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
|
@ -24,7 +24,8 @@
|
||||
<!--Login-->
|
||||
<string name="login_header_default">Zaloguj się za pomocą konta ucznia lub rodzica</string>
|
||||
<string name="login_header_symbol">Podaj symbol</string>
|
||||
<string name="login_nickname_hint">Email lub nick</string>
|
||||
<string name="login_nickname_hint">Nazwa użytkownika</string>
|
||||
<string name="login_email_hint">Email</string>
|
||||
<string name="login_password_hint">Hasło</string>
|
||||
<string name="login_host_hint">Dziennik</string>
|
||||
<string name="login_symbol_hint">Symbol</string>
|
||||
|
@ -25,7 +25,8 @@
|
||||
<!--Login-->
|
||||
<string name="login_header_default">Авторизируйтесь при помощи аккаунта ученика или родителя</string>
|
||||
<string name="login_header_symbol">Впишите \"symbol\"</string>
|
||||
<string name="login_nickname_hint">Электронная почта или имя пользователя</string>
|
||||
<string name="login_nickname_hint">Имя пользователя</string>
|
||||
<string name="login_email_hint">Электронная почта</string>
|
||||
<string name="login_password_hint">Пароль</string>
|
||||
<string name="login_host_hint">Дневник</string>
|
||||
<string name="login_type_api">Мобильный API</string>
|
||||
|
@ -24,7 +24,8 @@
|
||||
<!--Login-->
|
||||
<string name="login_header_default">Sign in with the student or parent account</string>
|
||||
<string name="login_header_symbol">Enter the symbol</string>
|
||||
<string name="login_nickname_hint">Email or nick</string>
|
||||
<string name="login_nickname_hint">Username</string>
|
||||
<string name="login_email_hint">Email</string>
|
||||
<string name="login_password_hint">Password</string>
|
||||
<string name="login_host_hint">Register</string>
|
||||
<string name="login_type_api">Mobile API</string>
|
||||
|
@ -4,7 +4,6 @@ import io.github.wulkanowy.TestSchedulersProvider
|
||||
import io.github.wulkanowy.data.db.entities.Student
|
||||
import io.github.wulkanowy.data.repositories.student.StudentRepository
|
||||
import io.github.wulkanowy.ui.modules.login.LoginErrorHandler
|
||||
import io.github.wulkanowy.utils.AppInfo
|
||||
import io.github.wulkanowy.utils.FirebaseAnalyticsHelper
|
||||
import io.reactivex.Single
|
||||
import org.junit.Before
|
||||
@ -34,9 +33,6 @@ class LoginFormPresenterTest {
|
||||
@Mock
|
||||
lateinit var analytics: FirebaseAnalyticsHelper
|
||||
|
||||
@Mock
|
||||
lateinit var appInfo: AppInfo
|
||||
|
||||
private lateinit var presenter: LoginFormPresenter
|
||||
|
||||
@Before
|
||||
@ -54,36 +50,36 @@ class LoginFormPresenterTest {
|
||||
|
||||
@Test
|
||||
fun emptyNicknameLoginTest() {
|
||||
`when`(loginFormView.formNameValue).thenReturn("")
|
||||
`when`(loginFormView.formUsernameValue).thenReturn("")
|
||||
`when`(loginFormView.formPassValue).thenReturn("test123")
|
||||
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
||||
presenter.onSignInClick()
|
||||
|
||||
verify(loginFormView).setErrorNameRequired()
|
||||
verify(loginFormView).setErrorUsernameRequired()
|
||||
verify(loginFormView, never()).setErrorPassRequired(false)
|
||||
verify(loginFormView, never()).setErrorPassInvalid(false)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun emptyPassLoginTest() {
|
||||
`when`(loginFormView.formNameValue).thenReturn("@")
|
||||
`when`(loginFormView.formUsernameValue).thenReturn("@")
|
||||
`when`(loginFormView.formPassValue).thenReturn("")
|
||||
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
||||
presenter.onSignInClick()
|
||||
|
||||
verify(loginFormView, never()).setErrorNameRequired()
|
||||
verify(loginFormView, never()).setErrorUsernameRequired()
|
||||
verify(loginFormView).setErrorPassRequired(true)
|
||||
verify(loginFormView, never()).setErrorPassInvalid(false)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun invalidPassLoginTest() {
|
||||
`when`(loginFormView.formNameValue).thenReturn("@")
|
||||
`when`(loginFormView.formUsernameValue).thenReturn("@")
|
||||
`when`(loginFormView.formPassValue).thenReturn("123")
|
||||
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
||||
presenter.onSignInClick()
|
||||
|
||||
verify(loginFormView, never()).setErrorNameRequired()
|
||||
verify(loginFormView, never()).setErrorUsernameRequired()
|
||||
verify(loginFormView, never()).setErrorPassRequired(true)
|
||||
verify(loginFormView).setErrorPassInvalid(true)
|
||||
}
|
||||
@ -93,7 +89,7 @@ class LoginFormPresenterTest {
|
||||
val studentTest = Student(email = "test@", password = "123", scrapperBaseUrl = "https://fakelog.cf", loginType = "AUTO", studentName = "", schoolSymbol = "", schoolName = "", studentId = 0, classId = 1, isCurrent = false, symbol = "", registrationDate = now(), className = "", mobileBaseUrl = "", privateKey = "", certificateKey = "", loginMode = "", userLoginId = 0, isParent = false)
|
||||
doReturn(Single.just(listOf(studentTest))).`when`(repository).getStudentsScrapper(anyString(), anyString(), anyString(), anyString())
|
||||
|
||||
`when`(loginFormView.formNameValue).thenReturn("@")
|
||||
`when`(loginFormView.formUsernameValue).thenReturn("@")
|
||||
`when`(loginFormView.formPassValue).thenReturn("123456")
|
||||
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
||||
presenter.onSignInClick()
|
||||
@ -109,7 +105,7 @@ class LoginFormPresenterTest {
|
||||
fun loginEmptyTest() {
|
||||
doReturn(Single.just(emptyList<Student>()))
|
||||
.`when`(repository).getStudentsScrapper(anyString(), anyString(), anyString(), anyString())
|
||||
`when`(loginFormView.formNameValue).thenReturn("@")
|
||||
`when`(loginFormView.formUsernameValue).thenReturn("@")
|
||||
`when`(loginFormView.formPassValue).thenReturn("123456")
|
||||
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
||||
presenter.onSignInClick()
|
||||
@ -125,7 +121,7 @@ class LoginFormPresenterTest {
|
||||
fun loginEmptyTwiceTest() {
|
||||
doReturn(Single.just(emptyList<Student>()))
|
||||
.`when`(repository).getStudentsScrapper(anyString(), anyString(), anyString(), anyString())
|
||||
`when`(loginFormView.formNameValue).thenReturn("@")
|
||||
`when`(loginFormView.formUsernameValue).thenReturn("@")
|
||||
`when`(loginFormView.formPassValue).thenReturn("123456")
|
||||
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
||||
presenter.onSignInClick()
|
||||
@ -142,7 +138,7 @@ class LoginFormPresenterTest {
|
||||
fun loginErrorTest() {
|
||||
val testException = RuntimeException("test")
|
||||
doReturn(Single.error<List<Student>>(testException)).`when`(repository).getStudentsScrapper(anyString(), anyString(), anyString(), anyString())
|
||||
`when`(loginFormView.formNameValue).thenReturn("@")
|
||||
`when`(loginFormView.formUsernameValue).thenReturn("@")
|
||||
`when`(loginFormView.formPassValue).thenReturn("123456")
|
||||
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
||||
presenter.onSignInClick()
|
||||
|
Loading…
x
Reference in New Issue
Block a user