ole-qa-framework 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
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