mirror of
https://github.com/vanitasvitae/Smack.git
synced 2024-11-05 11:45:58 +01:00
1e57f1c659
Delete also all "All rights reserved" statements, as they are unnecessary and conflict with checkstyle's header check. Delete unused imports.
157 lines
4.9 KiB
Java
157 lines
4.9 KiB
Java
/**
|
|
*
|
|
* Copyright 2003-2006 Jive Software.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package org.jivesoftware.smackx;
|
|
|
|
import org.jivesoftware.smack.XMPPConnection;
|
|
import org.jivesoftware.smack.XMPPException;
|
|
import org.jivesoftware.smack.packet.Message;
|
|
import org.jivesoftware.smack.test.SmackTestCase;
|
|
import org.jivesoftware.smackx.packet.LastActivity;
|
|
|
|
public class LastActivityManagerTest extends SmackTestCase {
|
|
|
|
/**
|
|
* This is a test to check if a LastActivity request for idle time is
|
|
* answered and correct.
|
|
*/
|
|
public void testOnline() {
|
|
XMPPConnection conn0 = getConnection(0);
|
|
XMPPConnection conn1 = getConnection(1);
|
|
|
|
// Send a message as the last activity action from connection 1 to
|
|
// connection 0
|
|
conn1.sendPacket(new Message(getBareJID(0)));
|
|
|
|
// Wait 1 seconds to have some idle time
|
|
try {
|
|
Thread.sleep(1000);
|
|
} catch (InterruptedException e) {
|
|
e.printStackTrace();
|
|
fail("Thread sleep interrupted");
|
|
}
|
|
|
|
LastActivity lastActivity = null;
|
|
try {
|
|
lastActivity = LastActivityManager.getLastActivity(conn0, getFullJID(1));
|
|
} catch (XMPPException e) {
|
|
e.printStackTrace();
|
|
fail("An error occurred requesting the Last Activity");
|
|
}
|
|
|
|
// Asserts that the last activity packet was received
|
|
assertNotNull("No last activity packet", lastActivity);
|
|
// Asserts that there is at least a 1 second of idle time
|
|
assertTrue(
|
|
"The last activity idle time is less than expected: " + lastActivity.getIdleTime(),
|
|
lastActivity.getIdleTime() >= 1);
|
|
}
|
|
|
|
/**
|
|
* This is a test to check if a denied LastActivity response is handled correctly.
|
|
*/
|
|
public void testOnlinePermisionDenied() {
|
|
XMPPConnection conn0 = getConnection(0);
|
|
XMPPConnection conn2 = getConnection(2);
|
|
|
|
// Send a message as the last activity action from connection 2 to
|
|
// connection 0
|
|
conn2.sendPacket(new Message(getBareJID(0)));
|
|
|
|
// Wait 1 seconds to have some idle time
|
|
try {
|
|
Thread.sleep(1000);
|
|
} catch (InterruptedException e) {
|
|
e.printStackTrace();
|
|
fail("Thread sleep interrupted");
|
|
}
|
|
|
|
try {
|
|
LastActivityManager.getLastActivity(conn0, getFullJID(2));
|
|
fail("No error was received from the server. User was able to get info of other user not in his roster.");
|
|
} catch (XMPPException e) {
|
|
assertNotNull("No error was returned from the server", e.getXMPPError());
|
|
assertEquals("Forbidden error was not returned from the server", 403,
|
|
e.getXMPPError().getCode());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* This is a test to check if a LastActivity request for last logged out
|
|
* lapsed time is answered and correct
|
|
*/
|
|
public void testLastLoggedOut() {
|
|
XMPPConnection conn0 = getConnection(0);
|
|
|
|
LastActivity lastActivity = null;
|
|
try {
|
|
lastActivity = LastActivityManager.getLastActivity(conn0, getBareJID(1));
|
|
} catch (XMPPException e) {
|
|
e.printStackTrace();
|
|
fail("An error occurred requesting the Last Activity");
|
|
}
|
|
|
|
assertNotNull("No last activity packet", lastActivity);
|
|
assertTrue("The last activity idle time should be 0 since the user is logged in: " +
|
|
lastActivity.getIdleTime(), lastActivity.getIdleTime() == 0);
|
|
}
|
|
|
|
/**
|
|
* This is a test to check if a LastActivity request for server uptime
|
|
* is answered and correct
|
|
*/
|
|
public void testServerUptime() {
|
|
XMPPConnection conn0 = getConnection(0);
|
|
|
|
LastActivity lastActivity = null;
|
|
try {
|
|
lastActivity = LastActivityManager.getLastActivity(conn0, getHost());
|
|
} catch (XMPPException e) {
|
|
if (e.getXMPPError().getCode() == 403) {
|
|
//The test can not be done since the host do not allow this kind of request
|
|
return;
|
|
}
|
|
e.printStackTrace();
|
|
fail("An error occurred requesting the Last Activity");
|
|
}
|
|
|
|
assertNotNull("No last activity packet", lastActivity);
|
|
assertTrue("The last activity idle time should be greater than 0 : " +
|
|
lastActivity.getIdleTime(), lastActivity.getIdleTime() > 0);
|
|
}
|
|
|
|
public LastActivityManagerTest(String name) {
|
|
super(name);
|
|
}
|
|
|
|
@Override
|
|
protected int getMaxConnections() {
|
|
return 3;
|
|
}
|
|
|
|
@Override
|
|
protected void setUp() throws Exception {
|
|
super.setUp();
|
|
try {
|
|
getConnection(0).getRoster().createEntry(getBareJID(1), "User1", null);
|
|
Thread.sleep(300);
|
|
} catch (Exception e) {
|
|
fail(e.getMessage());
|
|
}
|
|
}
|
|
|
|
}
|