summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpremkumar <premkumar>2005-08-18 04:25:40 +0000
committerpremkumar <premkumar>2005-08-18 04:25:40 +0000
commit3669f13560453d529f72f00819cb68f24e87bd41 (patch)
treeeb0a076b0b37b4eac153bfe09249599387ac7d58
parent0c6f749159414df31f66904c7a012618aa70d379 (diff)
Updated sanity scripts for Evolution 2.3.7 mailer and calendar
-rw-r--r--evolution/IMAGES/attachment_refimg.pngbin0 -> 51610 bytes
-rw-r--r--evolution/IMAGES/composemail_refimg.pngbin0 -> 44707 bytes
-rw-r--r--evolution/IMAGES/forwardmail_refimg.pngbin0 -> 63990 bytes
-rw-r--r--evolution/IMAGES/replymail_refimg.pngbin0 -> 48289 bytes
-rw-r--r--evolution/README18
-rw-r--r--evolution/compose-mail-w-attachment.dat4
-rw-r--r--evolution/compose-mail-w-attachment.py7
-rw-r--r--evolution/compose-mail.dat4
-rw-r--r--evolution/compose-mail.py14
-rw-r--r--evolution/copymail.dat3
-rw-r--r--evolution/copymail.py57
-rw-r--r--evolution/create-calendar.py6
-rw-r--r--evolution/create-meeting.dat10
-rw-r--r--evolution/create-meeting.py115
-rw-r--r--evolution/deletemail.dat3
-rw-r--r--evolution/deletemail.py42
-rw-r--r--evolution/evolution.map489
-rw-r--r--evolution/evolution.py107
-rw-r--r--evolution/evoutils/mail.py47
-rw-r--r--evolution/forward-mail.dat10
-rw-r--r--evolution/forward-mail.py79
-rw-r--r--evolution/movemail.dat3
-rw-r--r--evolution/movemail.py70
-rw-r--r--evolution/reply-mail.dat4
-rw-r--r--evolution/reply-mail.py101
-rw-r--r--evolution/view-mail.dat6
-rw-r--r--evolution/view-mail.py11
27 files changed, 944 insertions, 266 deletions
diff --git a/evolution/IMAGES/attachment_refimg.png b/evolution/IMAGES/attachment_refimg.png
new file mode 100644
index 0000000..bd26d0f
--- /dev/null
+++ b/evolution/IMAGES/attachment_refimg.png
Binary files differ
diff --git a/evolution/IMAGES/composemail_refimg.png b/evolution/IMAGES/composemail_refimg.png
new file mode 100644
index 0000000..9c6f72b
--- /dev/null
+++ b/evolution/IMAGES/composemail_refimg.png
Binary files differ
diff --git a/evolution/IMAGES/forwardmail_refimg.png b/evolution/IMAGES/forwardmail_refimg.png
new file mode 100644
index 0000000..84d46f1
--- /dev/null
+++ b/evolution/IMAGES/forwardmail_refimg.png
Binary files differ
diff --git a/evolution/IMAGES/replymail_refimg.png b/evolution/IMAGES/replymail_refimg.png
new file mode 100644
index 0000000..3cf3252
--- /dev/null
+++ b/evolution/IMAGES/replymail_refimg.png
Binary files differ
diff --git a/evolution/README b/evolution/README
index 0f6ce72..60182ec 100644
--- a/evolution/README
+++ b/evolution/README
@@ -1,6 +1,6 @@
-+ In this release we have provided test scripts for Evolution-2.3.4 mailer automated testing
++ In this release we have provided test scripts for Evolution-2.3.7 mailer automated testing
-+ For all the verifications involving image comparision it is necessary to replace the following files with those images taken in the testing scenario.
++ For all the verifications involving image comparision it is necessary to replace the following files with those images taken in the testing scenario. Please save these file in the <LDTP-HOME>/pyautosuite/evolution/IMAGES
* composemail_refimg.png
* attachmail_refimg.png
* forwardmail_refimg.png
@@ -8,4 +8,16 @@
+ Please make sure that all the image files are in .png format.
-+ Please make sure that all tha .dat files contain the correct data for the scenario in which the testing is undertaken. \ No newline at end of file
++ Please make sure that all tha .dat files contain the correct data for the scenario in which the testing is undertaken.
+
++ We have provided test scripts for Evolution-2.3.7 Calendar automated testing of the following actions
+ * Create and verify meeting
+ * Create and verify appointment
+ * Create and configure a web calendar
+
++ Please make sure that the test cases used are not present already in the calendar
+
++ Please make sure that all the .dat files contain the correct data for the scenario in which the testing is undertaken.
+ For example: The entry 'nags@dell.net' should be replaced with the test account using which testing is undertaken, in
+ all .dat files.
++ Please note that if a field in a .dat file is optional it is necessary to include '$' as placeholder for that value. \ No newline at end of file
diff --git a/evolution/compose-mail-w-attachment.dat b/evolution/compose-mail-w-attachment.dat
index d7ad9cc..ccea0d1 100644
--- a/evolution/compose-mail-w-attachment.dat
+++ b/evolution/compose-mail-w-attachment.dat
@@ -1,5 +1,5 @@
-jpremkumar@novell.com
-jpremkumar@novell.com
+nags@dell.net
+nags@dell.net
this is subject
this is body
resume-Vishu.doc \ No newline at end of file
diff --git a/evolution/compose-mail-w-attachment.py b/evolution/compose-mail-w-attachment.py
index 94f8abc..d779549 100644
--- a/evolution/compose-mail-w-attachment.py
+++ b/evolution/compose-mail-w-attachment.py
@@ -27,8 +27,9 @@
#To compose a new mail message through File menu
def compose_mail_w_attachment ( to, subject, body,filename ,cc=''):
try:
- selectmenuitem ('evolution', 'mnuTools;mnuMail')
- time.sleep(3)
+ time.sleep (10)
+ selectmenuitem ('evolution', 'mnuView;mnuWindow;mnuMail')
+ time.sleep (10)
selectmenuitem ('evolution', 'mnuFile;mnuFileNew;mnuMailMessage')
time.sleep(3)
if guiexist ('Composeamessage') == 0:
@@ -42,7 +43,6 @@ def compose_mail_w_attachment ( to, subject, body,filename ,cc=''):
log ('Select file dialog does not appear','error')
raise LdtpExecutionError (0)
else:
- #setcontext (subject,'dlgAttachfile')
selectrow ('dlgAttachfile','tblFiles',filename)
click ('dlgAttachfile','btnAttach')
time.sleep(5)
@@ -50,7 +50,6 @@ def compose_mail_w_attachment ( to, subject, body,filename ,cc=''):
log ('Select file dialog does not close after clicking attach button','error')
raise LdtpExecutionError (0)
else:
- #setcontext ('dlgAttachfile',subject)
click ('Composeamessage', 'btnSend')
time.sleep(3)
if guiexist ('Composeamessage') == 1:
diff --git a/evolution/compose-mail.dat b/evolution/compose-mail.dat
index e096b3c..00e8342 100644
--- a/evolution/compose-mail.dat
+++ b/evolution/compose-mail.dat
@@ -1,4 +1,4 @@
-jpremkumar@novell.com
-jpremkumar@novell.com
+nags@dell.net
+nags@dell.net
this is subject
this is body \ No newline at end of file
diff --git a/evolution/compose-mail.py b/evolution/compose-mail.py
index a6366ab..41bf33e 100644
--- a/evolution/compose-mail.py
+++ b/evolution/compose-mail.py
@@ -28,7 +28,7 @@
#To compose a new mail message through File menu
def compose_mail ( to, subject, body, cc=''):
try:
- selectmenuitem ('evolution', 'mnuTools;mnuMail')
+ selectmenuitem ('evolution', 'mnuView;mnuWindow;mnuMail')
time.sleep(3)
selectmenuitem ('evolution', 'mnuFile;mnuFileNew;mnuMailMessage')
time.sleep(3)
@@ -38,7 +38,7 @@ def compose_mail ( to, subject, body, cc=''):
else:
populate_mail_header (to, subject, body, cc)
click ('Composeamessage', 'btnSend')
- time.sleep(3)
+ time.sleep(15)
if guiexist ('Composeamessage') == 1:
log ('Failed during clicking the send button','error')
raise LdtpExecutionError (0)
@@ -58,13 +58,13 @@ cc = record[1].strip()
subject = record[2].strip()
body = record[3].strip()
-log ('Compose new message','Start')
+log ('Compose new message','teststart')
time.sleep(3)
compose_mail (to,subject,body,cc)
time.sleep(3)
-log ('Compose new message','end')
-log ('Compose new message Verification','Start')
+log ('Compose new message','testend')
+log ('Compose new message Verification','teststart')
time.sleep(3)
-verifymailwithimage ('Sent Items',-9,'composemail_refimage.png')
+verifymailwithimage ('Sent Items',-1,'composemail_refimage.png')
time.sleep(3)
-log ('Compose new message Verification','end')
+log ('Compose new message Verification','testend')
diff --git a/evolution/copymail.dat b/evolution/copymail.dat
index 3c9828d..83b433d 100644
--- a/evolution/copymail.dat
+++ b/evolution/copymail.dat
@@ -1,2 +1,3 @@
Inbox
-bugs \ No newline at end of file
+bugs
+$ \ No newline at end of file
diff --git a/evolution/copymail.py b/evolution/copymail.py
index 74ff9fd..e185a80 100644
--- a/evolution/copymail.py
+++ b/evolution/copymail.py
@@ -27,58 +27,57 @@
#Copying an existing Mail
# Section to select and copy mail
-def copy_mail (from_fldr,to_fldr):
- #TODO: Current implementation supports copying only the last mail.
- #It should be extended to copy any arbitary mail like i.
+def copy_mail (from_fldr,to_fldr, mail_index):
try:
+ time.sleep (10)
selectrowpartialmatch ('evolution', 'ttblMailFolderTree',
to_fldr)
- row_before = getrowcount('evolution', 'ttblMessageList')
+ row_before = getrowcount('evolution', 'ttblMessageList')
+ time.sleep (2)
selectrowpartialmatch ('evolution', 'ttblMailFolderTree',
from_fldr)
rowcount = getrowcount('evolution', 'ttblMessageList')
if rowcount > 0:
- #selectlastrow ('evolution', 'ttblMessageList')
- selectrowindex ('evolution', 'ttblMessageList',
- rowcount-3)
- selectmenuitem ('evolution',
- 'mnuMessage;mnuCopyToFolder')
- selectrowpartialmatch ('dlgSelectfolder',
- 'ttblMailFolderTree',to_fldr )
- click ('dlgSelectfolder','btnCopy')
+ if mail_index == -1:
+ mail_index = getrowcount ('evolution','ttblMessageList') -1
+ selectrowindex ('evolution', 'ttblMessageList', mail_index)
+ selectmenuitem ('evolution', 'mnuMessage;mnuCopyToFolder')
+ time.sleep (2)
+ selectrowpartialmatch ('dlgSelectfolder','ttblMailFolderTree', to_fldr )
+ click ('dlgSelectfolder', 'btnCopy')
+ time.sleep (2)
if guiexist('dlgSelectfolder') == 0:
- log ('Select folder dialog not closed',
- 'error')
- raise LdtpexecutionError(0)
+ log ('Select folder dialog not closed', 'error')
+ raise LdtpExecutionError(0)
else:
- selectrowpartialmatch ('evolution',
- 'ttblMailFolderTree',to_fldr)
- wait (5)
+ selectrowpartialmatch ('evolution', 'ttblMailFolderTree', to_fldr)
+ time.sleep (5)
row_after = getrowcount('evolution', 'ttblMessageList')
selectmenuitem ('evolution', 'mnuFile;mnuClose')
if row_after > row_before:
- log ('Copying a mail passed successfully',
- 'pass')
+ log ('Copying a mail passed successfully','pass')
else :
- log ('Copying a mail failed',
- 'fail')
+ log ('Copying a mail failed', 'fail')
else:
log ('From folder empty!', 'Warning')
- log ('Did not move any mails to other folder',
- 'Pass')
+ log ('Did not move any mails to other folder', 'Pass')
except ldtp.error,msg:
print 'Copying mail between folders failed',str(msg)
log ('Copying mail failed','fail')
#Read input from file
file = open ('copymail.dat', 'r')
-argmts = file.readlines()
-from_fldr = argmts[0].strip( )
-to_fldr = argmts[1].strip( )
+argmts = file.readlines ()
+from_fldr = argmts[0].strip ()
+to_fldr = argmts[1].strip ()
+mail_index = argmts[2].strip ()
+
+if mail_index == '$':
+ mail_index = -1;
# Call the function
log ('copyingmail', 'teststart')
-copy_mail (from_fldr,to_fldr)
+copy_mail (from_fldr, to_fldr, mail_index)
log ('copyingmail', 'testend')
-log ('Cppying mail succeded', 'pass')
+
diff --git a/evolution/create-calendar.py b/evolution/create-calendar.py
index 973c8ff..02e51a9 100644
--- a/evolution/create-calendar.py
+++ b/evolution/create-calendar.py
@@ -75,6 +75,12 @@ try:
log ('Failed to close new calendar dialog', 'error')
raise LdtpExecutionError (0)
else:
+ time.sleep (5)
+ #Fixme: Just a workaround for verifying the calendar
+ #If there is any better way please replace the following code with that :)
+ if seletecrowpartialmatch ('evolution', 'tbl0', 'Independance Day') == 0:
+ log ('Configuratoin of web calendar failed', 'cause')
+ raise LdtpExecutionError (0)
log ('Calendar creation', 'Pass')
except error,msg:
print 'Creation of Calendar failed' + str(msg)
diff --git a/evolution/create-meeting.dat b/evolution/create-meeting.dat
new file mode 100644
index 0000000..df555b9
--- /dev/null
+++ b/evolution/create-meeting.dat
@@ -0,0 +1,10 @@
+this is sample summary
+this is sample location
+this is sample description
+$
+$
+$
+$
+$
+$
+$ \ No newline at end of file
diff --git a/evolution/create-meeting.py b/evolution/create-meeting.py
new file mode 100644
index 0000000..d604076
--- /dev/null
+++ b/evolution/create-meeting.py
@@ -0,0 +1,115 @@
+#
+# Linux Desktop Testing Project http://www.gnomebangalore.org/ldtp
+#
+# Author:
+# Sheetal <svnayak18@yahoo.com>
+# Prem <jpremkumar@novell.com>
+#
+# Copyright 2004 Novell, Inc.
+#
+# This test script is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this library; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+#
+#To create a Meeting
+
+#Reading inputs from file
+file = open ('create-meeting.dat','r')
+data = file.readlines ()
+summary = data[0].strip ()
+location = data[1].strip ()
+description = data[2].strip ()
+classification = data[3].strip ()
+categories = data[4].strip ()
+moncount = data[5].strip ()
+on = data[6].strip ()
+day = data[7].strip ()
+occurences = data[8].strip ()
+exception = data[9].strip ()
+
+#TODO: INCLUDE actual date values after fixing the problem in insert_appointment
+date0 = 0
+time0 = 0
+date1 = 0
+time1 = 0
+
+#setting up default values
+if classification == '$':
+ classification = 'Public'
+if categories == '$':
+ categories = 'Business'
+if moncount == '$':
+ moncount = '3'
+if on == '$':
+ on = 'First'
+if day == '$':
+ day = 'Monday'
+if occurences == '$':
+ occurences = '5'
+if exception =='$' or exception > occurences:
+ if exception > occurences:
+ log ('Setting exception to default value since given value is inappropriate', 'warning')
+ exception = 2
+
+#creation fo meeting
+log ('Meeting Creation', 'teststart')
+
+try:
+ windowname = 'dlgMeeting-Nosummary'
+ ptlistname = 'ptlMeeting-Nosummary0'
+ selectmenuitem ('evolution', 'mnuView;mnuWindow;mnuCalendars')
+ time.sleep (2)
+ selectmenuitem ('evolution', 'mnuFile;mnuFileNew;mnuMeeting')
+ time.sleep (2)
+ if guiexist (windowname) == 0:
+ log ('Failed to open new meeting window', 'cause')
+ raise LdtpExecutionError (0)
+ else:
+ log ('Insertion of Appointment values', 'teststart')
+ insert_appointment (windowname, ptlistname, summary, location, description, date0,
+ time0, date1, time1, classification, categories)
+ log ('Insertion of Appointment values', 'testend')
+ time.sleep (2)
+ log ('Insertion of recurrence values', 'teststart')
+ insert_recurrence (windowname, ptlistname, moncount, on, day, occurences, exception)
+ log ('Insertion of recurrence values', 'testend')
+ time.sleep (2)
+
+ #TODO: include insert invitation
+
+ click ('dlgMeeting-Nosummary', 'btnOK')
+ time.sleep (3)
+ if guiexist ('dlgEvolutionQuery') == 0:
+ log ('Failed to open evolution query dialog' ,'cause')
+ raise LdtpExecutionError (0)
+ else:
+ click ('dlgEvolutionQuery', 'btnDon\'tSend')
+ time.sleep (3)
+ log ('Ignore the following error message, Because of Guiexist usage', 'info')
+ if guiexist ('dlgEvolutionQuery') == 1:
+ log ('Failed to close evolution query dialog' ,'cause')
+ raise LdtpExecutionError (0)
+ time.sleep (2)
+ log ('Ignore the following error message, Because of Guiexist usage', 'info')
+ if guiexist ('dlgMeeting-Nosummary') == 1:
+ log ('Failed to close meeting dialog' ,'cause')
+ raise LdtpExecutionError (0)
+ releasecontext ()
+ log ('Creation of meeting succeeded', 'Pass')
+except error,msg:
+ releasecontext ()
+ print 'Creation of meeting failed' + str(msg)
+ log ('Creation of meeting failed', 'error')
+
+log ('Meeting Creation', 'testend')
diff --git a/evolution/deletemail.dat b/evolution/deletemail.dat
index b4f64fc..cc70211 100644
--- a/evolution/deletemail.dat
+++ b/evolution/deletemail.dat
@@ -1 +1,2 @@
-bugs \ No newline at end of file
+Inbox
+$ \ No newline at end of file
diff --git a/evolution/deletemail.py b/evolution/deletemail.py
index 037ba93..8377276 100644
--- a/evolution/deletemail.py
+++ b/evolution/deletemail.py
@@ -27,47 +27,45 @@
#Moving an existing Mail
# Section to select and move mail
-def delete_mail (source_fldr):
- #TODO: Currently deletes only the last mail. Should be extended to delete
- #any arbitary mail
+def delete_mail (source_fldr, mail_index):
try:
+ time.sleep (10)
selectrowpartialmatch ('evolution', 'ttblMailFolderTree',
source_fldr)
rowcount = getrowcount('evolution', 'ttblMessageList')
if rowcount > 0:
- #selectlastrow ('evolution', 'ttblMessageList')
- selectrowindex ('evolution', 'ttblMessageList',
- rowcount-3)
- selectmenuitem ('evolution',
- 'mnuEdit;mnuDeleteMessage')
+ if mail_index == -1:
+ mail_index = rowcount - 1
+ selectrowindex ('evolution', 'ttblMessageList', mail_index)
+ selectmenuitem ('evolution', 'mnuEdit;mnuDeleteMessage')
time.sleep (3)
- selectrowpartialmatch ('evolution',
- 'ttblMailFolderTree',to_fldr)
+ selectrowpartialmatch ('evolution', 'ttblMailFolderTree',source_fldr)
time.sleep (5)
- row_after = getrowcount('evolution',
- 'ttblMessageList')
- selectmenuitem ('evolution', 'mnuFile;mnuClose')
+ row_after = getrowcount('evolution','ttblMessageList')
+ #selectmenuitem ('evolution', 'mnuFile;mnuClose')
if row_after < rowcount:
- log ('Deleting a mail passed successfully',
- 'pass')
+ log ('Deleting a mail passed successfully', 'pass')
else:
- log ('Deleting a mail failed','fail')
+ log ('Deleting a mail failed', 'fail')
else:
log ('From folder empty!', 'Warning')
- log ('Did not Delete any mail from source folder',
- 'Pass')
+ log ('Did not Delete any mail from source folder', 'Pass')
except ldtp.error,msg:
- print 'Deleting mail between folders failed',str(msg)
- log ('Moving mail failed','fail')
+ print 'Deleting mail between folders failed', str(msg)
+ log ('Moving mail failed', 'fail')
#Read input from file
file = open ('deletemail.dat', 'r')
argmts = file.readlines()
-source_fldr = argmts[0].strip( )
+source_fldr = argmts[0].strip ()
+mail_index = argmts[1].strip ()
+if mail_index == '$':
+ mail_index = -1
+
# Call the function
log ('deletemail', 'teststart')
-delete_mail (source_fldr)
+delete_mail (source_fldr, mail_index)
log ('deletemail', 'testend')
log ('Deleting mail succeeded', 'pass')
diff --git a/evolution/evolution.map b/evolution/evolution.map
index 7ba4b86..af2c9cc 100644
--- a/evolution/evolution.map
+++ b/evolution/evolution.map
@@ -17,7 +17,7 @@ mnuTask={class=menu_item, label=Task, parent=mnuFileNew}
mnuAddressBook={class=menu_item, label=Address Book, parent=mnuFileNew}
mnuCalendar={class=menu_item, label=Calendar, parent=mnuFileNew}
mnuTasklist={class=menu_item, label=Task list, parent=mnuFileNew}
-mnuNewWindow={class=menu_item, label=New Window, parent=mnuFile}
+mnuFileNewWindow={class=menu_item, label=New Window, parent=mnuFile}
mnuSend/Receive={class=menu_item, label=Send / Receive, parent=mnuFile}
mnuSaveMessage={class=menu_item, label=Save Message..., parent=mnuFile}
mnuImport={class=menu_item, label=Import..., parent=mnuFile}
@@ -37,7 +37,6 @@ mnuFindinMessage={class=menu_item, label=Find in Message..., parent=mnuEdit}
mnuSynchronizationOptions={class=menu_item, label=Synchronization Options..., parent=mnuEdit}
mnuMessageFilters={class=menu_item, label=Message Filters, parent=mnuEdit}
mnuSearchFolders={class=menu_item, label=Search Folders, parent=mnuEdit}
-mnuPlugins={class=menu_item, label=Plugins, parent=mnuEdit}
mnuPreferences={class=menu_item, label=Preferences, parent=mnuEdit}
mnuView={class=menu, label=View}
mnuCurrentView={class=menu, label=Current View}
@@ -50,6 +49,11 @@ mnuByFollowUpFlag={class=radio_menu_item, label=By Follow Up Flag, parent=mnuByF
mnuCustomView={class=radio_menu_item, label=Custom View, parent=mnuCustomView}
mnuSaveCustomView={class=menu_item, label=Save Custom View..., parent=mnuSaveCustomView...}
mnuDefineViews={class=menu_item, label=Define Views..., parent=mnuDefineViews...}
+mnuWindow={class=menu, label=Window}
+mnuMail={class=menu_item, label=Mail, parent=mnuWindow}
+mnuContacts={class=menu_item, label=Contacts, parent=mnuWindow}
+mnuCalendars={class=menu_item, label=Calendars, parent=mnuWindow}
+mnuTasks={class=menu_item, label=Tasks, parent=mnuWindow}
mnuToolbar={class=check_menu_item, label=Toolbar, parent=mnuView}
mnuMessagePreview={class=check_menu_item, label=Message Preview, parent=mnuView}
mnuSwitcherAppearance={class=menu, label=Switcher Appearance}
@@ -58,11 +62,11 @@ mnuIconsonly={class=radio_menu_item, label=Icons only, parent=mnuIconsonly}
mnuTextonly={class=radio_menu_item, label=Text only, parent=mnuTextonly}
mnuToolbarstyle={class=radio_menu_item, label=Toolbar style, parent=mnuToolbarstyle}
mnuHidebuttons={class=check_menu_item, label=Hide buttons, parent=mnuHidebuttons}
-mnuShowMessages={class=menu, label=Show Messages}
-mnuAll={class=radio_menu_item, label=All, parent=mnuAll}
-mnuUnreadMessages={class=radio_menu_item, label=Unread Messages, parent=mnuUnreadMessages}
mnuGroupByThreads={class=check_menu_item, label=Group By Threads, parent=mnuView}
mnuHideDeletedMessages={class=check_menu_item, label=Hide Deleted Messages, parent=mnuView}
+mnuHideSelectedMessages={class=menu_item, label=Hide Selected Messages, parent=mnuView}
+mnuHideReadMessages={class=menu_item, label=Hide Read Messages, parent=mnuView}
+mnuShowHiddenMessages={class=menu_item, label=Show Hidden Messages, parent=mnuView}
mnuLoadImages={class=menu_item, label=Load Images, parent=mnuView}
mnuAllMessageHeaders={class=check_menu_item, label=All Message Headers, parent=mnuView}
mnuCaretMode={class=check_menu_item, label=Caret Mode, parent=mnuView}
@@ -147,18 +151,6 @@ mnuVFolderonSubject={class=menu_item, label=VFolder on Subject..., parent=mnuVFo
mnuVFolderonSender={class=menu_item, label=VFolder on Sender..., parent=mnuVFolderonSender...}
mnuVFolderonRecipients={class=menu_item, label=VFolder on Recipients..., parent=mnuVFolderonRecipients...}
mnuVFolderonMailingList={class=menu_item, label=VFolder on Mailing List..., parent=mnuVFolderonMailingList...}
-mnuMailingList={class=menu, label=Mailing List}
-mnuGetlistusageinformation={class=menu_item, label=Get list usage information, parent=mnuGetlistusageinformation}
-mnuSubscribetolist={class=menu_item, label=Subscribe to list, parent=mnuSubscribetolist}
-mnuUn-subscribetolist={class=menu_item, label=Un-subscribe to list, parent=mnuUn-subscribetolist}
-mnuPostmessagetolist={class=menu_item, label=Post message to list, parent=mnuPostmessagetolist}
-mnuContactlistowner={class=menu_item, label=Contact list owner, parent=mnuContactlistowner}
-mnuGetlistarchive={class=menu_item, label=Get list archive, parent=mnuGetlistarchive}
-mnuTools={class=menu, label=Tools}
-mnuMail={class=menu_item, label=Mail, parent=mnuTools}
-mnuContacts={class=menu_item, label=Contacts, parent=mnuTools}
-mnuCalendars={class=menu_item, label=Calendars, parent=mnuTools}
-mnuTasks={class=menu_item, label=Tasks, parent=mnuTools}
mnuSearch={class=menu, label=Search}
mnuFindNow={class=menu_item, label=Find Now, parent=mnuSearch}
mnuClear={class=menu_item, label=Clear, parent=mnuSearch}
@@ -217,7 +209,7 @@ ptl0={class=page_tab_list, instance_index=0}
ptb0={class=page_tab, instance_index=0}
pnl30={class=panel, instance_index=30,parent=Evolution-Mail}
pnl31={class=panel, instance_index=31,parent=Evolution-Mail}
-lbl82total={class=label, label=82 total}
+lbl118total={class=label, label=118 total}
ttblMailFolderTree={class=tree_table, label=Mail Folder Tree}
tbtnMail={class=toggle_button, label=Mail}
tbtnContacts={class=toggle_button, label=Contacts}
@@ -242,13 +234,54 @@ btnFindNow={class=push_button, label=Find Now}
pnl35={class=panel, instance_index=35,parent=Evolution-Mail}
btnClear={class=push_button, label=Clear}
ttblMessageList={class=tree_table, label=Message List}
+pnlPanelcontainingHTML={class=panel}
+pnl37={class=panel, instance_index=37,parent=pnlPanelcontainingHTML}
+tbl0={class=table, instance_index=0}
+pnl38={class=panel, instance_index=38,parent=pnlPanelcontainingHTML}
+tbl1={class=table, instance_index=1,parent=pnlPanelcontainingHTML}
+pnl39={class=panel, instance_index=39,parent=pnlPanelcontainingHTML}
+txt1={class=text, instance_index=1,parent=pnlPanelcontainingHTML}
+pnl40={class=panel, instance_index=40,parent=pnlPanelcontainingHTML}
+txt2={class=text, instance_index=2,parent=pnlPanelcontainingHTML}
+pnl41={class=panel, instance_index=41,parent=pnlPanelcontainingHTML}
+txt3={class=text, instance_index=3,parent=pnlPanelcontainingHTML}
+pnl42={class=panel, instance_index=42,parent=pnlPanelcontainingHTML}
+txt4={class=text, instance_index=4,parent=pnlPanelcontainingHTML}
+pnl43={class=panel, instance_index=43,parent=pnlPanelcontainingHTML}
+txt5={class=text, instance_index=5,parent=pnlPanelcontainingHTML}
+pnl44={class=panel, instance_index=44,parent=pnlPanelcontainingHTML}
+txt6={class=text, instance_index=6,parent=pnlPanelcontainingHTML}
+pnl45={class=panel, instance_index=45,parent=pnlPanelcontainingHTML}
+txt7={class=text, instance_index=7,parent=pnlPanelcontainingHTML}
+pnl46={class=panel, instance_index=46,parent=pnlPanelcontainingHTML}
+txt8={class=text, instance_index=8,parent=pnlPanelcontainingHTML}
+pnl47={class=panel, instance_index=47,parent=pnlPanelcontainingHTML}
+pnl48={class=panel, instance_index=48,parent=pnlPanelcontainingHTML}
+pnl49={class=panel, instance_index=49,parent=pnlPanelcontainingHTML}
+btn17={class=push_button, instance_index=17,parent=pnlPanelcontainingHTML}
+lblNoAttachment={class=label, label=No Attachment}
+btnSaveAll={class=push_button, label=Save All}
+paneAttachmentBar={class=layered_pane, label=Attachment Bar}
+pnl50={class=panel, instance_index=50,parent=pnlPanelcontainingHTML}
+tbl2={class=table, instance_index=2,parent=pnlPanelcontainingHTML}
+pnl51={class=panel, instance_index=51,parent=pnlPanelcontainingHTML}
pnlPanelcontainingHTML={class=panel, label=Panel containing HTML}
-btn17={class=push_button, instance_index=17,parent=Evolution-Mail}
-lblComposeanewmailmessage={class=label, label=Compose a new mail message}
+pnl53={class=panel, instance_index=53,parent=pnlPanelcontainingHTML}
+txt9={class=text, instance_index=9,parent=pnlPanelcontainingHTML}
+pnl54={class=panel, instance_index=54,parent=pnlPanelcontainingHTML}
+txt10={class=text, instance_index=10,parent=pnlPanelcontainingHTML}
+pnl55={class=panel, instance_index=55,parent=pnlPanelcontainingHTML}
+txt11={class=text, instance_index=11,parent=pnlPanelcontainingHTML}
+pnl56={class=panel, instance_index=56,parent=pnlPanelcontainingHTML}
+txt12={class=text, instance_index=12,parent=pnlPanelcontainingHTML}
+pnl57={class=panel, instance_index=57,parent=pnlPanelcontainingHTML}
+txt13={class=text, instance_index=13,parent=pnlPanelcontainingHTML}
+btn19={class=push_button, instance_index=19,parent=Evolution-Mail}
+lbl2={class=label, instance_index=2,parent=Evolution-Mail}
ptl2={class=page_tab_list, instance_index=2}
ptb2={class=page_tab, instance_index=2}
-pnl37={class=panel, instance_index=37,parent=Evolution-Mail}
-pnl38={class=panel, instance_index=38,parent=Evolution-Mail}
+pnl58={class=panel, instance_index=58,parent=Evolution-Mail}
+pnl59={class=panel, instance_index=59,parent=Evolution-Mail}
[Composeamessage]
Composeamessage={class=frame, app_name=evolution, label=Compose a message}
@@ -660,3 +693,415 @@ pnl33={class=panel, instance_index=33,parent=pnlPanelcontainingHTML}
pnlPanelcontainingHTML={class=panel, label=Panel containing HTML}
pnl35={class=panel, instance_index=35,parent=pnlPanelcontainingHTML}
txt8={class=text, instance_index=8,parent=pnlPanelcontainingHTML}
+
+[dlgMeeting-Nosummary]
+dlgMeeting-Nosummary={class=dialog, label=Meeting - No summary, app_name=evolution}
+ptlMeeting-Nosummary0={class=page_tab_list, instance_index=0}
+ptabAppointment={class=page_tab, label=Appointment}
+lblBasics={class=label, label=Basics}
+lbl1={class=label, instance_index=1,parent=ptabAppointment}
+pnl0={class=panel, instance_index=0,parent=ptabAppointment}
+lblDescription={class=label, label=Description:}
+txt0={class=text, instance_index=0,parent=ptabAppointment}
+btnCategories={class=push_button, label=Categories...}
+cboPublic={class=combo_box, label=Public}
+mnuPublic={class=menu_item, label=Public, parent=mnuPublic}
+mnuPrivate={class=menu_item, label=Private, parent=mnuPublic}
+mnuConfidential={class=menu_item, label=Confidential, parent=mnuPublic}
+lblCalendar={class=label, label=Calendar:}
+cboPersonal={class=combo_box, label= Personal}
+mnuOnThisComputer={class=menu_item, label=On This Computer, parent=mnuOnThisComputer}
+mnuPersonal={class=menu_item, label= Personal, parent=mnuPersonal}
+mnuOnTheWeb={class=menu_item, label=On The Web, parent=mnuOnTheWeb}
+mnunewcalendar={class=menu_item, label= new calendar, parent=mnunewcalendar}
+mnuContacts={class=menu_item, label=Contacts, parent=mnuContacts}
+mnuBirthdays&Anniversaries={class=menu_item, label= Birthdays & Anniversaries, parent=mnuBirthdays&Anniversaries}
+mnuWeather={class=menu_item, label=Weather, parent=mnuWeather}
+lblClassification={class=label, label=Classification:}
+txtEventDescription={class=text, label=Event Description}
+txt2={class=text, instance_index=2,parent=ptabAppointment}
+txtLocation={class=text, label_by=Location:}
+lblLocation={class=label, label=Location:}
+txt3={class=text, instance_index=3,parent=ptabAppointment}
+lblSummary={class=label, label=Summary:}
+lblDateandTime={class=label, label=Date and Time}
+lbl8={class=label, instance_index=8,parent=ptabAppointment}
+pnl1={class=panel, instance_index=1,parent=ptabAppointment}
+lblThisappointmenthascustomizedalarms={class=label, label=This appointment has customized alarms}
+cbo15minutesbeforeappointment={class=combo_box, label=15 minutes before appointment}
+mnu15minutesbeforeappointment={class=menu_item, label=15 minutes before appointment, parent=mnu15minutesbeforeappointment}
+mnu1hourbeforeappointment={class=menu_item, label=1 hour before appointment, parent=mnu1hourbeforeappointment}
+mnu1daybeforeappointment={class=menu_item, label=1 day before appointment, parent=mnu1daybeforeappointment}
+btnCustomize={class=push_button, label=Customize...}
+chkAlarm={class=check_box, label=Alarm}
+chkShowtimeasbusy={class=check_box, label=Show time as busy}
+txt4={class=text, instance_index=4,parent=ptabAppointment}
+btnTimezoneButton={class=push_button, label=Timezone Button}
+chkAlldayevent={class=check_box, label=All day event}
+lblEndtime={class=label, label=End time:}
+lblStarttime={class=label, label=Start time:}
+txt5={class=text, instance_index=5,parent=ptabAppointment}
+btnTimezoneButton={class=push_button, label=Timezone Button}
+txtTextDateEntry={class=text, label=Text Date Entry}
+btnDateButton={class=push_button, label=Date Button}
+cboTimeComboBox={class=combo_box, label=Time Combo Box}
+txtEndtime={class=text, label_by=End time:}
+txtTextDateEntry={class=text, label=Text Date Entry}
+btnDateButton={class=push_button, label=Date Button}
+cboTimeComboBox={class=combo_box, label=Time Combo Box}
+txtStarttime={class=text, label_by=Start time:}
+pnlSendOptions={class=panel, label=Send Options}
+pnl3={class=panel, instance_index=3,parent=pnlSendOptions}
+btnAdvancedsendoptions={class=push_button, label=Advanced send options}
+lblSendOptions={class=label, label=Send Options}
+ptabRecurrence={class=page_tab, label=Recurrence}
+lblRecurrence={class=label, label=Recurrence}
+lbl14={class=label, instance_index=14,parent=ptabRecurrence}
+chkThisappointmentrecurs={class=check_box, label=This appointment recurs}
+lblEvery={class=label, label=Every}
+sbtn0={class=spin_button, instance_index=0,parent=ptabRecurrence}
+cboday={class=combo_box, label=day,parent=ptabRecurrence}
+mnuday={class=menu_item, label=day(s), parent=mnuday(s)}
+mnuweek={class=menu_item, label=week(s), parent=mnuday(s)}
+mnumonth={class=menu_item, label=month(s), parent=mnuday(s)}
+mnuyear={class=menu_item, label=year(s), parent=mnuday(s)}
+pnl4={class=panel, instance_index=4,parent=ptabRecurrence}
+lblonthe={class=label, label=on the}
+cbo1st={class=combo_box, label=1st}
+mnufirst={class=menu_item, label=first, parent=mnu1st}
+mnusecond={class=menu_item, label=second, parent=mnu1st}
+mnuthird={class=menu_item, label=third, parent=mnu1st}
+mnufourth={class=menu_item, label=fourth, parent=mnu1st}
+mnulast={class=menu_item, label=last, parent=mnu1st}
+mnu1st={class=menu_item, label=1st, parent=mnu1st}
+mnuOtherDate={class=menu, label=Other Date}
+mnu1stto10th={class=menu, label=1st to 10th}
+mnu1st={class=menu_item, label=1st, parent=mnu1st}
+mnu2nd={class=menu_item, label=2nd, parent=mnu2nd}
+mnu3rd={class=menu_item, label=3rd, parent=mnu3rd}
+mnu4th={class=menu_item, label=4th, parent=mnu4th}
+mnu5th={class=menu_item, label=5th, parent=mnu5th}
+mnu6th={class=menu_item, label=6th, parent=mnu6th}
+mnu7th={class=menu_item, label=7th, parent=mnu7th}
+mnu8th={class=menu_item, label=8th, parent=mnu8th}
+mnu9th={class=menu_item, label=9th, parent=mnu9th}
+mnu10th={class=menu_item, label=10th, parent=mnu10th}
+mnu11thto20th={class=menu, label=11th to 20th}
+mnu11th={class=menu_item, label=11th, parent=mnu11th}
+mnu12th={class=menu_item, label=12th, parent=mnu12th}
+mnu13th={class=menu_item, label=13th, parent=mnu13th}
+mnu14th={class=menu_item, label=14th, parent=mnu14th}
+mnu15th={class=menu_item, label=15th, parent=mnu15th}
+mnu16th={class=menu_item, label=16th, parent=mnu16th}
+mnu17th={class=menu_item, label=17th, parent=mnu17th}
+mnu18th={class=menu_item, label=18th, parent=mnu18th}
+mnu19th={class=menu_item, label=19th, parent=mnu19th}
+mnu20th={class=menu_item, label=20th, parent=mnu20th}
+mnu21stto31st={class=menu, label=21st to 31st}
+mnu21st={class=menu_item, label=21st, parent=mnu21st}
+mnu22nd={class=menu_item, label=22nd, parent=mnu22nd}
+mnu23rd={class=menu_item, label=23rd, parent=mnu23rd}
+mnu24th={class=menu_item, label=24th, parent=mnu24th}
+mnu25th={class=menu_item, label=25th, parent=mnu25th}
+mnu26th={class=menu_item, label=26th, parent=mnu26th}
+mnu27th={class=menu_item, label=27th, parent=mnu27th}
+mnu28th={class=menu_item, label=28th, parent=mnu28th}
+mnu29th={class=menu_item, label=29th, parent=mnu29th}
+mnu30th={class=menu_item, label=30th, parent=mnu30th}
+mnu31st={class=menu_item, label=31st, parent=mnu31st}
+cboday={class=combo_box, label=day}
+mnuday={class=menu_item, label=day, parent=mnuday}
+mnuMonday={class=menu_item, label=Monday, parent=mnuday}
+mnuTuesday={class=menu_item, label=Tuesday, parent=mnuday}
+mnuWednesday={class=menu_item, label=Wednesday, parent=mnuday}
+mnuThursday={class=menu_item, label=Thursday, parent=mnuday}
+mnuFriday={class=menu_item, label=Friday, parent=mnuday}
+mnuSaturday={class=menu_item, label=Saturday, parent=mnuday}
+mnuSunday={class=menu_item, label=Sunday, parent=mnuday}
+cboforever={class=combo_box, label=forever}
+mnufor={class=menu_item, label=for, parent=mnuforever}
+mnuuntil={class=menu_item, label=until, parent=mnuforever}
+mnuforever={class=menu_item, label=forever, parent=mnuforever}
+pnl5={class=panel, instance_index=5,parent=ptabRecurrence}
+sbtn1={class=spin_button, instance_index=1,parent=ptabRecurrence}
+lbloccurrences={class=label, label=occurrences}
+pnl6={class=panel, instance_index=6,parent=ptabRecurrence}
+lblExceptions={class=label, label=Exceptions}
+lbl19={class=label, instance_index=19,parent=ptabRecurrence}
+tbl0={class=table, instance_index=0,parent=ptabRecurrence}
+btnAdd={class=push_button, label=Add}
+btnEdit={class=push_button, label=Edit}
+btnRemove={class=push_button, label=Remove}
+lblPreview={class=label, label=Preview}
+lbl21={class=label, instance_index=21,parent=ptabRecurrence}
+pnl7={class=panel, instance_index=7,parent=ptabRecurrence}
+paneMonthCalendar={class=layered_pane, label=Month Calendar}
+pnl8={class=panel, instance_index=8,parent=paneMonthCalendar}
+pnl9={class=panel, instance_index=9,parent=paneMonthCalendar}
+btnPreviousButton={class=push_button, label=Previous Button}
+pnl10={class=panel, instance_index=10,parent=paneMonthCalendar}
+btnPreviousButton={class=push_button, label=Previous Button}
+ptabScheduling={class=page_tab, label=Scheduling}
+pnl11={class=panel, instance_index=11,parent=ptabScheduling}
+pnl12={class=panel, instance_index=12,parent=ptabScheduling}
+pnl13={class=panel, instance_index=13,parent=ptabScheduling}
+lblEndtime={class=label, label=End time:}
+txtTextDateEntry={class=text, label=Text Date Entry}
+btnDateButton={class=push_button, label=Date Button}
+cboTimeComboBox={class=combo_box, label=Time Combo Box}
+txtStarttime={class=text, label_by=Start time:}
+lblStarttime={class=label, label=Start time:}
+txtTextDateEntry={class=text, label=Text Date Entry}
+btnDateButton={class=push_button, label=Date Button}
+cboTimeComboBox={class=combo_box, label=Time Combo Box}
+txtAutopick={class=text, label_by=Autopick}
+btn<<={class=push_button, label=<<}
+btnAutopick={class=push_button, label=Autopick}
+btn>>={class=push_button, label=>>}
+btnContacts={class=push_button, label=Contacts...}
+btnOptions={class=push_button, label=Options}
+lblTentative={class=label, label=Tentative}
+lblBusy={class=label, label=Busy}
+lblOutofOffice={class=label, label=Out of Office}
+lblNoInformation={class=label, label=No Information}
+pane1={class=layered_pane, instance_index=1,parent=ptabScheduling}
+pnl14={class=panel, instance_index=14,parent=ptabScheduling}
+pane2={class=layered_pane, instance_index=2,parent=ptabScheduling}
+pnl15={class=panel, instance_index=15,parent=ptabScheduling}
+tbl1={class=table, instance_index=1,parent=ptabScheduling}
+ptabInvitations={class=page_tab, label=Invitations}
+lblOrganizer={class=label, label=Organizer:}
+cboOrganizer={class=combo_box, label=Organizer}
+txt14={class=text, instance_index=14,parent=cboOrganizer}
+lblOrganizer={class=label, label=Organizer:}
+lblNone={class=label, label=None}
+btnChangeOrganizer={class=push_button, label=Change Organizer}
+lblAttendees={class=label, label=Attendees}
+lbl32={class=label, instance_index=32,parent=ptabInvitations}
+tbl2={class=table, instance_index=2,parent=ptabInvitations}
+btnAdd={class=push_button, label=Add, parent=ptabInvitations}
+btnRemove={class=push_button, label=Remove}
+btnContacts={class=push_button, label=Contacts...}
+lblAttachmentBar={class=label, label=Attachment Bar (drop attachments here)}
+lbl34={class=label, instance_index=34,parent=dlgMeeting-Nosummary}
+paneAttachmentBar={class=layered_pane, label=Attachment Bar}
+btnHelp={class=push_button, label=Help}
+btnOK={class=push_button, label=OK}
+btnCancel={class=push_button, label=Cancel}
+
+[dlgCategories]
+dlgCategories={class=dialog, label=Categories, app_name=evolution}
+pnl0={class=panel, instance_index=0,parent=dlgCategories}
+btnNew={class=push_button, label=New}
+btnEdit={class=push_button, label=Edit}
+btnDelete={class=push_button, label=Delete}
+tbl0={class=table, instance_index=0}
+lblAvailableCategories={class=label, label=Available Categories:}
+lblItem={class=label, label=Item(s) belong to these categories:}
+txt0={class=text, instance_index=0}
+btnOK={class=push_button, label=OK}
+btnCancel={class=push_button, label=Cancel}
+
+[dlgAddexception]
+dlgAddexception={class=dialog, label=Add exception, app_name=evolution}
+txtTextDateEntry={class=text, label=Text Date Entry}
+btnDateButton={class=push_button, label=Date Button}
+cboTimeComboBox={class=combo_box, label=Time Combo Box}
+txt1={class=text, instance_index=1,parent=cboTimeComboBox}
+btnOK={class=push_button, label=OK}
+btnCancel={class=push_button, label=Cancel}
+
+[dlgEvolutionQuery]
+dlgEvolutionQuery={class=dialog, label=Evolution Query, app_name=evolution}
+lblWouldyouliketosendmeetinginvitationstoparticipants?
+
+EmailinvitationswillbesenttoallparticipantsandallowthemtoRSVP.={class=label, label=Would you like to send meeting invitations to participants?
+
+Email invitations will be sent to all participants and allow them to RSVP.}
+btnSend={class=push_button, label=Send}
+btnDon'tSend={class=push_button, label=Don't Send}
+
+[dlgNewCalendar]
+dlgNewCalendar={class=dialog, label=New Calendar, app_name=evolution}
+ptlNewCalendar0={class=page_tab_list, instance_index=0, parent=NewCalendar}
+ptb0={class=page_tab, instance_index=0, parent=NewCalendar }
+pnlCalendar={class=panel, label=Calendar}
+pnl1={class=panel, instance_index=1,parent=pnlCalendar}
+pnl2={class=panel, instance_index=2,parent=pnlCalendar}
+sbtn0={class=spin_button, instance_index=0,parent=pnlCalendar}
+cbominutes={class=combo_box, label=minutes}
+mnuminutes={class=menu_item, label=minutes, parent=mnuminutes}
+mnuhours={class=menu_item, label=hours, parent=mnuminutes}
+mnudays={class=menu_item, label=days, parent=mnuminutes}
+mnuweeks={class=menu_item, label=weeks, parent=mnuminutes}
+lblRefresh={class=label, label=Refresh:}
+txt0={class=text, instance_index=0,parent=pnlCalendar}
+lblURL={class=label, label=URL:}
+chkMarkasdefaultfolder={class=check_box, label=Mark as default folder}
+chkCopycalendarcontentslocallyforofflineoperation={class=check_box, label=Copy calendar contents locally for offline operation}
+btn0={class=push_button, instance_index=0,parent=pnlCalendar}
+lblColor={class=label, label=Color:}
+txt1={class=text, instance_index=1,parent=pnlCalendar}
+lblName={class=label, label=Name:}
+lblType={class=label, label=Type:}
+cboOnThisComputer={class=combo_box, label=On This Computer}
+mnuOnThisComputer={class=menu_item, label=On This Computer, parent=mnuOnThisComputer}
+mnuOnTheWeb={class=menu_item, label=On The Web, parent=mnuOnTheWeb}
+mnuContacts={class=menu_item, label=Contacts, parent=mnuContacts}
+mnuWeather={class=menu_item, label=Weather, parent=mnuWeather}
+lblCalendar={class=label, label=Calendar}
+btnOK={class=push_button, label=OK}
+btnCancel={class=push_button, label=Cancel}
+
+[dlgAppointment-Nosummary]
+dlgAppointment-Nosummary={class=dialog, label=Appointment - No summary, app_name=evolution}
+ptlAppointment-Nosummary0={class=page_tab_list, instance_index=0}
+ptabAppointment={class=page_tab, label=Appointment}
+lblBasics={class=label, label=Basics}
+lbl1={class=label, instance_index=1,parent=ptabAppointment}
+pnl0={class=panel, instance_index=0,parent=ptabAppointment}
+lblDescription={class=label, label=Description:}
+txt0={class=text, instance_index=0,parent=ptabAppointment}
+btnCategories={class=push_button, label=Categories...}
+cboPublic={class=combo_box, label=Public}
+mnuPublic={class=menu_item, label=Public, parent=mnuPublic}
+mnuPrivate={class=menu_item, label=Private, parent=mnuPublic}
+mnuConfidential={class=menu_item, label=Confidential, parent=mnuPublic}
+lblCalendar={class=label, label=Calendar:}
+cboPersonal={class=combo_box, label= Personal}
+mnuOnThisComputer={class=menu_item, label=On This Computer, parent=mnuOnThisComputer}
+mnuPersonal={class=menu_item, label= Personal, parent=mnuPersonal}
+mnuOnTheWeb={class=menu_item, label=On The Web, parent=mnuOnTheWeb}
+mnuContacts={class=menu_item, label=Contacts, parent=mnuContacts}
+mnuBirthdays&Anniversaries={class=menu_item, label= Birthdays & Anniversaries, parent=mnuBirthdays&Anniversaries}
+mnuWeather={class=menu_item, label=Weather, parent=mnuWeather}
+lblClassification={class=label, label=Classification:}
+txtEventDescription={class=text, label=Event Description}
+txt2={class=text, instance_index=2,parent=ptabAppointment}
+lblLocation={class=label, label=Location:}
+txtLocation={class=text, label_by=Location:}
+txt3={class=text, instance_index=3,parent=ptabAppointment}
+lblSummary={class=label, label=Summary:}
+lblDateandTime={class=label, label=Date and Time}
+lbl8={class=label, instance_index=8,parent=ptabAppointment}
+pnl1={class=panel, instance_index=1,parent=ptabAppointment}
+lblThisappointmenthascustomizedalarms={class=label, label=This appointment has customized alarms}
+cbo15minutesbeforeappointment={class=combo_box, label=15 minutes before appointment}
+mnu15minutesbeforeappointment={class=menu_item, label=15 minutes before appointment, parent=mnu15minutesbeforeappointment}
+mnu1hourbeforeappointment={class=menu_item, label=1 hour before appointment, parent=mnu1hourbeforeappointment}
+mnu1daybeforeappointment={class=menu_item, label=1 day before appointment, parent=mnu1daybeforeappointment}
+btnCustomize={class=push_button, label=Customize...}
+chkAlarm={class=check_box, label=Alarm}
+chkShowtimeasbusy={class=check_box, label=Show time as busy}
+txt4={class=text, instance_index=4,parent=ptabAppointment}
+btnTimezoneButton={class=push_button, label=Timezone Button}
+chkAlldayevent={class=check_box, label=All day event}
+lblEndtime={class=label, label=End time:}
+lblStarttime={class=label, label=Start time:}
+txt5={class=text, instance_index=5,parent=ptabAppointment}
+btnTimezoneButton={class=push_button, label=Timezone Button}
+txtTextDateEntry={class=text, label=Text Date Entry}
+btnDateButton={class=push_button, label=Date Button}
+cboTimeComboBox={class=combo_box, label=Time Combo Box}
+txtEndtime={class=text, label_by=End time:}
+txtTextDateEntry={class=text, label=Text Date Entry}
+btnDateButton={class=push_button, label=Date Button}
+cboTimeComboBox={class=combo_box, label=Time Combo Box}
+txtStarttime={class=text, label_by=Start time:}
+pnlSendOptions={class=panel, label=Send Options}
+pnl3={class=panel, instance_index=3,parent=pnlSendOptions}
+btnAdvancedsendoptions={class=push_button, label=Advanced send options}
+lblSendOptions={class=label, label=Send Options}
+ptabRecurrence={class=page_tab, label=Recurrence}
+lblRecurrence={class=label, label=Recurrence}
+lbl14={class=label, instance_index=14,parent=ptabRecurrence}
+chkThisappointmentrecurs={class=check_box, label=This appointment recurs}
+lblEvery={class=label, label=Every}
+sbtn0={class=spin_button, instance_index=0,parent=ptabRecurrence}
+cbomonth={class=combo_box, label=month(s)}
+mnuday={class=menu_item, label=day(s), parent=mnumonth(s)}
+mnuweek={class=menu_item, label=week(s), parent=mnumonth(s)}
+mnumonth={class=menu_item, label=month(s), parent=mnumonth(s)}
+mnuyear={class=menu_item, label=year(s), parent=mnumonth(s)}
+pnl4={class=panel, instance_index=4,parent=ptabRecurrence}
+lblonthe={class=label, label=on the}
+cbo1st={class=combo_box, label=1st}
+mnufirst={class=menu_item, label=first, parent=mnu1st}
+mnusecond={class=menu_item, label=second, parent=mnu1st}
+mnuthird={class=menu_item, label=third, parent=mnu1st}
+mnufourth={class=menu_item, label=fourth, parent=mnu1st}
+mnulast={class=menu_item, label=last, parent=mnu1st}
+mnu1st={class=menu_item, label=1st, parent=mnu1st}
+mnuOtherDate={class=menu, label=Other Date}
+mnu1stto10th={class=menu, label=1st to 10th}
+mnu1st={class=menu_item, label=1st, parent=mnu1st}
+mnu2nd={class=menu_item, label=2nd, parent=mnu2nd}
+mnu3rd={class=menu_item, label=3rd, parent=mnu3rd}
+mnu4th={class=menu_item, label=4th, parent=mnu4th}
+mnu5th={class=menu_item, label=5th, parent=mnu5th}
+mnu6th={class=menu_item, label=6th, parent=mnu6th}
+mnu7th={class=menu_item, label=7th, parent=mnu7th}
+mnu8th={class=menu_item, label=8th, parent=mnu8th}
+mnu9th={class=menu_item, label=9th, parent=mnu9th}
+mnu10th={class=menu_item, label=10th, parent=mnu10th}
+mnu11thto20th={class=menu, label=11th to 20th}
+mnu11th={class=menu_item, label=11th, parent=mnu11th}
+mnu12th={class=menu_item, label=12th, parent=mnu12th}
+mnu13th={class=menu_item, label=13th, parent=mnu13th}
+mnu14th={class=menu_item, label=14th, parent=mnu14th}
+mnu15th={class=menu_item, label=15th, parent=mnu15th}
+mnu16th={class=menu_item, label=16th, parent=mnu16th}
+mnu17th={class=menu_item, label=17th, parent=mnu17th}
+mnu18th={class=menu_item, label=18th, parent=mnu18th}
+mnu19th={class=menu_item, label=19th, parent=mnu19th}
+mnu20th={class=menu_item, label=20th, parent=mnu20th}
+mnu21stto31st={class=menu, label=21st to 31st}
+mnu21st={class=menu_item, label=21st, parent=mnu21st}
+mnu22nd={class=menu_item, label=22nd, parent=mnu22nd}
+mnu23rd={class=menu_item, label=23rd, parent=mnu23rd}
+mnu24th={class=menu_item, label=24th, parent=mnu24th}
+mnu25th={class=menu_item, label=25th, parent=mnu25th}
+mnu26th={class=menu_item, label=26th, parent=mnu26th}
+mnu27th={class=menu_item, label=27th, parent=mnu27th}
+mnu28th={class=menu_item, label=28th, parent=mnu28th}
+mnu29th={class=menu_item, label=29th, parent=mnu29th}
+mnu30th={class=menu_item, label=30th, parent=mnu30th}
+mnu31st={class=menu_item, label=31st, parent=mnu31st}
+cboday={class=combo_box, label=day(s)}
+mnuday={class=menu_item, label=day, parent=mnuday}
+mnuMonday={class=menu_item, label=Monday, parent=mnuday}
+mnuTuesday={class=menu_item, label=Tuesday, parent=mnuday}
+mnuWednesday={class=menu_item, label=Wednesday, parent=mnuday}
+mnuThursday={class=menu_item, label=Thursday, parent=mnuday}
+mnuFriday={class=menu_item, label=Friday, parent=mnuday}
+mnuSaturday={class=menu_item, label=Saturday, parent=mnuday}
+mnuSunday={class=menu_item, label=Sunday, parent=mnuday}
+cboforever={class=combo_box, label=forever}
+mnufor={class=menu_item, label=for, parent=mnuforever}
+mnuuntil={class=menu_item, label=until, parent=mnuforever}
+mnuforever={class=menu_item, label=forever, parent=mnuforever}
+pnl5={class=panel, instance_index=5,parent=ptabRecurrence}
+sbtn1={class=spin_button, instance_index=1,parent=ptabRecurrence}
+lbloccurrences={class=label, label=occurrences}
+pnl6={class=panel, instance_index=6,parent=ptabRecurrence}
+lblExceptions={class=label, label=Exceptions}
+lbl18={class=label, instance_index=18,parent=ptabRecurrence}
+tbl0={class=table, instance_index=0,parent=ptabRecurrence}
+btnAdd={class=push_button, label=Add}
+btnEdit={class=push_button, label=Edit}
+btnRemove={class=push_button, label=Remove}
+lblPreview={class=label, label=Preview}
+lbl20={class=label, instance_index=20,parent=ptabRecurrence}
+pnl7={class=panel, instance_index=7,parent=ptabRecurrence}
+paneMonthCalendar={class=layered_pane, label=Month Calendar}
+pnl8={class=panel, instance_index=8,parent=paneMonthCalendar}
+pnl9={class=panel, instance_index=9,parent=paneMonthCalendar}
+btnPreviousButton={class=push_button, label=Previous Button}
+pnl10={class=panel, instance_index=10,parent=paneMonthCalendar}
+btnPreviousButton={class=push_button, label=Previous Button}
+lblAttachmentBar={class=label, label=Attachment Bar (drop attachments here)}
+lbl22={class=label, instance_index=22,parent=dlgAppointment-Nosummary}
+paneAttachmentBar={class=layered_pane, label=Attachment Bar}
+btnHelp={class=push_button, label=Help}
+btnOK={class=push_button, label=OK}
+btnCancel={class=push_button, label=Cancel}
diff --git a/evolution/evolution.py b/evolution/evolution.py
index 2e5319d..880a566 100644
--- a/evolution/evolution.py
+++ b/evolution/evolution.py
@@ -1,25 +1,112 @@
#!/usr/bin/python
+#
+# Linux Desktop Testing Project http://www.gnomebangalore.org/ldtP
+#
+# Author:
+# Premkumar <jpremkumar@novell.com>
+#
+# Copyright 2004 Novell, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this library; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+#
from ldtp import *
-import string, sys, os
+from ldtputils import *
+from evoutils.mail import *
+from evoutils.calendar import *
+import string, sys, os, time
+
+startlog('evolution.log',1)
appmap_path = ''
if len (sys.argv) == 1:
- if os.access ('./evolution-2.2.map', os.F_OK | os.R_OK) == 0:
- print 'Appmap path missing'
+ if os.access ('./evolution.map', os.F_OK | os.R_OK) == 0:
+ log ('Appmap path missing','error')
+ stoplog ()
sys.exit(0);
else:
appmap_path = '.'
else:
appmap_path = sys.argv[1]
-initappmap (appmap_path + '/evolution-2.2.map')
+initappmap (appmap_path + '/evolution.map')
+
+launchapp ('evolution')
+
+log ('Evolution Mailer Suite', 'begin')
+
+## MAIL ##
+#Compose mail
+execfile ('compose-mail.py')
+time.sleep (60)
+
+#Reply to a mail
+execfile ('reply-mail.py')
+time.sleep (60)
+
+#Forward a mail
+execfile ('forward-mail.py')
+time.sleep (60)
+
+#Compose mail with attachment
+execfile('compose-mail-w-attachment.py')
+time.sleep (60)
+
+#TODO: Test script for sending html has to be written
+#To send an HTML file and verify the same.
+#execfile ('sendhtmlmail.py')
+
+#To view a plain text mail
+execfile ('view-mail.py')
+time.sleep (60)
+
+#To move a mail from one directory to another
+execfile ('movemail.py')
+time.sleep (60)
+
+#To copy a mail from one directory to another
+execfile ('copymail.py')
+time.sleep (60)
+
+#To delete a mail from a given directory
+execfile ('deletemail.py')
+time.sleep (60)
+
+log ('Evolution Mailer Suite', 'end')
+
+log ('Evolution Calendar Suite', 'begin')
+
+## MEETING ##
+time.sleep (3)
+execfile ('create-meeting.py')
+time.sleep (3)
+execfile ('verify-meeting.py')
+
+## APPOINTMENT ##
+time.sleep (3)
+execfile ('create-appointment.py')
+time.sleep (3)
+execfile ('verify-appointment.py')
+
+## CALENDAR ##
+time.sleep (3)
+execfile ('create-calendar.py')
+time.sleep (3)
-#launchapp ('evolution-2.2')
+log ('Evolution Calendar Suite', 'end')
-setcontext ('Compose a message', 'test mail')
-settextvalue ('Composeamessage', 'txtTo', 'nagappan@ldg.net')
-settextvalue ('Composeamessage', 'txtSubject', '')
-releasecontext ()
-settextvalue ('Composeamessage', 'txtCc', 'nagappan@ldg.net')
+stoplog ()
diff --git a/evolution/evoutils/mail.py b/evolution/evoutils/mail.py
index d27a15c..bf8b003 100644
--- a/evolution/evoutils/mail.py
+++ b/evolution/evoutils/mail.py
@@ -50,7 +50,7 @@ def populate_mail_header (to, subject,body,
#Note: I have edited the evolution.map to change 'txt0'
#to 'txtSubject'
- #switching is involved
+ #cant use set and verify since context switching is involved
if subject!='':
settextvalue ('Composeamessage', 'txtSubject', subject)
setcontext ('Compose a message', subject)
@@ -72,24 +72,26 @@ def populate_mail_header (to, subject,body,
log ('Compose new message failed', 'Fail' )
#To capture image of the ith mail in the given folder
-def capturemailimage (folder_name,i,filename):
+def capturemailimage (folder_name, i, filename):
try:
- selectmenuitem ('evolution','mnuTools;mnuMail')
- selectrowpartialmatch ('evolution','ttblMailFolder',folder_name)
- if i==-9:
- i = getrowcount ('evolution','ttblMessageList') - 3
- selectrowindex ('evolution','ttblMessageList',i)
+ selectmenuitem ('evolution','mnuView;mnuWindow;mnuMail')
+ time.sleep (3)
+ selectrowpartialmatch ('evolution', 'ttblMailFolderTree', folder_name)
+ if i == -1:
+ i = getrowcount ('evolution', 'ttblMessageList') - 1
+ print 'The obtained index is i' + i
+ selectrowindex ('evolution', 'ttblMessageList', i)
time.sleep(3)
- subject = getcellvalue ('evolution','ttblMessageList',i+1,4)
- time.sleep (1)
- selectmenuitem ('evolution','mnuMessage;mnuOpeninNewWindow')
- setcontext ('Readonlyframe',subject)
- time.sleep (5)
- imagecapture (subject,filename)
- selectmenuitem ('Readonlyframe','mnuFile;mnuClose')
- time.sleep(1)
+ subject = getcellvalue ('evolution', 'ttblMessageList', i, 4)
+ time.sleep (2)
+ selectmenuitem ('evolution', 'mnuMessage;mnuOpeninNewWindow')
+ setcontext ('Readonlyframe', subject)
+ time.sleep (3)
+ imagecapture ('Readonlyframe', 'IMAGES/'+filename)
+ selectmenuitem ('Readonlyframe', 'mnuFile;mnuClose')
+ time.sleep(2)
if guiexist ('Readonlyframe') == 1:
- log ('Message Window is not close after capturing','warning')
+ log ('Message Window is not close after capturing', 'warning')
raise LdtpExecutionError (0)
releasecontext ()
return 1
@@ -97,17 +99,18 @@ def capturemailimage (folder_name,i,filename):
log ('Capturing of mail failed','warning')
LdtpExecutionError(0)
-
#To verify the ith mail in the given folder with the given image
-def verifymailwithimage (folder_name,mail_index,refimg_filename):
+def verifymailwithimage (folder_name, mail_index, refimg_filename):
try:
- capturemailimage (folfer_name,mail_index,'cur_mail.png')
- if imagecompare ('cur_mail.png',refimg_filename) == 0.0:
+ capturemailimage (folder_name, mail_index, 'IMAGES/cur_mail.png')
+ print 'The difference in image is:' + str (imagecompare ('IMAGES/cur_mail.png', refimg_filename))
+ if imagecompare ('cur_mail.png', refimg_filename) == 0.0:
return 1
else:
return 0
- except:
- log ('Comparision of mail images failed - ref image: ' + refimg_filename ,'error')
+ except ldtp.error, msg:
+ print 'Comparision failed due to the following error -' + str (msg)
+ log ('Comparision of mail images failed - ref image: ' + refimg_filename , 'error')
LdtpExecutionError (0)
diff --git a/evolution/forward-mail.dat b/evolution/forward-mail.dat
index b385745..7bed135 100644
--- a/evolution/forward-mail.dat
+++ b/evolution/forward-mail.dat
@@ -1,4 +1,6 @@
-jpremkumar@novell.com
-~
-~
-~
+nags@dell.net
+$
+$
+$
+$
+$
diff --git a/evolution/forward-mail.py b/evolution/forward-mail.py
index 0c1ceb0..af71e9c 100644
--- a/evolution/forward-mail.py
+++ b/evolution/forward-mail.py
@@ -28,34 +28,27 @@
from evoutils.mail import *
#To Forward mail
-def forward_mail (to,body,subject_new='',cc=''):
+def forward_mail (source_fldr, mail_index, to, body, subject_new='', cc=''):
try:
- selectmenuitem('evolution','mnuTools;mnuMail')
- time.sleep(3)
-
- #TODO: Write additional code to select the particular
- #folder from Folder tree before moving to the next statement
+ time.sleep (3)
+ selectmenuitem ('evolution', 'mnuView;mnuWindow;mnuMail')
+ time.sleep (3)
+ time.sleep (10)
+ selectrowpartialmatch ('evolution', 'ttblMailFolderTree', source_fldr)
+ if mail_index == -1:
+ mail_index = getrowcount ('evolution', 'ttblMessageList') - 1
- #TODO: Uncomment the following when getrowcount bug
- #is fixed in evolution/accessibility
- #selectlastrow ('evolution', 'ttblMessageList')
-
- cur_index=getrowcount ('evolution','ttblMessageList')-3;
-
- #TOOD: When Uncommenting the previous statement remove
- #the following statement
- selectrowindex ('evolution','ttblMessageList',cur_index)
+ selectrowindex ('evolution', 'ttblMessageList', mail_index)
- subject = getcellvalue('evolution','ttblMessageList',cur_index+1,4)
- click('evolution','btnForward')
+ subject = getcellvalue ('evolution', 'ttblMessageList', mail_index, 4)
+ click ('evolution','btnForward')
time.sleep(3)
- setcontext ('Compose a message','[Fwd: '+subject+']')
- if guiexist('Composeamessage') == 0:
- log ('Failed to open forward frame','error')
+ setcontext ('Compose a message', '[Fwd: '+subject+']')
+ if guiexist ('Composeamessage') == 0:
+ log ('Failed to open forward frame', 'error')
raise LdtpExecutionError(0)
else:
- if populate_mail_header (to,subject_new,
- body,cc) == 0:
+ if populate_mail_header (to, subject_new, body, cc) == 0:
log ('Failed to populate mail header',
'error')
raise LdtpExecutionError (0)
@@ -65,34 +58,38 @@ def forward_mail (to,body,subject_new='',cc=''):
log ('Failed to close Compose dialog after sending','error')
raise LdtpExecutionError(0)
else:
- click('evolution','btnSend/Receive')
- log('Forward-message-Success','pass')
+ click('evolution', 'btnSend/Receive')
+ log('Forward-message-Success', 'pass')
releasecontext()
except error:
print 'Forward messsage Failed'
- log('Forward-Mail-Failed','fail')
+ log ('Forward-Mail-Failed', 'fail')
#Trying to read from the file
inpfile = open('forward-mail.dat', 'r')
-argmts = inpfile.readlines()
-to_mailid = argmts[0].strip( )
-Bodytxt_Mail = argmts[1].strip( )
-if Bodytxt_Mail == '~':
+argmts = inpfile.readlines ()
+to_mailid = argmts[0].strip ()
+Bodytxt_Mail = argmts[1].strip ()
+if Bodytxt_Mail == '$':
Bodytxt_Mail = ''
-Subjecttxt = argmts[2].strip( )
-if Subjecttxt == '~':
+Subjecttxt = argmts[2].strip ()
+if Subjecttxt == '$':
Subjecttxt = ''
-Cc_mailid = argmts[3].strip( )
-if Cc_mailid == '~':
+Cc_mailid = argmts[3].strip ()
+if Cc_mailid == '$':
Cc_mailid = ''
+source_fldr = argmts[4].strip ()
+if source_fldr == '$':
+ source_fldr = 'Inbox'
+mail_index = argmts[5].strip ()
+if mail_index == '$':
+ mail_index = -1
# Call the function
+log ('Forward Mail' , 'teststart')
+forward_mail (source_fldr, mail_index, to_mailid, Bodytxt_Mail, Subjecttxt, Cc_mailid)
+log ('Forward Mail', 'testend')
+log ('Forward Mail - Verification', 'teststart')
+verifymailwithimage ('Sent Items', -9, 'forwardmail_refimage.png')
+log ('Forward Mail - Verification', 'testend')
-log('Forward Mail and verify','teststart')
-log('Forward Mail' ,'teststart')
-forward_mail (to_mailid,Bodytxt_Mail,Subjecttxt,Cc_mailid)
-log('Forward Mail' ,'testend')
-log('Forward Mail - Verification','teststart')
-verifymailwithimage ('Sent Items',-9,'forwardmail_refimage.png')
-log('Forward Mail - Verification' ,'testend')
-log('Forward Mail and verify','testend')
diff --git a/evolution/movemail.dat b/evolution/movemail.dat
index 3c9828d..83b433d 100644
--- a/evolution/movemail.dat
+++ b/evolution/movemail.dat
@@ -1,2 +1,3 @@
Inbox
-bugs \ No newline at end of file
+bugs
+$ \ No newline at end of file
diff --git a/evolution/movemail.py b/evolution/movemail.py
index d63fe4f..f93e4e3 100644
--- a/evolution/movemail.py
+++ b/evolution/movemail.py
@@ -27,57 +27,57 @@
#Moving an existing Mail
# Section to select and move mail
-def move_mail (from_fldr,to_fldr):
+def move_mail (from_fldr, to_fldr, mail_index):
try:
- selectrowpartialmatch ('evolution', 'ttblMailFolderTree',
- to_fldr)
- row_before = getrowcount('evolution', 'ttblMessageList')
- selectrowpartialmatch ('evolution', 'ttblMailFolderTree',
- from_fldr)
+ time.sleep (10)
+ selectrowpartialmatch ('evolution', 'ttblMailFolderTree', to_fldr)
+ time.sleep (2)
+ row_before = getrowcount('evolution', 'ttblMessageList')
+ time.sleep (2)
+ selectrowpartialmatch ('evolution', 'ttblMailFolderTree', from_fldr)
+ time.sleep (2)
rowcount = getrowcount('evolution', 'ttblMessageList')
if rowcount > 0:
- #selectlastrow ('evolution', 'ttblMessageList')
- selectrowindex ('evolution', 'ttblMessageList',
- rowcount-3)
- selectmenuitem ('evolution',
- 'mnuMessage;mnuMoveToFolder')
- selectrowpartialmatch ('dlgSelectfolder',
- 'ttblMailFolderTree',to_fldr )
- click ('dlgSelectfolder','btnMove')
- if guiexist('dlgSelectfolder') == 0:
- log ('Select folder dialog not closed',
- 'error')
- raise LdtpexecutionError(0)
+ if mail_index == -1:
+ mail_index = rowcount - 1
+ selectrowindex ('evolution', 'ttblMessageList', mail_index)
+ selectmenuitem ('evolution', 'mnuMessage;mnuMoveToFolder')
+ selectrowpartialmatch ('dlgSelectfolder', 'ttblMailFolderTree',to_fldr )
+ click ('dlgSelectfolder', 'btnMove')
+ time.sleep (3)
+ if guiexist('dlgSelectfolder') == 1:
+ log ('Select folder dialog not closed', 'error')
+ raise LdtpExecutionError(0)
else:
- selectrowpartialmatch ('evolution',
- 'ttblMailFolderTree',to_fldr)
- wait (5)
- row_after = getrowcount('evolution', 'ttblMessageList')
+ selectrowpartialmatch ('evolution', 'ttblMailFolderTree',to_fldr)
+ time.sleep (5)
+ row_after = getrowcount ('evolution', 'ttblMessageList')
selectmenuitem ('evolution', 'mnuFile;mnuClose')
time.sleep(3)
if row_after > row_before:
- log ('Moving a mail passed successfully',
- 'pass')
- else :
- log ('Moving a mail failed',
- 'fail')
+ log ('Moving a mail passed successfully', 'pass')
+ else:
+ log ('Moving a mail failed', 'fail')
else:
log ('From folder empty!', 'Warning')
- log ('Did not move any mails to other folder',
- 'Pass')
+ log ('Did not move any mails to other folder', 'Pass')
except ldtp.error,msg:
- print 'Moving mail between folders failed',str(msg)
- log ('Moving mail failed','fail')
+ print 'Moving mail between folders failed', str(msg)
+ log ('Moving mail failed', 'fail')
#Read input from file
file = open ('movemail.dat', 'r')
argmts = file.readlines()
-from_fldr = argmts[0].strip( )
-to_fldr = argmts[1].strip( )
+from_fldr = argmts[0].strip ()
+to_fldr = argmts[1].strip ()
+mail_index = argmts[2].strip ()
+
+if mail_index == '$':
+ mail_index = -1;
# Call the function
log ('Move mail', 'teststart')
-move_mail (from_fldr,to_fldr)
+move_mail (from_fldr, to_fldr, mail_index)
log ('Move mail', 'testend')
-log ('Moving mail succeeded', 'pass')
+
diff --git a/evolution/reply-mail.dat b/evolution/reply-mail.dat
index 7db2a3a..bb417cc 100644
--- a/evolution/reply-mail.dat
+++ b/evolution/reply-mail.dat
@@ -1,2 +1,4 @@
thanks for the mail
-jpremkumar@novell.com \ No newline at end of file
+nags@dell.net
+$
+$ \ No newline at end of file
diff --git a/evolution/reply-mail.py b/evolution/reply-mail.py
index 46d8842..88e86d6 100644
--- a/evolution/reply-mail.py
+++ b/evolution/reply-mail.py
@@ -27,73 +27,72 @@
# To Reply a Mail using args supplied by a text file
#To reply mail
-def reply_mail (body,cc=''):
+def reply_mail (source_fldr, mail_index, body, cc=''):
try:
- selectmenuitem('evolution','mnuTools;mnuMail')
- time.sleep(3)
+ time.sleep (3)
+ selectmenuitem('evolution','mnuView;mnuWindow;mnuMail')
+ time.sleep (15)
- #TODO: Write additional code to select the particular
- #folder from Folder tree before moving to the next statement
-
- #TODO: Uncomment the following when get rowcount bug
- #is fixed in evolution/accessibility
- #selectlastrow ('evolution', 'ttblMessageList')
-
- cur_index=getrowcount ('evolution','ttblMessageList')-3;
-
- #TOOD: When Uncommenting the previous statement remove
- #the following statement
- selectrowindex ('evolution','ttblMessageList',cur_index)
-
- subject = getcellvalue('evolution','ttblMessageList',cur_index+1,4)
- click('evolution','btnReply')
- time.sleep(3)
- setcontext ('Compose a message','Re: '+subject)
- if guiexist('Composeamessage') == 0:
- log ('Failed to open reply frame','error')
- raise LdtpExecutionError(0)
+ selectrowpartialmatch ('evolution', 'ttblMailFolderTree', source_fldr)
+ time.sleep (3)
+ if mail_index == -1:
+ mail_index = getrowcount ('evolution', 'ttblMessageList') - 1
+ selectrowindex ('evolution', 'ttblMessageList', mail_index)
+ subject = getcellvalue ('evolution', 'ttblMessageList', mail_index, 4)
+ click ('evolution', 'btnReply')
+ time.sleep (3)
+ if subject.startswith ('Re:') == False:
+ setcontext ('Compose a message', 'Re: '+subject)
+ else:
+ setcontext ('Compose a message', subject)
+ time.sleep (5)
+ if guiexist ('Composeamessage') == 0:
+ log ('Failed to open reply frame', 'error')
+ raise LdtpExecutionError (0)
else:
new_context = 'Re: '+subject
- if cc!='' and setandverify('Composeamessage',
- 'txtCc',cc) == 0:
- log ('Failed to insert into Cc field',
- 'error')
- raise LdtpExecutionError(0)
+ if cc!='' and setandverify ('Composeamessage', 'txtCc', cc) == 0:
+ log ('Failed to insert into Cc field', 'error')
+ raise LdtpExecutionError (0)
else:
- if setandverify('Composeamessage',
- 'txt6',body) == 0:
- log ('Failed to insert body text',
- 'error')
- raise LdtpExecutionError(0)
+ if setandverify ('Composeamessage', 'txt6', body) == 0:
+ log ('Failed to insert body text', 'error')
+ raise LdtpExecutionError (0)
else:
click ('Composeamessage', 'btnSend')
- if guiexist ('Composeamessage') == 0:
- log ('Failed to close Compose dialog after sending','error')
- raise LdtpExecutionError(0)
+ time.sleep (5)
+ if guiexist ('Composeamessage') == 1:
+ log ('Failed to close Compose dialog after sending', 'error')
+ raise LdtpExecutionError (0)
else:
- click('evolution','btnSend/Receive')
- log('Reply-message-Success','pass')
+ click ('evolution', 'btnSend/Receive')
+ time.sleep (3)
+ log ('Reply-message-Success', 'pass')
except error:
+ releasecontext ()
print 'Reply messsage Failed'
log('Reply-Mail-Failed','fail')
-#TODO: Implement replytoall if necessary
-#def reply_all_mail (to, subjecttxt, mailbodytxt):
-
#Trying to read from the file
file = open('reply-mail.dat', 'r')
-argmts = file.readlines()
-Bodytxt_Mail = argmts[0].strip( )
-Cc_mailid = argmts[1].strip( )
+argmts = file.readlines ()
+Bodytxt_Mail = argmts[0].strip ()
+Cc_mailid = argmts[1].strip ()
+source_fldr = argmts[2].strip ()
+mail_index = argmts[3].strip ()
+if source_fldr == '$':
+ source_fldr = 'Inbox'
+if mail_index == '$':
+ mail_index = -1
# Call the function
log('Reply and Verification of Mail','teststart')
-log('Reply Mail' ,'teststart')
-reply_mail (Bodytxt_Mail, Cc_mailid)
-log('Reply Mail' ,'testend')
-log('Reply Mail - Verification' ,'teststart')
-verifymailwithimage ('Sent Items',-9,'replymail_refimg.png')
-log('Reply Mail - Verification' ,'testend')
-log('ReplyandVerificationofMail','testend')
+log('Reply Mail', 'teststart')
+reply_mail (source_fldr, mail_index, Bodytxt_Mail, Cc_mailid)
+log('Reply Mail','testend')
+log('Reply Mail - Verification', 'teststart')
+verifymailwithimage ('Sent Items', -1,'replymail_refimg.png')
+log('Reply Mail - Verification', 'testend')
+log('ReplyandVerificationofMail', 'testend')
diff --git a/evolution/view-mail.dat b/evolution/view-mail.dat
index 47f7cf7..e76c451 100644
--- a/evolution/view-mail.dat
+++ b/evolution/view-mail.dat
@@ -1,3 +1,3 @@
-Sent Items
--9
-viewmail_refimg.png \ No newline at end of file
+Inbox
+-1
+IMAGES/viewmail_refimg.png \ No newline at end of file
diff --git a/evolution/view-mail.py b/evolution/view-mail.py
index 9766157..7e89a99 100644
--- a/evolution/view-mail.py
+++ b/evolution/view-mail.py
@@ -25,13 +25,14 @@
#
#To view mail
-def view_mail (folder_name,i,ref_image):
+def view_mail (folder_name, i, ref_image):
try:
- verifymailwithimage (folder_name,i,ref_image)
+ time.sleep (5)
+ verifymailwithimage (folder_name, i, ref_image)
except:
- log ('View mail failed','error')
+ log ('View mail failed', 'error')
raise LdtpExecutionError (0)
-
+
#Reading inputs from file
file = open ('view-mail.dat','r')
argmts = file.readlines()
@@ -41,6 +42,6 @@ ref_image = argmts[2].strip()
log ('View mail verification','teststart')
time.sleep(2)
-view_mail (folder_name,i,ref_image)
+view_mail (folder_name, i, ref_image)
time.sleep(2)
log ('View mail verification','testend')