void TeleportAuthenticatortest::test_authenticateTeleport_nonexist() { Entity ent("100", 100); m_world->test_addEntity(&ent, 100); assert(TeleportAuthenticator::instance() != NULL); TeleportAuthenticator::instance()->addTeleport("101", "test_possess_key"); // Test ID authentication request, that we added, for a non existant // entity assert(TeleportAuthenticator::instance()->authenticateTeleport( "101", "test_possess_key") == NULL); }
void TeleportAuthenticatortest::test_authenticateTeleport() { Entity ent("100", 100); m_world->test_addEntity(&ent, 100); assert(TeleportAuthenticator::instance() != NULL); TeleportAuthenticator::instance()->addTeleport("100", "test_possess_key"); // Test non-existent ID authentication request assert(TeleportAuthenticator::instance()->authenticateTeleport( "101", "test_possess_key") == NULL); // Test incorrect possess key authentication request assert(TeleportAuthenticator::instance()->authenticateTeleport("100", "test_wrong_possess_key") == NULL); // Test valid authentication request assert(TeleportAuthenticator::instance()->authenticateTeleport("100", "test_possess_key") != NULL); }
int main() { #ifdef DEBUG_MEM_LEAK_ALLOC_CRASH _CrtSetBreakAlloc(DEBUG_MEM_LEAK_ALLOC_ADDR); #endif { Image* img = NULL; Vec3* eye = NULL; int nObj = 0, nSrc = 0; Object **obj = NULL, **src = NULL; std::cout << "Calling cfg parser." << std::endl; getParams(CONFIG_FILE_PATH); sceneParser(SCENE_PATH, &obj, &nObj, &src, &nSrc, &img, &eye); /* ~~~ Start rendering. ~~~ */ std::cout << "Creating test world\n"; TestWorld world = TestWorld(obj, nObj, src, nSrc, *eye, img, 1.0f); #ifdef EN_PARALLEL_PROC par_proc_testWorld = &world; #endif world.runTest(); /* Delete allocated objects and sources. */ /* First delete objects. */ for (int j = 0; j < nObj; j++) { bool skipThisObj = false; /* Don't delete if we're going to delete it in the sources list later. */ for (int k = 0; k < nSrc; k++) { if (obj[j] == src[k]) { skipThisObj = true; break; } } if (skipThisObj) { continue; } /* No repeat in source list, go ahead and delete. */ std::cout << "Del obj " << j << "\n"; delete obj[j]; } /* delete the array itself. */ delete[] obj; for (int j = 0; j < nSrc; j++) { std::cout << "Del src " << j << "\n"; delete src[j]; } /* delete the array itself. */ delete[] src; img->autoScale(); img->exportBitmap(OUTPUT_IMG); delete img; delete eye; std::cout << "End\n"; } #ifdef DEBUG_MEM_LEAK_REPORT _CrtDumpMemoryLeaks(); #endif return 0; }
int main() { TestWorld world; CommServer server; { Peer * p = new Peer(*(CommSocket*)0, *(ServerRouting*)0, "addr", 6767, "1", 1); delete p; } { Peer * p = new Peer(*(CommSocket*)0, *(ServerRouting*)0, "addr", 6767, "1", 1); Atlas::Objects::Operation::RootOperation op; OpVector res; p->operation(op, res); delete p; } { // Test the setting of authentiaction states Peer * p = new Peer(*(CommSocket*)0, *(ServerRouting*)0, "addr", 6767, "1", 1); assert(p->getAuthState() == PEER_INIT); p->setAuthState(PEER_AUTHENTICATED); assert(p->getAuthState() == PEER_AUTHENTICATED); delete p; } { Peer *p = new Peer(*(CommSocket*)0, *(ServerRouting*)0, "addr", 6767, "1", 1); Atlas::Objects::Operation::Info op; OpVector res; p->operation(op, res); } // Authenticating (no args) { Peer *p = new Peer(*(CommSocket*)0, *(ServerRouting*)0, "addr", 6767, "1", 1); p->setAuthState(PEER_AUTHENTICATING); Atlas::Objects::Operation::Info op; OpVector res; p->operation(op, res); } // Authenticating (empty arg) { Peer *p = new Peer(*(CommSocket*)0, *(ServerRouting*)0, "addr", 6767, "1", 1); p->setAuthState(PEER_AUTHENTICATING); Atlas::Objects::Operation::Info op; Atlas::Objects::Root arg; op->setArgs1(arg); OpVector res; p->operation(op, res); } // Authenticating (full arg) { TestPeer *p = new TestPeer(*(CommSocket*)0, *(ServerRouting*)0, "addr", "1", 1); p->setAuthState(PEER_AUTHENTICATING); Atlas::Objects::Operation::Info op; Atlas::Objects::Root arg; arg->setId("2"); std::list<std::string> parents; parents.push_back("server"); arg->setParents(parents); op->setArgs1(arg); OpVector res; p->operation(op, res); assert(p->getAccountType() == "server"); } // Authenticated (no args) { Peer *p = new Peer(*(CommSocket*)0, *(ServerRouting*)0, "addr", 6767, "1", 1); p->setAuthState(PEER_AUTHENTICATED); Atlas::Objects::Operation::Info op; OpVector res; p->operation(op, res); } { Peer *p = new Peer(*(CommSocket*)0, *(ServerRouting*)0, "addr", 6767, "1", 1); Atlas::Objects::Operation::Error op; OpVector res; p->operation(op, res); } // Not authenticated { Peer *p = new Peer(*(CommSocket*)0, *(ServerRouting*)0, "addr", 6767, "1", 1); Entity e("3", 3); int ret = p->teleportEntity(&e); assert(ret == -1); } // Authenticated { TestCommClient client(server, ""); Peer *p = new Peer(client, *(ServerRouting*)0, "addr", 6767, "1", 1); p->setAuthState(PEER_AUTHENTICATED); Entity e("3", 3); int ret = p->teleportEntity(&e); assert(ret == 0); assert(stub_CommClient_sent_op.isValid()); assert(stub_CommClient_sent_op->getArgs().size() == 1); } // Re-teleport same entity { TestCommClient client(server, ""); Peer *p = new Peer(client, *(ServerRouting*)0, "addr", 6767, "1", 1); p->setAuthState(PEER_AUTHENTICATED); Entity e("3", 3); int ret = p->teleportEntity(&e); assert(ret == 0); assert(stub_CommClient_sent_op.isValid()); assert(stub_CommClient_sent_op->getArgs().size() == 1); ret = p->teleportEntity(&e); assert(ret != 0); } // Character (no mind) { TestCommClient client(server, ""); Peer *p = new Peer(client, *(ServerRouting*)0, "addr", 6767, "1", 1); p->setAuthState(PEER_AUTHENTICATED); Character e("3", 3); int ret = p->teleportEntity(&e); assert(ret == 0); assert(stub_CommClient_sent_op.isValid()); assert(stub_CommClient_sent_op->getArgs().size() == 1); } // Character (externl mind, unconnected) { TestCommClient client(server, ""); Peer *p = new Peer(client, *(ServerRouting*)0, "addr", 6767, "1", 1); p->setAuthState(PEER_AUTHENTICATED); Character e("3", 3); e.m_externalMind = new ExternalMind(e); int ret = p->teleportEntity(&e); assert(ret == 0); assert(stub_CommClient_sent_op.isValid()); assert(stub_CommClient_sent_op->getArgs().size() == 1); } // Character (externl mind, connected) { TestCommClient client(server, ""); Peer *p = new Peer(client, *(ServerRouting*)0, "addr", 6767, "1", 1); p->setAuthState(PEER_AUTHENTICATED); Character e("3", 3); ExternalMind * mind = new ExternalMind(e); mind->linkUp((Link*)23); e.m_externalMind = mind; int ret = p->teleportEntity(&e); assert(ret == 0); assert(stub_CommClient_sent_op.isValid()); assert(stub_CommClient_sent_op->getArgs().size() == 2); } // No arg { Peer *p = new Peer(*(CommSocket*)0, *(ServerRouting*)0, "addr", 6767, "1", 1); Atlas::Objects::Operation::Info op; OpVector res; p->peerTeleportResponse(op, res); } // Empty arg, no refno { Peer *p = new Peer(*(CommSocket*)0, *(ServerRouting*)0, "addr", 6767, "1", 1); Atlas::Objects::Operation::Info op; OpVector res; Atlas::Objects::Root arg; op->setArgs1(arg); p->peerTeleportResponse(op, res); } // Empty arg, made up refno, not CommPeer { TestCommClient *peerConn = new TestCommClient(*(CommServer*)0, "name"); Peer *p = new Peer(*peerConn, *(ServerRouting*)0, "addr", 6767, "1", 1); Atlas::Objects::Operation::Info op; OpVector res; Atlas::Objects::Root arg; op->setArgs1(arg); op->setRefno(23); p->peerTeleportResponse(op, res); } // Empty arg, made up refno { CommPeer *peerConn = new CommPeer(*(CommServer*)0, "name"); Peer *p = new Peer(*peerConn, *(ServerRouting*)0, "addr", 6767, "1", 1); Atlas::Objects::Operation::Info op; OpVector res; Atlas::Objects::Root arg; op->setArgs1(arg); op->setRefno(23); p->peerTeleportResponse(op, res); } // Empty arg, refno that matches earlier teleport, not in world { CommPeer *peerConn = new CommPeer(server, "name"); Peer *p = new Peer(*peerConn, *(ServerRouting*)0, "addr", 6767, "1", 1); p->setAuthState(PEER_AUTHENTICATED); Entity e("23", 23); int ret = p->teleportEntity(&e); assert(ret == 0); Atlas::Objects::Operation::Info op; OpVector res; Atlas::Objects::Root arg; op->setArgs1(arg); op->setRefno(23); p->peerTeleportResponse(op, res); } // Empty arg, refno that matches earlier teleport, in world { CommPeer *peerConn = new CommPeer(server, "name"); Peer *p = new Peer(*peerConn, *(ServerRouting*)0, "addr", 6767, "1", 1); p->setAuthState(PEER_AUTHENTICATED); Entity e("23", 23); int ret = p->teleportEntity(&e); assert(ret == 0); world.test_addEntity(&e, 23); Atlas::Objects::Operation::Info op; OpVector res; Atlas::Objects::Root arg; op->setArgs1(arg); op->setRefno(23); p->peerTeleportResponse(op, res); world.test_delEntity(23); } // Empty arg, refno that matches earlier teleport, with mind { CommPeer *peerConn = new CommPeer(server, "name"); Peer *p = new Peer(*peerConn, *(ServerRouting*)0, "addr", 6767, "1", 1); p->setAuthState(PEER_AUTHENTICATED); Character e("23", 23); ExternalMind * mind = new ExternalMind(e); mind->linkUp((Link*)23); e.m_externalMind = mind; int ret = p->teleportEntity(&e); assert(ret == 0); world.test_addEntity(&e, 23); Atlas::Objects::Operation::Info op; OpVector res; Atlas::Objects::Root arg; op->setArgs1(arg); op->setRefno(23); p->peerTeleportResponse(op, res); world.test_delEntity(23); } // No teleports to clear { Peer *p = new Peer(*(CommSocket*)0, *(ServerRouting*)0, "addr", 6767, "1", 1); p->cleanTeleports(); } // One teleport to clear { TestCommClient client(server, ""); Peer *p = new Peer(client, *(ServerRouting*)0, "addr", 6767, "1", 1); p->setAuthState(PEER_AUTHENTICATED); Entity e("23", 23); int ret = p->teleportEntity(&e); assert(ret == 0); p->cleanTeleports(); } return 0; }