use of com.zimbra.client.ZMessage in project zm-mailbox by Zimbra.
the class TestSearchConv method isExpanded.
private boolean isExpanded(ZSearchHit hit) {
//expanded hits include the message object, non-expanded don't
ZMessage msg = ((ZMessageHit) hit).getMessage();
boolean expanded = msg != null;
return expanded;
}
use of com.zimbra.client.ZMessage in project zm-mailbox by Zimbra.
the class TestSearchSortByDate method testMessagesCloseTimestamps.
@Test
public void testMessagesCloseTimestamps() {
try {
Mailbox recieverMbox = TestUtil.getMailbox(RECIPIENT);
// - 3600*60*1000;
long timestamp = System.currentTimeMillis();
int numMessages = 2207;
int firstLimit = 100;
int incLimit = 50;
int offset = 0;
ArrayList<String> expectedIds = new ArrayList<String>();
for (int i = 0; i < numMessages; i++) {
Message msg = TestUtil.addMessage(recieverMbox, TestUtil.getAddress(RECIPIENT), TestUtil.getAddress(SENDER), NAME_PREFIX + " testing bug " + i, String.format("this message contains a search string %s which we are searching for and a number %d and timestamp %d", SEARCH_STRING, i, timestamp), timestamp);
expectedIds.add(Integer.toString(msg.getId()));
}
for (int i = 0; i < numMessages; i++) {
Message msg = TestUtil.addMessage(recieverMbox, TestUtil.getAddress(RECIPIENT), TestUtil.getAddress(SENDER), NAME_PREFIX + " testing bug " + i, "this message does not contains a search string which we are searching for", timestamp);
}
Collections.reverse(expectedIds);
Thread.sleep(100);
ZMailbox zmbx = TestUtil.getZMailbox(RECIPIENT);
ZSearchParams searchParams = new ZSearchParams("in:inbox " + SEARCH_STRING);
searchParams.setSortBy(SearchSortBy.dateDesc);
searchParams.setLimit(firstLimit);
searchParams.setTypes(ZSearchParams.TYPE_MESSAGE);
List<ZMessage> resultSet = TestUtil.search(zmbx, searchParams);
assertEquals(firstLimit, resultSet.size());
int gotMessages = resultSet.size();
List<String> seenIds = new ArrayList<String>();
ZMessage lastHit = null;
for (ZMessage m : resultSet) {
seenIds.add(m.getId());
lastHit = m;
}
int recCount = 1;
offset += firstLimit;
while (gotMessages > 0) {
searchParams.setCursor((new Cursor(lastHit.getId(), Long.toString(lastHit.getReceivedDate()))));
searchParams = new ZSearchParams("in:inbox " + SEARCH_STRING);
searchParams.setSortBy(SearchSortBy.dateDesc);
searchParams.setLimit(incLimit);
searchParams.setTypes(ZSearchParams.TYPE_MESSAGE);
searchParams.setOffset(offset);
resultSet = TestUtil.search(zmbx, searchParams);
recCount++;
gotMessages = resultSet.size();
int resCount = 0;
for (ZMessage msg : resultSet) {
assertFalse(String.format("Request %d, result %d, encountered duplicate ID %s. Previously seen at %d", recCount, resCount, msg.getId(), seenIds.indexOf(msg.getId())), seenIds.contains(msg.getId()));
seenIds.add(msg.getId());
resCount++;
lastHit = msg;
}
// Thread.sleep(100); //jetty sometimes crashes on Mac when bombarded with request without a timeout
offset += incLimit;
}
assertEquals("Returned incorrect number of messages", numMessages, seenIds.size());
} catch (ServiceException e) {
e.printStackTrace();
fail(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
fail(e.getMessage());
}
}
use of com.zimbra.client.ZMessage in project zm-mailbox by Zimbra.
the class TestSearchSortByDate method testMessagesCloseTimestamps2.
@Test
public void testMessagesCloseTimestamps2() {
try {
Mailbox recieverMbox = TestUtil.getMailbox(RECIPIENT2);
// - 3600*60*1000;
long timestamp = System.currentTimeMillis();
int numMessages = 4307;
int firstLimit = 100;
int incLimit = 50;
int offset = 0;
ArrayList<String> expectedIds = new ArrayList<String>();
for (int i = 0; i < numMessages; i++) {
Message msg = TestUtil.addMessage(recieverMbox, TestUtil.getAddress(RECIPIENT2), TestUtil.getAddress(SENDER), NAME_PREFIX + " testing bug " + i, String.format("this message contains a search string %s which we are searching for and a number %d and timestamp %d", SEARCH_STRING, i, timestamp), timestamp);
expectedIds.add(Integer.toString(msg.getId()));
timestamp += 10;
}
for (int i = 0; i < numMessages; i++) {
Message msg = TestUtil.addMessage(recieverMbox, TestUtil.getAddress(RECIPIENT), TestUtil.getAddress(SENDER), NAME_PREFIX + " testing bug " + i, "this message does not contains a search string which we are searching for", timestamp);
}
Collections.reverse(expectedIds);
Thread.sleep(100);
ZMailbox zmbx = TestUtil.getZMailbox(RECIPIENT2);
ZSearchParams searchParams = new ZSearchParams("in:inbox " + SEARCH_STRING);
searchParams.setSortBy(SearchSortBy.dateDesc);
searchParams.setLimit(firstLimit);
searchParams.setTypes(ZSearchParams.TYPE_MESSAGE);
List<ZMessage> resultSet = TestUtil.search(zmbx, searchParams);
assertEquals(firstLimit, resultSet.size());
int gotMessages = resultSet.size();
List<String> seenIds = new ArrayList<String>();
ZMessage lastHit = null;
for (ZMessage m : resultSet) {
seenIds.add(m.getId());
lastHit = m;
}
int recCount = 1;
offset += firstLimit;
while (gotMessages > 0) {
searchParams.setCursor((new Cursor(lastHit.getId(), Long.toString(lastHit.getReceivedDate()))));
searchParams = new ZSearchParams("in:inbox " + SEARCH_STRING);
searchParams.setSortBy(SearchSortBy.dateDesc);
searchParams.setLimit(incLimit);
searchParams.setTypes(ZSearchParams.TYPE_MESSAGE);
searchParams.setOffset(offset);
resultSet = TestUtil.search(zmbx, searchParams);
recCount++;
gotMessages = resultSet.size();
int resCount = 0;
for (ZMessage msg : resultSet) {
assertFalse(String.format("Request %d, result %d, encountered duplicate ID %s. Previously seen at %d", recCount, resCount, msg.getId(), seenIds.indexOf(msg.getId())), seenIds.contains(msg.getId()));
seenIds.add(msg.getId());
resCount++;
lastHit = msg;
}
// Thread.sleep(100); //jetty sometimes crashes on Mac when bombarded with request without a timeout
offset += incLimit;
}
assertEquals("Returned incorrect number of messages", numMessages, seenIds.size());
} catch (ServiceException e) {
e.printStackTrace();
fail(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
fail(e.getMessage());
}
}
use of com.zimbra.client.ZMessage in project zm-mailbox by Zimbra.
the class TestCalDav method attendeeDeleteFromCalendar.
private void attendeeDeleteFromCalendar(boolean suppressReply) throws Exception {
Account dav1 = users[1].create();
users[2].create();
String url = getSchedulingInboxUrl(dav1, dav1);
ReportMethod method = new ReportMethod(url);
addBasicAuthHeaderForUser(method, dav1);
ZMailbox organizer = users[2].getZMailbox();
// Force creation of mailbox - shouldn't be needed
users[1].getZMailbox();
String subject = String.format("%s %s", NAME_PREFIX, suppressReply ? "testInvite which shouldNOT be replied to" : "testInvite to be auto-declined");
Date startDate = new Date(System.currentTimeMillis() + Constants.MILLIS_PER_DAY);
Date endDate = new Date(startDate.getTime() + Constants.MILLIS_PER_HOUR);
TestUtil.createAppointment(organizer, subject, dav1.getName(), startDate, endDate);
// Wait for appointment to arrive
String href = waitForNewSchedulingRequestByUID(dav1, "");
assertNotNull("href for inbox invitation", href);
String uid = href.substring(href.lastIndexOf('/') + 1);
uid = uid.substring(0, uid.indexOf(',') - 1);
String calFolderUrl = getFolderUrl(dav1, "Calendar");
String delurl = waitForItemInCalendarCollectionByUID(calFolderUrl, dav1, uid, true, 5000);
StringBuilder sb = getLocalServerRoot().append(delurl);
DeleteMethod delMethod = new DeleteMethod(sb.toString());
addBasicAuthHeaderForUser(delMethod, dav1);
if (suppressReply) {
delMethod.addRequestHeader(DavProtocol.HEADER_SCHEDULE_REPLY, "F");
}
HttpClient client = new HttpClient();
HttpMethodExecutor.execute(client, delMethod, HttpStatus.SC_NO_CONTENT);
List<ZMessage> msgs;
if (suppressReply) {
// timeout may be a bit short but don't want long time wastes in test suite.
msgs = TestUtil.waitForMessages(organizer, "is:invite is:unread inid:2 after:\"-1month\"", 0, 2000);
if (msgs != null) {
assertEquals("Should be no DECLINE reply msg", 0, msgs.size());
}
} else {
msgs = TestUtil.waitForMessages(organizer, "is:invite is:unread inid:2 after:\"-1month\"", 1, 10000);
assertNotNull("inbox DECLINE reply msgs", msgs);
assertEquals("Should be 1 DECLINE reply msg", 1, msgs.size());
assertNotNull("inbox DECLINE reply msg invite", msgs.get(0).getInvite());
}
}
use of com.zimbra.client.ZMessage in project zm-mailbox by Zimbra.
the class TestBug89152 method testMessagesWithSimilarTimestamps.
@Test
public void testMessagesWithSimilarTimestamps() {
try {
int numMessages = 5207;
int firstLimit = 150;
int incLimit = 50;
int offset = 0;
Mailbox recieverMbox = TestUtil.getMailbox(RECIPIENT1);
long timestamp = System.currentTimeMillis();
byte[] msgBytes = Files.readAllBytes(FileSystems.getDefault().getPath(TEST_MESSAGE_FILE));
for (int i = 0; i < numMessages; i++) {
ParsedMessage pm = new ParsedMessage(msgBytes, timestamp, true);
pm.getMimeMessage().setSentDate(new Date());
Message msg = TestUtil.addMessage(recieverMbox, pm);
timestamp += 1;
//Thread.sleep(300);
}
Thread.sleep(150);
ZMailbox zmbx = TestUtil.getZMailbox(RECIPIENT1);
ZSearchParams searchParams = new ZSearchParams("in:inbox " + SEARCH_STRING);
searchParams.setSortBy(SearchSortBy.dateDesc);
searchParams.setLimit(firstLimit);
searchParams.setTypes(ZSearchParams.TYPE_MESSAGE);
List<ZMessage> resultSet = TestUtil.search(zmbx, searchParams);
assertEquals(firstLimit, resultSet.size());
int gotMessages = resultSet.size();
List<String> seenIds = new ArrayList<String>();
ZMessage lastHit = null;
for (ZMessage m : resultSet) {
seenIds.add(m.getId());
lastHit = m;
}
int recCount = 1;
offset += firstLimit;
while (gotMessages > 0) {
searchParams = new ZSearchParams("in:inbox " + SEARCH_STRING);
searchParams.setCursor((new Cursor(lastHit.getId(), Long.toString(lastHit.getReceivedDate()))));
searchParams.setSortBy(SearchSortBy.dateDesc);
searchParams.setLimit(incLimit);
searchParams.setTypes(ZSearchParams.TYPE_MESSAGE);
searchParams.setOffset(offset);
resultSet = TestUtil.search(zmbx, searchParams);
recCount++;
gotMessages = resultSet.size();
int resCount = 0;
for (ZMessage m : resultSet) {
assertFalse(String.format("Request %d, result %d, encountered duplicate ID %s. Previously seen at %d", recCount, resCount, m.getId(), seenIds.indexOf(m.getId())), seenIds.contains(m.getId()));
seenIds.add(m.getId());
resCount++;
lastHit = m;
}
Thread.sleep(300);
offset += incLimit;
}
assertEquals("expecting " + numMessages + " messages. Got " + seenIds.size(), numMessages, seenIds.size());
} catch (ServiceException e) {
e.printStackTrace();
fail(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
fail(e.getMessage());
}
}
Aggregations