ole-qa-framework 2.7.3 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. data/CHANGELOG.md +15 -0
  2. data/lib/common/common_object.rb +1 -1
  3. data/lib/common/line_object.rb +35 -10
  4. data/lib/common/page.rb +5 -0
  5. data/lib/common/subline_object.rb +8 -24
  6. data/lib/module/qa_helpers.rb +1 -1
  7. data/lib/module/qa_page_helpers.rb +24 -0
  8. data/lib/ole_qa_framework/VERSION.rb +1 -1
  9. data/lib/olefs/common/purap_document.rb +20 -25
  10. data/lib/olefs/objects/invoice_current_item.rb +1 -1
  11. data/lib/olefs/objects/invoice_line.rb +5 -2
  12. data/lib/olefs/objects/line_item.rb +44 -50
  13. data/lib/olefs/objects/receiving_line.rb +22 -52
  14. data/lib/olefs/pages/invoice.rb +5 -2
  15. data/lib/olefs/pages/payment_request.rb +0 -39
  16. data/lib/olefs/pages/purchase_order.rb +1 -11
  17. data/lib/olefs/pages/receiving_document.rb +1 -11
  18. data/lib/olefs/pages/requisition.rb +1 -11
  19. data/lib/olefs/subobjects/accounting_line.rb +16 -16
  20. data/lib/olefs/subobjects/copies_line.rb +9 -7
  21. data/lib/olefs/subobjects/exception_notes_line.rb +3 -3
  22. data/lib/olefs/{objects → subobjects}/invoice_line_item.rb +34 -45
  23. data/lib/olefs/subobjects/notes_line.rb +5 -5
  24. data/lib/olefs/subobjects/processing_line.rb +2 -2
  25. data/lib/olefs/subobjects/receipt_notes_line.rb +2 -2
  26. data/lib/olels/common/e_doc.rb +0 -17
  27. data/lib/olels/common/editor.rb +0 -17
  28. data/lib/olels/objects/access_info_line.rb +4 -4
  29. data/lib/olels/objects/control_006_line.rb +6 -6
  30. data/lib/olels/objects/control_007_line.rb +6 -6
  31. data/lib/olels/objects/data_line.rb +7 -7
  32. data/lib/olels/objects/editor_note.rb +3 -3
  33. data/lib/olels/objects/holdings_note.rb +5 -5
  34. data/lib/olels/objects/item_note.rb +5 -5
  35. data/lib/olels/objects/ownership_extent_line.rb +6 -16
  36. data/lib/olels/objects/patron_address_line.rb +33 -33
  37. data/lib/olels/objects/patron_email_line.rb +10 -10
  38. data/lib/olels/objects/patron_phone_line.rb +14 -14
  39. data/lib/olels/pages/bib_editor.rb +3 -44
  40. data/lib/olels/pages/instance_editor.rb +3 -33
  41. data/lib/olels/pages/item_editor.rb +1 -13
  42. data/lib/olels/pages/patron.rb +4 -33
  43. data/lib/olels/pages/return.rb +1 -0
  44. data/lib/olels/pages/staff_upload.rb +1 -0
  45. data/lib/olels/subobjects/ownership_note.rb +4 -4
  46. data/spec/common/line_object_spec.rb +41 -8
  47. data/spec/common/subline_object_spec.rb +9 -19
  48. data/spec/modules/qa_page_helpers_spec.rb +54 -0
  49. data/spec/olefs/accounting_line_spec.rb +9 -30
  50. data/spec/olefs/copies_line_spec.rb +1 -16
  51. data/spec/olefs/exception_notes_line_spec.rb +3 -13
  52. data/spec/olefs/invoice_current_item_spec.rb +1 -1
  53. data/spec/olefs/invoice_line_item_spec.rb +5 -5
  54. data/spec/olefs/invoice_line_spec.rb +2 -2
  55. data/spec/olefs/invoice_spec.rb +2 -2
  56. data/spec/olefs/line_item_spec.rb +32 -67
  57. data/spec/olefs/notes_line_spec.rb +5 -17
  58. data/spec/olefs/payment_request_spec.rb +1 -43
  59. data/spec/olefs/processing_line_spec.rb +5 -4
  60. data/spec/olefs/purap_document_spec.rb +23 -1
  61. data/spec/olefs/purchase_order_spec.rb +4 -18
  62. data/spec/olefs/receipt_notes_line_spec.rb +5 -14
  63. data/spec/olefs/receive_spec.rb +3 -18
  64. data/spec/olefs/receiving_line_spec.rb +35 -74
  65. data/spec/olefs/requisition_spec.rb +5 -19
  66. data/spec/olels/access_info_line_spec.rb +1 -1
  67. data/spec/olels/bib_editor_spec.rb +8 -56
  68. data/spec/olels/data_line_spec.rb +2 -2
  69. data/spec/olels/editor_spec.rb +0 -4
  70. data/spec/olels/{holdings_note_spec_spec.rb → holdings_note_spec.rb} +1 -1
  71. data/spec/olels/instance_editor_spec.rb +8 -31
  72. data/spec/olels/item_editor_spec.rb +4 -14
  73. data/spec/olels/item_note_spec.rb +2 -2
  74. data/spec/olels/ownership_extent_line_spec.rb +6 -16
  75. data/spec/olels/ownership_note_spec.rb +2 -1
  76. data/spec/olels/patron_address_line_spec.rb +1 -1
  77. data/spec/olels/patron_email_line_spec.rb +1 -1
  78. data/spec/olels/patron_phone_line_spec.rb +2 -2
  79. data/spec/olels/patron_spec.rb +8 -40
  80. metadata +7 -30
  81. data/lib/olefs/common/invoice_line_object.rb +0 -37
  82. data/lib/olefs/common/line_object.rb +0 -39
  83. data/lib/olefs/objects/new_line_item.rb +0 -48
  84. data/lib/olefs/objects/new_preq_line_item.rb +0 -43
  85. data/lib/olefs/objects/new_receiving_line.rb +0 -42
  86. data/lib/olefs/objects/preq_line_item.rb +0 -68
  87. data/lib/olefs/pages/payment_request_creation.rb +0 -44
  88. data/lib/olefs/subobjects/invoice_notes_line.rb +0 -25
  89. data/lib/olefs/subobjects/new_accounting_line.rb +0 -43
  90. data/lib/olefs/subobjects/new_copies_line.rb +0 -37
  91. data/lib/olefs/subobjects/new_exception_notes_line.rb +0 -30
  92. data/lib/olefs/subobjects/new_invoice_notes_line.rb +0 -35
  93. data/lib/olefs/subobjects/new_notes_line.rb +0 -36
  94. data/lib/olefs/subobjects/new_receipt_notes_line.rb +0 -35
  95. data/lib/olels/common/line_object.rb +0 -39
  96. data/spec/olefs/invoice_line_object_spec.rb +0 -49
  97. data/spec/olefs/invoice_notes_line_spec.rb +0 -49
  98. data/spec/olefs/preq_creation_spec.rb +0 -47
  99. data/spec/olefs/preq_line_item_spec.rb +0 -111
  100. data/spec/workflows/purap_spec.rb +0 -221
