ole-qa-framework 2.6.5 → 2.7.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.
- data/CHANGELOG.md +6 -0
- data/lib/config/default_options.yml +3 -3
- data/lib/ole-qa-framework.rb +4 -3
- data/lib/ole_qa_framework/COMPATIBILITY.rb +1 -1
- data/lib/ole_qa_framework/VERSION.rb +1 -1
- data/lib/olefs/common/invoice_line_object.rb +37 -0
- data/lib/olefs/objects/invoice_current_item.rb +34 -0
- data/lib/olefs/objects/invoice_line.rb +55 -0
- data/lib/olefs/objects/invoice_line_item.rb +72 -0
- data/lib/olefs/pages/invoice.rb +84 -0
- data/spec/olefs/invoice_current_item_spec.rb +48 -0
- data/spec/olefs/invoice_line_item_spec.rb +80 -0
- data/spec/olefs/invoice_line_object_spec.rb +49 -0
- data/spec/olefs/invoice_line_spec.rb +64 -0
- data/spec/olefs/invoice_spec.rb +84 -0
- data/spec/olels/return_spec.rb +2 -2
- metadata +17 -2
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
# Default options for
|
1
|
+
# Default options for using development environment.
|
2
2
|
---
|
3
|
-
:url: http://
|
3
|
+
:url: http://dev.ole.kuali.org/
|
4
4
|
:headless?: true
|
5
5
|
:implicit_wait: 0
|
6
6
|
:explicit_wait: 15
|
7
|
-
:doc_wait:
|
7
|
+
:doc_wait: 60
|
data/lib/ole-qa-framework.rb
CHANGED
@@ -50,13 +50,14 @@ module OLE_QA
|
|
50
50
|
# Subobject directories (foo)/subobjects/ should be loaded before object directories (foo)/objects/ for inheritance.
|
51
51
|
load_libs("/common/")
|
52
52
|
load_libs("/olefs/common/")
|
53
|
-
load_libs("/olefs/subobjects/")
|
54
|
-
load_libs("/olefs/objects/")
|
55
|
-
load_libs("/olefs/pages/")
|
56
53
|
load_libs("/olels/common/")
|
54
|
+
load_libs("/olefs/subobjects/")
|
57
55
|
load_libs("/olels/subobjects/")
|
56
|
+
load_libs("/olefs/objects/")
|
58
57
|
load_libs("/olels/objects/")
|
58
|
+
load_libs("/olefs/pages/")
|
59
59
|
load_libs("/olels/pages/")
|
60
|
+
|
60
61
|
# load_libs("/docstore/")
|
61
62
|
|
62
63
|
# Initialize wait variables to 0 for now. They will be set programatically in {OLE_QA::Framework::Session}.
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
module OLE_QA
|
16
16
|
module Framework
|
17
|
-
# The most recent version of OLE with which this framework
|
17
|
+
# The most recent version of OLE with which this framework was tested for compatibility.
|
18
18
|
OLE_VERSION = '1.0.0 - M2-r13245 :: 2013-07-24 (Unification)'
|
19
19
|
end
|
20
20
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# Copyright 2005-2013 The Kuali Foundation
|
2
|
+
#
|
3
|
+
# Licensed under the Educational Community License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at:
|
6
|
+
#
|
7
|
+
# http://www.opensource.org/licenses/ecl2.php
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
module OLE_QA::Framework::OLEFS
|
16
|
+
# This object is an inheritable base class for all line-type objects on an OLE Financial System Invoice.
|
17
|
+
# - This class provides a different mechanism for line_id and makes line_number an accessor attribute,
|
18
|
+
# allowing for dynamic redefinition of line object elements and sub-elements.
|
19
|
+
# - Instead of instantiating a new line object for each line and subline, the line_number can be updated
|
20
|
+
# in each line and subline object. This allows for slightly deeper recursion without the need of
|
21
|
+
# introducing a new level of sub-object below the subline object.
|
22
|
+
#
|
23
|
+
class Invoice_Line_Object < OLE_QA::Framework::Common_Object
|
24
|
+
# Allow the line_number attribute to be updated for dynamic element definitions.
|
25
|
+
attr_accessor :line_number
|
26
|
+
|
27
|
+
def initialize(ole_session, line_number = 1)
|
28
|
+
@line_number = line_number
|
29
|
+
super(ole_session)
|
30
|
+
end
|
31
|
+
|
32
|
+
# A reader method for the line_id function.
|
33
|
+
def line_id
|
34
|
+
@line_number - 1
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# Copyright 2005-2013 The Kuali Foundation
|
2
|
+
#
|
3
|
+
# Licensed under the Educational Community License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at:
|
6
|
+
#
|
7
|
+
# http://www.opensource.org/licenses/ecl2.php
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
module OLE_QA::Framework::OLEFS
|
16
|
+
# A Current Items line on an OLE Financial System Invoice e-document.
|
17
|
+
class Invoice_Current_Item < OLE_QA::Framework::OLEFS::Invoice_Line_Object
|
18
|
+
|
19
|
+
def set_elements
|
20
|
+
super
|
21
|
+
element(:po_number) {b.div(:id => "invoiceItem_poDoc_num_item_line#{line_id}")}
|
22
|
+
element(:open_quantity) {b.div(:id => "invoiceItem_olePoOutstandingQuantity_line#{line_id}")}
|
23
|
+
element(:title) {b.div(:id => "invoiceItem_itemDescription_line#{line_id}")}
|
24
|
+
element(:po_price) {b.span(:id => "invoiceItem_purchaseoOrderItemUnitPrice_line#{line_id}_control")}
|
25
|
+
element(:copies_invoiced_field) {b.text_field(:id => "invoiceItem_oleItemQuantity_line#{line_id}_control")}
|
26
|
+
element(:invoiced_price_field) {b.text_field(:id => "invoiceItem_itemListPrice_line#{line_id}_control")}
|
27
|
+
element(:discount_field) {b.text_field(:id => "invoiceItem_itemDiscount_line#{line_id}_control")}
|
28
|
+
element(:discount_type_selector) {b.select_list(:id => "invoiceItem_itemDiscountType_line#{line_id}_control")}
|
29
|
+
element(:unit_cost) {b.span(:id => "invoiceItem_itemUnitPrice_line#{line_id}_control")}
|
30
|
+
element(:extended_cost) {b.span(:id => "invoiceItem_extendedPrice_line#{line_id}_control")}
|
31
|
+
element(:total_cost) {b.span(:id => "invoiceItem_totalAmount_line#{line_id}_control")}
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# Copyright 2005-2013 The Kuali Foundation
|
2
|
+
#
|
3
|
+
# Licensed under the Educational Community License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at:
|
6
|
+
#
|
7
|
+
# http://www.opensource.org/licenses/ecl2.php
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
module OLE_QA::Framework::OLEFS
|
16
|
+
# A single Purchase Order line on an OLE Financial System Invoice E-Document.
|
17
|
+
# - This class represents a slight departure from the normal method for creating line objects.
|
18
|
+
# Instead of setting a line number only once, the line object can be redefined to point at
|
19
|
+
# other lines. This departure represents a more flexible approach and prevents the necessity
|
20
|
+
# of extra recursion to address the multiple sub-objects of an Invoice E-Document.
|
21
|
+
# - The future structure of Invoice documents is presently uncertain, so this is a temporary measure.
|
22
|
+
# If necessary, the framework may be restructured to follow this model.
|
23
|
+
class Invoice_Line < OLE_QA::Framework::OLEFS::Invoice_Line_Object
|
24
|
+
|
25
|
+
# A flexible PO line item object with dynamic ID element definitions on an Invoice document.
|
26
|
+
attr_reader :line_item
|
27
|
+
|
28
|
+
# Set OLE instance & line number, instantiate line item for PO line on Invoice document.
|
29
|
+
def initialize(ole_session, line_number = 1)
|
30
|
+
super(ole_session, line_number)
|
31
|
+
@line_item = OLE_QA::Framework::OLEFS::Invoice_Line_Item.new(@ole, self, 1)
|
32
|
+
end
|
33
|
+
|
34
|
+
# Set invoice line elements.
|
35
|
+
def set_elements
|
36
|
+
super
|
37
|
+
element(:po_number) {b.span(:id => "process_item_po_doc_line#{line_id}_control")}
|
38
|
+
element(:po_end_date) {b.text_field(:id => "invoice-poEndDate_line#{line_id}_control")}
|
39
|
+
element(:close_po_checkbox) {b.checkbox(:id => "CurrentItem_closePO_line#{line_id}_control")}
|
40
|
+
element(:delete_po_button) {b.button(:id => "CurrentItem_deletePurchaseOrder_line#{line_id}")}
|
41
|
+
element(:requisitions_toggle) {b.a(:id => "po-requisition-view_line#{line_id}_toggle")}
|
42
|
+
element(:purchase_orders_toggle) {b.a(:id => "po-po-view_line#{line_id}_toggle")}
|
43
|
+
element(:line_item_receiving_toggle) {b.a(:id => "po-relatedReceiving-view_line#{line_id}_toggle")}
|
44
|
+
element(:correction_receiving_toggle) {b.a(:id => "po-relatedCorrectionReceiving-view_line#{line_id}_toggle")}
|
45
|
+
element(:payment_requests_toggle) {b.a(:id => "po-relatedPayment-view_line#{line_id}_toggle")}
|
46
|
+
element(:credit_memos_toggle) {b.a(:id => "po-relatedCreditMemo-view_line#{line_id}_toggle")}
|
47
|
+
element(:add_button) {b.button(:id => "addPOItems_button_line#{line_id}")}
|
48
|
+
end
|
49
|
+
|
50
|
+
# Set invoice line functions (for elements with IDs that require numerical inputs).
|
51
|
+
def set_functions
|
52
|
+
super
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# Copyright 2005-2013 The Kuali Foundation
|
2
|
+
#
|
3
|
+
# Licensed under the Educational Community License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at:
|
6
|
+
#
|
7
|
+
# http://www.opensource.org/licenses/ecl2.php
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
module OLE_QA::Framework::OLEFS
|
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
|
29
|
+
|
30
|
+
def set_elements
|
31
|
+
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")}
|
55
|
+
end
|
56
|
+
|
57
|
+
def set_functions
|
58
|
+
super
|
59
|
+
# 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}")}
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# Copyright 2005-2013 The Kuali Foundation
|
2
|
+
#
|
3
|
+
# Licensed under the Educational Community License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at:
|
6
|
+
#
|
7
|
+
# http://www.opensource.org/licenses/ecl2.php
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
module OLE_QA::Framework::OLEFS
|
16
|
+
# An OLE Library System invoice document.
|
17
|
+
class Invoice < OLE_QA::Framework::OLELS::E_Doc
|
18
|
+
|
19
|
+
# A flexible object representing a Purchase Order line on an Invoice document.
|
20
|
+
attr_reader :po_line
|
21
|
+
|
22
|
+
# Initialize with URL for a new invoice.
|
23
|
+
def initialize(ole_session)
|
24
|
+
url = ole_session.url + '/portal.do?channelTitle=Create&channelUrl='
|
25
|
+
url += ole_session.url + '/ole-kr-krad/OLEInvoice?viewId=OLEInvoiceDocumentView&methodToCall=docHandler&command=initiate&documentClass=org.kuali.ole.krad.transaction.documents.OLEInvoiceDocument'
|
26
|
+
super(ole_session, url)
|
27
|
+
@po_line = OLE_QA::Framework::OLEFS::Invoice_Line.new(@ole, 1)
|
28
|
+
end
|
29
|
+
|
30
|
+
# Define basic invoice document screen elements.
|
31
|
+
def set_elements
|
32
|
+
super
|
33
|
+
element(:document_type_id) {b.span(:xpath => "//table[@class='uif-gridLayout']/descendant::th[span/label[contains(text(),'Invoice #:')]]/following-sibling::td[1]/div/span")}
|
34
|
+
element(:document_type_status) {b.span(:xpath => "//table[@class='uif-gridLayout']/descendant::th[span/label[contains(text(),'Invoice Doc Status:')]]/following-sibling::td[1]/div/span")}
|
35
|
+
element(:fiscal_year) {b.span(:id => 'invoice-documentYear_control')}
|
36
|
+
element(:total_amount) {b.span(:id => 'invoice-documentTotalAmount_control')}
|
37
|
+
element(:vendor_selector) {b.select_list(:id => 'invoice-vendorHeaderIdentifier_control')}
|
38
|
+
element(:vendor_invoice_num_field) {b.text_field(:id => 'invoice-invoiceNumber_control')}
|
39
|
+
element(:payment_class_field) {b.text_field(:id => 'invoice-invoicePaymentClassification_control')}
|
40
|
+
element(:vendor_invoice_amt_field) {b.text_field(:id => 'invoice-invoiceVendorAmount_control')}
|
41
|
+
element(:invoice_type_selector) {b.select_list(:id => 'invoice-invoiceTypeId_control')}
|
42
|
+
element(:bank_code_field) {b.text_field(:id => 'invoice-invoiceBankCode_control')}
|
43
|
+
element(:pay_date_field) {b.text_field(:id => 'invoice-invoicePayDate_control')}
|
44
|
+
element(:immediate_pay_checkbox) {b.checkbox(:id => 'invoice-invoicePayDateCheck_control')}
|
45
|
+
element(:invoice_date_field) {b.text_field(:id => 'invoice-invoiceDate_control')}
|
46
|
+
element(:pay_attachment_checkbox) {b.checkbox(:id => 'paymentAttachmentIndicator_control')}
|
47
|
+
element(:invoice_subtype_selector) {b.select_list(:id => 'invoice-invoiceSubTypeId_control')}
|
48
|
+
element(:payment_method_selector) {b.select_list(:id => 'invoice-paymentMethod_control')}
|
49
|
+
element(:po_number_field) {b.text_field(:id => 'OleInvoice_POLookup_control')}
|
50
|
+
element(:po_add_button) {b.button(:id => 'addProcessItem-button')}
|
51
|
+
element(:freight_cost_field) {b.text_field(:id => 'additionalItem_extendedCost_line0_control')}
|
52
|
+
element(:freight_description_field) {b.text_field(:id => 'additionalItem_itemDesc_line0_control')}
|
53
|
+
element(:shipping_cost_field) {b.text_field(:id => 'additionalItem_extendedCost_line1_control')}
|
54
|
+
element(:shipping_description_field) {b.text_field(:id => 'additionalItem_itemDesc_line1_control')}
|
55
|
+
element(:min_order_cost_field) {b.text_field(:id => 'additionalItem_extendedCost_line2_control')}
|
56
|
+
element(:min_order_description_field) {b.text_field(:id => 'additionalItem_itemDesc_line2_control')}
|
57
|
+
element(:misc_cost_field) {b.text_field(:id => 'additionalItem_extendedCost_line3_control')}
|
58
|
+
element(:misc_description_field) {b.text_field(:id => 'additionalItem_itemDesc_line3_control')}
|
59
|
+
element(:prorate_price_checkbox) {b.checkbox(:id => 'myAccount_prorateByDollar_control')}
|
60
|
+
element(:prorate_qty_checkbox) {b.checkbox(:id => 'myAccount_prorateByQuantity_control')}
|
61
|
+
element(:prorate_manual_checkbox) {b.checkbox(:id => 'myAccount_prorateByManual_control')}
|
62
|
+
element(:no_prorate_checkbox) {b.checkbox(:id => 'myAccount_noProrate_control')}
|
63
|
+
element(:prior_total_field) {b.text_field(:id => 'invoiceTotal_control')}
|
64
|
+
element(:grand_total) {b.span(:id => 'myAccount_grandTotal_control')}
|
65
|
+
element(:submit_button) {b.button(:text => /submit/)}
|
66
|
+
element(:save_button) {b.button(:id => 'usave')}
|
67
|
+
element(:approve_button) {b.button(:text => /blanket approve/)}
|
68
|
+
element(:close_button) {b.button(:id => 'uclose')}
|
69
|
+
element(:cancel_button) {b.a(:id => 'ucancel')}
|
70
|
+
element(:calculate_button) {b.button(:text => /calculate/)}
|
71
|
+
end
|
72
|
+
|
73
|
+
# Wait on these elements before the page is considered to have fully loaded.
|
74
|
+
def wait_for_elements
|
75
|
+
super
|
76
|
+
# @wait_on << :element
|
77
|
+
end
|
78
|
+
|
79
|
+
def set_functions
|
80
|
+
super
|
81
|
+
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# Copyright 2005-2013 The Kuali Foundation
|
2
|
+
#
|
3
|
+
# Licensed under the Educational Community License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at:
|
6
|
+
#
|
7
|
+
# http://www.opensource.org/licenses/ecl2.php
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require 'rspec'
|
16
|
+
require 'spec_helper'
|
17
|
+
|
18
|
+
describe 'An OLEFS Invoice Current Item line' do
|
19
|
+
|
20
|
+
before :all do
|
21
|
+
@ole = OLE_QA::Framework::Session.new
|
22
|
+
@line_object = OLE_QA::Framework::OLEFS::Invoice_Current_Item.new(@ole, 1)
|
23
|
+
end
|
24
|
+
|
25
|
+
after :all do
|
26
|
+
@ole.quit
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should create a new instance' do
|
30
|
+
@line_object.class.should == OLE_QA::Framework::OLEFS::Invoice_Current_Item
|
31
|
+
@line_object.class.superclass.should == OLE_QA::Framework::OLEFS::Invoice_Line_Object
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should have current item elements' do
|
35
|
+
elements = @line_object.elements
|
36
|
+
elements.include?(:po_number).should be_true
|
37
|
+
elements.include?(:open_quantity).should be_true
|
38
|
+
elements.include?(:title).should be_true
|
39
|
+
elements.include?(:po_price).should be_true
|
40
|
+
elements.include?(:copies_invoiced_field).should be_true
|
41
|
+
elements.include?(:invoiced_price_field).should be_true
|
42
|
+
elements.include?(:discount_field).should be_true
|
43
|
+
elements.include?(:discount_type_selector).should be_true
|
44
|
+
elements.include?(:unit_cost).should be_true
|
45
|
+
elements.include?(:extended_cost).should be_true
|
46
|
+
elements.include?(:total_cost).should be_true
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
# Copyright 2005-2013 The Kuali Foundation
|
2
|
+
#
|
3
|
+
# Licensed under the Educational Community License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at:
|
6
|
+
#
|
7
|
+
# http://www.opensource.org/licenses/ecl2.php
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require 'rspec'
|
16
|
+
require 'spec_helper'
|
17
|
+
|
18
|
+
describe 'A PO Line Item on an OLE Invoice' do
|
19
|
+
|
20
|
+
before :all do
|
21
|
+
@ole = OLE_QA::Framework::Session.new
|
22
|
+
@po_line = OLE_QA::Framework::OLEFS::Invoice_Line.new(@ole, 1)
|
23
|
+
@line_item = OLE_QA::Framework::OLEFS::Invoice_Line_Item.new(@ole, @po_line, 1)
|
24
|
+
end
|
25
|
+
|
26
|
+
after :all do
|
27
|
+
@ole.quit
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should create a new instance' do
|
31
|
+
@line_item.class.should == OLE_QA::Framework::OLEFS::Invoice_Line_Item
|
32
|
+
@line_item.class.superclass.should == OLE_QA::Framework::OLEFS::Invoice_Line_Object
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should have access to the line_number and line_id methods on the PO Line' do
|
36
|
+
@line_item.po_line.line_number.should == 1
|
37
|
+
@line_item.po_line.line_id.should == 0
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should have line item elements' do
|
41
|
+
elements = @line_item.elements
|
42
|
+
elements.include?(:number).should be_true
|
43
|
+
elements.include?(:open_quantity).should be_true
|
44
|
+
elements.include?(:title).should be_true
|
45
|
+
elements.include?(:copies_ordered).should be_true
|
46
|
+
elements.include?(:parts_ordered).should be_true
|
47
|
+
elements.include?(:copies_invoiced_field).should be_true
|
48
|
+
elements.include?(:parts_invoiced_field).should be_true
|
49
|
+
elements.include?(:invoiced_price_field).should be_true
|
50
|
+
elements.include?(:discount_field).should be_true
|
51
|
+
elements.include?(:discount_type_selector).should be_true
|
52
|
+
elements.include?(:unit_cost).should be_true
|
53
|
+
elements.include?(:extended_cost).should be_true
|
54
|
+
elements.include?(:invoice_checkbox).should be_true
|
55
|
+
elements.include?(:add_account_button).should be_true
|
56
|
+
elements.include?(:new_chart_selector).should be_true
|
57
|
+
elements.include?(:new_account_number_field).should be_true
|
58
|
+
elements.include?(:new_subaccount_number_field).should be_true
|
59
|
+
elements.include?(:new_object_code_field).should be_true
|
60
|
+
elements.include?(:new_subobject_code_field).should be_true
|
61
|
+
elements.include?(:new_project_field).should be_true
|
62
|
+
elements.include?(:new_org_ref_id_field).should be_true
|
63
|
+
elements.include?(:new_dollar_field).should be_true
|
64
|
+
elements.include?(:new_percentage_field).should be_true
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'should have line item functions' do
|
68
|
+
functions = @line_item.functions
|
69
|
+
functions.include?(:chart_selector).should be_true
|
70
|
+
functions.include?(:account_number_field).should be_true
|
71
|
+
functions.include?(:subaccount_number_field).should be_true
|
72
|
+
functions.include?(:object_code_field).should be_true
|
73
|
+
functions.include?(:subobject_code_field).should be_true
|
74
|
+
functions.include?(:project_field).should be_true
|
75
|
+
functions.include?(:org_ref_id_field).should be_true
|
76
|
+
functions.include?(:dollar_field).should be_true
|
77
|
+
functions.include?(:percentage_field).should be_true
|
78
|
+
functions.include?(:delete_account_button).should be_true
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# Copyright 2005-2013 The Kuali Foundation
|
2
|
+
#
|
3
|
+
# Licensed under the Educational Community License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at:
|
6
|
+
#
|
7
|
+
# http://www.opensource.org/licenses/ecl2.php
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require 'rspec'
|
16
|
+
require 'spec_helper'
|
17
|
+
|
18
|
+
describe 'The OLEFS Invoice Line Object base class' do
|
19
|
+
|
20
|
+
before :all do
|
21
|
+
@ole = OLE_QA::Framework::Session.new
|
22
|
+
@line_object = OLE_QA::Framework::OLEFS::Invoice_Line_Object.new(@ole, 1)
|
23
|
+
end
|
24
|
+
|
25
|
+
after :all do
|
26
|
+
@ole.quit
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should create a new instance' do
|
30
|
+
@line_object.class.should == OLE_QA::Framework::OLEFS::Invoice_Line_Object
|
31
|
+
@line_object.class.superclass.should == OLE_QA::Framework::Common_Object
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should have a line_number accessor method' do
|
35
|
+
@line_object.methods.include?(:line_number).should be_true
|
36
|
+
@line_object.methods.include?(:line_number=).should be_true
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should have a line_id reader method' do
|
40
|
+
@line_object.methods.include?(:line_id).should be_true
|
41
|
+
@line_object.methods.include?(:line_id=).should be_false
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should set the line ID equal to the line number minus one' do
|
45
|
+
@line_object.line_id.should == 0
|
46
|
+
@line_object.line_number = 2
|
47
|
+
@line_object.line_id.should == 1
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# Copyright 2005-2013 The Kuali Foundation
|
2
|
+
#
|
3
|
+
# Licensed under the Educational Community License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at:
|
6
|
+
#
|
7
|
+
# http://www.opensource.org/licenses/ecl2.php
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require 'rspec'
|
16
|
+
require 'spec_helper'
|
17
|
+
|
18
|
+
describe 'An OLE Invoice PO Line' do
|
19
|
+
|
20
|
+
before :all do
|
21
|
+
@ole = OLE_QA::Framework::Session.new
|
22
|
+
@invoice_line = OLE_QA::Framework::OLEFS::Invoice_Line.new(@ole,1)
|
23
|
+
end
|
24
|
+
|
25
|
+
after :all do
|
26
|
+
@ole.quit
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should create a new instance' do
|
30
|
+
@invoice_line.class.should == OLE_QA::Framework::OLEFS::Invoice_Line
|
31
|
+
@invoice_line.class.superclass.should == OLE_QA::Framework::OLEFS::Invoice_Line_Object
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should have invoice line elements' do
|
35
|
+
elements = @invoice_line.elements
|
36
|
+
elements.include?(:po_number).should be_true
|
37
|
+
elements.include?(:po_end_date).should be_true
|
38
|
+
elements.include?(:close_po_checkbox).should be_true
|
39
|
+
elements.include?(:delete_po_button).should be_true
|
40
|
+
elements.include?(:requisitions_toggle).should be_true
|
41
|
+
elements.include?(:purchase_orders_toggle).should be_true
|
42
|
+
elements.include?(:line_item_receiving_toggle).should be_true
|
43
|
+
elements.include?(:correction_receiving_toggle).should be_true
|
44
|
+
elements.include?(:payment_requests_toggle).should be_true
|
45
|
+
elements.include?(:credit_memos_toggle).should be_true
|
46
|
+
elements.include?(:add_button).should be_true
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should have invoice line functions' do
|
50
|
+
functions = @invoice_line.functions
|
51
|
+
# Unable to be implemented at this time (2013/10/04 - JKW).
|
52
|
+
# functions.include?(:requisition_link).should be_true
|
53
|
+
# functions.include?(:purchase_order_link).should be_true
|
54
|
+
# functions.include?(:line_item_receiving_link).should be_true
|
55
|
+
# functions.include?(:correction_receiving_link).should be_true
|
56
|
+
# functions.include?(:payment_request_link).should be_true
|
57
|
+
# functions.include?(:credit_memo_link).should be_true
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should have an instance of the invoice line item class' do
|
61
|
+
@invoice_line.methods.include?(:line_item).should be_true
|
62
|
+
@invoice_line.line_item.class.should == OLE_QA::Framework::OLEFS::Invoice_Line_Item
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# Copyright 2005-2013 The Kuali Foundation
|
2
|
+
#
|
3
|
+
# Licensed under the Educational Community License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at:
|
6
|
+
#
|
7
|
+
# http://www.opensource.org/licenses/ecl2.php
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require 'rspec'
|
16
|
+
require 'spec_helper'
|
17
|
+
|
18
|
+
describe 'An OLE Invoice' do
|
19
|
+
|
20
|
+
before :all do
|
21
|
+
@ole = OLE_QA::Framework::Session.new
|
22
|
+
@invoice = OLE_QA::Framework::OLEFS::Invoice.new(@ole)
|
23
|
+
end
|
24
|
+
|
25
|
+
after :all do
|
26
|
+
@ole.quit
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should create a new instance' do
|
30
|
+
@invoice.class.should == OLE_QA::Framework::OLEFS::Invoice
|
31
|
+
@invoice.class.superclass.should == OLE_QA::Framework::OLELS::E_Doc
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should have invoice elements' do
|
35
|
+
elements = @invoice.elements
|
36
|
+
elements.include?(:document_type_id).should be_true
|
37
|
+
elements.include?(:document_type_status).should be_true
|
38
|
+
elements.include?(:fiscal_year).should be_true
|
39
|
+
elements.include?(:total_amount).should be_true
|
40
|
+
elements.include?(:vendor_selector).should be_true
|
41
|
+
elements.include?(:vendor_invoice_num_field).should be_true
|
42
|
+
elements.include?(:payment_class_field).should be_true
|
43
|
+
elements.include?(:vendor_invoice_amt_field).should be_true
|
44
|
+
elements.include?(:invoice_type_selector).should be_true
|
45
|
+
elements.include?(:bank_code_field).should be_true
|
46
|
+
elements.include?(:pay_date_field).should be_true
|
47
|
+
elements.include?(:immediate_pay_checkbox).should be_true
|
48
|
+
elements.include?(:invoice_date_field).should be_true
|
49
|
+
elements.include?(:pay_attachment_checkbox).should be_true
|
50
|
+
elements.include?(:invoice_subtype_selector).should be_true
|
51
|
+
elements.include?(:payment_method_selector).should be_true
|
52
|
+
elements.include?(:po_number_field).should be_true
|
53
|
+
elements.include?(:po_add_button).should be_true
|
54
|
+
elements.include?(:freight_cost_field).should be_true
|
55
|
+
elements.include?(:freight_description_field).should be_true
|
56
|
+
elements.include?(:shipping_cost_field).should be_true
|
57
|
+
elements.include?(:shipping_description_field).should be_true
|
58
|
+
elements.include?(:min_order_cost_field).should be_true
|
59
|
+
elements.include?(:min_order_description_field).should be_true
|
60
|
+
elements.include?(:misc_cost_field).should be_true
|
61
|
+
elements.include?(:misc_description_field).should be_true
|
62
|
+
elements.include?(:prorate_price_checkbox).should be_true
|
63
|
+
elements.include?(:prorate_qty_checkbox).should be_true
|
64
|
+
elements.include?(:prorate_manual_checkbox).should be_true
|
65
|
+
elements.include?(:no_prorate_checkbox).should be_true
|
66
|
+
elements.include?(:prior_total_field).should be_true
|
67
|
+
elements.include?(:grand_total).should be_true
|
68
|
+
elements.include?(:submit_button).should be_true
|
69
|
+
elements.include?(:save_button).should be_true
|
70
|
+
elements.include?(:approve_button).should be_true
|
71
|
+
elements.include?(:close_button).should be_true
|
72
|
+
elements.include?(:cancel_button).should be_true
|
73
|
+
elements.include?(:calculate_button).should be_true
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'should have invoice functions' do
|
77
|
+
functions = @invoice.functions
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'should have a purchase order line' do
|
81
|
+
@invoice.methods.include?(:po_line).should be_true
|
82
|
+
@invoice.po_line.class.should == OLE_QA::Framework::OLEFS::Invoice_Line
|
83
|
+
end
|
84
|
+
end
|
data/spec/olels/return_spec.rb
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
require 'rspec'
|
16
16
|
require 'spec_helper'
|
17
17
|
|
18
|
-
describe '
|
18
|
+
describe 'An OLELS Return Screen' do
|
19
19
|
|
20
20
|
before :all do
|
21
21
|
@ole = OLE_QA::Framework::Session.new
|
@@ -69,4 +69,4 @@ describe 'My behaviour' do
|
|
69
69
|
@return_screen.loan_button.present?.should be_true
|
70
70
|
@return_screen.item_field.present?.should be_true
|
71
71
|
end
|
72
|
-
end
|
72
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ole-qa-framework
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.7.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-09
|
12
|
+
date: 2013-10-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -141,9 +141,13 @@ files:
|
|
141
141
|
- lib/ole_qa_framework/COMPATIBILITY.rb
|
142
142
|
- lib/ole_qa_framework/VERSION.rb
|
143
143
|
- lib/olefs/common/e_doc.rb
|
144
|
+
- lib/olefs/common/invoice_line_object.rb
|
144
145
|
- lib/olefs/common/line_object.rb
|
145
146
|
- lib/olefs/common/lookup.rb
|
146
147
|
- lib/olefs/common/purap_document.rb
|
148
|
+
- lib/olefs/objects/invoice_current_item.rb
|
149
|
+
- lib/olefs/objects/invoice_line.rb
|
150
|
+
- lib/olefs/objects/invoice_line_item.rb
|
147
151
|
- lib/olefs/objects/line_item.rb
|
148
152
|
- lib/olefs/objects/new_line_item.rb
|
149
153
|
- lib/olefs/objects/new_preq_line_item.rb
|
@@ -151,6 +155,7 @@ files:
|
|
151
155
|
- lib/olefs/objects/preq_line_item.rb
|
152
156
|
- lib/olefs/objects/receiving_line.rb
|
153
157
|
- lib/olefs/pages/building_lookup.rb
|
158
|
+
- lib/olefs/pages/invoice.rb
|
154
159
|
- lib/olefs/pages/load_report.rb
|
155
160
|
- lib/olefs/pages/load_summary_lookup.rb
|
156
161
|
- lib/olefs/pages/main_menu.rb
|
@@ -211,7 +216,12 @@ files:
|
|
211
216
|
- spec/olefs/copies_line_spec.rb
|
212
217
|
- spec/olefs/edocs_spec.rb
|
213
218
|
- spec/olefs/exception_notes_line_spec.rb
|
219
|
+
- spec/olefs/invoice_current_item_spec.rb
|
220
|
+
- spec/olefs/invoice_line_item_spec.rb
|
221
|
+
- spec/olefs/invoice_line_object_spec.rb
|
222
|
+
- spec/olefs/invoice_line_spec.rb
|
214
223
|
- spec/olefs/invoice_notes_line_spec.rb
|
224
|
+
- spec/olefs/invoice_spec.rb
|
215
225
|
- spec/olefs/line_item_spec.rb
|
216
226
|
- spec/olefs/load_report_spec.rb
|
217
227
|
- spec/olefs/load_summary_lookup_spec.rb
|
@@ -292,7 +302,12 @@ test_files:
|
|
292
302
|
- spec/olefs/copies_line_spec.rb
|
293
303
|
- spec/olefs/edocs_spec.rb
|
294
304
|
- spec/olefs/exception_notes_line_spec.rb
|
305
|
+
- spec/olefs/invoice_current_item_spec.rb
|
306
|
+
- spec/olefs/invoice_line_item_spec.rb
|
307
|
+
- spec/olefs/invoice_line_object_spec.rb
|
308
|
+
- spec/olefs/invoice_line_spec.rb
|
295
309
|
- spec/olefs/invoice_notes_line_spec.rb
|
310
|
+
- spec/olefs/invoice_spec.rb
|
296
311
|
- spec/olefs/line_item_spec.rb
|
297
312
|
- spec/olefs/load_report_spec.rb
|
298
313
|
- spec/olefs/load_summary_lookup_spec.rb
|