ole-qa-framework 2.1.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 (123) hide show
  1. data/CHANGELOG.md +882 -0
  2. data/Gemfile +4 -0
  3. data/Gemfile.lock +45 -0
  4. data/LICENSE.md +14 -0
  5. data/README.md +17 -0
  6. data/Rakefile.rb +25 -0
  7. data/examples/README.md +57 -0
  8. data/examples/create_bib_record.rb +64 -0
  9. data/examples/create_requisition.rb +96 -0
  10. data/examples/purap_workflow_test.rb +185 -0
  11. data/lib/common/common_object.rb +57 -0
  12. data/lib/common/data_object.rb +21 -0
  13. data/lib/common/line_object.rb +44 -0
  14. data/lib/common/page.rb +72 -0
  15. data/lib/common/subline_object.rb +47 -0
  16. data/lib/config/default_options.yml +7 -0
  17. data/lib/docstore/docstore.rb +13 -0
  18. data/lib/module/qa_data_helpers.rb +17 -0
  19. data/lib/module/qa_helpers.rb +153 -0
  20. data/lib/module/qa_page_helpers.rb +33 -0
  21. data/lib/ole-qa-framework.rb +178 -0
  22. data/lib/ole_qa_framework/COMPATIBILITY.rb +20 -0
  23. data/lib/ole_qa_framework/VERSION.rb +20 -0
  24. data/lib/olefs/common/e_doc.rb +79 -0
  25. data/lib/olefs/common/line_object.rb +39 -0
  26. data/lib/olefs/common/lookup.rb +30 -0
  27. data/lib/olefs/common/purap_document.rb +73 -0
  28. data/lib/olefs/objects/line_item.rb +105 -0
  29. data/lib/olefs/objects/new_line_item.rb +44 -0
  30. data/lib/olefs/objects/new_preq_line_item.rb +43 -0
  31. data/lib/olefs/objects/new_receiving_line.rb +42 -0
  32. data/lib/olefs/objects/preq_line_item.rb +68 -0
  33. data/lib/olefs/objects/receiving_line.rb +88 -0
  34. data/lib/olefs/pages/building_lookup.rb +36 -0
  35. data/lib/olefs/pages/main_menu.rb +23 -0
  36. data/lib/olefs/pages/payment_request.rb +67 -0
  37. data/lib/olefs/pages/payment_request_creation.rb +44 -0
  38. data/lib/olefs/pages/purchase_order.rb +68 -0
  39. data/lib/olefs/pages/receiving_document.rb +49 -0
  40. data/lib/olefs/pages/requisition.rb +61 -0
  41. data/lib/olefs/pages/vendor_lookup.rb +40 -0
  42. data/lib/olefs/subobjects/accounting_line.rb +46 -0
  43. data/lib/olefs/subobjects/copies_line.rb +32 -0
  44. data/lib/olefs/subobjects/exception_notes_line.rb +26 -0
  45. data/lib/olefs/subobjects/invoice_notes_line.rb +25 -0
  46. data/lib/olefs/subobjects/new_accounting_line.rb +43 -0
  47. data/lib/olefs/subobjects/new_copies_line.rb +37 -0
  48. data/lib/olefs/subobjects/new_exception_notes_line.rb +30 -0
  49. data/lib/olefs/subobjects/new_invoice_notes_line.rb +35 -0
  50. data/lib/olefs/subobjects/new_notes_line.rb +36 -0
  51. data/lib/olefs/subobjects/new_receipt_notes_line.rb +35 -0
  52. data/lib/olefs/subobjects/notes_line.rb +29 -0
  53. data/lib/olefs/subobjects/processing_line.rb +24 -0
  54. data/lib/olefs/subobjects/receipt_notes_line.rb +25 -0
  55. data/lib/olels/common/e_doc.rb +23 -0
  56. data/lib/olels/common/editor.rb +92 -0
  57. data/lib/olels/common/line_object.rb +39 -0
  58. data/lib/olels/common/lookup.rb +30 -0
  59. data/lib/olels/objects/access_info_line.rb +25 -0
  60. data/lib/olels/objects/data_line.rb +31 -0
  61. data/lib/olels/objects/editor_note.rb +79 -0
  62. data/lib/olels/objects/holdings_note.rb +26 -0
  63. data/lib/olels/objects/item_note.rb +26 -0
  64. data/lib/olels/objects/ownership_extent_line.rb +40 -0
  65. data/lib/olels/pages/bib_editor.rb +63 -0
  66. data/lib/olels/pages/describe_workbench.rb +42 -0
  67. data/lib/olels/pages/instance_editor.rb +80 -0
  68. data/lib/olels/pages/item_editor.rb +91 -0
  69. data/lib/olels/pages/loan.rb +102 -0
  70. data/lib/olels/pages/main_menu.rb +31 -0
  71. data/lib/olels/pages/patron_lookup.rb +44 -0
  72. data/lib/olels/pages/return.rb +64 -0
  73. data/lib/olels/subobjects/ownership_note.rb +26 -0
  74. data/ole-qa-framework.gemspec +30 -0
  75. data/pkg/ole-qa-framework-2.1.0.gem +0 -0
  76. data/spec/common/browser_spec.rb +37 -0
  77. data/spec/common/data_object_spec.rb +37 -0
  78. data/spec/common/line_object_spec.rb +49 -0
  79. data/spec/common/page_spec.rb +44 -0
  80. data/spec/common/subline_object_spec.rb +54 -0
  81. data/spec/modules/qa_helpers_spec.rb +55 -0
  82. data/spec/modules/qa_page_helpers_spec.rb +43 -0
  83. data/spec/olefs/accounting_line_spec.rb +85 -0
  84. data/spec/olefs/building_lookup_spec.rb +45 -0
  85. data/spec/olefs/copies_line_spec.rb +70 -0
  86. data/spec/olefs/edocs_spec.rb +75 -0
  87. data/spec/olefs/exception_notes_line_spec.rb +52 -0
  88. data/spec/olefs/invoice_notes_line_spec.rb +45 -0
  89. data/spec/olefs/line_item_spec.rb +155 -0
  90. data/spec/olefs/lookup_spec.rb +44 -0
  91. data/spec/olefs/main_menu_spec.rb +34 -0
  92. data/spec/olefs/notes_line_spec.rb +65 -0
  93. data/spec/olefs/patron_lookup_spec.rb +54 -0
  94. data/spec/olefs/payment_request_spec.rb +85 -0
  95. data/spec/olefs/preq_creation_spec.rb +43 -0
  96. data/spec/olefs/preq_line_item_spec.rb +111 -0
  97. data/spec/olefs/processing_line_spec.rb +44 -0
  98. data/spec/olefs/purap_document_spec.rb +58 -0
  99. data/spec/olefs/purchase_order_spec.rb +77 -0
  100. data/spec/olefs/receipt_notes_line_spec.rb +54 -0
  101. data/spec/olefs/receive_spec.rb +66 -0
  102. data/spec/olefs/receiving_line_spec.rb +125 -0
  103. data/spec/olefs/requisition_spec.rb +83 -0
  104. data/spec/olefs/vendor_lookup_spec.rb +49 -0
  105. data/spec/olels/access_info_line_spec.rb +40 -0
  106. data/spec/olels/bib_editor_spec.rb +84 -0
  107. data/spec/olels/data_line_spec.rb +44 -0
  108. data/spec/olels/describe_workbench_spec.rb +44 -0
  109. data/spec/olels/editor_spec.rb +56 -0
  110. data/spec/olels/edocs_spec.rb +42 -0
  111. data/spec/olels/holdings_note_spec_spec.rb +41 -0
  112. data/spec/olels/instance_editor_spec.rb +81 -0
  113. data/spec/olels/item_editor_spec.rb +94 -0
  114. data/spec/olels/item_note_spec.rb +41 -0
  115. data/spec/olels/loan_spec.rb +104 -0
  116. data/spec/olels/lookup_spec.rb +38 -0
  117. data/spec/olels/main_menu_spec.rb +35 -0
  118. data/spec/olels/ownership_extent_line_spec.rb +58 -0
  119. data/spec/olels/ownership_note_spec.rb +41 -0
  120. data/spec/olels/return_spec.rb +72 -0
  121. data/spec/spec_helper.rb +21 -0
  122. data/spec/workflows/purap_spec.rb +221 -0
  123. metadata +313 -0
data/CHANGELOG.md ADDED
@@ -0,0 +1,882 @@
1
+ ### v2.1.0 - 2013/07/10
2
+
3
+ * Login/Logout
4
+ * Added .login(username) & .logout to OLE_QA::Framework::Page_Helpers
5
+ * .login attempts to login with given username string
6
+ * returns true if successful, false if not
7
+ * raises OLE_QA::Framework::Error if login field not found
8
+ * .logout attempts to logout
9
+ * returns true if successful, false if not
10
+ * both methods use @browser instance variable instead of browser
11
+ function, as the login field is never found within iframeportlet.
12
+ * Open Method
13
+ * Added .open(url) to OLE_QA::Framework::Session
14
+ * opens the given URL, defaults to @base_url
15
+ * Custom Error Class
16
+ * Added OLE_QA::Framework::Error class (inherits StandardError).
17
+ * OLELS
18
+ * Main Menu
19
+ * added some links as elements
20
+ * Editors
21
+ * added .save_record function to base class
22
+ * Item Editor
23
+ * fixed .call_number_type_selector definition
24
+ * Patron Lookup
25
+ * added page
26
+ * Loan
27
+ * added page
28
+ * Return
29
+ * added page
30
+ * QA Helper Module
31
+ * redefined .set_function
32
+ * Now uses splat expansion to give functions optional parameters.
33
+ * Currently, all parameters are considered optional.
34
+ * Defaults can be defined for function by declaring |var = value| in block.
35
+
36
+ ### v2.0.4 - 2013/07/05
37
+
38
+ * .function - alias for .set_function
39
+ * Common Object class added
40
+ * The Common Object class is inherited by both Page & Data Object classes in order
41
+ to perform a DRYer initialize for both.
42
+
43
+ ### v2.0.3 - 2013/07/05
44
+
45
+ * .elements & .functions methods on Page & Data Objects
46
+ * elements and functions defined on Page and Data Objects are automatically added
47
+ to the .elements and .functions array accessor methods, respectively.
48
+ * .set_function
49
+ * defines a function in the same manner as an element - a lambda to be evaluated
50
+ which represents a set of actions to be taken in sequence by the browser.
51
+
52
+ ### v2.0.2 - 2013/07/05
53
+
54
+ * Wait Constants -> Wait Reader Attributes
55
+ * .explicit_wait & .doc_wait still set from options, but now exist as reader
56
+ attributes on the OLE_QA::Framework module.
57
+
58
+ ### v2.0.1 - 2013/07/05
59
+
60
+ * Wait Constants in OLE_QA::Framework Namespace
61
+ * Explicit_Wait -> explicit_wait option
62
+ * Doc_Wait -> doc_wait option
63
+
64
+ ### v2.0.0 - 2013/07/03
65
+
66
+ * Namespace Refactoring
67
+ * Main namespace has been changed from OLE_QA to OLE_QA::Framework.
68
+ * Main session-handling class has been renamed to OLE_QA::Framework::Session.
69
+ * Constants VERSION and COMPATIBILITY have been moved to OLE_QA::Framework.
70
+ * Main Menu classes moved to OLEFS & OLELS namespaces under OLE_QA::Framework.
71
+ * OLELS
72
+ * Added Describe Workbench page
73
+
74
+ ### v1.0.0 - 2013/06/24
75
+
76
+ * Watir-Webdriver
77
+ * The entire project has been refactored to use Watir-Webdriver.
78
+ * ole-qa-framework.rb
79
+ * Renamed from ole_qa_framework.rb
80
+ * Spec renamed
81
+ * Module renamed from OLE_QAF to OLE_QA
82
+ * now loads version info programmatically
83
+ * lib/ole_qa_framework/VERSION.rb
84
+ * lib/ole_qa_framework/COMPATIBILITY.rb
85
+ * loads subdirectories in order of dependency, files in alphabetical order
86
+ * added .fs_url method, returns @base_url
87
+ * refactored configuration files
88
+ * implicit_wait is now set to 0 by default for Watir compatibility
89
+ * modules
90
+ * rewrites to
91
+ * qa_helpers.rb
92
+ * contains .set_element for data objects and page objects
93
+ * expects an element name, an element type, a how, and a what
94
+ * creates an instance variable and an accessor on self
95
+ * allows for extension of element definitions in data & page objects
96
+ * allows to optionally redefine a previously-defined element on self with force option
97
+ * contains .set_elements for data objects and page objects
98
+ * expects a nested array of element definitions
99
+ * populates elements as instance variables on self
100
+ * uses .set_element for individual elements
101
+ * qa_data_helpers.rb
102
+ * contains .load_elements for data objects
103
+ * contains .replace_identifiers for line/subline objects
104
+ * qa_page_helpers.rb
105
+ * contains .load_elements for page objects
106
+
107
+ ---------------------------------------------------------------------------------------------------------
108
+ *HISTORICAL* - Below this point, the information in this changelog may no longer
109
+ be applicable, as it pertains to the previous Selenium-WebDriver based version of
110
+ this testing framework.
111
+
112
+ ### v0.8.0 - 2013/06/07
113
+
114
+ * Instance Editor (OLELS)
115
+ * Create Instance Editor Page
116
+ * Ownership Extent Line
117
+ * Ownership Note Line
118
+ * Access Info Line
119
+ * Holdings Note Line
120
+ * Create Editor Note Line Object
121
+ * "Access Info" Note Type
122
+ * "Holdings Note" Note Type
123
+ * "Ownership Note" Note Type
124
+ * Item Editor
125
+ * Create Item Editor Page
126
+ * Item Note Line Object
127
+ * Create Editor Note "Item Note" Type
128
+
129
+ ### v0.7.0 - 2013/06/06
130
+
131
+ * Remodel Line Object & Subline Object Handling in PURAP Documents
132
+ * Remove .add_line methods
133
+ * .add_button will need to be clicked manually
134
+ * Line Objects & Subline Objects will be noted as new or added upon
135
+ instantiation. The default will be "new".
136
+ * new.yml - will still contain element definitions not needing
137
+ line number, line identifier, subline number, and subline identifier
138
+ substitution
139
+ * added.yml - will still contain element definitions needing line
140
+ number, line identifier, subline number, and subline identifier
141
+ substitution
142
+ * conversion will not occur automatically between the two sets of
143
+ identifiers; instead, a new instance will need to be created to
144
+ represent the item after it has been added
145
+ * this functionality is more accurate in that adding a line on a
146
+ PURAP document will always populate the added line and retain a new
147
+ line, which will always have value-independent identifiers
148
+ * Replace nested object handling methods
149
+ * Replace .remove_X_line(which, do_click) with .delete_X_line
150
+ * the .delete_button will need to be clicked manually if it exists
151
+ * this further separates the page model from the behavior of the actual
152
+ page on the screen in order to allow users to remove inappropriate lines
153
+ from the model
154
+ * delete_X_line
155
+ * delete the highest instance variable representing a line item or
156
+ subline item of X type (e.g., .delete_line_item will remove
157
+ .line_item_N from a PURAP document's model)
158
+ * decrement the appropriate .X_line_counter variable
159
+ * Replace .add_X_line(do_click) with .create_X_line
160
+ * the .add_button will need to be clicked manually if it exists and
161
+ needs to be clicked
162
+ * this further separates the page model from the behavior of the actual
163
+ page on the screen in order to allow users to create lines on the page
164
+ model when they are expected to already exist on the actual document being
165
+ modeled (e.g., when a Purchase Order is opened, this will facilitate
166
+ the creation of both line items and accounting lines to match the expected
167
+ shape of the Purchase Order on the screen)
168
+ * create_X_line
169
+ * increment the appropriate .X_line_counter variable
170
+ * create a new instance variable representing a line item or subline
171
+ item of X type (e.g., .create_accounting_line will create a new
172
+ .accounting_line_N where N = .accounting_line_counter + 1)
173
+ * Using "create" and "delete" instead of "add" and "remove" should make it clearer
174
+ that the new functionality refers to instances on the page model rather than items
175
+ on the actual page itself.
176
+ * Instantiate new pages with .new_X_line instead of .X_line_1, where X is a line object
177
+ type
178
+ * Instantiate new line objects with .new_X_line instead of .X_line_1, where X is a
179
+ subline object type
180
+
181
+ ### v0.6.0 - 2013/06/05
182
+
183
+ * Rename Requisition File
184
+ * lib/olefs/pages/requisition.rb -> lib/olefs/pages/purap_requisition.rb
185
+ * lib/olefs/pages/requisition/ -> lib/olefs/pages/purap_requisition/
186
+ * These changes were made so that purchase order definitions & functionality
187
+ can be inherited from requisitions (load order is alphabetic).
188
+ * New Data Objects
189
+ * Receiving Line
190
+ * Line Object
191
+ * About
192
+ * Represents a single Receiving Line on a Receiving Document
193
+ * Analogous in behavior to Line Item on Requisition and Purchase Order
194
+ * Can be added, but cannot be deleted
195
+ * the function is not supported in OLE -- there is no delete button
196
+ for a newly-added Receiving Line
197
+ * Has receiving-related notes lines, but no accounting lines
198
+ * The only common subline is the copies line
199
+ * Even if the related line item has no copies line and the # of copies is
200
+ 1 for a given item, the copies line is required on the receiving line
201
+ * Fields
202
+ * description field
203
+ * quantity ordered field
204
+ * parts ordered field
205
+ * prior quantity received field
206
+ * (not available on new receiving line)
207
+ * prior parts received field
208
+ * (not available on new receiving line)
209
+ * quantity to be received field
210
+ * parts to be received field
211
+ * item received quantity field
212
+ * item received parts field
213
+ * item returned quantity field
214
+ * item returned parts field
215
+ * item damaged quantity field
216
+ * item damaged parts field
217
+ * available to public checkbox
218
+ * public view checkbox (alias)
219
+ * Methods
220
+ * add_line
221
+ * add sublines
222
+ * add_exception_notes_line
223
+ * add_receipt_notes_line
224
+ * add_processing_line
225
+ * add_copies_line
226
+ * remove sublines
227
+ * remove_exception_notes_line
228
+ * remove_receipt_notes_line
229
+ * remove_processing_line
230
+ * remove_copies_line
231
+ * counters
232
+ * exception_notes_line_counter
233
+ * receipt_notes_line_counter
234
+ * processing_line_counter
235
+ * copies_line_counter
236
+ * Exception Notes Line
237
+ * Subline Object
238
+ * Fields
239
+ * Receipt Notes Line
240
+ * Subline Object
241
+ * Fields
242
+ * Processing Line
243
+ * About
244
+ * Represents a subline item for Special Processing Instructions
245
+ added as a special Note Type on a requisition or purchase order
246
+ Notes Line.
247
+ * Cannot be added or removed on the Receiving Line.
248
+ * Retains an .add_line method for consistency. Use .add_line to
249
+ create the object to represent an existing Special Processing
250
+ Instructions Note line on the Receiving Line. There is no
251
+ .add_button or .delete_button element to click, so .add_line
252
+ is permanently aliased to do .add_line(do_click = false).
253
+ * Subline Object
254
+ * Fields
255
+ * note field
256
+ * acknowledge checkbox
257
+ * PREQ Line Item
258
+ * About
259
+ * Represents a special line item for payment requests only
260
+ * Line Object
261
+ * Fields
262
+ * po_unit_price_field
263
+ * format_selector
264
+ * vendor_item_identifier_field
265
+ * number_of_copies_ordered_field
266
+ * number_of_parts_ordered_field
267
+ * list_price_field
268
+ * discount_field
269
+ * discount_type_selector
270
+ * assigned_to_trade_in_checkbox
271
+ * becomes assigned_to_trade_in_field when added
272
+ * description_field
273
+ * receipt_status_selector
274
+ * new_bib_button
275
+ * becomes edit_bib_button when added
276
+ * Invoice Notes Line
277
+ * About
278
+ * Represents a special type of notes line for payment requests
279
+ only
280
+ * Subline Object
281
+ * Fields
282
+ * note_field
283
+ * New Pages
284
+ * Purchase Order
285
+ * Inheritance
286
+ * Page -> OLEFS E-Doc -> Requisition -> Purchase Order
287
+ * Fields
288
+ * Purchase Order Detail Area
289
+ * funding source selector
290
+ * Vendor Tab
291
+ * vendor name field
292
+ * redefined from requisition
293
+ * View View Related Docs Tab
294
+ * view related requisition link
295
+ * Input Buttons
296
+ * sensitive data button
297
+ * payment hold button
298
+ * amend button
299
+ * void order button
300
+ * receiving button
301
+ * print button
302
+ * send ad hoc button
303
+ * NB - Functionality is largely established by requisition.
304
+ See notes in YARD Documentation on Purchase Order class for more
305
+ information about how a Purchase Order can be modeled appropriately
306
+ for different OLE workflows.
307
+ * PURAP Document
308
+ * Inheritance
309
+ * Page -> OLEFS E-Doc -> PURAP Document
310
+ * Fields
311
+ * Route Log Tab
312
+ * route log tab toggle
313
+ * actions taken array
314
+ * actions taken by array
315
+ * Methods
316
+ * add_line_item
317
+ * remove_line_item
318
+ * Purpose
319
+ * The Line Item methods were moved from the Requisition document
320
+ page to the PURAP document page so that they could be inherited by
321
+ multiple document types.
322
+ * Receiving Document
323
+ * Inheritance
324
+ * Page -> OLEFS E-Doc -> PURAP Document -> Receiving Document
325
+ * Fields
326
+ * Vendor Tab
327
+ * vendor tab toggle
328
+ * date received field
329
+ * packing slip number field
330
+ * bill of lading number field
331
+ * reference number field
332
+ * carrier selector
333
+ * Delivery Tab
334
+ * delivery tab toggle
335
+ * campus field
336
+ * building field
337
+ * address field
338
+ * room field
339
+ * city field
340
+ * state field
341
+ * postal code field
342
+ * country field
343
+ * delivery to field
344
+ * phone number field
345
+ * email field
346
+ * View Related Documents Tab
347
+ * view related documents tab toggle
348
+ * view related po link
349
+ * view related requisition link
350
+ * Methods
351
+ * add_receiving_line
352
+ * remove_receiving_line
353
+ * receiving_line_counter
354
+ * About
355
+ * The Receiving Document uses a different type of item line.
356
+ Instead of the Line Item, Line Items are represented by Receiving
357
+ Lines. A document begins with at least one full receiving line,
358
+ so the Receiving Document class creates two receiving lines upon
359
+ instantiation - one added, and one new. Like the Requisition and
360
+ Purchase Order classes, the highest receiving line number will always
361
+ point at the new line to-be-added.
362
+ * Payment Request
363
+ * Inheritance
364
+ * Page -> OLEFS E-Doc -> PURAP Document -> Payment Request
365
+ * Fields
366
+ * Invoice Info Tab
367
+ * invoice_number_field
368
+ * pay_date_field
369
+ * invoice_date_field
370
+ * immediate_pay_checkbox
371
+ * payment_attachment_checkbox
372
+ * invoice_type_field
373
+ * invoice_subtype_field
374
+ * payment_method_selector
375
+ * Titles Tab
376
+ * grand_total_field
377
+ * additional_charges_toggle
378
+ * freight_extended_cost_field
379
+ * freight_description_field
380
+ * shipping_handling_extended_cost_field
381
+ * shipping_handling_description_field
382
+ * minimum_order_extended_cost_field
383
+ * minimum_order_description_field
384
+ * miscellaneous_overhead_extended_cost_field
385
+ * miscellaneous_overhead_description_field
386
+ * prorate_by_quantity_checkbox
387
+ * prorate_by_dollar_checkbox
388
+ * prorate_manual_checkbox
389
+ * close_po_checkbox
390
+ * View Related Docs Tab
391
+ * view_related_tab_toggle
392
+ * view_related_requisition_link
393
+ * view_related_po_link
394
+ * Methods
395
+ * add_line_item
396
+ * remove_line_item
397
+ * About
398
+ * The Payment Request uses line item objects similar to those on the
399
+ requisition and purchase order, but with different fields, or some fields
400
+ in different locations, and so uses its own class of line item:
401
+ OLE_QA::OLEFS::PREQ_Line_Item.
402
+ * The PREQ Line Item only features two types of sublines:
403
+ * accounting lines
404
+ * invoice notes lines
405
+ * New Features
406
+ * Line Object click option
407
+ * In all subclasses of Line Object, the option (do_click) has been added
408
+ to the .add_line and .remove_line methods. If do_click is set to true
409
+ (default value in most cases) then the test script will attempt to click
410
+ the .add_button or .delete_button element on a given line object. This
411
+ option is backwards-compatible, and has been included in order to allow more
412
+ accurate modeling of existing line items on new OLEFS PURAP documents, as
413
+ purchase orders, receiving documents, and payment request documents come with
414
+ prepopulated line items.
415
+ * Subline Object click option
416
+ * In all subclasses of Subline Object, the option (do_click) has been
417
+ added to the .add_line and .remove_line methods. If do_click is set to
418
+ true (default value in most cases) then the test script will attempt to click
419
+ the .add_button or .delete_button element on a given subline object. This
420
+ option is backwards-compatible, and has been included to give more accuracy
421
+ in modeling PURAP document line items which might include multiple subline
422
+ objects at document creation.
423
+
424
+ ### v0.5.0 - 2013/05/30
425
+
426
+ * Main Testing Framework Class
427
+ * Renamed, OLE_QA::OLE_Framework -> OLE_QA::Framework
428
+ * Removed .doc_route_wait (this will be handled by OLE_QAT)
429
+ * Removed requirements for Chronic and Benchmark (to be handled by OLE_QAT)
430
+ * YARD
431
+ * Added development dependency for YARD
432
+ * Added formatted comments for YARD Documentation to most complete base classes.
433
+ * New Data Objects
434
+ * Subline Object
435
+ * Created base class and element definitions
436
+ * Used as a nested line, e.g. for an accounting line in OLE Financial System
437
+ * Subclass of Line Object
438
+ * .add_line
439
+ * clicks "add_button" if defined
440
+ * parses element hashes, removes original elements, adds redefined elements
441
+ * Created example element definitions in lib/common/subline_object/
442
+ * new.yml - element definitions before adding
443
+ * added.yml - element definitions after adding
444
+ * Element definitions undergo two rounds of replacement
445
+ * LINEID/LINENUM in identifiers are replaced by Line Item values
446
+ * SUBLINEID/SUBLINENUM in identifiers are replaced by relevant Sub Line values
447
+ * Accounting Line
448
+ * Now a subclass of Subline Object
449
+ * Definitions in
450
+ * lib/OLEFS/objects/accounting_line/
451
+ * new.yml
452
+ * added.yml
453
+ * .add_line (from subline object)
454
+ * fields for:
455
+ * chart code
456
+ * account number
457
+ * sub-account
458
+ * object code
459
+ * sub-object
460
+ * org ref id
461
+ * dollar amount
462
+ * percentage
463
+ * Copies Line
464
+ * subclass of Subline Object
465
+ * Definitions in
466
+ * lib/OLEFS/objects/copies_line/
467
+ * new.yml
468
+ * added.yml
469
+ * fields for:
470
+ * copies
471
+ * starting copy
472
+ * location copies
473
+ * Notes Line
474
+ * subclass of Subline Object
475
+ * Definitions in
476
+ * lib/OLEFS/objects/notes_line/
477
+ * new.yml
478
+ * added.yml
479
+ * fields for:
480
+ * note type
481
+ * note
482
+ * Line Item
483
+ * Line Object
484
+ * represents a single line item on an OLEFS PURAP Document
485
+ * contains sub-objects:
486
+ * Accounting Line
487
+ * Copies Line
488
+ * Notes Line
489
+ * has counters for
490
+ * accounting lines
491
+ * copies lines
492
+ * notes lines
493
+ * has add & remove functionality for each sub-object listed above
494
+ * add_X_line
495
+ * clicks the add button on the highest-numbered X line
496
+ * invokes add_line function on that line to switch from "new" to "added" definitions
497
+ * advances counter
498
+ * remove_X_line(N)
499
+ * clicks the delete button on the Nth line of X type
500
+ * decrements the counter
501
+ * resets the highest line of X type to a new, non-added line
502
+ * starts out with:
503
+ * accounting_line_1
504
+ * copies_line_1
505
+ * notes_line_1
506
+ * all counters set to 1
507
+ * NB - the number of a sub-object line (e.g. the 1 in accounting_line_1)
508
+ represents the number of line after it is added; the highest numbered
509
+ line therefore will always point at the new line at the top of the sub-tab,
510
+ as there is always a new line of any given type there
511
+ * Definitions in
512
+ * lib/OLEFS/objects/line_item
513
+ * Has fields for:
514
+ * number of copies
515
+ * number of parts
516
+ * list price
517
+ * discount
518
+ * item price source
519
+ * request source
520
+ * item type
521
+ * format
522
+ * category
523
+ * discount type
524
+ * public view
525
+ * route to requestor
526
+ * requestor id
527
+ * extended cost
528
+ * unit cost
529
+ * has button/link to current bib
530
+ * has tab toggles for
531
+ * accounting lines
532
+ * copies
533
+ * notes
534
+ * New Pages
535
+ * OLEFS Lookup Page (base class)
536
+ * Inheritance
537
+ * Page -> Lookup
538
+ * Fields
539
+ * title
540
+ * active indicator yes
541
+ * active indicator no
542
+ * active indicator both
543
+ * search button
544
+ * clear button
545
+ * cancel button
546
+ * Requisition
547
+ * Inheritance
548
+ * Page -> OLEFS E-Doc -> Requisition
549
+ * Data Objects
550
+ * Line Item
551
+ * Fields
552
+ * Requisition Detail Area
553
+ * license request checkbox
554
+ * receiving required checkbox
555
+ * payment request approval required checkbox
556
+ * Additional Information Tab
557
+ * additional info tab toggle
558
+ * phone number field
559
+ * Delivery Tab
560
+ * delivery tab toggle
561
+ * building field
562
+ * room field
563
+ * building search icon
564
+ * campus search icon
565
+ * Vendor Tab
566
+ * vendor tab toggle
567
+ * vendor name field
568
+ * vendor name added field
569
+ * vendor search icon
570
+ * Titles Tab
571
+ * grand total field
572
+ * View Related Docs Tab
573
+ * view related tab toggle
574
+ * view related po link
575
+ * Methods
576
+ * add_line_item
577
+ * Adds a line item
578
+ * Increments the line_item_counter instance variable
579
+ * remove_line_item(which)
580
+ * Removes a target line item by clicking the delete button
581
+ * Deletes the highest line item instance variable
582
+ * Resets the next-highest line item to have new line elements
583
+ * blocks if target line is highest line (and therefore unadded)
584
+ * blocks if target line is higher than line item counter
585
+ * Vendor Lookup
586
+ * Inheritance
587
+ * Page -> OLEFS Lookup -> Vendor Lookup
588
+ * Fields
589
+ * vendor name field
590
+ * tax number field
591
+ * vendor number field
592
+ * vendor type selector
593
+ * state field
594
+ * commodity code field
595
+ * supplier diversity selector
596
+ * Building Lookup
597
+ * Inheritance
598
+ * Page -> OLEFS Lookup -> Building Lookup
599
+ * Fields
600
+ * campus code field
601
+ * building code field
602
+ * building name field
603
+
604
+ ### v0.4.0 - 2013/05/03
605
+
606
+ * Data Helpers
607
+ * .replace_identifiers
608
+ * given an element hash, replace identifier strings in hash with dynamic values
609
+ * .replace_names
610
+ * given an element hash, replace the keys in the hash with dynamic values
611
+ * Line Object
612
+ * make use of .replace_identifiers
613
+ * OLEFS E-Doc
614
+ * automatically perform .frame_select upon open
615
+ * Checkbox Element
616
+ * added .check and .uncheck methods
617
+ * these methods will return output in addition to setting or unsetting a checkbox
618
+ * true if successful or unnecessary (depending on previous state)
619
+ * false if unsuccessful
620
+ * Bib Editor Line
621
+ * Represents a line in the OLELS Bib Editor
622
+ * Can represent a Leader Field line, a Control Field line, or a Data Field line
623
+ * dynamically set with line_type variable
624
+ * defaults to 'data'
625
+ * configures elements from yaml_files in lib/olels/objects/bib_editor/
626
+ * leader_line.yml
627
+ * control_line.yml
628
+ * data_line.yml
629
+ * sets the following elements on instances, depending on type
630
+ * value_field (all)
631
+ * tag_field (control & data only)
632
+ * indicator_1_field (data only)
633
+ * indicator_2_field (data only)
634
+ * add_button (control & data only)
635
+ * remove_button (control & data only)
636
+ * Data Element
637
+ * .verify_text
638
+ * now includes text & text.strip verifictions
639
+ * text in OLE is often wrapped with whitespace or newline characters
640
+ * target text will be verified with or without .strip
641
+ * Editor
642
+ * base class for OLELS Describe Editor interfaces
643
+ * has common elements:
644
+ * .submit_button - submit record
645
+ * .cancel_button - cancel edits
646
+ * .close_button - close record
647
+ * .title - title span of current editor
648
+ * .return_to_search_button - close & return to bib search
649
+ * Bib Editor
650
+ * represents a Marc Bibliographic Record Editor Page
651
+ * native to OLELS, but opens in OLEFS on PURAP documents & DocStore on edit
652
+ * .leader_line
653
+ * data object for leader line consisting of a value field
654
+ * elements:
655
+ * .value_field
656
+ * .control_line_1
657
+ * data object automatically created for first control line
658
+ * elements:
659
+ * .tag_field
660
+ * .value_field
661
+ * .data_line_1
662
+ * data object automatically created for first data line
663
+ * elements:
664
+ * .tag_field
665
+ * .indicator_1_field
666
+ * .indicator_2_field
667
+ * .value_field
668
+ * .control_line_N
669
+ * sequential data objects automatically created or deleted for add'l control lines
670
+ * .data_line_N
671
+ * sequential data objects automatically created or deleted for add'l data lines
672
+ * .add_control_line
673
+ * adds a new control_line_N
674
+ * increments .control_line_counter
675
+ * .add_data_line
676
+ * adds a new data_line_N
677
+ * increments .data_line_counter
678
+ * .remove_control_line(N)
679
+ * removes control_line_N
680
+ * shifts control lines downward
681
+ * decrements .control_line_counter
682
+ * .remove_data_line(N)
683
+ * removes data_line_N
684
+ * shifts data lines downward
685
+ * decrements .data_line_counter
686
+ * .save
687
+ * saves current record with .submit_button
688
+ * increments control lines for addition of automagic control line by OLE
689
+ * .save_message
690
+ * message span for save message
691
+
692
+ ### v0.3.2 - 2013/05/01
693
+
694
+ * Checkbox Element
695
+ * Added Checkbox Element class
696
+ * .checked? - returns true/false
697
+ * .verify_checked - returns true/false, rescues if element not found
698
+ * Line Object
699
+ * new.yml
700
+ * added all necessary item definitions
701
+ * Requisition
702
+ * URLs
703
+ * fixed definition for [:new] in URLs hash file
704
+ * Spec
705
+ * Made fixes to:
706
+ * Data Object
707
+ * Line Object
708
+ * Page
709
+ * .frame_present?
710
+ * method is no longer private
711
+
712
+ ### v0.3.1 - 2013/04/30
713
+
714
+ * Line Object
715
+ * new.yml
716
+ * also now undergoes LINENUM/LINEID replacement
717
+
718
+ ### v0.3.0 - 2013/04/30
719
+
720
+ * Line Object
721
+ * common/
722
+ * Line Object - base class for addable line objects, includes initialize and add_line methods
723
+ * .add_line
724
+ * clicks self.add if such an element exists
725
+ * removes previous elements set by new.yml and replaces them with those in added.yml
726
+ * line_object/
727
+ * new.yml - YML definitions file for elements while the line object is still new
728
+ * uses static definitions for element identifier strings
729
+ * this is where you would include an .add element
730
+ * added.yml - YML definitions file for elements after the line object has been added
731
+ * uses dynamic definitions for element identifier strings
732
+ * these elements will only exist on the line object after .add_line is invoked
733
+ * spec/elements/
734
+ * Line Object Spec
735
+ * tests for class constituency
736
+ * tests for element constituency
737
+ * tests for .add_line functionality
738
+ * uses lib/common/line_object/new.yml & added.yml for testing
739
+
740
+ ### v0.2.3a - 2013/04/30
741
+
742
+ * Remove Test Pages
743
+ * remove directory & load references
744
+ * Load Modules First
745
+ * altered load order to load modules first; assuming they will not contain WebDriver-dependent methods
746
+
747
+ ### v0.2.2b - 2013/04/29
748
+
749
+ * Gem Build & Install Successful
750
+ * Completed Gemspec
751
+ * Added dependencies
752
+ * Added development dependency
753
+ * Refactored loading of libraries
754
+ * Verified libraries load after gem install
755
+
756
+ ### v0.2.2a - 2013/04/29
757
+
758
+ * Now using Version Gem to maintain OLE_QA::VERSION constant
759
+ * ole_qa_framework.gemspec depends on Version
760
+ * Common
761
+ * data_object
762
+ * base class for all Data Objects
763
+ * collection of element definitions below the page level
764
+ * intended for creating recursive data objects
765
+ * line_object
766
+ * special Data Object
767
+ * mostly used by OLEFS PURAP Documents
768
+ * represents a single line in a tab that can be added or removed
769
+ * should have two data files
770
+ * new.yml - for a new data line, where all element IDs are set to 0
771
+ * added.yml - used after data line is added, redefines element IDs dynamically
772
+ * Module
773
+ * qaf_helpers - general module for all helpers
774
+ * qaf_page_helpers - helper module for page objects specifically
775
+ * (currently unused)
776
+ * qaf_data_helpers - helper module for non-page data objects
777
+ * (currently unused)
778
+ * OLEFS
779
+ * e_doc - base page definition for all e-documents in OLE Financial System
780
+ * objects/ - object definitions for OLE Financial System data objects
781
+ * line_item - Used to create a Line Item for any OLEFS Purchasing/AP e-documents
782
+ * accounting_line - Used to create control elements for an Accounting Line on a Line Item
783
+ * copies_line - Used to create control elements for a Copies Line on a Line Item
784
+ * pages/
785
+ * requisition - will be used to create base class for OLEFS PURAP Requisition Document
786
+ * (incomplete)
787
+ * main_menu - used to create definitions for OLEFS Main Menu
788
+ * (incomplete)
789
+ * OLELS
790
+ * e_doc - base page definition for all e-documents in OLE Library System
791
+ * editor - base class for various bibliographic record editors in OLELS
792
+ * (incomplete)
793
+ * must be loaded before each editor is loaded, hence inclusion in OLELS/ instead of pages/
794
+ * will be used by:
795
+ * MARC Editor
796
+ * Holdings Editor
797
+ * Item Editor
798
+ * pages/
799
+ * main_menu - used to create definitions for OLELS Main Menu
800
+ * (incomplete)
801
+
802
+ ### v0.2.2 - 2013/04/15
803
+
804
+ * YAML Configuration
805
+ * lib/config/default_options.yml
806
+ * Default configurations for OLE QA Framework
807
+ * currently points to OLE Test Environment
808
+ * lib/config/defaults/
809
+ * ole_dev_environment.yml
810
+ * points to OLE Development Environment
811
+ * ole_test_environment.yml
812
+ * points to OLE Test Environment
813
+ * ole_test_no_headless.yml
814
+ * points to OLE Test Environment
815
+ * runs browser without Headless gem (no xvfb session invoked)
816
+
817
+ ### v0.2.1 - 2013/04/12
818
+
819
+ * Test Pages
820
+ * lib/test_pages defines pages for testing base classes and methods
821
+ * lib/test_pages/kuali_kis
822
+ * Kuali KIS - http://kis.kuali.org/
823
+ * Defines base page class with URL & some elements for spec testing
824
+ * spec/test_pages/kuali_kis_spec
825
+ * Defines spec behaviors for Kuali KIS page for testing
826
+
827
+ ### v0.2.0 - 2013/04/11
828
+
829
+ * API Change
830
+ * All classes now enclosed within OLE_QA namespace
831
+ * lib/module
832
+ * QAF_Helpers
833
+ * includes mixin methods for dynamically adding attributes to classes
834
+
835
+ ### v0.1.1 - 2013/04/10
836
+
837
+ * Structure Changes
838
+ * Elements -> Objects
839
+ * Browser
840
+ * includes web_element.rb base class for Selenium web elements
841
+ * includes web_element/ directory for element subclasses
842
+ * data_element.rb - basic class for an element which contains useful data
843
+ * input_element.rb - for input fields and controls
844
+ * selector_element.rb - for drop-down select menus
845
+ * OLEFS
846
+ * Pages
847
+ * main_menu.rb - page class for OLEFS main menu
848
+ * OLELS
849
+ * Pages
850
+ * main_menu.rb - page class for OLELS main menu
851
+ * Additions
852
+ * Rakefile
853
+ * spec namespace for running rspec tests
854
+ * run_all task for running all specs
855
+ * non_ole task for running non-OLE specs (e.g. for browser setup &c.)
856
+ * Compatibility Update
857
+ * Updated compatibility file for most recent OLE Release - 0.8.0-u-r11754
858
+
859
+ ### v0.1.0 - 2013/04/05
860
+
861
+ * Initial commit
862
+ * Created directory structure and base class files
863
+ * Base class
864
+ * Created base class with browser method as interface for Selenium Webdriver
865
+ * Web Element class
866
+ * Created web element class to extend functions of Selenium web element
867
+ * Added Functions:
868
+ * present? - tests if a web element is present, returns true or false
869
+ * enabled? - tests if a web element is enabled, returns true or false
870
+ * type() - enters given text into a web element
871
+ * value - returns the value of an input element
872
+ * Basic Structure
873
+ * Elements
874
+ * Element - base class for data objects and other non-page entities
875
+ * Page - base class for pages in OLE
876
+ * OLEFS
877
+ * Element - used to define OLE Financial System data objects
878
+ * Page - used to define OLE Financial System base page elements and functions
879
+ * OLELS
880
+ * Element - used to define OLE Library System data objects
881
+ * Page - used to define OLE Library System base page elements and functions
882
+ * Docstore