@@ -27,8 +27,6 @@ module OLE_QA::Framework::OLEFS
27
27
  url = ole_session.url + '/portal.do?channelTitle=Create&channelUrl='
28
28
  url += ole_session.url + '/ole-kr-krad/OLEInvoice?viewId=OLEInvoiceDocumentView&methodToCall=docHandler&command=initiate&documentClass=org.kuali.ole.krad.transaction.documents.OLEInvoiceDocument'
29
29
  super(ole_session, url)
30
- @po_line = OLE_QA::Framework::OLEFS::Invoice_Line.new(@ole, 1)
31
- @current_items_line = OLE_QA::Framework::OLEFS::Invoice_Current_Item.new(@ole, 1)
32
30
  end
33
31
 
34
32
  # Define basic invoice document screen elements.
@@ -85,5 +83,10 @@ module OLE_QA::Framework::OLEFS
85
83
  super
86
84
  function(:message) {|which = 1| b.ul(:id => 'pageValidationList').li(:index => which - 1)}
87
85
  end
86
+
87
+ def set_lines
88
+ set_line(:po_line, OLE_QA::Framework::OLEFS::Invoice_Line)
89
+ set_line(:current_items_line, OLE_QA::Framework::OLEFS::Invoice_Current_Item)
90
+ end
88
91
  end
89
92
  end
@@ -20,48 +20,9 @@ module OLE_QA::Framework::OLEFS
20
20
  super(ole_session, new_preq_url)
21
21
  end
22
22
 
23
- # Create a new payment request line item on the payment request document.
24
- def set_lines
25
- create_line("new_line_item","New_PREQ_Line_Item")
26
- end
27
-
28
23
  # Set Payment Request document screen elements.
29
24
  def set_elements
30
25
  super
31
- # Invoice Info Tab
32
- element(:invoice_number_field) {b.td(:xpath => "//h3[contains(text(),'Invoice Info')]/following-sibling::table/tbody/tr[1]/td[1]")}
33
- element(:pay_date_field) {b.text_field(:id => "document.paymentRequestPayDate")}
34
- element(:invoice_date_field) {b.td(:xpath => "//h3[contains(text(),'Invoice Info')]/following-sibling::table/tbody/tr[3]/td[1]")}
35
- element(:immediate_pay_checkbox) {b.checkbox(:id => "document.immediatePaymentIndicator")}
36
- element(:payment_attachment_checkbox) {b.checkbox(:id => "document.paymentAttachmentIndicator")}
37
- element(:invoice_type_field) {b.text_field(:id => "document.oleInvoiceType.invoiceType")}
38
- element(:invoice_subtype_field) {b.text_field(:id => "document.oleInvoiceSubType.invoiceSubType")}
39
- element(:payment_method_selector) {b.select_list(:id => "document.paymentMethod.paymentMethodId")}
40
- # Titles Tab
41
- element(:grand_total_field) {b.b(:xpath => "//div[@id='tab-Titles-div']/descendant::th[div[contains(text(),'Grand Total')]]/following-sibling::td/div/b")}
42
- element(:additional_charges_toggle) {b.input(:id => "tab-AdditionalCharges-imageToggle")}
43
- element(:freight_extended_cost_field) {b.text_field(:id => "document.item[1].itemUnitPrice")}
44
- element(:freight_description_field) {b.text_field(:id => "document.item[1].description")}
45
- element(:shipping_handling_extended_cost_field) {b.text_field(:id => "document.item[2].itemUnitPrice")}
46
- element(:shipping_handling_description_field) {b.text_field(:id => "document.item[2].description")}
47
- element(:minimum_order_extended_cost_field) {b.text_field(:id => "document.item[3].itemUnitPrice")}
48
- element(:minimum_order_description_field) {b.text_field(:id => "document.item[3].description")}
49
- element(:misc_overhead_extended_cost_field) {b.text_field(:id => "document.item[4].itemUnitPrice")}
50
- element(:misc_overhead_description_field) {b.text_field(:id => "document.item[4].description")}
51
- element(:prorate_by_quantity_checkbox) {b.checkbox(:id => "document.prorateQty")}
52
- element(:prorate_by_dollar_checkbox) {b.checkbox(:id => "document.prorateDollar")}
53
- element(:prorate_manual_checkbox) {b.checkbox(:id => "document.prorateManual")}
54
- element(:close_po_checkbox) {b.checkbox(:id => "document.closePurchaseOrderIndicator")}
55
- end
56
-
57
- def create_line_item(which = 1)
58
- create_line("line_item_#{which}","PREQ_Line_Item",which)
59
- end
60
- alias_method(:add_line_item,:create_line_item)
61
-
62
- def remove_line_item(which = 1)
63
- remove_line("line_item_#{which}")
64
26
  end
65
- alias_method(:delete_line_item,:remove_line_item)
66
27
  end
67
28
  end
@@ -25,7 +25,7 @@ module OLE_QA::Framework::OLEFS
25
25
 
26
26
  # Create a new line item object on the purchase order.
27
27
  def set_lines
28
- create_line("new_line_item", "New_Line_Item")
28
+ set_line(:line_item, OLE_QA::Framework::OLEFS::Line_Item)
29
29
  end
