1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-06 15:36:45 +00:00

Merge pull request #555 from owncloud/feature/auth_webfinger_flow

Update WebFinger flow
This commit is contained in:
Juan Carlos Garrote 2023-04-04 13:44:31 +02:00 committed by GitHub
commit 602ab41fcc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 6 deletions

View File

@ -75,13 +75,17 @@ class GetInstancesViaWebFingerOperation(
val response = parseResponse(rawResponse)
Timber.d("Successful WebFinger request: $response")
val operationResult = RemoteOperationResult<List<String>>(RemoteOperationResult.ResultCode.OK)
operationResult.data = response.links.map { it.href }
operationResult.data = response.links?.map { it.href } ?: listOf()
return operationResult
}
override fun run(client: OwnCloudClient): RemoteOperationResult<List<String>> {
val requestUri = buildRequestUri()
val getMethod = GetMethod(URL(requestUri.toString()))
// First iteration won't follow redirections.
getMethod.followRedirects = false
return try {
val status = client.executeHttpMethod(getMethod)
val response = getMethod.getResponseBodyAsString()!!

View File

@ -29,7 +29,7 @@ import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class WebFingerResponse(
val subject: String,
val links: List<LinkItem>
val links: List<LinkItem>?
)
@JsonClass(generateAdapter = true)

View File

@ -22,20 +22,20 @@ class WebFingerResponseTest {
@Test
fun `check rel in too much information - ok`() {
val response = loadResponses(TOO_MUCH_INFORMATION_JSON)!!
Assert.assertEquals("https://gast.somedomain.de", response.links[0].href)
Assert.assertEquals("http://webfinger.owncloud/rel/server-instance", response.links[0].rel)
Assert.assertEquals("https://gast.somedomain.de", response.links!![0].href)
Assert.assertEquals("http://webfinger.owncloud/rel/server-instance", response.links!![0].rel)
}
@Test(expected = JsonDataException::class)
fun `check key value pairs - ko - no href key`() {
val response = loadResponses(BROKEN_JSON)!!
Assert.assertEquals("https://gast.somedomain.de", response.links[0].href)
Assert.assertEquals("https://gast.somedomain.de", response.links!![0].href)
}
@Test(expected = JsonDataException::class)
fun `check key value pairs - ko - no rel key`() {
val response = loadResponses(BROKEN_JSON)!!
Assert.assertEquals("https://gast.somedomain.de", response.links[0].href)
Assert.assertEquals("https://gast.somedomain.de", response.links!![0].href)
}
companion object {