mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 12:53:55 +01:00
Added comments to isUserBlocked method and tests for the method
This commit is contained in:
parent
39096cf30b
commit
01a3a233a9
2 changed files with 59 additions and 0 deletions
|
|
@ -615,6 +615,10 @@ public class ApacheHttpClientMediaWikiApi implements MediaWikiApi {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks to see if a user is currently blocked
|
||||||
|
* @return whether or not the user is blocked
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean isUserBlocked() {
|
public boolean isUserBlocked() {
|
||||||
boolean userBlocked = false;
|
boolean userBlocked = false;
|
||||||
|
|
@ -626,6 +630,7 @@ public class ApacheHttpClientMediaWikiApi implements MediaWikiApi {
|
||||||
.param("uiprop", "blockinfo")
|
.param("uiprop", "blockinfo")
|
||||||
.get();
|
.get();
|
||||||
if(result != null) {
|
if(result != null) {
|
||||||
|
// the blockexpiry field will only be present if the user is currently blocked
|
||||||
userBlocked = !result.getString("/api/query/userinfo/@blockexpiry").isEmpty();
|
userBlocked = !result.getString("/api/query/userinfo/@blockexpiry").isEmpty();
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
|
||||||
|
|
@ -223,6 +223,60 @@ class ApacheHttpClientMediaWikiApiTest {
|
||||||
assertEquals(23, testObserver.values()[0])
|
assertEquals(23, testObserver.values()[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun isUserBlockedForInfinitelyBlockedUser() {
|
||||||
|
server.enqueue(MockResponse().setBody("<?xml version=\"1.0\"?><api><query><userinfo id=\"1000\" name=\"testusername\" blockid=\"3000\" blockedby=\"blockerusername\" blockedbyid=\"1001\" blockreason=\"testing\" blockedtimestamp=\"2018-05-24T15:32:09Z\" blockexpiry=\"infinite\"></userinfo></query></api>"))
|
||||||
|
|
||||||
|
val result = testObject.isUserBlocked();
|
||||||
|
|
||||||
|
assertBasicRequestParameters(server, "GET").let { userBlockedRequest ->
|
||||||
|
parseQueryParams(userBlockedRequest).let { body ->
|
||||||
|
assertEquals("xml", body["format"])
|
||||||
|
assertEquals("query", body["action"])
|
||||||
|
assertEquals("userinfo", body["meta"])
|
||||||
|
assertEquals("blockinfo", body["uiprop"])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assertTrue(result)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun isUserBlockedForTimeBlockedUser() {
|
||||||
|
server.enqueue(MockResponse().setBody("<?xml version=\"1.0\"?><api><query><userinfo id=\"1000\" name=\"testusername\" blockid=\"3000\" blockedby=\"blockerusername\" blockedbyid=\"1001\" blockreason=\"testing\" blockedtimestamp=\"2018-05-24T15:32:09Z\" blockexpiry=\"2014-09-18T12:34:56Z\"></userinfo></query></api>"))
|
||||||
|
|
||||||
|
val result = testObject.isUserBlocked();
|
||||||
|
|
||||||
|
assertBasicRequestParameters(server, "GET").let { userBlockedRequest ->
|
||||||
|
parseQueryParams(userBlockedRequest).let { body ->
|
||||||
|
assertEquals("xml", body["format"])
|
||||||
|
assertEquals("query", body["action"])
|
||||||
|
assertEquals("userinfo", body["meta"])
|
||||||
|
assertEquals("blockinfo", body["uiprop"])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assertTrue(result)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun isUserBlockedForNotBlockedUser() {
|
||||||
|
server.enqueue(MockResponse().setBody("<?xml version=\"1.0\"?><api><query><userinfo id=\"1000\" name=\"testusername\"></userinfo></query></api>"))
|
||||||
|
|
||||||
|
val result = testObject.isUserBlocked();
|
||||||
|
|
||||||
|
assertBasicRequestParameters(server, "GET").let { userBlockedRequest ->
|
||||||
|
parseQueryParams(userBlockedRequest).let { body ->
|
||||||
|
assertEquals("xml", body["format"])
|
||||||
|
assertEquals("query", body["action"])
|
||||||
|
assertEquals("userinfo", body["meta"])
|
||||||
|
assertEquals("blockinfo", body["uiprop"])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assertFalse(result)
|
||||||
|
}
|
||||||
|
|
||||||
private fun assertBasicRequestParameters(server: MockWebServer, method: String): RecordedRequest = server.takeRequest().let {
|
private fun assertBasicRequestParameters(server: MockWebServer, method: String): RecordedRequest = server.takeRequest().let {
|
||||||
assertEquals("/", it.requestUrl.encodedPath())
|
assertEquals("/", it.requestUrl.encodedPath())
|
||||||
assertEquals(method, it.method)
|
assertEquals(method, it.method)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue