summaryrefslogtreecommitdiff
path: root/evolution/contact.py
diff options
context:
space:
mode:
Diffstat (limited to 'evolution/contact.py')
-rw-r--r--evolution/contact.py528
1 files changed, 528 insertions, 0 deletions
diff --git a/evolution/contact.py b/evolution/contact.py
new file mode 100644
index 0000000..7ce880a
--- /dev/null
+++ b/evolution/contact.py
@@ -0,0 +1,528 @@
+#!/usr/bin/env python
+#
+# Linux Desktop Testing Project http://www.gnomebangalore.org/ldtp
+#
+# Author:
+# Prashanth Mohan <prashmohan@gmail.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.
+#
+
+from ldtp import *
+from ldtputils import *
+
+def deletecontact(name):
+ log ('Deleting a contact','teststart')
+ try:
+ #selectcontact (titleappend(name)[1:])
+ selectmenuitem ('frmEvolution-Contacts','mnuEdit;mnuDelete')
+ waittillguiexist ('dlgQuestion')
+ time.sleep (2)
+ click ('dlgQuestion','btnDelete')
+ except:
+ log ('Deleting Contact Failed','error')
+ log ('Deleting a contact','testend')
+ raise LdtpExecutionError(0)
+ log ('Deleting a contact','testend')
+
+def getcurwindow():
+ if guiexist ('frmEvolution-Mail')==1:
+ print "found"
+ return 'frmEvolution-Mail'
+ elif guiexist ('frmEvolution-Contacts')==1:
+ return 'frmEvolution-Contacts'
+ elif guiexist ('frmEvolution-Calendars')==1:
+ return 'frmEvolution-Calendars'
+ elif guiexist ('frmEvolution-Memos')==1:
+ return 'frmEvolution-Memos'
+ elif guiexist ('frmEvolution-Tasks')==1:
+ return 'frmEvolution-Tasks'
+
+def getcontactvals(datafilename):
+ """ GET INFORMATION FROM XML FILE FOR ADDING CONTACTS"""
+ try:
+ data_object = LdtpDataFileParser (datafilename)
+ AddrBook=data_object.gettagvalue ('AddrBook')
+ FullName=data_object.gettagvalue ('FullName')
+ Nick=data_object.gettagvalue ('NickName')
+ WorkEmail=data_object.gettagvalue ('WorkEmail')
+ HomeMail=data_object.gettagvalue ('HomeEmail')
+ BusPhone=data_object.gettagvalue ('BusinessPhone')
+ Yahoo=data_object.gettagvalue ('Yahoo')
+ HomePage=data_object.gettagvalue ('HomePage')
+ Profession=data_object.gettagvalue ('Profession')
+ Notes=data_object.gettagvalue ('Notes')
+ HomeAdd=data_object.gettagvalue ('HomeAddress')
+ WorkAdd=data_object.gettagvalue ('WorkAddress')
+ OtherAdd=data_object.gettagvalue ('OtherAddress')
+
+ except:
+ log ('Error While reading values from XML file','error')
+ log ('Add New Contact','testend')
+ raise LdtpExecutionError(0)
+
+ return AddrBook,FullName,Nick,WorkEmail,HomeMail,BusPhone,Yahoo,HomePage,Profession,Notes,HomeAdd,WorkAdd,OtherAdd
+
+def selectContactPane():
+ """Selects the Contacts Pane in Evolution"""
+ log ('Open Evolution Contacts Pane','teststart')
+ try:
+ window_id=getcurwindow()
+ click (window_id,'tbtnContacts')
+ waittillguiexist ('frmEvolution-Contacts')
+ except:
+ log ('error selecting Contacts pane','error')
+ log ('Open Evolution Contacts Pane','testend')
+ raise LdtpExecutionError(0)
+
+ log ('Open Evolution Contacts Pane','testend')
+
+def selectMailPane():
+ """Selects the Contacts Pane in Evolution"""
+ log ('Open Evolution Mail Pane','teststart')
+ try:
+ print "b4 getcurinwdow"
+ window_id=getcurwindow()
+ print "after getcurinwdow"
+ click (window_id,'tbtnMail')
+ waittillguiexist ('frmEvolution-Mail')
+ except:
+ log ('error selecting Mail pane','error')
+ log ('Open Evolution Mail Pane','testend')
+ raise LdtpExecutionError(0)
+
+ log ('Open Evolution Mail Pane','testend')
+
+def selectContactPane():
+ """Selects the Contacts Pane in Evolution"""
+ log ('Open Evolution Contacts Pane','teststart')
+ try:
+ window_id=getcurwindow()
+ click (window_id,'tbtnContacts')
+ waittillguiexist ('frmEvolution-Contacts')
+ except:
+ log ('error selecting Contacts pane','error')
+ log ('Open Evolution Contacts Pane','testend')
+ raise LdtpExecutionError(0)
+
+ log ('Open Evolution Contacts Pane','testend')
+
+
+def selectMemoPane():
+ """Selects the Calendars Pane in Evolution"""
+ log ('Open Evolution Memos Pane','teststart')
+ try:
+ window_id=getcurwindow()
+ click (window_id,'tbtnMemos')
+ waittillguiexist ('frmEvolution-Memos')
+ except:
+ log ('error selecting Memos pane','error')
+ log ('Open Evolution Memos Pane','testend')
+ raise LdtpExecutionError(0)
+
+ log ('Open Evolution Memos Pane','testend')
+
+def selectTaskPane():
+ """Selects the Contacts Pane in Evolution"""
+ log ('Open Evolution Tasks Pane','teststart')
+ try:
+ window_id=getcurwindow()
+ click (window_id,'tbtnTasks')
+ waittillguiexist ('frmEvolutions-Tasks')
+ except:
+ log ('error selecting Tasks pane','error')
+ log ('Open Evolution Tasks Pane','testend')
+ raise LdtpExecutionError(0)
+
+ log ('Open Evolution Tasks Pane','testend')
+
+def selectCalendarPane():
+ """Selects the Contacts Pane in Evolution"""
+ log ('Open Evolution Calendars Pane','teststart')
+ try:
+ window_id=getcurwindow()
+ click (window_id,'tbtnCalendars')
+ waittillguiexist ('frmEvolution-Calendars')
+ except:
+ log ('error selecting Calendars pane','error')
+ log ('Open Evolution Calendars Pane','testend')
+ raise LdtpExecutionError(0)
+
+ log ('Open Evolution Calendars Pane','testend')
+
+
+def selectaddrbook (name):
+ log ('Selecting a given Address book','teststart')
+ try:
+ selectContactPane()
+ remap ('evoltion','frmEvolution-Contacts')
+ selectrow ('frmEvolution-Contacts','ttblContactSourceSelector',name)
+ undoremap ('evolution','frmEvolution-Contacts')
+ except:
+ log ('Unable to Select AddressBook','error')
+ log ('Selecting a given Address book','testend')
+ raise LdtpExecutionError (0)
+ log ('Selecting a given Address book','testend')
+
+
+# def selectcontact(name):
+# """Select a particular contact by full name"""
+
+# log ('Selecting Contact','teststart')
+# try:
+# #selectContactPane()
+# time.sleep (10)
+# if gettextvalue ('frmEvolution-Contacts','txtSearchTextEntry')!='':
+# settextvalue ('frmEvolution-Contacts','txtSearchTextEntry','aaa')
+# time.sleep (5)
+# settextvalue ('frmEvolution-Contacts','txtSearchTextEntry',name)
+# click ('frmEvolution-Contacts','btnFindNow')
+# time.sleep(2)
+# remap ('evolution','frmEvolution-Contacts')
+# time.sleep(2)
+# value=2
+# # if 'pnlcurrentaddressbookfolderhas0cards' in getobjextlist('frmEvolution-Contacts') and 'pnlcurrentaddressbookfolderhas0cards1' in getobjectlist('frmEvolution-Contacts'):
+# # print "out in 0"
+# # time.sleep (10)
+# # raise LdtpExecutionError(0)
+# print "out of 0"
+# time.sleep (3)
+# try:
+# print "come into 1"
+# time.sleep (10)
+# selectpanel ('frmEvolution-Contacts','pnlcurrentaddressbookfolderhas1card',1)
+# selectpanel ('frmEvolution-Contacts','pnlcurrentaddressbookfolderhas1card',1)
+# except:
+# while True:
+# try:
+# print value
+# time.sleep (3)
+# selectpanelname ('frmEvolution-Contacts','pnlcurrentaddressbookfolderhas'+str(value)+'cards',value)
+# selectpanel ('frmEvolution-Contacts','pnlcurrentaddressbookfolderhas'+str(value)+'cards',value)
+# break
+# except:
+# value += 1
+# continue
+# undoremap ('evolution','frmEvolution-Contacts')
+# time.sleep (2)
+
+# except:
+# log ('Unable to select Contact','error')
+# log ('Selecting Contact','testend')
+# raise LdtpExecutionError(0)
+
+# log ('Selecting Contact','testend')
+
+
+
+def selectcontact(name):
+ log ('Select Contact','teststart')
+ if guiexist ('frmEvolution-Contacts')!=1:
+ selectContactPane()
+ try:
+ remap ('evolution','frmEvolution-Contacts')
+ for obj in getobjectlist ('frmEvolution-Contacts'):
+ if obj.startswith ('pnlcurrentaddressbook'):
+ panel_name=obj
+ break
+ time.sleep (2)
+ selectpanelname ('frmEvolution-Contacts',panel_name,name)
+ selectpanelname ('frmEvolution-Contacts',panel_name,name)
+ time.sleep (2)
+ except:
+ log ('Select Contact Failed','error')
+ log ('Select Contact','testend')
+ raise LdtpExecutionError(0)
+ log ('Select Contact','testend')
+
+
+def titleappend(name):
+ name=name.split (' ')
+ append=''
+ for x in range(1,len(name)):
+ append=' '+name[x]
+ if len(name)>1:
+ append+=', '
+ append+=name[0]
+ else:
+ append+=' '
+ append+=name[0]
+ return append
+
+def getmodifiedvals(datafilename):
+ """Get Data from an XML file for Contact Modification"""
+ #import sys
+ #try:
+ log ('Get Modified Values','teststart')
+ data_object = LdtpDataFileParser (datafilename)
+ AddrBook=data_object.gettagvalue ('AddrBook')
+ FullName==data_object.gettagvalue ('Name')
+ NewWorkEmail=data_object.gettagvalue ('NewWorkEmail')
+ NewHomeEmail=data_object.gettagvalue ('NewHomeEmail')
+ NewHomeAdd=data_object.gettagvalue ('NewHomeAddress')
+ NewWordAdd=data_object.gettagvalue ('NewWorkAddress')
+ NewOtherAdd=data_object.gettagvalue ('NewOtherAddress')
+ log ('Get Modified Values','testend')
+ return AddrBook,FullName,NewWorkEmail,NewHomeEmail,NewHomeAdd,NewWorkAdd,NewOtherAdd
+# except:
+# log ('error in getting values for contact modification','error')
+# log ('Get Modified Values','testend')
+# print sys.exc_info()
+# raise LdtpExecutionError( log ('Get Modified Values','testend')
+
+
+def getcontactlistvals(datafilename):
+ log ('Get Contact List values','teststart')
+ data_object = LdtpDataFileParser (datafilename)
+ ListName=data_object.gettagvalue ('ListName')
+ EmailAddresses=[]
+ try:
+ indexval=1
+ while True:
+ try:
+ mail=data_object.gettagvalue ('Email'+str(indexval))[0]
+ EmailAddresses.append(mail)
+ if mail=='':
+ break
+ except:
+ break
+ indexval=indexval+1
+ except:
+ log ('error while getting contact list values','error')
+ log ('Get Contact List values','testend')
+ raise LdtpExecutionError(0)
+ log ('Get Contact List values','testend')
+ return ListName,EmailAddresses
+
+
+def getmodlistvals(datafilename):
+ log ('Get Modify Contact List values','teststart')
+ data_object = LdtpDataFileParser (datafilename)
+ ListName=data_object.gettagvalue ('ListName')
+ AddEmailAddresses=[]
+ DelEmailAddresses=[]
+ addmail=''
+ delmail=''
+ try:
+ indexval=1
+ while True:
+ try:
+ addmail=data_object.gettagvalue ('AddEmail'+str(indexval))
+ delmail=data_object.gettagvalue ('DelEmail'+str(indexval))
+ if len(addmail) ==0 and len (delmail)==0:
+ break
+ if len (addmail)>0:
+ AddEmailAddresses.append (addmail[0])
+ if len(delmail)>0:
+ DelEmailAddresses.append (delmail[0])
+ except:
+ log ('Error in Data read','error')
+ break
+ indexval=indexval+1
+ print AddEmailAddresses,DelEmailAddresses
+ time.sleep (5)
+ except:
+ log ('error while getting contact list values','error')
+ log ('Get Contact List values','testend')
+ raise LdtpExecutionError(0)
+ log ('Get Contact List values','testend')
+ return ListName,AddEmailAddresses,DelEmailAddresses
+
+def opencontactlist(ListName):
+ log ('Open Contact List','teststart')
+ try:
+ selectcontact (ListName[0])
+ selectmenuitem ('frmEvolution-Contacts','mnuFile;mnuOpen')
+ setcontext ('Contact List Editor',ListName[0])
+ waittillguiexist ('dlgContactListEditor')
+ except:
+ log ('could not open Contact list','error')
+ log ('Open Contact List','testend')
+ raise LdtpExecutionError(0)
+ log ('Open Contact List','testend')
+
+def deletecontactlist(name):
+ log ('Delete Contact List','teststart')
+ try:
+ deletecontact(name)
+ except:
+ log ('Delete Contact List Failed','error')
+ log ('Delete Contact List','testend')
+ raise LdtpExecutionError(0)
+ log ('Delete Contact List','testend')
+
+def addcontact(AddrBook,FullName,Nick,WorkEmail,HomeMail,BusPhone,Yahoo,HomePage,Profession,Notes,HomeAdd,WorkAdd,OtherAdd):
+ """ Adds a new contact to evolution"""
+ log ('Add New Contact','teststart')
+ #OPEN CONTACT EDITOR
+ try:
+ #=getcontactvals(datafilename)
+ selectContactPane()
+ selectaddrbook (AddrBook[0])
+ selectmenuitem ('frmEvolution-Contacts','mnuNew;mnuFile;mnuContact')
+ waittillguiexist ('dlgContactEditor')
+ except:
+ log ('Could Not select Contacts Button','error')
+ log ('Add New Contact','testend')
+ raise LdtpExecutionError(0)
+
+ #SET VALUES FOR CONTACT TAB
+ try:
+ selecttab ('dlgContactEditor','ptl0','Contact')
+ settextvalue ('dlgContactEditor','txtFullName', FullName[0])
+# name=FullName[0].split(' ')
+# appendtext=''
+# for x in range(1,len(name)):
+# appendtext=' '+name[x]
+# if len(name)>1:
+# appendtext+=', '
+# appendtext+=name[0]
+# else:
+# appendtext+=name[0]
+ setcontext ('Contact Editor','Contact Editor -'+titleappend(FullName[0]))
+ if len(Nick)>0:
+ settextvalue ('dlgContactEditor','txtNickname',Nick[0])
+
+ if len(WorkEmail)>0:
+ settextvalue ('dlgContactEditor','txtWork',WorkEmail[0])
+
+ if len(HomeMail)>0:
+ settextvalue ('dlgContactEditor','txtHome',HomeMail[0])
+
+ if len(BusPhone)>0:
+ settextvalue ('dlgContactEditor','txtBusinessPhone',BusPhone[0])
+ #print "YAHOO[0]",Yahoo[0]
+ if len(Yahoo)>0:
+ print "INSIDE"
+ settextvalue ('dlgContactEditor','txtYahoo',Yahoo[0])
+ except:
+ log ('Error While setting values in 1st tab','error')
+ log ('Add New Contact','testend')
+ raise LdtpExecutionError(0)
+ time.sleep(2)
+
+ #PERSONAL INFORMATION TAB
+ try:
+ if len(HomePage)>0 or len(Profession)>0 or len(Notes)>0:
+ selecttab ('dlgContactEditor','ptl0','Personal Information')
+ time.sleep(1)
+ if len(HomePage)>0:
+ settextvalue ('dlgContactEditor','txtHomePage',HomePage[0])
+ if len(Profession)>0:
+ settextvalue ('dlgContactEditor','txtProfession',Profession[0])
+ if len(Notes)>0:
+ settextvalue ('dlgContactEditor','txtNotes',Notes[0])
+ except:
+ log ('Error While setting values in 2nd tab','error')
+ log ('Add New Contact','testend')
+ raise LdtpExecutionError(0)
+ time.sleep(2)
+ #MAILING ADDRESS TAB
+ try:
+ if len(HomeAdd)>0 or len(WorkAdd)>0 or len(OtherAdd)>0:
+ selecttab ('dlgContactEditor','ptl0','Mailing Address')
+ time.sleep(1)
+ if len(HomeAdd)>0:
+ settextvalue ('dlgContactEditor','txtAddress',HomeAdd[0])
+ if len(WorkAdd)>0:
+ settextvalue ('dlgContactEditor','txtAddress1',WorkAdd[0])
+ if len(OtherAdd)>0:
+ settextvalue ('dlgContactEditor','txtAddress2',OtherAdd[0])
+ except:
+ log ('Error While setting values in 3rd tab','error')
+ log ('Add New Contact','testend')
+ raise LdtpExecutionError(0)
+
+ time.sleep (2)
+ try:
+ click ('dlgContactEditor','btnOK')
+ time.sleep (5)
+ if guiexist ('dlgDuplicateContactDetected')==1:
+ log ('contact already exists','info')
+ click ('dlgDuplicateContactDetected','btnAdd')
+ time.sleep(2)
+ verifyaddedcontact(AddrBook,FullName,Nick,WorkEmail,HomeMail,BusPhone,Yahoo,HomePage,Profession,Notes,HomeAdd,WorkAdd,OtherAdd)
+ time.sleep(2)
+ except:
+ log ('Contact Addition Failed!','error')
+ log ('Add New Contact','testend')
+ raise LdtpExecutionError(0)
+ log ('Add New Contact','testend')
+
+
+def verifyaddedcontact(AddrBook,FullName,Nick,WorkEmail,HomeMail,BusPhone,Yahoo,HomePage,Profession,Notes,HomeAdd,WorkAdd,OtherAdd):
+ log ('Verify Added Contact','teststart')
+ try:
+ selectaddrbook (AddrBook[0])
+ temp=titleappend(FullName[0])[1:]
+# print temp
+# raw_input ("temp")
+ selectcontact(temp)
+ time.sleep (2)
+ selectmenuitem ('frmEvolution-Contacts','mnuFile;mnuOpen')
+ title='dlgContactEditor-'+titleappend(FullName[0]).replace(' ','')
+ setcontext ('Contact Editor','Contact Editor -'+titleappend(FullName[0]))
+ waittillguiexist ('dlgContactEditor')
+ time.sleep(2)
+ if gettextvalue ('dlgContactEditor','txtFullName')!=FullName[0]:
+ log ('Full Name does not match','info')
+ raise LdtpExecutionError(0)
+
+ if len(Nick)>0 and gettextvalue ('dlgContactEditor','txtNickname')!=Nick[0]:
+ log ('Nick Name matches','info')
+ raise LdtpExecutionError(0)
+ if len (WorkEmail)>0 and gettextvalue ('dlgContactEditor','txtWork')!=WorkEmail[0]:
+ log ('Work Email matches','info')
+ raise LdtpExecutionError(0)
+ if len(HomeMail)>0 and gettextvalue ('dlgContactEditor','txtHome')!=HomeMail[0]:
+ log ('Home Email matches','info')
+ raise LdtpExecutionError(0)
+ if len(BusPhone)>0 and gettextvalue ('dlgContactEditor','txtBusinessPhone')!=BusPhone[0]:
+ log ('Business Phone matches','info')
+ raise LdtpExecutionError(0)
+ print "Bus phone over"
+ if len (Yahoo)>0 and gettextvalue ('dlgContactEditor','txtYahoo')!=Yahoo[0]:
+ log ('Yahoo ID matches','info')
+ raise LdtpExecutionError(0)
+ if len(HomePage)>0 and gettextvalue ('dlgContactEditor','txtHomePage')!=HomePage[0]:
+ log ('Home Page matches','info')
+ raise LdtpExecutionError(0)
+ if len( Profession)>0 and gettextvalue ('dlgContactEditor','txtProfession')!=Profession[0]:
+ log ('Profession matches','info')
+ raise LdtpExecutionError(0)
+ if len(Notes)>0 and gettextvalue ('dlgContactEditor','txtNotes')!=Notes[0]:
+ log ('Notes matches','info')
+ raise LdtpExecutionError(0)
+ #homeaddress=gettextvalue ('dlgContactEditor','txtAddress')
+# if len(HomeAdd)>0 and gettextvalue ('dlgContactEditor','txtAddress')!=HomeAdd[0]:
+# #print "Error here","from dialog:"+homeaddress+"a","from xml file:"+HomeAdd[0]
+# log ('Home Address matches','info')
+# raise LdtpExecutionError(0)
+# if len (WorkAdd)>0 and gettextvalue ('dlgContactEditor','txtAddress1')!=WorkAdd[0]:
+# log ('Work Address matches','info')
+# raise LdtpExecutionError(0)
+# if len(OtherAdd)>0 and gettextvalue ('dlgContactEditor','txtAddress2')!=OtherAdd[0]:
+# log ('Other Address matches','info')
+# raise LdtpExecutionError(0)
+ undoremap ('evolution','frmEvolution-Mail')
+ click ('dlgContactEditor','btnCancel')
+ except:
+ log ('Contact has not been added correctly','error')
+ log ('Verify Added Contact','testend')
+ raise LdtpExecutionError(0)
+ log ('Verify Added Contact','testend')