@@ -22,6 +40,6 @@
\ No newline at end of file
diff --git a/docs-web/src/main/webapp/src/partial/share/share.html b/docs-web/src/main/webapp/src/partial/share/share.html
index e857d6f5..c581ae07 100644
--- a/docs-web/src/main/webapp/src/partial/share/share.html
+++ b/docs-web/src/main/webapp/src/partial/share/share.html
@@ -51,6 +51,16 @@
{{ document.coverage }}
rights
{{ document.rights }}
+ Contributors
+
+
+
+
+ {{ contributor.username }}
+
+
+
+
diff --git a/docs-web/src/main/webapp/src/style/main.less b/docs-web/src/main/webapp/src/style/main.less
index e07a3b06..588f939b 100644
--- a/docs-web/src/main/webapp/src/style/main.less
+++ b/docs-web/src/main/webapp/src/style/main.less
@@ -12,6 +12,15 @@
background-color: #263238;
}
+// Selected table line
+.table tr {
+ &.active {
+ td {
+ background-color: #e8e8e8 !important;
+ }
+ }
+}
+
// Documents list
.table-documents {
thead th {
@@ -20,12 +29,6 @@
tbody tr {
cursor: pointer;
-
- &.active {
- td {
- background-color: #e8e8e8;
- }
- }
}
.cell-tags {
@@ -208,4 +211,34 @@ input[readonly].share-link {
white-space: nowrap;
}
}
+}
+
+// Vertical alignment
+.vertical-center {
+ min-height: 100vh;
+
+ /* Make it a flex container */
+ display: -webkit-box;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+
+ /* Align the bootstrap's container vertically */
+ -webkit-box-align : center;
+ -webkit-align-items : center;
+ -moz-box-align : center;
+ -ms-flex-align : center;
+ align-items : center;
+}
+
+// Login
+.login-box-container {
+ background: url('../img/background.jpg') no-repeat center;
+}
+
+.login-box {
+ background: rgba(255, 255, 255, 0.5);
+ padding: 20px;
+ border-radius: 4px
}
\ No newline at end of file
diff --git a/docs-web/src/prod/resources/config.properties b/docs-web/src/prod/resources/config.properties
index 6c2faf82..44ddb414 100644
--- a/docs-web/src/prod/resources/config.properties
+++ b/docs-web/src/prod/resources/config.properties
@@ -1,3 +1,3 @@
api.current_version=${project.version}
api.min_version=1.0
-db.version=6
\ No newline at end of file
+db.version=8
\ No newline at end of file
diff --git a/docs-web/src/stress/resources/config.properties b/docs-web/src/stress/resources/config.properties
index 6c2faf82..44ddb414 100644
--- a/docs-web/src/stress/resources/config.properties
+++ b/docs-web/src/stress/resources/config.properties
@@ -1,3 +1,3 @@
api.current_version=${project.version}
api.min_version=1.0
-db.version=6
\ No newline at end of file
+db.version=8
\ No newline at end of file
diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestAclResource.java b/docs-web/src/test/java/com/sismics/docs/rest/TestAclResource.java
index 3dba5baf..1da249fe 100644
--- a/docs-web/src/test/java/com/sismics/docs/rest/TestAclResource.java
+++ b/docs-web/src/test/java/com/sismics/docs/rest/TestAclResource.java
@@ -28,15 +28,18 @@ public class TestAclResource extends BaseJerseyTest {
*/
@Test
public void testAclResource() {
+ // Create aclGroup2
+ clientUtil.createGroup("aclGroup2");
+
// Login acl1
clientUtil.createUser("acl1");
String acl1Token = clientUtil.login("acl1");
// Login acl2
- clientUtil.createUser("acl2");
+ clientUtil.createUser("acl2", "aclGroup2");
String acl2Token = clientUtil.login("acl2");
- // Create a document
+ // Create a document with acl1
JsonObject json = target().path("/document").request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl1Token)
.put(Entity.form(new Form()
@@ -57,7 +60,7 @@ public class TestAclResource extends BaseJerseyTest {
Response response = target().path("/document/" + document1Id).request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl2Token)
.get();
- Assert.assertEquals(Status.FORBIDDEN, Status.fromStatusCode(response.getStatus()));
+ Assert.assertEquals(Status.NOT_FOUND, Status.fromStatusCode(response.getStatus()));
// Add an ACL READ for acl2 with acl1
json = target().path("/acl").request()
@@ -65,7 +68,8 @@ public class TestAclResource extends BaseJerseyTest {
.put(Entity.form(new Form()
.param("source", document1Id)
.param("perm", "READ")
- .param("username", "acl2")), JsonObject.class);
+ .param("target", "acl2")
+ .param("type", "USER")), JsonObject.class);
String acl2Id = json.getString("id");
// Add an ACL WRITE for acl2 with acl1
@@ -74,7 +78,8 @@ public class TestAclResource extends BaseJerseyTest {
.put(Entity.form(new Form()
.param("source", document1Id)
.param("perm", "WRITE")
- .param("username", "acl2")), JsonObject.class);
+ .param("target", "acl2")
+ .param("type", "USER")), JsonObject.class);
// Add an ACL WRITE for acl2 with acl1 (again)
json = target().path("/acl").request()
@@ -82,7 +87,37 @@ public class TestAclResource extends BaseJerseyTest {
.put(Entity.form(new Form()
.param("source", document1Id)
.param("perm", "WRITE")
- .param("username", "acl2")), JsonObject.class);
+ .param("target", "acl2")
+ .param("type", "USER")), JsonObject.class);
+
+ // Add an ACL READ for aclGroup2 with acl1
+ json = target().path("/acl").request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl1Token)
+ .put(Entity.form(new Form()
+ .param("source", document1Id)
+ .param("perm", "READ")
+ .param("target", "aclGroup2")
+ .param("type", "GROUP")), JsonObject.class);
+ String aclGroup2Id = json.getString("id");
+
+ // Add an ACL WRITE for aclGroup2 with acl1
+ json = target().path("/acl").request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl1Token)
+ .put(Entity.form(new Form()
+ .param("source", document1Id)
+ .param("perm", "WRITE")
+ .param("target", "aclGroup2")
+ .param("type", "GROUP")), JsonObject.class);
+
+ // List all documents with acl2
+ json = target().path("/document/list")
+ .queryParam("sort_column", 3)
+ .queryParam("asc", true)
+ .request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl2Token)
+ .get(JsonObject.class);
+ JsonArray documents = json.getJsonArray("documents");
+ Assert.assertEquals(1, documents.size());
// Get the document as acl1
json = target().path("/document/" + document1Id).request()
@@ -90,7 +125,8 @@ public class TestAclResource extends BaseJerseyTest {
.get(JsonObject.class);
Assert.assertEquals(document1Id, json.getString("id"));
acls = json.getJsonArray("acls");
- Assert.assertEquals(4, acls.size());
+ Assert.assertEquals(6, acls.size());
+ Assert.assertTrue(json.getBoolean("writable"));
// Get the document as acl2
json = target().path("/document/" + document1Id).request()
@@ -98,13 +134,15 @@ public class TestAclResource extends BaseJerseyTest {
.get(JsonObject.class);
Assert.assertEquals(document1Id, json.getString("id"));
acls = json.getJsonArray("acls");
- Assert.assertEquals(4, acls.size());
+ Assert.assertEquals(6, acls.size());
+ Assert.assertTrue(json.getBoolean("writable"));
// Update the document as acl2
json = target().path("/document/" + document1Id).request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl2Token)
.post(Entity.form(new Form()
- .param("title", "My new super document 1")), JsonObject.class);
+ .param("title", "My new super document 1")
+ .param("language", "eng")), JsonObject.class);
Assert.assertEquals(document1Id, json.getString("id"));
// Get the document as acl2
@@ -120,6 +158,29 @@ public class TestAclResource extends BaseJerseyTest {
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl2Token)
.delete(JsonObject.class);
+ // Get the document as acl2
+ json = target().path("/document/" + document1Id).request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl2Token)
+ .get(JsonObject.class);
+ Assert.assertEquals(document1Id, json.getString("id"));
+ acls = json.getJsonArray("acls");
+ Assert.assertEquals(5, acls.size());
+ Assert.assertTrue(json.getBoolean("writable")); // Writable by aclGroup2
+
+ // Delete the ACL WRITE for aclGroup2 with acl2
+ target().path("/acl/" + document1Id + "/WRITE/" + aclGroup2Id).request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl2Token)
+ .delete(JsonObject.class);
+
+ // Get the document as acl2
+ json = target().path("/document/" + document1Id).request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl2Token)
+ .get(JsonObject.class);
+ Assert.assertEquals(document1Id, json.getString("id"));
+ acls = json.getJsonArray("acls");
+ Assert.assertEquals(4, acls.size());
+ Assert.assertFalse(json.getBoolean("writable"));
+
// Delete the ACL READ for acl2 with acl2 (not authorized)
response = target().path("/acl/" + document1Id + "/READ/" + acl2Id).request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl2Token)
@@ -131,6 +192,16 @@ public class TestAclResource extends BaseJerseyTest {
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl1Token)
.delete(JsonObject.class);
+ // Get the document as acl2 (visible by group)
+ target().path("/document/" + document1Id).request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl2Token)
+ .get(JsonObject.class);
+
+ // Delete the ACL READ for aclGroup2 with acl1
+ target().path("/acl/" + document1Id + "/READ/" + aclGroup2Id).request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl1Token)
+ .delete(JsonObject.class);
+
// Get the document as acl1
json = target().path("/document/" + document1Id).request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl1Token)
@@ -144,7 +215,7 @@ public class TestAclResource extends BaseJerseyTest {
response = target().path("/document/" + document1Id).request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl2Token)
.get();
- Assert.assertEquals(Status.FORBIDDEN, Status.fromStatusCode(response.getStatus()));
+ Assert.assertEquals(Status.NOT_FOUND, Status.fromStatusCode(response.getStatus()));
// Delete the ACL READ for acl1 with acl1
response = target().path("/acl/" + document1Id + "/READ/" + acl1Id).request()
@@ -158,7 +229,7 @@ public class TestAclResource extends BaseJerseyTest {
.delete();
Assert.assertEquals(Status.BAD_REQUEST, Status.fromStatusCode(response.getStatus()));
- // Search target list
+ // Search target list (acl)
json = target().path("/acl/target/search")
.queryParam("search", "acl")
.request()
@@ -166,5 +237,18 @@ public class TestAclResource extends BaseJerseyTest {
.get(JsonObject.class);
JsonArray users = json.getJsonArray("users");
Assert.assertEquals(2, users.size());
+ JsonArray groups = json.getJsonArray("groups");
+ Assert.assertEquals(1, groups.size());
+
+ // Search target list (admin)
+ json = target().path("/acl/target/search")
+ .queryParam("search", "admin")
+ .request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, acl1Token)
+ .get(JsonObject.class);
+ users = json.getJsonArray("users");
+ Assert.assertEquals(1, users.size());
+ groups = json.getJsonArray("groups");
+ Assert.assertEquals(1, groups.size());
}
}
\ No newline at end of file
diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestAppResource.java b/docs-web/src/test/java/com/sismics/docs/rest/TestAppResource.java
index 9c1b426f..e6cf2e40 100644
--- a/docs-web/src/test/java/com/sismics/docs/rest/TestAppResource.java
+++ b/docs-web/src/test/java/com/sismics/docs/rest/TestAppResource.java
@@ -27,11 +27,11 @@ public class TestAppResource extends BaseJerseyTest {
@Test
public void testAppResource() {
// Login admin
- String adminAuthenticationToken = clientUtil.login("admin", "admin", false);
+ String adminToken = clientUtil.login("admin", "admin", false);
// Check the application info
JsonObject json = target().path("/app").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.get(JsonObject.class);
String currentVersion = json.getString("current_version");
Assert.assertNotNull(currentVersion);
@@ -44,19 +44,19 @@ public class TestAppResource extends BaseJerseyTest {
// Rebuild Lucene index
Response response = target().path("/app/batch/reindex").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.post(Entity.form(new Form()));
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
// Clean storage
response = target().path("/app/batch/clean_storage").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.post(Entity.form(new Form()));
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
// Recompute quota
response = target().path("/app/batch/recompute_quota").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.post(Entity.form(new Form()));
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
}
@@ -69,13 +69,13 @@ public class TestAppResource extends BaseJerseyTest {
@Test
public void testLogResource() {
// Login admin
- String adminAuthenticationToken = clientUtil.login("admin", "admin", false);
+ String adminToken = clientUtil.login("admin", "admin", false);
// Check the logs (page 1)
JsonObject json = target().path("/app/log")
.queryParam("level", "DEBUG")
.request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.get(JsonObject.class);
JsonArray logs = json.getJsonArray("logs");
Assert.assertTrue(logs.size() > 0);
@@ -88,7 +88,7 @@ public class TestAppResource extends BaseJerseyTest {
.queryParam("offset", "10")
.queryParam("level", "DEBUG")
.request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.get(JsonObject.class);
logs = json.getJsonArray("logs");
Assert.assertTrue(logs.size() > 0);
diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestCommentResource.java b/docs-web/src/test/java/com/sismics/docs/rest/TestCommentResource.java
index b59551dd..f4677dd9 100644
--- a/docs-web/src/test/java/com/sismics/docs/rest/TestCommentResource.java
+++ b/docs-web/src/test/java/com/sismics/docs/rest/TestCommentResource.java
@@ -108,7 +108,8 @@ public class TestCommentResource extends BaseJerseyTest {
.put(Entity.form(new Form()
.param("source", document1Id)
.param("perm", "READ")
- .param("username", "comment2")), JsonObject.class);
+ .param("target", "comment2")
+ .param("type", "USER")), JsonObject.class);
// Create a comment with comment2
json = target().path("/comment").request()
diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestDocumentResource.java b/docs-web/src/test/java/com/sismics/docs/rest/TestDocumentResource.java
index 2bc19d0a..b48dd754 100644
--- a/docs-web/src/test/java/com/sismics/docs/rest/TestDocumentResource.java
+++ b/docs-web/src/test/java/com/sismics/docs/rest/TestDocumentResource.java
@@ -76,6 +76,16 @@ public class TestDocumentResource extends BaseJerseyTest {
String document1Id = json.getString("id");
Assert.assertNotNull(document1Id);
+ // Create a document with document1
+ json = target().path("/document").request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, document1Token)
+ .put(Entity.form(new Form()
+ .param("title", "My super title document 2")
+ .param("language", "eng")
+ .param("relations", document1Id)), JsonObject.class);
+ String document2Id = json.getString("id");
+ Assert.assertNotNull(document2Id);
+
// Add a file
String file1Id = null;
try (InputStream is = Resources.getResource("file/Einstein-Roosevelt-letter.png").openStream()) {
@@ -100,13 +110,13 @@ public class TestDocumentResource extends BaseJerseyTest {
// List all documents
json = target().path("/document/list")
.queryParam("sort_column", 3)
- .queryParam("asc", false)
+ .queryParam("asc", true)
.request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, document1Token)
.get(JsonObject.class);
JsonArray documents = json.getJsonArray("documents");
JsonArray tags = documents.getJsonObject(0).getJsonArray("tags");
- Assert.assertTrue(documents.size() == 1);
+ Assert.assertTrue(documents.size() == 2);
Assert.assertEquals(document1Id, documents.getJsonObject(0).getString("id"));
Assert.assertEquals("eng", documents.getJsonObject(0).getString("language"));
Assert.assertEquals(1, documents.getJsonObject(0).getInt("file_count"));
@@ -130,8 +140,8 @@ public class TestDocumentResource extends BaseJerseyTest {
json = target().path("/document").request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, document3Token)
.put(Entity.form(new Form()
- .param("title", "My super title document 1")
- .param("description", "My super description for document 1")
+ .param("title", "My super title document 3")
+ .param("description", "My super description for document 3")
.param("language", "eng")
.param("create_date", Long.toString(create3Date))), JsonObject.class);
String document3Id = json.getString("id");
@@ -165,8 +175,8 @@ public class TestDocumentResource extends BaseJerseyTest {
// Search documents
Assert.assertEquals(1, searchDocuments("full:uranium full:einstein", document1Token));
- Assert.assertEquals(1, searchDocuments("full:title", document1Token));
- Assert.assertEquals(1, searchDocuments("title", document1Token));
+ Assert.assertEquals(2, searchDocuments("full:title", document1Token));
+ Assert.assertEquals(2, searchDocuments("title", document1Token));
Assert.assertEquals(1, searchDocuments("super description", document1Token));
Assert.assertEquals(1, searchDocuments("subject", document1Token));
Assert.assertEquals(1, searchDocuments("identifier", document1Token));
@@ -177,15 +187,15 @@ public class TestDocumentResource extends BaseJerseyTest {
Assert.assertEquals(1, searchDocuments("greenland", document1Token));
Assert.assertEquals(1, searchDocuments("public domain", document1Token));
Assert.assertEquals(0, searchDocuments("by:document3", document1Token));
- Assert.assertEquals(1, searchDocuments("by:document1", document1Token));
+ Assert.assertEquals(2, searchDocuments("by:document1", document1Token));
Assert.assertEquals(0, searchDocuments("by:nobody", document1Token));
- Assert.assertEquals(1, searchDocuments("at:" + DateTimeFormat.forPattern("yyyy").print(new Date().getTime()), document1Token));
- Assert.assertEquals(1, searchDocuments("at:" + DateTimeFormat.forPattern("yyyy-MM").print(new Date().getTime()), document1Token));
- Assert.assertEquals(1, searchDocuments("at:" + DateTimeFormat.forPattern("yyyy-MM-dd").print(new Date().getTime()), document1Token));
- Assert.assertEquals(1, searchDocuments("after:2010 before:2040-08", document1Token));
+ Assert.assertEquals(2, searchDocuments("at:" + DateTimeFormat.forPattern("yyyy").print(new Date().getTime()), document1Token));
+ Assert.assertEquals(2, searchDocuments("at:" + DateTimeFormat.forPattern("yyyy-MM").print(new Date().getTime()), document1Token));
+ Assert.assertEquals(2, searchDocuments("at:" + DateTimeFormat.forPattern("yyyy-MM-dd").print(new Date().getTime()), document1Token));
+ Assert.assertEquals(2, searchDocuments("after:2010 before:2040-08", document1Token));
Assert.assertEquals(1, searchDocuments("tag:super", document1Token));
Assert.assertEquals(1, searchDocuments("shared:yes", document1Token));
- Assert.assertEquals(1, searchDocuments("lang:eng", document1Token));
+ Assert.assertEquals(2, searchDocuments("lang:eng", document1Token));
Assert.assertEquals(1, searchDocuments("after:2010 before:2040-08 tag:super shared:yes lang:eng title description full:uranium", document1Token));
// Search documents (nothing)
@@ -199,7 +209,7 @@ public class TestDocumentResource extends BaseJerseyTest {
Assert.assertEquals(0, searchDocuments("tag:Nop", document1Token));
Assert.assertEquals(0, searchDocuments("lang:fra", document1Token));
- // Get a document
+ // Get document 1
json = target().path("/document/" + document1Id).request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, document1Token)
.get(JsonObject.class);
@@ -225,6 +235,22 @@ public class TestDocumentResource extends BaseJerseyTest {
JsonArray contributors = json.getJsonArray("contributors");
Assert.assertEquals(1, contributors.size());
Assert.assertEquals("document1", contributors.getJsonObject(0).getString("username"));
+ JsonArray relations = json.getJsonArray("relations");
+ Assert.assertEquals(1, relations.size());
+ Assert.assertEquals(document2Id, relations.getJsonObject(0).getString("id"));
+ Assert.assertFalse(relations.getJsonObject(0).getBoolean("source"));
+ Assert.assertEquals("My super title document 2", relations.getJsonObject(0).getString("title"));
+
+ // Get document 2
+ json = target().path("/document/" + document2Id).request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, document1Token)
+ .get(JsonObject.class);
+ Assert.assertEquals(document2Id, json.getString("id"));
+ relations = json.getJsonArray("relations");
+ Assert.assertEquals(1, relations.size());
+ Assert.assertEquals(document1Id, relations.getJsonObject(0).getString("id"));
+ Assert.assertTrue(relations.getJsonObject(0).getBoolean("source"));
+ Assert.assertEquals("My super title document 1", relations.getJsonObject(0).getString("title"));
// Export a document in PDF format
Response response = target().path("/document/" + document1Id).request()
@@ -241,7 +267,7 @@ public class TestDocumentResource extends BaseJerseyTest {
String tag2Id = json.getString("id");
Assert.assertNotNull(tag1Id);
- // Update a document
+ // Update document 1
json = target().path("/document/" + document1Id).request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, document1Token)
.post(Entity.form(new Form()
@@ -254,18 +280,29 @@ public class TestDocumentResource extends BaseJerseyTest {
.param("source", "My new source for document 1")
.param("type", "Image")
.param("coverage", "France")
+ .param("language", "eng")
.param("rights", "All Rights Reserved")
.param("tags", tag2Id)), JsonObject.class);
Assert.assertEquals(document1Id, json.getString("id"));
+ // Update document 2
+ json = target().path("/document/" + document2Id).request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, document1Token)
+ .post(Entity.form(new Form()
+ .param("title", "My super title document 2")
+ .param("language", "eng")), JsonObject.class);
+ Assert.assertEquals(document2Id, json.getString("id"));
+
// Search documents by query
json = target().path("/document/list")
- .queryParam("search", "super")
+ .queryParam("search", "new")
.request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, document1Token)
.get(JsonObject.class);
+ documents = json.getJsonArray("documents");
+ Assert.assertEquals(1, documents.size());
- // Get a document
+ // Get document 1
json = target().path("/document/" + document1Id).request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, document1Token)
.get(JsonObject.class);
@@ -285,6 +322,15 @@ public class TestDocumentResource extends BaseJerseyTest {
contributors = json.getJsonArray("contributors");
Assert.assertEquals(1, contributors.size());
Assert.assertEquals("document1", contributors.getJsonObject(0).getString("username"));
+ relations = json.getJsonArray("relations");
+ Assert.assertEquals(0, relations.size());
+
+ // Get document 2
+ json = target().path("/document/" + document1Id).request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, document1Token)
+ .get(JsonObject.class);
+ relations = json.getJsonArray("relations");
+ Assert.assertEquals(0, relations.size());
// Deletes a document
json = target().path("/document/" + document1Id).request()
diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestFileResource.java b/docs-web/src/test/java/com/sismics/docs/rest/TestFileResource.java
index f4e851b3..93cd5a5c 100644
--- a/docs-web/src/test/java/com/sismics/docs/rest/TestFileResource.java
+++ b/docs-web/src/test/java/com/sismics/docs/rest/TestFileResource.java
@@ -42,12 +42,12 @@ public class TestFileResource extends BaseJerseyTest {
public void testFileResource() throws Exception {
// Login file1
clientUtil.createUser("file1");
- String file1AuthenticationToken = clientUtil.login("file1");
+ String file1Token = clientUtil.login("file1");
// Create a document
long create1Date = new Date().getTime();
JsonObject json = target().path("/document").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1Token)
.put(Entity.form(new Form()
.param("title", "File test document 1")
.param("language", "eng")
@@ -63,7 +63,7 @@ public class TestFileResource extends BaseJerseyTest {
json = target()
.register(MultiPartFeature.class)
.path("/file").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1Token)
.put(Entity.entity(multiPart.field("id", document1Id).bodyPart(streamDataBodyPart),
MediaType.MULTIPART_FORM_DATA_TYPE), JsonObject.class);
file1Id = json.getString("id");
@@ -80,7 +80,7 @@ public class TestFileResource extends BaseJerseyTest {
json = target()
.register(MultiPartFeature.class)
.path("/file").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1Token)
.put(Entity.entity(multiPart.field("id", document1Id).bodyPart(streamDataBodyPart),
MediaType.MULTIPART_FORM_DATA_TYPE), JsonObject.class);
file2Id = json.getString("id");
@@ -90,7 +90,7 @@ public class TestFileResource extends BaseJerseyTest {
// Get the file data
Response response = target().path("/file/" + file1Id + "/data").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1Token)
.get();
InputStream is = (InputStream) response.getEntity();
byte[] fileBytes = ByteStreams.toByteArray(is);
@@ -101,7 +101,7 @@ public class TestFileResource extends BaseJerseyTest {
response = target().path("/file/" + file1Id + "/data")
.queryParam("size", "thumb")
.request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1Token)
.get();
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
is = (InputStream) response.getEntity();
@@ -113,7 +113,7 @@ public class TestFileResource extends BaseJerseyTest {
response = target().path("/file/" + file1Id + "/data")
.queryParam("size", "web")
.request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1Token)
.get();
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
is = (InputStream) response.getEntity();
@@ -131,7 +131,7 @@ public class TestFileResource extends BaseJerseyTest {
json = target().path("/file/list")
.queryParam("id", document1Id)
.request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1Token)
.get(JsonObject.class);
JsonArray files = json.getJsonArray("files");
Assert.assertEquals(2, files.size());
@@ -141,7 +141,7 @@ public class TestFileResource extends BaseJerseyTest {
// Reorder files
json = target().path("/file/reorder").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1Token)
.post(Entity.form(new Form()
.param("id", document1Id)
.param("order", file2Id)
@@ -151,7 +151,7 @@ public class TestFileResource extends BaseJerseyTest {
json = target().path("/file/list")
.queryParam("id", document1Id)
.request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1Token)
.get(JsonObject.class);
files = json.getJsonArray("files");
Assert.assertEquals(2, files.size());
@@ -162,7 +162,7 @@ public class TestFileResource extends BaseJerseyTest {
response = target().path("/file/zip")
.queryParam("id", document1Id)
.request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1Token)
.get();
is = (InputStream) response.getEntity();
fileBytes = ByteStreams.toByteArray(is);
@@ -170,13 +170,13 @@ public class TestFileResource extends BaseJerseyTest {
// Deletes a file
json = target().path("/file/" + file1Id).request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1Token)
.delete(JsonObject.class);
Assert.assertEquals("ok", json.getString("status"));
// Get the file data (not found)
response = target().path("/file/" + file1Id + "/data").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1Token)
.get();
Assert.assertEquals(Status.NOT_FOUND, Status.fromStatusCode(response.getStatus()));
@@ -192,7 +192,7 @@ public class TestFileResource extends BaseJerseyTest {
json = target().path("/file/list")
.queryParam("id", document1Id)
.request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file1Token)
.get(JsonObject.class);
files = json.getJsonArray("files");
Assert.assertEquals(1, files.size());
@@ -202,7 +202,7 @@ public class TestFileResource extends BaseJerseyTest {
public void testOrphanFile() throws Exception {
// Login file2
clientUtil.createUser("file2");
- String file2AuthenticationToken = clientUtil.login("file2");
+ String file2Token = clientUtil.login("file2");
// Add a file
String file1Id = null;
@@ -212,7 +212,7 @@ public class TestFileResource extends BaseJerseyTest {
JsonObject json = target()
.register(MultiPartFeature.class)
.path("/file").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file2AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file2Token)
.put(Entity.entity(multiPart.bodyPart(streamDataBodyPart),
MediaType.MULTIPART_FORM_DATA_TYPE), JsonObject.class);
file1Id = json.getString("id");
@@ -222,14 +222,14 @@ public class TestFileResource extends BaseJerseyTest {
// Get all orphan files
JsonObject json = target().path("/file/list").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file2AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file2Token)
.get(JsonObject.class);
JsonArray files = json.getJsonArray("files");
Assert.assertEquals(1, files.size());
// Get the file data
Response response = target().path("/file/" + file1Id + "/data").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file2AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file2Token)
.get();
InputStream is = (InputStream) response.getEntity();
byte[] fileBytes = ByteStreams.toByteArray(is);
@@ -238,7 +238,7 @@ public class TestFileResource extends BaseJerseyTest {
// Create a document
json = target().path("/document").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file2AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file2Token)
.put(Entity.form(new Form()
.param("title", "File test document 1")
.param("language", "eng")), JsonObject.class);
@@ -247,7 +247,7 @@ public class TestFileResource extends BaseJerseyTest {
// Attach a file to a document
json = target().path("/file/" + file1Id).request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file2AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file2Token)
.post(Entity.form(new Form()
.param("id", document1Id)), JsonObject.class);
@@ -255,7 +255,7 @@ public class TestFileResource extends BaseJerseyTest {
json = target().path("/file/list")
.queryParam("id", document1Id)
.request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file2AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file2Token)
.get(JsonObject.class);
files = json.getJsonArray("files");
Assert.assertEquals(1, files.size());
@@ -268,7 +268,7 @@ public class TestFileResource extends BaseJerseyTest {
json = target()
.register(MultiPartFeature.class)
.path("/file").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file2AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file2Token)
.put(Entity.entity(multiPart.bodyPart(streamDataBodyPart),
MediaType.MULTIPART_FORM_DATA_TYPE), JsonObject.class);
file2Id = json.getString("id");
@@ -278,7 +278,7 @@ public class TestFileResource extends BaseJerseyTest {
// Deletes a file
json = target().path("/file/" + file2Id).request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file2AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, file2Token)
.delete(JsonObject.class);
Assert.assertEquals("ok", json.getString("status"));
}
@@ -287,7 +287,7 @@ public class TestFileResource extends BaseJerseyTest {
public void testQuota() throws Exception {
// Login file_quota
clientUtil.createUser("file_quota");
- String fileQuotaAuthenticationToken = clientUtil.login("file_quota");
+ String fileQuotaToken = clientUtil.login("file_quota");
// Add a file (292641 bytes large)
String file1Id = null;
@@ -297,7 +297,7 @@ public class TestFileResource extends BaseJerseyTest {
JsonObject json = target()
.register(MultiPartFeature.class)
.path("/file").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaToken)
.put(Entity.entity(multiPart.bodyPart(streamDataBodyPart),
MediaType.MULTIPART_FORM_DATA_TYPE), JsonObject.class);
file1Id = json.getString("id");
@@ -307,7 +307,7 @@ public class TestFileResource extends BaseJerseyTest {
// Check current quota
JsonObject json = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaToken)
.get(JsonObject.class);
Assert.assertEquals(292641l, json.getJsonNumber("storage_current").longValue());
@@ -318,7 +318,7 @@ public class TestFileResource extends BaseJerseyTest {
target()
.register(MultiPartFeature.class)
.path("/file").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaToken)
.put(Entity.entity(multiPart.bodyPart(streamDataBodyPart),
MediaType.MULTIPART_FORM_DATA_TYPE), JsonObject.class);
}
@@ -326,7 +326,7 @@ public class TestFileResource extends BaseJerseyTest {
// Check current quota
json = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaToken)
.get(JsonObject.class);
Assert.assertEquals(585282l, json.getJsonNumber("storage_current").longValue());
@@ -337,7 +337,7 @@ public class TestFileResource extends BaseJerseyTest {
target()
.register(MultiPartFeature.class)
.path("/file").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaToken)
.put(Entity.entity(multiPart.bodyPart(streamDataBodyPart),
MediaType.MULTIPART_FORM_DATA_TYPE), JsonObject.class);
}
@@ -345,7 +345,7 @@ public class TestFileResource extends BaseJerseyTest {
// Check current quota
json = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaToken)
.get(JsonObject.class);
Assert.assertEquals(877923l, json.getJsonNumber("storage_current").longValue());
@@ -356,7 +356,7 @@ public class TestFileResource extends BaseJerseyTest {
Response response = target()
.register(MultiPartFeature.class)
.path("/file").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaToken)
.put(Entity.entity(multiPart.bodyPart(streamDataBodyPart),
MediaType.MULTIPART_FORM_DATA_TYPE));
Assert.assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
@@ -365,13 +365,13 @@ public class TestFileResource extends BaseJerseyTest {
// Deletes a file
json = target().path("/file/" + file1Id).request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaToken)
.delete(JsonObject.class);
Assert.assertEquals("ok", json.getString("status"));
// Check current quota
json = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, fileQuotaToken)
.get(JsonObject.class);
Assert.assertEquals(585282l, json.getJsonNumber("storage_current").longValue());
}
diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestGroupResource.java b/docs-web/src/test/java/com/sismics/docs/rest/TestGroupResource.java
new file mode 100644
index 00000000..834c1261
--- /dev/null
+++ b/docs-web/src/test/java/com/sismics/docs/rest/TestGroupResource.java
@@ -0,0 +1,186 @@
+package com.sismics.docs.rest;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.json.JsonArray;
+import javax.json.JsonObject;
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.core.Form;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.sismics.util.filter.TokenBasedSecurityFilter;
+
+
+/**
+ * Test the group resource.
+ *
+ * @author bgamard
+ */
+public class TestGroupResource extends BaseJerseyTest {
+ /**
+ * Test the group resource.
+ *
+ * @throws JSONException
+ */
+ @Test
+ public void testGroupResource() {
+ // Login admin
+ String adminToken = clientUtil.login("admin", "admin", false);
+
+ // Create group hierarchy
+ clientUtil.createGroup("g1");
+ clientUtil.createGroup("g11", "g1");
+ clientUtil.createGroup("g12", "g1");
+ clientUtil.createGroup("g111", "g11");
+ clientUtil.createGroup("g112", "g11");
+
+ // Login group1
+ clientUtil.createUser("group1", "g112", "g12");
+ String group1Token = clientUtil.login("group1");
+
+ // Login admin2
+ clientUtil.createUser("admin2", "administrators");
+ String admin2Token = clientUtil.login("admin2");
+
+ // Create trashme
+ clientUtil.createUser("trashme");
+
+ // Delete trashme with admin2
+ target().path("/user/trashme").request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, admin2Token)
+ .delete(JsonObject.class);
+
+ // Get all groups
+ JsonObject json = target().path("/group")
+ .queryParam("sort_column", "1")
+ .queryParam("asc", "true")
+ .request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
+ .get(JsonObject.class);
+ JsonArray groups = json.getJsonArray("groups");
+ Assert.assertEquals(6, groups.size());
+ JsonObject groupG11 = groups.getJsonObject(2);
+ Assert.assertEquals("g11", groupG11.getString("name"));
+ Assert.assertEquals("g1", groupG11.getString("parent"));
+
+ // Check admin groups (all computed groups)
+ json = target().path("/user").request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
+ .get(JsonObject.class);
+ groups = json.getJsonArray("groups");
+ Assert.assertEquals(1, groups.size());
+ Assert.assertEquals("administrators", groups.getString(0));
+
+ // Check group1 groups (all computed groups)
+ json = target().path("/user").request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, group1Token)
+ .get(JsonObject.class);
+ groups = json.getJsonArray("groups");
+ List groupList = new ArrayList<>();
+ for (int i = 0; i < groups.size(); i++) {
+ groupList.add(groups.getString(i));
+ }
+ Assert.assertEquals(4, groups.size());
+ Assert.assertTrue(groupList.contains("g1"));
+ Assert.assertTrue(groupList.contains("g12"));
+ Assert.assertTrue(groupList.contains("g11"));
+ Assert.assertTrue(groupList.contains("g112"));
+
+ // Check group1 groups with admin (only direct groups)
+ json = target().path("/user/group1").request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
+ .get(JsonObject.class);
+ groups = json.getJsonArray("groups");
+ Assert.assertEquals(2, groups.size());
+ Assert.assertEquals("g112", groups.getString(0));
+ Assert.assertEquals("g12", groups.getString(1));
+
+ // List all users in group1
+ json = target().path("/user/list")
+ .queryParam("group", "g112")
+ .request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
+ .get(JsonObject.class);
+ JsonArray users = json.getJsonArray("users");
+ Assert.assertEquals(1, users.size());
+
+ // Add group1 to g112 (again)
+ json = target().path("/group/g112").request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
+ .put(Entity.form(new Form()
+ .param("username", "group1")), JsonObject.class);
+
+ // Check group1 groups (all computed groups)
+ json = target().path("/user").request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, group1Token)
+ .get(JsonObject.class);
+ groups = json.getJsonArray("groups");
+ Assert.assertEquals(4, groups.size());
+
+ // Update group g12
+ target().path("/group/g12").request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
+ .post(Entity.form(new Form()
+ .param("name", "g12new")
+ .param("parent", "g11")), JsonObject.class);
+
+ // Check group1 groups with admin (only direct groups)
+ json = target().path("/user/group1").request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
+ .get(JsonObject.class);
+ groups = json.getJsonArray("groups");
+ Assert.assertEquals(2, groups.size());
+ Assert.assertEquals("g112", groups.getString(0));
+ Assert.assertEquals("g12new", groups.getString(1));
+
+ // Get group g12new
+ json = target().path("/group/g12new").request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
+ .get(JsonObject.class);
+ Assert.assertEquals("g12new", json.getString("name"));
+ Assert.assertEquals("g11", json.getString("parent"));
+ JsonArray members = json.getJsonArray("members");
+ Assert.assertEquals(1, members.size());
+ Assert.assertEquals("group1", members.getString(0));
+
+ // Remove group1 from g12new
+ json = target().path("/group/g12new/group1").request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
+ .delete(JsonObject.class);
+
+ // Check group1 groups (all computed groups)
+ json = target().path("/user").request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, group1Token)
+ .get(JsonObject.class);
+ groups = json.getJsonArray("groups");
+ groupList = new ArrayList<>();
+ for (int i = 0; i < groups.size(); i++) {
+ groupList.add(groups.getString(i));
+ }
+ Assert.assertEquals(3, groups.size());
+ Assert.assertTrue(groupList.contains("g1"));
+ Assert.assertTrue(groupList.contains("g11"));
+ Assert.assertTrue(groupList.contains("g112"));
+
+ // Delete group g1
+ json = target().path("/group/g1").request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
+ .delete(JsonObject.class);
+
+ // Check group1 groups (all computed groups)
+ json = target().path("/user").request()
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, group1Token)
+ .get(JsonObject.class);
+ groups = json.getJsonArray("groups");
+ groupList = new ArrayList<>();
+ for (int i = 0; i < groups.size(); i++) {
+ groupList.add(groups.getString(i));
+ }
+ Assert.assertEquals(2, groups.size());
+ Assert.assertTrue(groupList.contains("g11"));
+ Assert.assertTrue(groupList.contains("g112"));
+ }
+}
\ No newline at end of file
diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestSecurity.java b/docs-web/src/test/java/com/sismics/docs/rest/TestSecurity.java
index a05571fd..0b938a64 100644
--- a/docs-web/src/test/java/com/sismics/docs/rest/TestSecurity.java
+++ b/docs-web/src/test/java/com/sismics/docs/rest/TestSecurity.java
@@ -38,11 +38,11 @@ public class TestSecurity extends BaseJerseyTest {
Assert.assertEquals("You don't have access to this resource", json.getString("message"));
// User testsecurity logs in
- String testSecurityAuthenticationToken = clientUtil.login("testsecurity");
+ String testSecurityToken = clientUtil.login("testsecurity");
// User testsecurity creates a new user KO : no permission
response = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, testSecurityAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, testSecurityToken)
.put(Entity.form(new Form()));
Assert.assertEquals(Status.FORBIDDEN, Status.fromStatusCode(response.getStatus()));
Assert.assertEquals("ForbiddenError", json.getString("type"));
@@ -50,29 +50,29 @@ public class TestSecurity extends BaseJerseyTest {
// User testsecurity changes his email OK
json = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, testSecurityAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, testSecurityToken)
.post(Entity.form(new Form()
.param("email", "testsecurity2@docs.com")), JsonObject.class);
Assert.assertEquals("ok", json.getString("status"));
// User testsecurity logs out
response = target().path("/user/logout").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, testSecurityAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, testSecurityToken)
.post(Entity.form(new Form()));
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
- testSecurityAuthenticationToken = clientUtil.getAuthenticationCookie(response);
- Assert.assertTrue(StringUtils.isEmpty(testSecurityAuthenticationToken));
+ testSecurityToken = clientUtil.getAuthenticationCookie(response);
+ Assert.assertTrue(StringUtils.isEmpty(testSecurityToken));
// User testsecurity logs out KO : he is not connected anymore
response = target().path("/user/logout").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, testSecurityAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, testSecurityToken)
.post(Entity.form(new Form()));
Assert.assertEquals(Status.FORBIDDEN, Status.fromStatusCode(response.getStatus()));
// User testsecurity logs in with a long lived session
- testSecurityAuthenticationToken = clientUtil.login("testsecurity", "12345678", true);
+ testSecurityToken = clientUtil.login("testsecurity", "12345678", true);
// User testsecurity logs out
- clientUtil.logout(testSecurityAuthenticationToken);
+ clientUtil.logout(testSecurityToken);
}
}
\ No newline at end of file
diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestShareResource.java b/docs-web/src/test/java/com/sismics/docs/rest/TestShareResource.java
index eea8ab85..4bccaf43 100644
--- a/docs-web/src/test/java/com/sismics/docs/rest/TestShareResource.java
+++ b/docs-web/src/test/java/com/sismics/docs/rest/TestShareResource.java
@@ -36,11 +36,11 @@ public class TestShareResource extends BaseJerseyTest {
public void testShareResource() throws Exception {
// Login share1
clientUtil.createUser("share1");
- String share1AuthenticationToken = clientUtil.login("share1");
+ String share1Token = clientUtil.login("share1");
// Create a document
JsonObject json = target().path("/document").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, share1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, share1Token)
.put(Entity.form(new Form()
.param("title", "File test document 1")
.param("language", "eng")), JsonObject.class);
@@ -55,7 +55,7 @@ public class TestShareResource extends BaseJerseyTest {
json = target()
.register(MultiPartFeature.class)
.path("/file").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, share1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, share1Token)
.put(Entity.entity(multiPart.field("id", document1Id).bodyPart(streamDataBodyPart),
MediaType.MULTIPART_FORM_DATA_TYPE), JsonObject.class);
file1Id = json.getString("id");
@@ -64,7 +64,7 @@ public class TestShareResource extends BaseJerseyTest {
// Share this document
json = target().path("/share").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, share1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, share1Token)
.put(Entity.form(new Form()
.param("id", document1Id)
.param("name", "4 All")), JsonObject.class);
@@ -107,9 +107,9 @@ public class TestShareResource extends BaseJerseyTest {
// Deletes the share (not allowed)
clientUtil.createUser("share2");
- String share2AuthenticationToken = clientUtil.login("share2");
+ String share2Token = clientUtil.login("share2");
response = target().path("/share/" + share1Id).request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, share2AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, share2Token)
.delete();
Assert.assertEquals(Status.BAD_REQUEST, Status.fromStatusCode(response.getStatus()));
json = response.readEntity(JsonObject.class);
@@ -117,13 +117,13 @@ public class TestShareResource extends BaseJerseyTest {
// Deletes the share
json = target().path("/share/" + share1Id).request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, share1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, share1Token)
.delete(JsonObject.class);
Assert.assertEquals("ok", json.getString("status"));
// Deletes the share again
response = target().path("/share/" + share1Id).request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, share1AuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, share1Token)
.delete();
Assert.assertEquals(Status.BAD_REQUEST, Status.fromStatusCode(response.getStatus()));
json = response.readEntity(JsonObject.class);
diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestTagResource.java b/docs-web/src/test/java/com/sismics/docs/rest/TestTagResource.java
index af9c8eb3..49f68a9d 100644
--- a/docs-web/src/test/java/com/sismics/docs/rest/TestTagResource.java
+++ b/docs-web/src/test/java/com/sismics/docs/rest/TestTagResource.java
@@ -85,6 +85,8 @@ public class TestTagResource extends BaseJerseyTest {
response = target().path("/document/" + document2Id).request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, tag1Token)
.post(Entity.form(new Form()
+ .param("title", "My super document 2")
+ .param("language", "eng")
.param("tags", tag3Id)
.param("tags", tag4Id)));
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
@@ -102,6 +104,8 @@ public class TestTagResource extends BaseJerseyTest {
response = target().path("/document/" + document2Id).request()
.cookie(TokenBasedSecurityFilter.COOKIE_NAME, tag1Token)
.post(Entity.form(new Form()
+ .param("title", "My super document 2")
+ .param("language", "eng")
.param("tags", tag4Id)));
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestUserResource.java b/docs-web/src/test/java/com/sismics/docs/rest/TestUserResource.java
index a67ce500..aca82154 100644
--- a/docs-web/src/test/java/com/sismics/docs/rest/TestUserResource.java
+++ b/docs-web/src/test/java/com/sismics/docs/rest/TestUserResource.java
@@ -37,14 +37,14 @@ public class TestUserResource extends BaseJerseyTest {
clientUtil.createUser("alice");
// Login admin
- String adminAuthenticationToken = clientUtil.login("admin", "admin", false);
+ String adminToken = clientUtil.login("admin", "admin", false);
// List all users
json = target().path("/user/list")
.queryParam("sort_column", 2)
.queryParam("asc", false)
.request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.get(JsonObject.class);
JsonArray users = json.getJsonArray("users");
Assert.assertTrue(users.size() > 0);
@@ -58,7 +58,7 @@ public class TestUserResource extends BaseJerseyTest {
// Create a user KO (login length validation)
Response response = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.put(Entity.form(new Form()
.param("username", " bb ")
.param("email", "bob@docs.com")
@@ -71,7 +71,7 @@ public class TestUserResource extends BaseJerseyTest {
// Create a user KO (login format validation)
response = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.put(Entity.form(new Form()
.param("username", "bob-")
.param("email", "bob@docs.com")
@@ -84,7 +84,7 @@ public class TestUserResource extends BaseJerseyTest {
// Create a user KO (invalid quota)
response = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.put(Entity.form(new Form()
.param("username", "bob")
.param("email", "bob@docs.com")
@@ -97,7 +97,7 @@ public class TestUserResource extends BaseJerseyTest {
// Create a user KO (email format validation)
response = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.put(Entity.form(new Form()
.param("username", "bob")
.param("email", "bobdocs.com")
@@ -115,12 +115,12 @@ public class TestUserResource extends BaseJerseyTest {
.param("password", " 12345678 ")
.param("storage_quota", "10");
json = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.put(Entity.form(form), JsonObject.class);
// Create a user bob KO : duplicate username
response = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.put(Entity.form(form));
Assert.assertNotSame(Status.OK, Status.fromStatusCode(response.getStatus()));
json = response.readEntity(JsonObject.class);
@@ -144,12 +144,12 @@ public class TestUserResource extends BaseJerseyTest {
String aliceAuthToken = clientUtil.getAuthenticationCookie(response);
// Login user bob twice
- String bobAuthToken = clientUtil.login("bob");
- String bobAuthToken2 = clientUtil.login("bob");
+ String bobToken = clientUtil.login("bob");
+ String bobToken2 = clientUtil.login("bob");
// List sessions
response = target().path("/user/session").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, bobAuthToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, bobToken)
.get();
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
json = response.readEntity(JsonObject.class);
@@ -160,13 +160,13 @@ public class TestUserResource extends BaseJerseyTest {
// Delete all sessions
response = target().path("/user/session").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, bobAuthToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, bobToken)
.delete();
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
// Check bob user information with token 2 (just deleted)
response = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, bobAuthToken2)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, bobToken2)
.get();
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
json = response.readEntity(JsonObject.class);
@@ -183,7 +183,7 @@ public class TestUserResource extends BaseJerseyTest {
// Check bob user information
json = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, bobAuthToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, bobToken)
.get(JsonObject.class);
Assert.assertEquals("bob@docs.com", json.getString("email"));
@@ -238,11 +238,11 @@ public class TestUserResource extends BaseJerseyTest {
clientUtil.createUser("admin_user1");
// Login admin
- String adminAuthenticationToken = clientUtil.login("admin", "admin", false);
+ String adminToken = clientUtil.login("admin", "admin", false);
// Check admin information
JsonObject json = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.get(JsonObject.class);
Assert.assertTrue(json.getBoolean("is_default_password"));
Assert.assertEquals(0l, json.getJsonNumber("storage_current").longValue());
@@ -250,27 +250,27 @@ public class TestUserResource extends BaseJerseyTest {
// User admin updates his information
json = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.post(Entity.form(new Form()
.param("email", "newadminemail@docs.com")), JsonObject.class);
Assert.assertEquals("ok", json.getString("status"));
// Check admin information update
json = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.get(JsonObject.class);
Assert.assertEquals("newadminemail@docs.com", json.getString("email"));
// User admin update admin_user1 information
json = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.post(Entity.form(new Form()
.param("email", " alice2@docs.com ")), JsonObject.class);
Assert.assertEquals("ok", json.getString("status"));
// User admin deletes himself: forbidden
Response response = target().path("/user").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.delete();
Assert.assertEquals(Status.BAD_REQUEST, Status.fromStatusCode(response.getStatus()));
json = response.readEntity(JsonObject.class);
@@ -278,13 +278,13 @@ public class TestUserResource extends BaseJerseyTest {
// User admin deletes user admin_user1
json = target().path("/user/admin_user1").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.delete(JsonObject.class);
Assert.assertEquals("ok", json.getString("status"));
// User admin deletes user admin_user1 : KO (user doesn't exist)
response = target().path("/user/admin_user1").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.delete();
Assert.assertEquals(Status.BAD_REQUEST, Status.fromStatusCode(response.getStatus()));
json = response.readEntity(JsonObject.class);
diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java b/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java
index 491bab7a..9d2005e3 100644
--- a/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java
+++ b/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java
@@ -29,7 +29,7 @@ public class TestVocabularyResource extends BaseJerseyTest {
String vocabulary1Token = clientUtil.login("vocabulary1");
// Login admin
- String adminAuthenticationToken = clientUtil.login("admin", "admin", false);
+ String adminToken = clientUtil.login("admin", "admin", false);
// Get coverage vocabularies entries
JsonObject json = target().path("/vocabulary/coverage").request()
@@ -49,7 +49,7 @@ public class TestVocabularyResource extends BaseJerseyTest {
// Create a vocabulary entry with admin
json = target().path("/vocabulary").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.put(Entity.form(new Form()
.param("name", "test-voc-1")
.param("value", "First value")
@@ -62,7 +62,7 @@ public class TestVocabularyResource extends BaseJerseyTest {
// Create a vocabulary entry with admin
Response response = target().path("/vocabulary").request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.put(Entity.form(new Form()
.param("name", "NOT_VALID")
.param("value", "First value")
@@ -81,7 +81,7 @@ public class TestVocabularyResource extends BaseJerseyTest {
// Update a vocabulary entry with admin
json = target().path("/vocabulary/" + vocabulary1Id).request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.post(Entity.form(new Form()
.param("name", "test-voc-1-updated")
.param("value", "First value updated")
@@ -103,7 +103,7 @@ public class TestVocabularyResource extends BaseJerseyTest {
// Delete a vocabulary entry with admin
json = target().path("/vocabulary/" + vocabulary1Id).request()
- .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken)
+ .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminToken)
.delete(JsonObject.class);
// Get test-voc-1-updated vocabularies entries
|