30
30
 
31
31
  # Set Purchase Order screen elements.
@@ -54,15 +54,5 @@ module OLE_QA::Framework::OLEFS
54
54
  element(:receiving_button) {b.input(:xpath => "//input[@title='Receiving']")}
55
55
  element(:print_button) {b.input(:xpath => "//input[@title='Print']")}
56
56
  end
57
-
58
- def create_line_item(which = 1)
59
- create_line("line_item_#{which}","Line_Item", which)
60
- end
61
- alias_method(:add_line_item,:create_line_item)
62
-
63
- def remove_line_item(which = 1)
64
- remove_line("line_item_#{which}")
65
- end
66
- alias_method(:delete_line_item,:remove_line_item)
67
57
  end
68
58
  end
@@ -22,7 +22,7 @@ module OLE_QA::Framework::OLEFS
22
22
 
23
23
  # Create a new receiving line object on the receiving document.
24
24
  def set_lines
25
- create_line("new_receiving_line","New_Receiving_Line")
25
+ set_line(:receiving_line,OLE_QA::Framework::OLEFS::Receiving_Line)
26
26
  end
27
27
 
28
28
  # Set Receiving Doc screen elements.
@@ -35,15 +35,5 @@ module OLE_QA::Framework::OLEFS
35
35
  element(:reference_number_field) {b.text_field(:id => "document.shipmentReferenceNumber")}
36
36
  element(:carrier_selector) {b.select_list(:id => "document.carrierCode")}
37
37
  end
38
-
39
- def create_receiving_line(which = 1)
40
- create_line("receiving_line_#{which}","Receiving_Line",which)
41
- end
42
- alias_method(:add_receiving_line,:create_receiving_line)
43
-
44
- def remove_receiving_line(which = 1)
45
- remove_line("receiving_line_#{which}")
46
- end
47
- alias_method(:delete_receiving_line,:remove_receiving_line)
48
38
  end
49
39
  end
@@ -23,7 +23,7 @@ module OLE_QA::Framework::OLEFS
23
23
 
24
24
  # Create a new line item object on the requisition.
25
25
  def set_lines
26
- create_line("new_line_item", "New_Line_Item")
26
+ set_line(:line_item, OLE_QA::Framework::OLEFS::Line_Item)
27
27
  end
28
28
 
29
29
  # Set Requisition screen elements.
@@ -49,15 +49,5 @@ module OLE_QA::Framework::OLEFS
49
49
  # Titles Tab
50
50
  element(:grand_total_field) {b.b(:xpath => "//div[@id='tab-Titles-div']/descendant::th[div[contains(text(),'Grand Total')]]/following-sibling::td/div/b")}
51
51
  end
52
-
53
- def create_line_item(which = 1)
54
- create_line("line_item_#{which}","Line_Item", which)
55
- end
56
- alias_method(:add_line_item,:create_line_item)
57
-
58
- def remove_line_item(which = 1)
59
- remove_line("line_item_#{which}")
60
- end
61
- alias_method(:delete_line_item,:remove_line_item)
62
52
  end
63
53
  end
@@ -19,27 +19,27 @@ module OLE_QA::Framework::OLEFS
19
19
  def set_elements
20
20
  super
21
21
  # Fields
22
- element(:account_number_field) {b.text_field(:id => "document.item[#{@line_id}].sourceAccountingLine[#{@subline_id}].accountNumber")}
23
- element(:sub_account_number_field) {b.text_field(:id => "document.item[#{@line_id}].sourceAccountingLine[#{@subline_id}].subAccountNumber")}
24
- element(:object_field) {b.text_field(:id => "document.item[#{@line_id}].sourceAccountingLine[#{@subline_id}].financialObjectCode")}
25
- element(:sub_object_field) {b.text_field(:id => "document.item[#{@line_id}].sourceAccountingLine[#{@subline_id}].financialSubObjectCode")}
26
- element(:project_field) {b.text_field(:id => "document.item[#{@line_id}].sourceAccountingLine[#{@subline_id}].projectCode")}
27
- element(:org_ref_id_field) {b.text_field(:id => "document.item[#{@line_id}].sourceAccountingLine[#{@subline_id}].organizationReferenceId")}
28
- element(:dollar_field) {b.text_field(:id => "document.item[#{@line_id}].sourceAccountingLine[#{@subline_id}].amount")}
29
- element(:percent_field) {b.text_field(:id => "document.item[#{@line_id}].sourceAccountingLine[#{@subline_id}].accountLinePercent")}
22
+ element(:account_number_field) {b.text_field(:id => "document.item[#{@parent_line.line_id}].sourceAccountingLine[#{line_id}].accountNumber")}
23
+ element(:sub_account_number_field) {b.text_field(:id => "document.item[#{@parent_line.line_id}].sourceAccountingLine[#{line_id}].subAccountNumber")}
24
+ element(:object_field) {b.text_field(:id => "document.item[#{@parent_line.line_id}].sourceAccountingLine[#{line_id}].financialObjectCode")}
25
+ element(:sub_object_field) {b.text_field(:id => "document.item[#{@parent_line.line_id}].sourceAccountingLine[#{line_id}].financialSubObjectCode")}
26
+ element(:project_field) {b.text_field(:id => "document.item[#{@parent_line.line_id}].sourceAccountingLine[#{line_id}].projectCode")}
27
+ element(:org_ref_id_field) {b.text_field(:id => "document.item[#{@parent_line.line_id}].sourceAccountingLine[#{line_id}].organizationReferenceId")}
28
+ element(:dollar_field) {b.text_field(:id => "document.item[#{@parent_line.line_id}].sourceAccountingLine[#{line_id}].amount")}
29
+ element(:percent_field) {b.text_field(:id => "document.item[#{@parent_line.line_id}].sourceAccountingLine[#{line_id}].accountLinePercent")}
30
30
  # Selectors
31
- element(:chart_selector) {b.select_list(:id => "document.item[#{@line_id}].sourceAccountingLine[#{@subline_id}].chartOfAccountsCode")}
31
+ element(:chart_selector) {b.select_list(:id => "document.item[#{@parent_line.line_id}].sourceAccountingLine[#{line_id}].chartOfAccountsCode")}
32
32
  # Inputs, Radio Buttons, & Checkboxes
33
- element(:delete_button) {b.input(:name => "methodToCall.deleteSourceLine.line#{@line_id}.#{@subline_id}.anchoraccountingSourceAnchor")}
34
- element(:balance_inquiry_button) {b.input(:name => "methodToCall.performBalance(InquiryForSourceLine.line#{@line_id}:#{@subline_id}.anchoraccountingSourceExistingLineLineAnchor#{@subline_id}")}
33
+ element(:delete_button) {b.input(:name => "methodToCall.deleteSourceLine.line#{@parent_line.line_id}.#{line_id}.anchoraccountingSourceAnchor")}
34
+ element(:balance_inquiry_button) {b.input(:name => "methodToCall.performBalance(InquiryForSourceLine.line#{@parent_line.line_id}:#{line_id}.anchoraccountingSourceExistingLineLineAnchor#{line_id}")}
35
35
  # Readonly Fields
36
36
  # Use the fields below when the target accounting line was added on an earlier PURAP document
37
37
  # (e.g., for accounting lines on a purchase order which were added on the requisition).
38
- element(:closed_chart_field) {b.div(:id => "document.item[#{@line_id}].sourceAccountingLine[#{@subline_id}].chart.finChartOfAccountDescription.div").parent.a}
39
- element(:closed_account_number_field) {b.div(:id => "document.item[#{@line_id}].sourceAccountingLine[#{@subline_id}].account.accountName.div").parent.a}
40
- element(:closed_object_field) {b.div(:id => "document.item[#{@line_id}].sourceAccountingLine[#{@subline_id}].objectCode.financialObjectCodeName.div").parent.a}
41
- element(:closed_dollar_field) {b.div(:id => "document.item[#{@line_id}].sourceAccountingLine[#{@subline_id}].amount.div")}
42
- element(:closed_percent_field) {b.div(:id => "document.item[#{@line_id}].sourceAccountingLine[#{@subline_id}].sourceAccountingLinePercent.div")}
38
+ element(:closed_chart_field) {b.div(:id => "document.item[#{@parent_line.line_id}].sourceAccountingLine[#{line_id}].chart.finChartOfAccountDescription.div").parent.a}
39
+ element(:closed_account_number_field) {b.div(:id => "document.item[#{@parent_line.line_id}].sourceAccountingLine[#{line_id}].account.accountName.div").parent.a}
40
+ element(:closed_object_field) {b.div(:id => "document.item[#{@parent_line.line_id}].sourceAccountingLine[#{line_id}].objectCode.financialObjectCodeName.div").parent.a}
41
+ element(:closed_dollar_field) {b.div(:id => "document.item[#{@parent_line.line_id}].sourceAccountingLine[#{line_id}].amount.div")}
42
+ element(:closed_percent_field) {b.div(:id => "document.item[#{@parent_line.line_id}].sourceAccountingLine[#{line_id}].sourceAccountingLinePercent.div")}
43
43
  end
44
44
  end
45
45
 
@@ -18,15 +18,17 @@ module OLE_QA::Framework::OLEFS
18
18
  # Set copies line elements.
19
19
  def set_elements
20
20
  super
21
- element(:location_copies_selector) {b.select_list(:id => "document.item[#{@line_id}].copies[#{@subline_id}].location_copies")}
22
- element(:delete_button) {b.input(:name => "methodToCall.deleteCopy.line#{@line_id}:#{@subline_id}")}
21
+ element(:location_copies_selector) {b.select_list(:id => "document.item[#{@parent_line.line_id}].copies[#{line_id}].location_copies")}
22
+ element(:delete_button) {b.input(:name => "methodToCall.deleteCopy.line#{@parent_line.line_id}:#{line_id}")}
23
23
  # Readonly Elements
24
24
  # Use these for closed, uneditable fields as on a purchase order.
25
- element(:closed_copies_field) {b.div(:xpath => "//tr[td[@class='subhead'][contains(text(),'Copies #{@subline_num}')]]/following-sibling::tr[1]/td[1]/div")}
26
- element(:closed_location_copies_field) {b.div(:xpath => "//tr[td[@class='subhead'][contains(text(),'Copies #{@subline_num}')]]/following-sibling::tr[1]/td[2]/div")}
27
- element(:closed_parts_field) {b.div(:xpath => "//tr[td[@class='subhead'][contains(text(),'Copies #{@subline_num}')]]/following-sibling::tr[1]/td[3]/div")}
28
- element(:closed_part_enumeration_field) {b.div(:xpath => "//tr[td[@class='subhead'][contains(text(),'Copies #{@subline_num}')]]/following-sibling::tr[1]/td[4]/div")}
29
- element(:closed_starting_copy_field) {b.div(:xpath => "//tr[td[@class='subhead'][contains(text(),'Copies #{@subline_num}')]]/following-sibling::tr[1]/td[5]/div")}
25
+ # FIXME Add open fields to match the new copies line fields on OLEFS Line Item
26
+ # FIXME Redefine closed fields
27
+ element(:closed_copies_field) {b.div(:xpath => "//tr[td[@class='subhead'][contains(text(),'Copies #{line_number}')]]/following-sibling::tr[1]/td[1]/div")}
28
+ element(:closed_location_copies_field) {b.div(:xpath => "//tr[td[@class='subhead'][contains(text(),'Copies #{line_number}')]]/following-sibling::tr[1]/td[2]/div")}
29
+ element(:closed_parts_field) {b.div(:xpath => "//tr[td[@class='subhead'][contains(text(),'Copies #{line_number}')]]/following-sibling::tr[1]/td[3]/div")}
30
+ element(:closed_part_enumeration_field) {b.div(:xpath => "//tr[td[@class='subhead'][contains(text(),'Copies #{line_number}')]]/following-sibling::tr[1]/td[4]/div")}
31
+ element(:closed_starting_copy_field) {b.div(:xpath => "//tr[td[@class='subhead'][contains(text(),'Copies #{line_number}')]]/following-sibling::tr[1]/td[5]/div")}
30
32
  end
31
33
  end
32
34
  end
@@ -18,9 +18,9 @@ module OLE_QA::Framework::OLEFS
18
18
  # Set exception notes line elements.
