Advertisement
Guest User

Untitled

a guest
Apr 28th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.26 KB | None | 0 0
  1. import importer
  2. import sys
  3. import unittest
  4. import xmlrunner
  5. from lib import q2_library, modal_page
  6. from pages.ngam import main_page, login_page
  7. from pages.ngam.transactions import activity_center_page
  8. from pages.ngam.transactions.funds_transfer import individual_transfers_page, multi_account_transfers_page, accounts_and_amounts_page, schedule_and_submit_page
  9.  
  10.  
  11. class MultiTransferDraft(unittest.TestCase):
  12. driver = None
  13. util = None
  14. TRACKING_ID = None
  15. ENV = 'CI'
  16. BROWSER = 'CHROME_MAC'
  17.  
  18. @classmethod
  19. def setUpClass(cls):
  20. cls.util = q2_library.Utilities()
  21. cls.util.load_config(cls)
  22. cls.driver = cls.util.get_browser()
  23. cls.url = cls.util.get_config("base_url")
  24. cls.user = cls.util.get_credentials("multi_transfer")
  25. cls.password = cls.util.get_credentials("passwordp1")
  26. cls.current_page = None
  27. cls.user_name = "AutoMultiTaxOne asfg"
  28. cls.account1 = "****-9789"
  29. cls.account2 = "****-6789"
  30. cls.account3 = "****-7887"
  31. cls.account4 = "****-9988"
  32. cls.amount1 = "5.11"
  33. cls.amount2 = "6.11"
  34. cls.amount3 = "7.11"
  35. cls.amount4 = "8.11"
  36.  
  37. def test_01_navigation(self):
  38. self.driver.get(self.url)
  39. self.driver.maximize_window()
  40. self.assertIn("4", self.driver.title, "Checking the title has the correct value")
  41.  
  42. def test_02_login_successful(self):
  43. login = login_page.LoginPage(self.driver)
  44. login.enter_username(self.user)
  45. login.enter_password(self.password)
  46. self.main_page = login.click_submit_button()
  47. msg = self.main_page.validate_welcome_msg()
  48. self.assertIn('Welcome back', msg, "Login was successful")
  49.  
  50. def test_03_funds_transfer(self):
  51. self.menu = main_page.Menu(self.driver)
  52. self.menu.open_menu_item('Transactions')
  53. self.funds_transfer = self.menu.open_menu_child_item('Funds Transfer')
  54. self.funds_transfer.wait_for_page_to_load()
  55. self.assertTrue(self.funds_transfer.is_page_loaded(), "Checking that the Funds Transfer Page got loaded")
  56.  
  57. def test_04_multi_account_transfers(self):
  58. self.funds_transfer = individual_transfers_page.FundsTransferPage(self.driver)
  59. multi_transfers = self.funds_transfer.go_to_multitransfer_tab()
  60. self.__class__.current_page = multi_transfers
  61. self.assertTrue(multi_transfers.is_page_loaded(), "Checking that the multi transfers tab got loaded")
  62.  
  63. def test_05_select_funds_transfer(self):
  64. multi_transfers = self.current_page
  65. accounts_and_amounts_tab = multi_transfers.click_on_transfers_funds()
  66. self.__class__.current_page = accounts_and_amounts_tab
  67. self.assertTrue(accounts_and_amounts_tab.is_page_loaded(), "Checking that the multi transfers tab got loaded")
  68.  
  69. def test_06_add_more_transfers(self):
  70. accounts_and_amounts_tab = self.current_page
  71. accounts_and_amounts_tab.click_on_more_transfer()
  72. is_num_of_lines_correct = accounts_and_amounts_tab.ret_num_account_lines() == 4
  73. self.assertTrue(is_num_of_lines_correct, "Checking that 4 accounts are displayed")
  74.  
  75. def test_07_fill_accounts_and_amounts(self):
  76. accounts_and_amounts_tab = self.current_page
  77. accounts_and_amounts_tab.choose_from_account(self.account1, 1)
  78. accounts_and_amounts_tab.choose_to_account(self.account2, 1)
  79. accounts_and_amounts_tab.enter_amount(self.amount1, 1)
  80. accounts_and_amounts_tab.choose_from_account(self.account2, 2)
  81. accounts_and_amounts_tab.choose_to_account(self.account3, 2)
  82. accounts_and_amounts_tab.enter_amount(self.amount2, 2)
  83. accounts_and_amounts_tab.choose_from_account(self.account3, 3)
  84. accounts_and_amounts_tab.choose_to_account(self.account2, 3)
  85. accounts_and_amounts_tab.enter_amount(self.amount3, 3)
  86. accounts_and_amounts_tab.choose_from_account(self.account4, 4)
  87. accounts_and_amounts_tab.choose_to_account(self.account1, 4)
  88. accounts_and_amounts_tab.enter_amount(self.amount4, 4)
  89. accounts_and_amounts_tab = self.current_page
  90. schedule_and_submit = accounts_and_amounts_tab.click_on_next()
  91. self.__class__.current_page = schedule_and_submit
  92. schedule_and_submit.wait_for_page_to_load()
  93. self.assertTrue(schedule_and_submit.is_page_loaded, "Checking that the Schedule & Submit page got loaded")
  94.  
  95. def test_08_verify_accounts_submit_page(self):
  96. schedule_and_submit = self.current_page
  97. schedule_and_submit.select_date()
  98. schedule_and_submit.expand_nth_rec(1)
  99. schedule_and_submit.enter_memo_nth_rec("MemoMemoMemo", 1)
  100. schedule_and_submit.expand_nth_rec(1)
  101. total_transfers_is_correct = schedule_and_submit.ret_total_transfers() == "4"
  102. total_amount_is_correct = schedule_and_submit.ret_total_amount() == "$26.44"
  103. is_from_account1_correct = schedule_and_submit.ret_text_from_account(1) == self.account1
  104. is_to_account1_correct = schedule_and_submit.ret_text_to_account(1) == self.account2
  105. is_amount1_correct = schedule_and_submit.ret_text_amount(1) == "$" + self.amount1
  106. is_date1_correct = len(schedule_and_submit.ret_date(1)) > 0 and schedule_and_submit.ret_date(1) is not \
  107. "Choose above"
  108. is_from_account2_correct = schedule_and_submit.ret_text_from_account(2) == self.account2
  109. is_to_account2_correct = schedule_and_submit.ret_text_to_account(2) == self.account3
  110. is_amount2_correct = schedule_and_submit.ret_text_amount(2) == "$" + self.amount2
  111. is_date2_correct = len(schedule_and_submit.ret_date(2)) > 0 and schedule_and_submit.ret_date(2) is not \
  112. "Choose above"
  113. is_from_account3_correct = schedule_and_submit.ret_text_from_account(3) == self.account3
  114. is_to_account3_correct = schedule_and_submit.ret_text_to_account(3) == self.account2
  115. is_amount3_correct = schedule_and_submit.ret_text_amount(3) == "$" + self.amount3
  116. is_date3_correct = len(schedule_and_submit.ret_date(3)) > 0 and schedule_and_submit.ret_date(3) is not \
  117. "Choose above"
  118. is_from_account4_correct = schedule_and_submit.ret_text_from_account(4) == self.account4
  119. is_to_account4_correct = schedule_and_submit.ret_text_to_account(4) == self.account1
  120. is_amount4_correct = schedule_and_submit.ret_text_amount(4) == "$" + self.amount4
  121. is_date4_correct = len(schedule_and_submit.ret_date(4)) > 0 and schedule_and_submit.ret_date(4) is not \
  122. "Choose above"
  123. schedule_and_submit.expand_nth_rec(1)
  124. is_memo1_displayed = schedule_and_submit.ret_text_of_memo(1) == "MemoMemoMemo"
  125. schedule_and_submit.expand_nth_rec(2)
  126. is_memo2_displayed = schedule_and_submit.ret_text_of_memo(2) == ""
  127. schedule_and_submit.expand_nth_rec(3)
  128. is_memo3_displayed = schedule_and_submit.ret_text_of_memo(3) == ""
  129. schedule_and_submit.expand_nth_rec(4)
  130. is_memo4_displayed = schedule_and_submit.ret_text_of_memo(4) == ""
  131. self.assertTrue(total_amount_is_correct and total_transfers_is_correct and is_from_account1_correct and
  132. is_to_account1_correct and is_date1_correct and is_from_account2_correct and
  133. is_to_account2_correct and is_date2_correct and is_from_account3_correct and
  134. is_to_account3_correct and is_date3_correct and is_from_account4_correct and
  135. is_to_account4_correct and is_amount1_correct and is_amount2_correct and is_amount3_correct and
  136. is_amount4_correct and is_date4_correct and is_memo1_displayed and is_memo2_displayed and
  137. is_memo3_displayed and is_memo4_displayed,
  138. "Checking the information of Schedule & Submit page is displayed correctly")
  139.  
  140. def test_09_draft_transfer(self):
  141. schedule_and_submit = self.current_page
  142. modal = schedule_and_submit.click_draft()
  143. self.__class__.current_page = modal
  144. is_title_correct = modal.get_modal_title() == "Transfers Drafted"
  145. is_modal_text_color_correct = modal.get_modal_color() == "rgba(228, 225, 4, 1)"
  146. is_modal_text_correct = modal.get_modal_text() == "Your funds transfers have been drafted but still require approval." \
  147. " Go to Activity Center to view or approve these transactions."
  148. is_modal_amount_correct = "$26.44" in modal.get_multi_draft_amount()
  149. is_batch_id_correct = len(modal.get_multi_wire_modal_data("Batch ID:")) > 0
  150. is_from_correct = "4 accounts" in modal.get_multi_wire_modal_data("From:")
  151. is_to_correct = "3 accounts" in modal.get_multi_wire_modal_data("To:")
  152. is_download_link_present = modal.is_multi_draft_download_link_present()
  153. self.assertTrue(is_modal_text_correct and is_modal_text_color_correct and is_batch_id_correct and is_from_correct and
  154. is_modal_amount_correct and is_title_correct and is_to_correct and
  155. is_download_link_present, "Checking that the approve modal information is correct")
  156.  
  157. def test_10_go_to_activity_center(self):
  158. modal = self.current_page
  159. modal.go_to_activity_center()
  160. activity_center = activity_center_page.ActivityCenterPage(self.driver)
  161. self.__class__.current_page = activity_center
  162. activity_center.wait_for_page_to_load()
  163. is_first_transaction_not_expanded = not activity_center.is_row_expanded(1)
  164. is_second_transaction_not_expanded = not activity_center.is_row_expanded(2)
  165. is_third_transaction_not_expanded = not activity_center.is_row_expanded(3)
  166. is_fourth_transaction_not_expanded = not activity_center.is_row_expanded(4)
  167. self.assertTrue(activity_center.is_activity_center_page_loaded and is_first_transaction_not_expanded and
  168. is_second_transaction_not_expanded and is_third_transaction_not_expanded and
  169. is_fourth_transaction_not_expanded, "Checking that the Activity Center got loaded")
  170.  
  171. def test_11_ac_transfers_title_info(self):
  172. activity_center = self.current_page
  173. is_header_date_valid = len(activity_center.return_header_date()) > 0
  174. are_header_approvals_correct = activity_center.return_header_approvals() == "0 of 1"
  175. is_header_status_correct = activity_center.return_header_status() == "Drafted"
  176. is_transaction_type_correct = "Funds Transfer" in activity_center.return_header_trans_type()
  177. is_account_correct = self.account4 in activity_center.return_header_account()
  178. is_amount_correct = activity_center.return_header_amount() == "$" + self.amount4
  179. is_header_date2_valid = len(activity_center.return_header_date(2)) > 0
  180. are_header_approvals2_correct = activity_center.return_header_approvals(2) == "0 of 1"
  181. is_header_status2_correct = activity_center.return_header_status(2) == "Drafted"
  182. is_transaction_type2_correct = "Funds Transfer" in activity_center.return_header_trans_type(2)
  183. is_account2_correct = self.account3 in activity_center.return_header_account(2)
  184. is_amount2_correct = activity_center.return_header_amount(2) == "$" + self.amount3
  185. is_header_date3_valid = len(activity_center.return_header_date(3)) > 0
  186. are_header_approvals3_correct = activity_center.return_header_approvals(3) == "0 of 1"
  187. is_header_status3_correct = activity_center.return_header_status(3) == "Drafted"
  188. is_transaction_type3_correct = "Funds Transfer" in activity_center.return_header_trans_type(3)
  189. is_account3_correct = self.account2 in activity_center.return_header_account(3)
  190. is_amount3_correct = activity_center.return_header_amount(3) == "$" + self.amount2
  191. is_header_date4_valid = len(activity_center.return_header_date(4)) > 0
  192. are_header_approvals4_correct = activity_center.return_header_approvals(4) == "0 of 1"
  193. is_header_status4_correct = activity_center.return_header_status(4) == "Drafted"
  194. is_transaction_type4_correct = "Funds Transfer" in activity_center.return_header_trans_type(4)
  195. is_account4_correct = self.account1 in activity_center.return_header_account(4)
  196. is_amount4_correct = activity_center.return_header_amount(4) == "$" + self.amount1
  197. self.assertTrue(is_header_date_valid and are_header_approvals_correct and is_header_status_correct and
  198. is_transaction_type_correct and is_account_correct and is_amount_correct and
  199. is_header_date2_valid and are_header_approvals2_correct and is_header_status2_correct and
  200. is_transaction_type2_correct and is_account2_correct and is_amount2_correct and
  201. is_header_date3_valid and are_header_approvals3_correct and is_header_status3_correct and
  202. is_transaction_type3_correct and is_account3_correct and is_amount3_correct and
  203. is_header_date4_valid and are_header_approvals4_correct and is_header_status4_correct and
  204. is_transaction_type4_correct and is_account4_correct and is_amount4_correct,
  205. "Checking that the header fields are correct")
  206.  
  207. def test_12_verify_fourth_trans_body(self):
  208. activity_center = self.current_page
  209. activity_center.scroll_the_page(0,'document.body.scrollHeight')
  210. activity_center.expand_nth_item(4)
  211. is_tracking_id_correct = len(activity_center.return_tracking_id()) > 0
  212. is_batch_id_correct = len(activity_center.return_batch_id()) > 0
  213. is_created_date_valid = len(activity_center.return_created_date1()) > 0
  214. is_created_by_correct = activity_center.return_created_by() == self.user_name
  215. is_process_date_valid = len(activity_center.return_process_date()) > 0
  216. is_amount_correct = activity_center.return_item_amount() == "$" + self.amount1
  217. is_memo_msg_correct = "MemoMemoMemo" in activity_center.return_item_description()
  218. is_from_account_correct = self.account1 in activity_center.return_item_from_account()
  219. is_to_account_correct = self.account2 in activity_center.return_item_to_account()
  220. self.assertTrue(is_tracking_id_correct and is_batch_id_correct and is_created_by_correct and
  221. is_created_date_valid and is_process_date_valid and
  222. is_amount_correct and is_from_account_correct and is_memo_msg_correct and is_to_account_correct,
  223. "Checking that the transaction information in the activity center is correct")
  224.  
  225.  
  226. def test_13_transaction_boxes_activity_center(self):
  227. activity_center = self.current_page
  228. is_drafted_box_correct = activity_center.is_trans_fld_present('Drafted')
  229. is_approvals_box_present = activity_center.is_trans_fld_present('Approval(s)')
  230. is_authorized_box_present = activity_center.is_trans_fld_present('Authorized')
  231. is_processed_box_present = activity_center.is_trans_fld_present('Processed')
  232. is_draft_box_data_valid = activity_center.is_trans_fld_data_present('Drafted', 'AutoMultiTaxOne asfg')
  233. is_approve_box_data_correct = 'Pending' in activity_center.get_trans_fld_data('Approval(s)', '1.')
  234. authorized_box_does_not_have_data = not activity_center.trans_fld_has_data('Authorized')
  235. processes_box_does_not_have_data = not activity_center.trans_fld_has_data('Processed')
  236. self.assertTrue(is_drafted_box_correct and is_approvals_box_present and is_authorized_box_present and
  237. is_processed_box_present and is_draft_box_data_valid and is_approve_box_data_correct and
  238. authorized_box_does_not_have_data and processes_box_does_not_have_data,
  239. "Checking that all the transaction boxes are present and their information is correct")
  240.  
  241. def test_14_go_to_notify(self):
  242. activity_center = self.current_page
  243. activity_center.click_actions_link(4)
  244. activity_center.click_actions_menu_item("Notify")
  245. is_there_a_user_disabled = activity_center.check_if_user_enabled('AutoMulitTax Two')
  246. self.assertTrue(is_there_a_user_disabled, "Checking that there is a disabled user and an enabled user")
  247.  
  248. def test_15_select_user_to_notify_and_send(self):
  249. activity_center = self.current_page
  250. activity_center.select_user('AutoMulitTax Two')
  251. activity_center.click_send()
  252. modal = modal_page.ModalPage(self.driver)
  253. is_modal_color_correct = modal.return_title_color() == 'rgba(0, 154, 64, 1)'
  254. is_modal_text_correct = modal.return_text_modal() == 'Notifications successfully sent to selected users.'
  255. self.assertTrue(is_modal_color_correct and is_modal_text_correct,
  256. "Checking that the notifications were sent successfully")
  257.  
  258. def test_16_approve_payment(self):
  259. modal = modal_page.ModalPage(self.driver)
  260. modal.click_close_modal()
  261. activity_center = self.current_page
  262. activity_center.wait_for_page_to_load()
  263. activity_center.click_actions_link(4)
  264. activity_center.click_actions_menu_item("Approve")
  265. is_modal_color_correct = modal.return_title_color() == 'rgba(228, 225, 4, 1)'
  266. is_modal_title_correct = modal.return_title_modal() == 'Approve Transaction'
  267. is_modal_text_correct = modal.return_text_modal() == 'Are you sure you want to approve this transaction?'
  268. self.assertTrue(is_modal_color_correct and is_modal_text_correct and is_modal_title_correct,
  269. "Checking that the confirm approval modal is shown correctly")
  270.  
  271. def test_17_approve_success_modal(self):
  272. activity_center = self.current_page
  273. activity_center.click_confirm()
  274. modal_functions = modal_page.ModalPage(self.driver)
  275. is_title_correct = modal_functions.return_title_modal() == 'Approval Successful'
  276. is_text_correct = modal_functions.return_text_modal() == 'Transaction successfully approved.'
  277. is_modal_color_correct = modal_functions.return_title_color() == 'rgba(0, 154, 64, 1)'
  278. is_amount_correct = '$5.11' in activity_center.return_modal_trans_info()
  279. is_status_correct = "Approved" in activity_center.return_modal_trans_info()
  280. self.assertTrue(is_modal_color_correct and is_title_correct and is_amount_correct and is_status_correct and is_text_correct,
  281. "Checking that the successful modal is shown correctly")
  282.  
  283. def test_18_verify_transaction_status(self):
  284. modal_page.ModalPage(self.driver).click_close_modal()
  285. activity_center = self.current_page
  286. activity_center.wait_for_page_to_load()
  287. is_header_status_correct = activity_center.return_header_status(4) == 'Authorized'
  288. self.assertTrue(is_header_status_correct, "Checking that the header status is now approved")
  289.  
  290. def test_19_cancel_transaction(self):
  291. activity_center = self.current_page
  292. activity_center.click_actions_link()
  293. activity_center.click_actions_menu_item("Cancel")
  294. is_modal_color_correct = modal_page.ModalPage(self.driver).return_title_color() == "rgba(228, 225, 4, 1)"
  295. is_modal_title_correct = modal_page.ModalPage(self.driver).return_title_modal() == "Cancel Transaction"
  296. is_modal_text_correct = modal_page.ModalPage(self.driver).return_text_modal() == "Are you sure you want to " \
  297. "cancel this transaction?"
  298. self.assertTrue(is_modal_color_correct and is_modal_text_correct and is_modal_title_correct,
  299. "checking if the correct confirm modal showed up")
  300.  
  301. def test_20_confirm_if_cancel_is_success(self):
  302. activity_center = self.current_page
  303. activity_center.click_confirm()
  304. modal = modal_page.ModalPage(self.driver)
  305. is_title_correct = modal.return_title_modal() == "Transaction Cancelled"
  306. is_text_correct = modal.return_text_modal() == 'Transaction successfully cancelled.'
  307. is_modal_info_correct = "$8.11" in activity_center.return_modal_trans_info()
  308. is_modal_status_correct = 'Cancelled' in activity_center.return_modal_trans_info()
  309. is_modal_color_correct = modal.return_title_color() == "rgba(0, 154, 64, 1)"
  310. self.assertTrue(is_modal_color_correct and is_modal_info_correct and is_title_correct and is_modal_status_correct and is_text_correct,
  311. "Checking that the successful modal is shown correctly")
  312.  
  313. def test_21_verify_trans_status_is_cancelled(self):
  314. modal_page.ModalPage(self.driver).click_close_modal()
  315. activity_center = self.current_page
  316. activity_center.wait_for_page_to_load()
  317. is_header_status_correct = activity_center.return_header_status() == "Cancelled"
  318. is_trans_box_approval_fld_correct = 'AutoMultiTaxOne asfg - Cancelled' in activity_center.get_trans_fld_data("Approval(s)", "1.")
  319. self.assertTrue(is_header_status_correct and is_trans_box_approval_fld_correct,
  320. "Checking that the header status is now cancelled")
  321.  
  322. def test_22_log_off(self):
  323. menu = main_page.Menu(self.driver)
  324. menu.open_menu_item('Log Off')
  325. login = login_page.LoginPage(self.driver)
  326. login.wait_for_page_to_load()
  327. self.assertTrue(login.is_login_page_loaded(), "Checking that the user logged off correctly")
  328.  
  329. def setUp(self):
  330. self.util.set_up(self)
  331.  
  332. def tearDown(self):
  333. self.util.tear_down(self)
  334.  
  335. @classmethod
  336. def tearDownClass(cls):
  337. cls.util.close_the_browser(cls.driver)
  338.  
  339. if __name__ == '__main__':
  340. if len(sys.argv) == 2:
  341. MultiTransferDraft.ENV = sys.argv.pop()
  342. if len(sys.argv) == 3:
  343. MultiTransferDraft.BROWSER = sys.argv.pop()
  344. MultiTransferDraft.ENV = sys.argv.pop()
  345. with open('test-reports/junit.xml', 'wb') as output:
  346. unittest.main(testRunner=xmlrunner.XMLTestRunner(output=output),
  347. failfast=False, buffer=False, catchbreak=False)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement