]> WPIA git - gigi.git/blobdiff - tests/org/cacert/gigi/api/TestFindAgent.java
upd: make output of Find-Agent-info JSON-formatted
[gigi.git] / tests / org / cacert / gigi / api / TestFindAgent.java
index e889f1e838210ac2ea61c54f65f579fda30da4bd..71bad946b6ad9306b471cd09bbd6e55571ee7a95 100644 (file)
@@ -7,6 +7,7 @@ import java.io.IOException;
 import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.security.GeneralSecurityException;
+import java.util.Arrays;
 
 import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.dbObjects.Certificate;
@@ -20,6 +21,9 @@ import org.cacert.gigi.pages.account.FindAgentAccess;
 import org.cacert.gigi.testUtils.IOUtils;
 import org.cacert.gigi.testUtils.RestrictedApiTest;
 import org.cacert.gigi.testUtils.TestEmailReceiver.TestMail;
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.json.JSONTokener;
 import org.junit.Test;
 
 public class TestFindAgent extends RestrictedApiTest {
@@ -33,7 +37,7 @@ public class TestFindAgent extends RestrictedApiTest {
         assertEquals(501, v.getResponseCode());
         assertThat(IOUtils.readURL(new InputStreamReader(v.getErrorStream(), "UTF-8")), containsString(FindAgentAccess.PATH));
 
-        grant(u.getEmail(), Group.LOCATE_AGENT);
+        grant(u, Group.LOCATE_AGENT);
         v = doApi(FindAgent.PATH_RESOLVE, "serial=" + target2.getSerial().toLowerCase());
         assertEquals(u.getId(), Integer.parseInt(IOUtils.readURL(v)));
     }
@@ -58,13 +62,13 @@ public class TestFindAgent extends RestrictedApiTest {
         assertThat(v.getResponseMessage(), containsString("needs to enable access"));
 
         // even if sender enables service
-        grant((userUFirst ? u : us2).getEmail(), Group.LOCATE_AGENT);
+        grant((userUFirst ? u : us2), Group.LOCATE_AGENT);
         v = doApi(FindAgent.PATH_MAIL, "from=" + id + "&to=" + u2 + "&subject=the-subject&body=body");
         assertEquals(v.getResponseMessage(), 501, v.getResponseCode());
         assertThat(v.getResponseMessage(), containsString("needs to enable access"));
 
         // receiver needs to enable access as well
-        grant((userUFirst ? us2 : u).getEmail(), Group.LOCATE_AGENT);
+        grant((userUFirst ? us2 : u), Group.LOCATE_AGENT);
         v = doApi(FindAgent.PATH_MAIL, "from=" + id + "&to=" + u2 + "&subject=the-subject&body=body");
         assertEquals(v.getResponseMessage(), 200, v.getResponseCode());
         TestMail mail = getMailReceiver().receive();
@@ -78,10 +82,21 @@ public class TestFindAgent extends RestrictedApiTest {
         int u2 = createVerifiedUser("f", "l", createUniqueName() + "@email.com", TEST_PASSWORD);
 
         String res = IOUtils.readURL(doApi(FindAgent.PATH_INFO, "id=" + id + "&id=" + u2)).replace("\r", "");
-        assertEquals(res, "");
-        grant(email, Group.LOCATE_AGENT);
-        grant(User.getById(u2).getEmail(), Group.LOCATE_AGENT);
         res = IOUtils.readURL(doApi(FindAgent.PATH_INFO, "id=" + id + "&id=" + u2)).replace("\r", "");
-        assertEquals(id + ",true," + u.getName().toString() + "\n" + u2 + ",false," + User.getById(u2).getName().toString() + "\n", res);
+        assertEquals(new JSONArray().toString(), new JSONArray(new JSONTokener(res)).toString());
+        grant(u, Group.LOCATE_AGENT);
+        grant(User.getById(u2), Group.LOCATE_AGENT);
+        res = IOUtils.readURL(doApi(FindAgent.PATH_INFO, "id=" + id + "&id=" + u2)).replace("\r", "");
+        JSONTokener jt = new JSONTokener(res);
+        JSONObject j1 = new JSONObject();
+        j1.put("id", id);
+        j1.put("canAssure", true);
+        j1.put("name", u.getPreferredName().toAbbreviatedString());
+        JSONObject j2 = new JSONObject();
+        j2.put("id", u2);
+        j2.put("canAssure", false);
+        j2.put("name", User.getById(u2).getPreferredName().toAbbreviatedString());
+        JSONArray ja = new JSONArray(Arrays.asList(j1, j2));
+        assertEquals(ja.toString(), new JSONArray(jt).toString());
     }
 }