19
19
  def set_elements
20
20
  super
21
- element(:exception_type_selector) {b.select_list(:id => "document.item[#{@line_id}].exceptionNoteList[#{@subline_id}].exceptionTypeId")}
22
- element(:note_field) {b.text_field(:id => "document.item[#{@line_id}].exceptionNoteList[#{@subline_id}].exceptionNotes")}
23
- element(:note_type_selector) {b.select_list(:id => "document.item[#{@line_id}].exceptionNoteList[#{@subline_id}].exceptionTypeId")}
21
+ element(:exception_type_selector) {b.select_list(:id => "document.item[#{line_id}].exceptionNoteList[#{@subline_id}].exceptionTypeId")}
22
+ element(:note_field) {b.text_field(:id => "document.item[#{line_id}].exceptionNoteList[#{@subline_id}].exceptionNotes")}
23
+ element(:note_type_selector) {b.select_list(:id => "document.item[#{line_id}].exceptionNoteList[#{@subline_id}].exceptionTypeId")}
24
24
  end
25
25
  end
26
26
  end
@@ -14,59 +14,48 @@
14
14
 
15
15
  module OLE_QA::Framework::OLEFS
16
16
  # A single Line Item from a Purchase Order, as represented on an OLE Invoice E-Document.
17
- class Invoice_Line_Item < OLE_QA::Framework::OLEFS::Invoice_Line_Object
18
-
19
- # Allow the line number to be dynamically set, as needed for addressing various PO lines on an Invoice.
20
- attr_accessor :line_number
21
-
22
- # The instance of {OLE_QA::Framework::OLELS::PO_Line} which instantiated the Invoice Line Item object.
23
- attr_reader :po_line
24
-
25
- def initialize(ole_session, po_line, line_number = 1)
26
- @po_line = po_line
27
- super(ole_session, line_number)
28
- end
17
+ class Invoice_Line_Item < OLE_QA::Framework::Subline_Object
29
18
 
30
19
  def set_elements
31
20
  super
32
- element(:number) {b.span(:id => "CurrentItem_LineItemNo_line#{@po_line.line_id}_line#{line_id}_control")}
33
- element(:open_quantity) {b.span(:id => "CurrentItem_openQuantity_line#{@po_line.line_id}_line#{line_id}_control")}
34
- element(:title) {b.div(:id => "CurrentItem_Title_line#{@po_line.line_id}_line#{line_id}")}
35
- element(:copies_ordered) {b.div(:id => "CurrentItem_NoOfCopiesOrdered_line#{@po_line.line_id}_line#{line_id}")}
36
- element(:parts_ordered) {b.div(:id => "CurrentItem_NoOfParts_line#{@po_line.line_id}_line#{line_id}")}
37
- element(:copies_invoiced_field) {b.text_field(:id => "CurrentItem_NoOfCopiesInvoice_line#{@po_line.line_id}_line#{line_id}_control")}
38
- element(:parts_invoiced_field) {b.text_field(:id => "CurrentItem_NoOfPartsInvoice_line#{@po_line.line_id}_line#{line_id}_control")}
39
- element(:invoiced_price_field) {b.text_field(:id => "CurrentItem_ListPrice_line#{@po_line.line_id}_line#{line_id}_control")}
40
- element(:discount_field) {b.text_field(:id => "CurrentItem_Discount_line#{@po_line.line_id}_line#{line_id}_control")}
41
- element(:discount_type_selector) {b.select_list(:id => "CurrentItem_DiscountType_line#{@po_line.line_id}_line#{line_id}_control")}
42
- element(:unit_cost) {b.span(:id => "CurrentItem_UnitCost_line#{@po_line.line_id}_line#{line_id}_control")}
43
- element(:extended_cost) {b.span(:id => "CurrentItem_ExtendedCost_line#{@po_line.line_id}_line#{line_id}_control")}
44
- element(:invoice_checkbox) {b.span(:id => "CurrentItem_ItemForInvoice_line#{@po_line.line_id}_line#{line_id}_control")}
45
- element(:new_chart_selector) {b.select_list(:id => "Invoice-chartOfAccountsCode_line#{@po_line.line_id}_line#{line_id}_add_control")}
46
- element(:new_account_number_field) {b.text_field(:id => "Invoice-accountNumber_line#{@po_line.line_id}_line#{line_id}_add_control")}
47
- element(:new_subaccount_number_field) {b.text_field(:id => "Invoice-subAccountNumber_line#{@po_line.line_id}_line#{line_id}_add_control")}
48
- element(:new_object_code_field) {b.text_field(:id => "Invoice-financialObjectCode_line#{@po_line.line_id}_line#{line_id}_add_control")}
49
- element(:new_subobject_code_field) {b.text_field(:id => "Invoice-financialSubObjectCode_line#{@po_line.line_id}_line#{line_id}_add_control")}
50
- element(:new_project_field) {b.text_field(:id => "Invoice-projectCode_line#{@po_line.line_id}_line#{line_id}_add_control")}
51
- element(:new_org_ref_id_field) {b.text_field(:id => "InvoiceorgRefId_line#{@po_line.line_id}_line#{line_id}_add_control")}
52
- element(:new_dollar_field) {b.text_field(:id => "Invoice-amount_line#{@po_line.line_id}_line#{line_id}_add_control")}
53
- element(:new_percentage_field) {b.text_field(:id => "Invoice-percent_line#{@po_line.line_id}_line#{line_id}_add_control")}
54
- element(:add_account_button) {b.button(:id => "OLEInvoiceView-processItems-accountingLines_line#{@po_line.line_id}_line#{line_id}_add")}
21
+ element(:number) {b.span(:id => "CurrentItem_LineItemNo_line#{@parent_line.line_id}_line#{line_id}_control")}
22
+ element(:open_quantity) {b.span(:id => "CurrentItem_openQuantity_line#{@parent_line.line_id}_line#{line_id}_control")}
23
+ element(:title) {b.div(:id => "CurrentItem_Title_line#{@parent_line.line_id}_line#{line_id}")}
24
+ element(:copies_ordered) {b.div(:id => "CurrentItem_NoOfCopiesOrdered_line#{@parent_line.line_id}_line#{line_id}")}
25
+ element(:parts_ordered) {b.div(:id => "CurrentItem_NoOfParts_line#{@parent_line.line_id}_line#{line_id}")}
26
+ element(:copies_invoiced_field) {b.text_field(:id => "CurrentItem_NoOfCopiesInvoice_line#{@parent_line.line_id}_line#{line_id}_control")}
27
+ element(:parts_invoiced_field) {b.text_field(:id => "CurrentItem_NoOfPartsInvoice_line#{@parent_line.line_id}_line#{line_id}_control")}
28
+ element(:invoiced_price_field) {b.text_field(:id => "CurrentItem_ListPrice_line#{@parent_line.line_id}_line#{line_id}_control")}
29
+ element(:discount_field) {b.text_field(:id => "CurrentItem_Discount_line#{@parent_line.line_id}_line#{line_id}_control")}
30
+ element(:discount_type_selector) {b.select_list(:id => "CurrentItem_DiscountType_line#{@parent_line.line_id}_line#{line_id}_control")}
31
+ element(:unit_cost) {b.span(:id => "CurrentItem_UnitCost_line#{@parent_line.line_id}_line#{line_id}_control")}
32
+ element(:extended_cost) {b.span(:id => "CurrentItem_ExtendedCost_line#{@parent_line.line_id}_line#{line_id}_control")}
33
+ element(:invoice_checkbox) {b.span(:id => "CurrentItem_ItemForInvoice_line#{@parent_line.line_id}_line#{line_id}_control")}
34
+ element(:new_chart_selector) {b.select_list(:id => "Invoice-chartOfAccountsCode_line#{@parent_line.line_id}_line#{line_id}_add_control")}
35
+ element(:new_account_number_field) {b.text_field(:id => "Invoice-accountNumber_line#{@parent_line.line_id}_line#{line_id}_add_control")}
36
+ element(:new_subaccount_number_field) {b.text_field(:id => "Invoice-subAccountNumber_line#{@parent_line.line_id}_line#{line_id}_add_control")}
37
+ element(:new_object_code_field) {b.text_field(:id => "Invoice-financialObjectCode_line#{@parent_line.line_id}_line#{line_id}_add_control")}
38
+ element(:new_subobject_code_field) {b.text_field(:id => "Invoice-financialSubObjectCode_line#{@parent_line.line_id}_line#{line_id}_add_control")}
39
+ element(:new_project_field) {b.text_field(:id => "Invoice-projectCode_line#{@parent_line.line_id}_line#{line_id}_add_control")}
40
+ element(:new_org_ref_id_field) {b.text_field(:id => "InvoiceorgRefId_line#{@parent_line.line_id}_line#{line_id}_add_control")}
41
+ element(:new_dollar_field) {b.text_field(:id => "Invoice-amount_line#{@parent_line.line_id}_line#{line_id}_add_control")}
42
+ element(:new_percentage_field) {b.text_field(:id => "Invoice-percent_line#{@parent_line.line_id}_line#{line_id}_add_control")}
43
+ element(:add_account_button) {b.button(:id => "OLEInvoiceView-processItems-accountingLines_line#{@parent_line.line_id}_line#{line_id}_add")}
55
44
  end
