Skip to content

Commit

Permalink
Sample for logging attributes checking test
Browse files Browse the repository at this point in the history
  • Loading branch information
Yuki-YuXin committed Apr 26, 2024
1 parent e20c55b commit d7d9032
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ package com.microsoft.identity.nativeauth
import android.app.Activity
import android.content.Context
import androidx.test.core.app.ApplicationProvider
import com.microsoft.identity.client.ILoggerCallback
import com.microsoft.identity.client.Logger
import com.microsoft.identity.client.PublicClientApplication
import com.microsoft.identity.client.e2e.shadows.ShadowAndroidSdkStorageEncryptionManager
import com.microsoft.identity.client.e2e.tests.PublicClientApplicationAbstractTest
Expand Down Expand Up @@ -76,9 +78,16 @@ import org.junit.BeforeClass
import org.junit.Ignore
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentMatchers.argThat
import org.mockito.Mock
import org.mockito.Mockito
import org.mockito.MockitoAnnotations
import org.mockito.kotlin.any
import org.mockito.kotlin.eq
import org.mockito.kotlin.mock
import org.mockito.kotlin.never
import org.mockito.kotlin.spy
import org.mockito.kotlin.verify
import org.mockito.kotlin.whenever
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config
Expand All @@ -101,6 +110,8 @@ class NativeAuthPublicClientApplicationKotlinTest : PublicClientApplicationAbstr
private val password = "verySafePassword".toCharArray()
private val code = "1234"
private val emptyString = ""
@Mock
private lateinit var externalLogger: ILoggerCallback

override fun getConfigFilePath() = "src/test/res/raw/native_auth_native_only_test_config.json"

Expand All @@ -120,9 +131,12 @@ class NativeAuthPublicClientApplicationKotlinTest : PublicClientApplicationAbstr

@Before
override fun setup() {
MockitoAnnotations.initMocks(this)
context = ApplicationProvider.getApplicationContext()
components = AndroidPlatformComponentsFactory.createFromContext(context)
activity = Mockito.mock(Activity::class.java)
Logger.getInstance().setExternalLogger(externalLogger)
Logger.getInstance().setEnablePII(true)
whenever(activity.applicationContext).thenReturn(context)
setupPCA()
CommandDispatcherHelper.clear()
Expand Down Expand Up @@ -182,9 +196,29 @@ class NativeAuthPublicClientApplicationKotlinTest : PublicClientApplicationAbstr
)

val result = application.signIn(username, password)

checkingSafeLogging()

assertTrue(result is SignInResult.Complete)
}

private fun checkingSafeLogging() {
val elementsToCheck = listOf("username", "password")
elementsToCheck.forEach { element ->
verifyLogContains(element)
}
}
// Custom matcher function to check if a list contains a certain element
private fun verifyLogContains(element: String) {
verify(externalLogger, never()).log(any(), any(), containsElement(element), eq(true))
}

private fun containsElement(element: String): String {
return argThat {
it.contains(element)
}
}

/**
* Test sign in scenario 1:
* 1a -> sign in initiate with username
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,10 @@
"authority_url": "https://ciamtestandroid.ciamlogin.com/ciamtestandroid.onmicrosoft.com"
}
],
"challenge_types" : ["oob", "password"]
"challenge_types" : ["oob", "password"],
"logging": {
"pii_enabled": true,
"log_level": "INFO",
"logcat_enabled": true
}
}

0 comments on commit d7d9032

Please sign in to comment.