Use central auth token only for cross wiki calls (#2318)

* Use central auth token only for cross wiki calls

* Fix tests

* Add test for wikidata edit token
This commit is contained in:
Vivek Maskara 2019-01-25 13:44:41 +05:30 committed by Josephine Lim
parent de9611821b
commit 68ae11e37f
3 changed files with 24 additions and 13 deletions

View file

@ -186,11 +186,27 @@ class ApacheHttpClientMediaWikiApiTest {
@Test
fun editToken() {
server.enqueue(MockResponse().setBody("<?xml version=\"1.0\"?><api><centralauthtoken centralauthtoken=\"abc\" /></api>"))
server.enqueue(MockResponse().setBody("<?xml version=\"1.0\"?><api><query><tokens csrftoken=\"baz\" /></query></api>"))
val result = testObject.editToken
assertBasicRequestParameters(server, "POST").let { editTokenRequest ->
parseBody(editTokenRequest.body.readUtf8()).let { body ->
assertEquals("query", body["action"])
assertEquals("tokens", body["meta"])
}
}
assertEquals("baz", result)
}
@Test
fun getWikidataEditToken() {
server.enqueue(MockResponse().setBody("<?xml version=\"1.0\"?><api><centralauthtoken centralauthtoken=\"abc\" /></api>"))
wikidataServer.enqueue(MockResponse().setBody("<?xml version=\"1.0\"?><api><query><tokens csrftoken=\"baz\" /></query></api>"))
val result = testObject.wikidataCsrfToken
assertBasicRequestParameters(server, "GET").let { centralAuthTokenRequest ->
parseQueryParams(centralAuthTokenRequest).let { params ->
assertEquals("xml", params["format"])
@ -198,7 +214,7 @@ class ApacheHttpClientMediaWikiApiTest {
}
}
assertBasicRequestParameters(server, "POST").let { editTokenRequest ->
assertBasicRequestParameters(wikidataServer, "POST").let { editTokenRequest ->
parseBody(editTokenRequest.body.readUtf8()).let { body ->
assertEquals("query", body["action"])
assertEquals("abc", body["centralauthtoken"])