56
45
 
57
46
  def set_functions
58
47
  super
59
48
  # Functions for accounting lines on an Invoice PO Line Item.
60
- function(:chart_selector) { |which = 1| which -= 1; b.select_list(:id => "Invoice-chartOfAccountsCode_line#{@po_line.line_id}_line#{line_id}_line#{which}_control")}
61
- function(:account_number_field) { |which = 1| which -= 1; b.text_field(:id => "Invoice-accountNumber_line#{@po_line.line_id}_line#{line_id}_line#{which}_control")}
62
- function(:subaccount_number_field) { |which = 1| which -= 1; b.text_field(:id => "Invoice-subAccountNumber_line#{@po_line.line_id}_line#{line_id}_line#{which}_control")}
63
- function(:object_code_field) { |which = 1| which -= 1; b.text_field(:id => "Invoice-financialObjectCode_line#{@po_line.line_id}_line#{line_id}_line#{which}_control")}
64
- function(:subobject_code_field) { |which = 1| which -= 1; b.text_field(:id => "Invoice-financialSubObjectCode_line#{@po_line.line_id}_line#{line_id}_line#{which}_control")}
65
- function(:project_field) { |which = 1| which -= 1; b.text_field(:id => "Invoice-projectCode_line#{@po_line.line_id}_line#{line_id}_line#{which}_control")}
66
- function(:org_ref_id_field) { |which = 1| which -= 1; b.text_field(:id => "Invoice-orgRefId_line#{@po_line.line_id}_line#{line_id}_line#{which}_control")}
67
- function(:dollar_field) { |which = 1| which -= 1; b.text_field(:id => "Invoice-amount_line#{@po_line.line_id}_line#{line_id}_line#{which}_control")}
68
- function(:percentage_field) { |which = 1| which -= 1; b.text_field(:id => "Invoice-percent_line#{@po_line.line_id}_line#{line_id}_line#{which}_control")}
69
- function(:delete_account_button) { |which = 1| which -= 1; b.button(:id => "OLEInvoiceView-processItems-accountingLines_line#{@po_line.line_id}_line#{line_id}_del_line#{@po_line.line_id}_line#{line_id}_line#{which}")}
49
+ function(:chart_selector) { |which = 1| which -= 1; b.select_list(:id => "Invoice-chartOfAccountsCode_line#{@parent_line.line_id}_line#{line_id}_line#{which}_control")}
50
+ function(:account_number_field) { |which = 1| which -= 1; b.text_field(:id => "Invoice-accountNumber_line#{@parent_line.line_id}_line#{line_id}_line#{which}_control")}
51
+ function(:subaccount_number_field) { |which = 1| which -= 1; b.text_field(:id => "Invoice-subAccountNumber_line#{@parent_line.line_id}_line#{line_id}_line#{which}_control")}
52
+ function(:object_code_field) { |which = 1| which -= 1; b.text_field(:id => "Invoice-financialObjectCode_line#{@parent_line.line_id}_line#{line_id}_line#{which}_control")}
53
+ function(:subobject_code_field) { |which = 1| which -= 1; b.text_field(:id => "Invoice-financialSubObjectCode_line#{@parent_line.line_id}_line#{line_id}_line#{which}_control")}
54
+ function(:project_field) { |which = 1| which -= 1; b.text_field(:id => "Invoice-projectCode_line#{@parent_line.line_id}_line#{line_id}_line#{which}_control")}
55
+ function(:org_ref_id_field) { |which = 1| which -= 1; b.text_field(:id => "Invoice-orgRefId_line#{@parent_line.line_id}_line#{line_id}_line#{which}_control")}
56
+ function(:dollar_field) { |which = 1| which -= 1; b.text_field(:id => "Invoice-amount_line#{@parent_line.line_id}_line#{line_id}_line#{which}_control")}
57
+ function(:percentage_field) { |which = 1| which -= 1; b.text_field(:id => "Invoice-percent_line#{@parent_line.line_id}_line#{line_id}_line#{which}_control")}
58
+ function(:delete_account_button) { |which = 1| which -= 1; b.button(:id => "OLEInvoiceView-processItems-accountingLines_line#{@parent_line.line_id}_line#{line_id}_del_line#{@parent_line.line_id}_line#{line_id}_line#{which}")}
70
59
  end
