|
From: <tre...@us...> - 2007-09-06 13:16:24
|
Revision: 374
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=374&view=rev
Author: trevorolio
Date: 2007-09-06 06:16:24 -0700 (Thu, 06 Sep 2007)
Log Message:
-----------
Improved the account checks when accepting or denying space modifications via web api.
Avoided a null pointer exception in populate mojo when the populate dir was not configured.
Modified Paths:
--------------
maven/trunk/ogoglio-integration-test/src/test/java/com/ogoglio/client/test/ClientTest.java
Modified: maven/trunk/ogoglio-integration-test/src/test/java/com/ogoglio/client/test/ClientTest.java
===================================================================
--- maven/trunk/ogoglio-integration-test/src/test/java/com/ogoglio/client/test/ClientTest.java 2007-09-06 13:16:21 UTC (rev 373)
+++ maven/trunk/ogoglio-integration-test/src/test/java/com/ogoglio/client/test/ClientTest.java 2007-09-06 13:16:24 UTC (rev 374)
@@ -25,6 +25,7 @@
import java.util.Vector;
import javax.media.j3d.Transform3D;
+import javax.vecmath.Vector3d;
import junit.framework.TestCase;
import nanoxml.XMLElement;
@@ -111,8 +112,8 @@
assertNotNull("got null auth cookie", adminAuthenticator.getAuthCookie());
WebAPIClient adminWebClient = new WebAPIClient(descriptor1, adminAuthenticator, wire1);
- adminWebClient.createAccount(USERNAME1, AccountDocument.ACCOUNT_LEVEL_ADVANCED, "Susan", "Examplar", "http://example.com/susan/", "su...@ex...", PASSWORD1);
- adminWebClient.createAccount(USERNAME2, AccountDocument.ACCOUNT_LEVEL_ADVANCED, "Tina", "Examplar", "http://example.com/tina/", "ti...@ex...", PASSWORD1);
+ adminWebClient.createAccount(USERNAME1, AccountDocument.ACCOUNT_LEVEL_ADVANCED, "Susan", "Advanced", "http://example.com/susan/", "su...@ex...", PASSWORD1);
+ adminWebClient.createAccount(USERNAME2, AccountDocument.ACCOUNT_LEVEL_BASIC, "Tina", "Basic", "http://example.com/tina/", "ti...@ex...", PASSWORD1);
assertNotNull(adminWebClient.getAccountDocument(USERNAME1));
assertNotNull(adminWebClient.getAccountDocument(USERNAME2));
@@ -182,55 +183,56 @@
try {
//this section sets up the key variables
- WebAPIAuthenticator auth1 = new WebAPIAuthenticator(wire1, descriptor1, USERNAME1, PASSWORD1);
- WebAPIClient webClient1 = new WebAPIClient(descriptor1, auth1, wire1);
- SpaceDocument spaceDocument = webClient1.createSpace("Susan's Space");
+ WebAPIAuthenticator advancedAuth = new WebAPIAuthenticator(wire1, descriptor1, USERNAME1, PASSWORD1);
+ WebAPIClient advancedClient = new WebAPIClient(descriptor1, advancedAuth, wire1);
+ SpaceDocument spaceDocument = advancedClient.createSpace("Susan's Space");
assertNotNull(spaceDocument);
-
- WebAPIAuthenticator auth2 = new WebAPIAuthenticator(wire1, descriptor1, USERNAME2, PASSWORD1);
- WebAPIClient webClient2 = new WebAPIClient(descriptor1, auth2, wire1);
-
+ advancedClient.setSpacePublished(spaceDocument.getSpaceID(), true);
+
+ WebAPIAuthenticator basicAuth = new WebAPIAuthenticator(wire1, descriptor1, USERNAME2, PASSWORD1);
+ WebAPIClient basicClient = new WebAPIClient(descriptor1, basicAuth, wire1);
+ assertNull(basicClient.createSpace("Tina's Illegal Space Which She Should Not Be Able To Create"));
+
checkNoConnectionToSpaceWithoutAuth(spaceDocument.getSpaceID());
- checkAuthDoc(auth1, auth2);
+ checkAuthDoc(advancedAuth, basicAuth);
- spaceDocument = checkSpaceSeaLevel(webClient1, spaceDocument);
+ spaceDocument = checkSpaceSeaLevel(advancedClient, spaceDocument);
- checkSettings(spaceDocument.getSpaceID(), webClient1);
+ checkSettings(spaceDocument.getSpaceID(), advancedClient);
- checkBody(webClient1, auth1);
+ checkBody(advancedClient, advancedAuth);
- checkSpaceMembership(spaceDocument.getSpaceID(), webClient1);
+ TemplateDocument newTemplateDoc = checkTemplateScriptAPI(advancedClient);
+ ThingDocument[] thingDocs = checkTemplateGeomMaterialsAndPossessions(advancedClient, newTemplateDoc, spaceDocument);
- checkSpaceAuthWithMembership(auth2, webClient2, webClient1, spaceDocument);
+ checkSpaceMembership(spaceDocument.getSpaceID(), advancedClient, basicClient);
- TemplateDocument newTemplateDoc = checkTemplateScriptAPI(webClient1);
- ThingDocument[] thingDocs = checkTemplateGeomMaterialsAndPossessions(webClient1, newTemplateDoc, spaceDocument);
+ checkSpaceAuthWithMembership(basicAuth, basicClient, advancedClient, spaceDocument);
- //IES CHECK: after messing around above, verify we are are ok
- thingDocs = webClient1.getThingDocuments(spaceDocument.getSpaceID());
+ thingDocs = advancedClient.getThingDocuments(spaceDocument.getSpaceID());
assertEquals(1, thingDocs.length);
- checkThingScripting(webClient1, thingDocs[0], spaceDocument);
+ checkThingScripting(advancedClient, thingDocs[0], spaceDocument);
- checkPageManipulation(webClient1, thingDocs[0], spaceDocument);
+ checkPageManipulation(advancedClient, thingDocs[0], spaceDocument);
//figure out the last template added
- TemplateDocument[] templateDocs = webClient1.getTemplateDocuments(USERNAME1);
+ TemplateDocument[] templateDocs = advancedClient.getTemplateDocuments(USERNAME1);
long lastTemplateID = templateDocs[templateDocs.length - 1].getTemplateID();
- checkDoors(webClient1, spaceDocument, lastTemplateID);
+ checkDoors(advancedClient, spaceDocument, lastTemplateID);
- spaceClient1 = checkConnectedUsersToSpace(auth1, webClient1, spaceDocument);
+ spaceClient1 = checkConnectedUsersToSpace(advancedAuth, advancedClient, spaceDocument);
- checkGeomAndResourceStreamsOfTemplate(webClient1, auth1.getUsername(), lastTemplateID);
+ checkGeomAndResourceStreamsOfTemplate(advancedClient, advancedAuth.getUsername(), lastTemplateID);
- authThenBuildSpaceClient(spaceDocument.getSpaceID(), auth1);
+ authThenBuildSpaceClient(spaceDocument.getSpaceID(), advancedAuth);
- checkGeometryAvailableForSpace(webClient1, thingDocs, spaceClient1.getSpace());
+ checkGeometryAvailableForSpace(advancedClient, thingDocs, spaceClient1.getSpace());
- guestSpaceClient1 = checkGuestCookieOperation(spaceDocument.getSpaceID(), webClient1, WebConstants.GUEST_COOKIE_PREFIX + "Test_Suite_Guest");
- checkDeletingSpaceDestroysThings(spaceDocument.getSpaceID(), webClient1, USERNAME1);
+ guestSpaceClient1 = checkGuestCookieOperation(spaceDocument.getSpaceID(), advancedClient, WebConstants.GUEST_COOKIE_PREFIX + "Test_Suite_Guest");
+ checkDeletingSpaceDestroysThings(spaceDocument.getSpaceID(), advancedClient, USERNAME1);
} finally {
if (spaceClient1 != null) {
spaceClient1.cleanup();
@@ -317,7 +319,6 @@
private UserDocument[] verifyUserDocsBySize(WebAPIClient webClient1, long spaceID, int expectedLen, String expectedUsername) throws IOException {
try {
- Log.warn("Sleeping in client test to try prevent timing errors from ruining test!");
Thread.sleep(2500);
} catch (Exception e) {}
@@ -370,14 +371,38 @@
assertEquals(numMemberships, membershipDocs.length);
}
- private void checkSpaceMembership(long spaceID, WebAPIClient webClient1) throws IOException {
- webClient1.addSpaceMember(spaceID, USERNAME2, SpaceMemberDocument.MEMBER);
- SpaceMemberDocument[] membershipDocs = webClient1.getSpaceMemberDocuments(spaceID);
+ private ThingDocument tryToUpdateThing(long spaceID, ThingDocument thingDocument, WebAPIClient client) throws IOException{
+ Vector3d scale = thingDocument.getScale();
+ scale.x += 0.5;
+ thingDocument.setScale(scale);
+ return client.updateThing(spaceID, thingDocument);
+ }
+
+ private void checkSpaceMembership(long spaceID, WebAPIClient advancedClient, WebAPIClient basicClient) throws IOException {
+ advancedClient.addSpaceMember(spaceID, basicClient.getAuthenticator().getUsername(), SpaceMemberDocument.MEMBER);
+
+ ThingDocument[] thingDocuments = basicClient.getThingDocuments(spaceID);
+ assertTrue(thingDocuments.length > 0);
+ assertNotNull(tryToUpdateThing(spaceID, thingDocuments[0], advancedClient));
+ thingDocuments = basicClient.getThingDocuments(spaceID);
+
+ SpaceMemberDocument[] membershipDocs = advancedClient.getSpaceMemberDocuments(spaceID);
assertEquals(1, membershipDocs.length);
assertEquals(USERNAME2, membershipDocs[0].getMemberUsername());
assertEquals(SpaceMemberDocument.MEMBER, membershipDocs[0].getRole());
- webClient1.removeSpaceMember(spaceID, USERNAME2);
- membershipDocs = webClient1.getSpaceMemberDocuments(spaceID);
+ assertNull(tryToUpdateThing(spaceID, thingDocuments[0], basicClient));
+
+ membershipDocs[0].setRole(SpaceMemberDocument.EDITOR);
+ assertNotNull(advancedClient.updateSpaceMember(spaceID, membershipDocs[0]));
+ membershipDocs = advancedClient.getSpaceMemberDocuments(spaceID);
+ assertEquals(1, membershipDocs.length);
+ assertEquals(USERNAME2, membershipDocs[0].getMemberUsername());
+ assertEquals(SpaceMemberDocument.EDITOR, membershipDocs[0].getRole());
+ assertNotNull(tryToUpdateThing(spaceID, thingDocuments[0], basicClient));
+ thingDocuments = basicClient.getThingDocuments(spaceID);
+
+ advancedClient.removeSpaceMember(spaceID, USERNAME2);
+ membershipDocs = advancedClient.getSpaceMemberDocuments(spaceID);
assertEquals(0, membershipDocs.length);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|