|
18 | 18 | // @author: Marco Tibuzzi
|
19 | 19 |
|
20 | 20 | import static play.test.Helpers.DELETE;
|
21 |
| -import static play.test.Helpers.HTMLUNIT; |
22 | 21 | import static play.test.Helpers.GET;
|
| 22 | +import static play.test.Helpers.HTMLUNIT; |
23 | 23 | import static play.test.Helpers.POST;
|
| 24 | +import static play.test.Helpers.PUT; |
24 | 25 | import static play.test.Helpers.fakeApplication;
|
25 | 26 | import static play.test.Helpers.routeAndCall;
|
26 | 27 | import static play.test.Helpers.running;
|
|
38 | 39 | import org.junit.Test;
|
39 | 40 |
|
40 | 41 | import play.libs.F.Callback;
|
41 |
| -import play.mvc.Result; |
42 | 42 | import play.mvc.Http.Status;
|
| 43 | +import play.mvc.Result; |
43 | 44 | import play.test.FakeRequest;
|
44 | 45 | import play.test.TestBrowser;
|
45 | 46 | import core.AbstractDocumentTest;
|
@@ -274,6 +275,89 @@ public void invoke(TestBrowser browser)
|
274 | 275 | );
|
275 | 276 | }
|
276 | 277 |
|
| 278 | + |
| 279 | + @Test |
| 280 | + public void testAccessDocumentsWithoutAuth() { |
| 281 | + running |
| 282 | + ( |
| 283 | + fakeApplication(), |
| 284 | + new Runnable() |
| 285 | + { |
| 286 | + public void run() |
| 287 | + { |
| 288 | + |
| 289 | + //Anonymous user looking for a non existent collection |
| 290 | + FakeRequest request = new FakeRequest(GET, getRouteAddress("PIPPOPLUTO")); |
| 291 | + request = request.withHeader(TestConfig.KEY_APPCODE, TestConfig.VALUE_APPCODE); |
| 292 | + request = request.withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED); |
| 293 | + Result result = routeAndCall(request); |
| 294 | + assertRoute(result, "testAccessDocumentsWithoutAuth.not_exists", Status.NOT_FOUND, null, false); |
| 295 | + |
| 296 | + //Admin creates a collection |
| 297 | + String sFakeCollection = new AdminCollectionFunctionalTest().routeCreateCollection(); |
| 298 | + //Anonymous user looking for its documents |
| 299 | + request = new FakeRequest(GET, getRouteAddress(sFakeCollection)); |
| 300 | + request = request.withHeader(TestConfig.KEY_APPCODE, TestConfig.VALUE_APPCODE); |
| 301 | + request = request.withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED); |
| 302 | + result = routeAndCall(request); |
| 303 | + assertRoute(result, "testAccessDocumentsWithoutAuth.get_all", Status.OK, "\"result\":\"ok\",\"data\":[]", true); |
| 304 | + |
| 305 | + //Admin creates a document |
| 306 | + result = routeCreateDocument(getRouteAddress(sFakeCollection)); |
| 307 | + assertRoute(result, "testAccessDocumentsWithoutAuth,create", Status.OK, null, true); |
| 308 | + String sUUID = getUuid(); |
| 309 | + |
| 310 | + //Anonymous user looking for it and grab jus an error 404 |
| 311 | + request = new FakeRequest(GET, getRouteAddress(sFakeCollection) + "/" + sUUID); |
| 312 | + request = request.withHeader(TestConfig.KEY_APPCODE, TestConfig.VALUE_APPCODE); |
| 313 | + request = request.withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED); |
| 314 | + result = routeAndCall(request); |
| 315 | + assertRoute(result, "testAccessDocumentsWithoutAuth.not_exists", Status.NOT_FOUND, null, false); |
| 316 | + |
| 317 | + //Admin changes the grant to the document |
| 318 | + |
| 319 | + request = new FakeRequest(PUT, getRouteAddress(sFakeCollection) + "/" + sUUID + "/read/role/anonymous"); |
| 320 | + request = request.withHeader(TestConfig.KEY_APPCODE, TestConfig.VALUE_APPCODE); |
| 321 | + request = request.withHeader(TestConfig.KEY_AUTH, TestConfig.AUTH_ADMIN_ENC); |
| 322 | + request = request.withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED); |
| 323 | + result = routeAndCall(request); |
| 324 | + assertRoute(result, "testAccessDocumentsWithoutAuth.grant", Status.OK, null, false); |
| 325 | + |
| 326 | + //Anonymous user looking for it and obtains it |
| 327 | + request = new FakeRequest(GET, getRouteAddress(sFakeCollection) + "/" + sUUID); |
| 328 | + request = request.withHeader(TestConfig.KEY_APPCODE, TestConfig.VALUE_APPCODE); |
| 329 | + request = request.withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED); |
| 330 | + result = routeAndCall(request); |
| 331 | + assertRoute(result, "testAccessDocumentsWithoutAuth.get_after_grant", Status.OK, null, false); |
| 332 | + |
| 333 | + //Anonymous user looking for the collection and obtain a list with one record |
| 334 | + request = new FakeRequest(GET, getRouteAddress(sFakeCollection)); |
| 335 | + request = request.withHeader(TestConfig.KEY_APPCODE, TestConfig.VALUE_APPCODE); |
| 336 | + request = request.withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED); |
| 337 | + result = routeAndCall(request); |
| 338 | + assertRoute(result, "testAccessDocumentsWithoutAuth.get_all", Status.OK, "\"result\":\"ok\",\"data\":[{\"", true); |
| 339 | + |
| 340 | + |
| 341 | + //Admin revokes the grant to the document |
| 342 | + request = new FakeRequest(DELETE, getRouteAddress(sFakeCollection) + "/" + sUUID + "/read/role/anonymous"); |
| 343 | + request = request.withHeader(TestConfig.KEY_APPCODE, TestConfig.VALUE_APPCODE); |
| 344 | + request = request.withHeader(TestConfig.KEY_AUTH, TestConfig.AUTH_ADMIN_ENC); |
| 345 | + request = request.withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED); |
| 346 | + result = routeAndCall(request); |
| 347 | + assertRoute(result, "testAccessDocumentsWithoutAuth.revoke", Status.OK, null, false); |
| 348 | + |
| 349 | + //Anonymous user looking for it and obtains nothing |
| 350 | + request = new FakeRequest(GET, getRouteAddress(sFakeCollection) + "/" + sUUID); |
| 351 | + request = request.withHeader(TestConfig.KEY_APPCODE, TestConfig.VALUE_APPCODE); |
| 352 | + request = request.withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED); |
| 353 | + result = routeAndCall(request); |
| 354 | + assertRoute(result,
6D47
"testAccessDocumentsWithoutAuth.not_found_2", Status.NOT_FOUND, null, false); |
| 355 | + |
| 356 | + } |
| 357 | + } |
| 358 | + ); |
| 359 | + } |
| 360 | + |
277 | 361 | @Test
|
278 | 362 | public void testServerCMDDocument()
|
279 | 363 | {
|
|
0 commit comments