71
60
  end
72
61
  end
@@ -18,12 +18,12 @@ module OLE_QA::Framework::OLEFS
18
18
  # Set notes line elements.
19
19
  def set_elements
20
20
  super
21
- element(:note_type_selector) {b.select_list(:id => "document.item[#{@line_id}].notes[#{@subline_id}].noteTypeId")}
22
- element(:note_field) {b.text_field(:id => "document.item[#{@line_id}].notes[#{@subline_id}].note")}
23
- element(:delete_button) {b.input(:name => "methodToCall.deleteNote.line#{@line_id}:#{@subline_id}")}
21
+ element(:note_type_selector) {b.select_list(:id => "document.item[#{@parent_line.line_id}].notes[#{line_id}].noteTypeId")}
22
+ element(:note_field) {b.text_field(:id => "document.item[#{@parent_line.line_id}].notes[#{line_id}].note")}
23
+ element(:delete_button) {b.input(:name => "methodToCall.deleteNote.line#{@parent_line.line_id}:#{line_id}")}
24
24
  # Use the elements below for a closed, inaccessible notes field on a PURAP document like a Purchase Order.
25
- element(:closed_note_type_field) {b.td(:xpath => "//tr[starts-with(@id,'tab-Notes')]/th/table[@class = 'datatable']/tbody[1]/tr[td[@class = 'subhead'][contains(text(),'Note #{@subline_num}')]]/following-sibling::tr[1]/td[1]")}
26
- element(:closed_note_field) {b.td(:xpath => "//tr[starts-with(@id,'tab-Notes')]/th/table[@class = 'datatable']/tbody[1]/tr[td[@class = 'subhead'][contains(text(),'Note #{@subline_num}')]]/following-sibling::tr[1]/td[2]")}
25
+ element(:closed_note_type_field) {b.td(:xpath => "//tr[starts-with(@id,'tab-Notes')]/th/table[@class = 'datatable']/tbody[1]/tr[td[@class = 'subhead'][contains(text(),'Note #{@line_number}')]]/following-sibling::tr[1]/td[1]")}
26
+ element(:closed_note_field) {b.td(:xpath => "//tr[starts-with(@id,'tab-Notes')]/th/table[@class = 'datatable']/tbody[1]/tr[td[@class = 'subhead'][contains(text(),'Note #{@line_number}')]]/following-sibling::tr[1]/td[2]")}
27
27
  end
28
28
  end
29
29
  end
@@ -17,8 +17,8 @@ module OLE_QA::Framework::OLEFS
17
17
  class Processing_Line < OLE_QA::Framework::Subline_Object
18
18
  def set_elements
19
19
  super
20
- element(:note_field) {b.td(:xpath => "//table[@summary='Items Section']/tbody/tr[td[1]/b[contains(text(),'#{@line_number}')]]/following-sibling::tr[4]/td[1]/table/tbody/tr[2]/td[1]/table/tbody/tr[td[contains(text(),'Note #{@subline_number}')]]/following-sibling::tr[1]/td[1]")}
21
- element(:acknowledge_checkbox) {b.checkbox(:xpath => "//table[@summary='Items Section']/tbody/tr[td[1]/b[contains(text(),'#{@line_number}')]]/following-sibling::tr[4]/td[1]/table/tbody/tr[2]/td[1]/table/tbody/tr[td[contains(text(),'Note #{@subline_number}')]]/following-sibling::tr[1]/td[2]")}
20
+ element(:note_field) {b.td(:xpath => "//table[@summary='Items Section']/tbody/tr[td[1]/b[contains(text(),'#{@parent_line.line_number}')]]/following-sibling::tr[4]/td[1]/table/tbody/tr[2]/td[1]/table/tbody/tr[td[contains(text(),'Note #{@line_number}')]]/following-sibling::tr[1]/td[1]")}
21
+ element(:acknowledge_checkbox) {b.checkbox(:xpath => "//table[@summary='Items Section']/tbody/tr[td[1]/b[contains(text(),'#{@parent_line.line_number}')]]/following-sibling::tr[4]/td[1]/table/tbody/tr[2]/td[1]/table/tbody/tr[td[contains(text(),'Note #{@line_number}')]]/following-sibling::tr[1]/td[2]")}
22
22
  end
23
23
  end
24
24
  end
@@ -18,8 +18,8 @@ module OLE_QA::Framework::OLEFS
18
18
  # Set receipt notes elements.
19
19
  def set_elements
20
20
  super
21
- element(:note_type_selector) {b.select_list(:id => "document.item[#{@line_id}].receiptNoteList[#{@subline_id}].noteTypeId")}
22
- element(:note_field) {b.text_field(:id => "document.item[#{@line_id}].receiptNoteList[#{@subline_id}].notes")}
21
+ element(:note_type_selector) {b.select_list(:id => "document.item[#{@parent_line.line_id}].receiptNoteList[#{line_id}].noteTypeId")}
22
+ element(:note_field) {b.text_field(:id => "document.item[#{@parent_line.line_id}].receiptNoteList[#{line_id}].notes")}
23
23
  end
