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:
commit
602ab41fcc
@ -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()!!
|
||||
|
@ -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)
|
||||
|
@ -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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user