24
24
  end
25
25
  end
@@ -28,23 +28,6 @@ module OLE_QA::Framework::OLELS
28
28
  element(:creation_timestamp) {b.span(:xpath => "//table[@class='uif-gridLayout']/descendant::th[span/label[contains(text(),'Creation Timestamp:')]]/following-sibling::td[1]/div/span")}
29
29
  end
30
30
 
31
- # FIXME - Make this a single flexible method during namespace revision.
32
- # Create a line object on a page.
33
- def create_line(instance_name, class_name, which=0)
34
- raise StandardError, "Line object already exists. (#{instance_name})" if self.instance_variables.include?("@#{instance_name}".to_sym)
35
- new_line_name = instance_name
36
- make_accessor(:"#{instance_name}")
37
- klas = OLE_QA::Framework::OLELS.const_get(:"#{class_name}")
38
- instance_variable_set(:"@#{new_line_name}", klas.new(@ole, which))
39
- end
40
-
41
- # Remove a line object from a page.
42
- def remove_line(instance_name)
43
- raise StandardError, "Line object does not exist. (#{instance_name})" unless self.instance_variables.include?("@#{instance_name}".to_sym)
44
- remove_instance_variable("@#{instance_name}".to_sym)
45
- unmake_attr(instance_name.to_sym)
46
- end
47
-
48
31
  def wait_for_elements
49
32
  super
50
33
  @wait_on << :title
@@ -36,7 +36,6 @@ module OLE_QA::Framework::OLELS
36
36
  editor_url = ole_session.url + 'portal.do?channelTitle=Editor&channelUrl='
37
37
  editor_url += ole_session.url + 'ole-kr-krad/editorcontroller?viewId=EditorView&methodToCall=load&docCategory=work&docType=bibliographic&docFormat=marc&editable=true'
38
38
  super(ole_session, editor_url)
39
- set_lines if defined?(self.set_lines)
40
39
  end
41
40
 
42
41
  # Set elements common to all Editor screens.
@@ -82,21 +81,5 @@ module OLE_QA::Framework::OLELS
82
81
  # - If .message_header is not present, a "0" will be returned.
83
82
  function(:message_count) { if message_header.present? then message_header.text.match(/\d(?=\smessage)/).to_s else "0" end}
84
83
  end
85
-
86
- # Create a Line Object on an Editor page.
87
- def create_line(instance_name, class_name, which=0)
88
- raise StandardError, "Line object already exists. (#{instance_name})" if self.instance_variables.include?("@#{instance_name}".to_sym)
89
- new_line_name = instance_name
90
- make_accessor(:"#{instance_name}")
91
- klas = OLE_QA::Framework::OLELS.const_get(:"#{class_name}")
92
- instance_variable_set(:"@#{new_line_name}", klas.new(@ole, which))
93
- end
94
-
95
- # Remove a Line Object from an Editor page.
96
- def remove_line(instance_name)
97
- raise StandardError, "Line object does not exist. (#{instance_name})" unless self.instance_variables.include?("@#{instance_name}".to_sym)
98
- remove_instance_variable("@#{instance_name}".to_sym)
99
- unmake_attr(instance_name.to_sym)
100
- end
101
84
  end
102
85
  end
@@ -14,12 +14,12 @@
14
14
 
15
15
  module OLE_QA::Framework::OLELS
16
16
  # An Access Information Line on the OLE Library System Instance Record Editor
17
- class Access_Info_Line < OLE_QA::Framework::OLELS::Line_Object
17
+ class Access_Info_Line < OLE_QA::Framework::Line_Object
18
18
  # Set screen elements for access info line.
19
19
  def set_elements
20
- element(:access_info_field) {b.text_field(:id => "OleAccessInformationField_line#{@line_id}_control")}
21
- element(:add_button) {b.button(:id => "oleAccessInformation_addTagButton_line#{@line_id}")}
22
- element(:remove_button) {b.button(:id => "oleAccessInformation_removeTagButton_line#{@line_id}")}
20
+ element(:access_info_field) {b.text_field(:id => "OleAccessInformationField_line#{line_id}_control")}
21
+ element(:add_button) {b.button(:id => "oleAccessInformation_addTagButton_line#{line_id}")}
22
+ element(:remove_button) {b.button(:id => "oleAccessInformation_removeTagButton_line#{line_id}")}
23
23
  end
24
24
  end
25
25
  end
@@ -15,15 +15,15 @@
15
15
  module OLE_QA::Framework::OLELS
16
16
 
17
17
  # Represents a Marc control field 006 line in the OLELS Bib Editor.
18
- class Control_006_Line < OLE_QA::Framework::OLELS::Line_Object
18
+ class Control_006_Line < OLE_QA::Framework::Line_Object
19
19
 
20
20
  # Set Marc data line elements.
21
21
  def set_elements
22
- element(:field) {b.text_field(:id => "Control_Field_006_line#{@line_id}_control")}
23
- element(:add_button) {b.button(:id => "Control_Field_006_addTagButton_id_line#{@line_id}")}
24
- element(:edit_button) {b.button(:id => "Control_Field_006_EditTagButton_id_line#{@line_id}")}
25
- element(:remove_button) {b.button(:id => "Control_Field_006_removeTagButton_id_line#{@line_id}")}
26
- element(:clear_button) {b.button(:id => "Control_Field_006_clearTagButton_id_line#{@line_id}")}
22
+ element(:field) {b.text_field(:id => "Control_Field_006_line#{line_id}_control")}
23
+ element(:add_button) {b.button(:id => "Control_Field_006_addTagButton_id_line#{line_id}")}
24
+ element(:edit_button) {b.button(:id => "Control_Field_006_EditTagButton_id_line#{line_id}")}
25
+ element(:remove_button) {b.button(:id => "Control_Field_006_removeTagButton_id_line#{line_id}")}
26
+ element(:clear_button) {b.button(:id => "Control_Field_006_clearTagButton_id_line#{line_id}")}
27
27
  end
28
28
  end
29
29
  end