sambal-kuali 0.0.1

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 (65) hide show
  1. data/Gemfile +6 -0
  2. data/Gemfile.lock +34 -0
  3. data/README.md +40 -0
  4. data/lib/sambal-kuali/base_page_classes.rb +418 -0
  5. data/lib/sambal-kuali/data_objects/academic_calendar.rb +90 -0
  6. data/lib/sambal-kuali/data_objects/activity_offering.rb +438 -0
  7. data/lib/sambal-kuali/data_objects/activity_offering_cluster.rb +52 -0
  8. data/lib/sambal-kuali/data_objects/course_offering.rb +42 -0
  9. data/lib/sambal-kuali/data_objects/holiday_calendar.rb +120 -0
  10. data/lib/sambal-kuali/data_objects/population.rb +257 -0
  11. data/lib/sambal-kuali/data_objects/rollover.rb +67 -0
  12. data/lib/sambal-kuali/data_objects/schedule_of_classes.rb +130 -0
  13. data/lib/sambal-kuali/kuali_base_page.rb +49 -0
  14. data/lib/sambal-kuali/pages/active_population_lookup.rb +22 -0
  15. data/lib/sambal-kuali/pages/activity_offering_inquiry.rb +23 -0
  16. data/lib/sambal-kuali/pages/activity_offering_lookup.rb +11 -0
  17. data/lib/sambal-kuali/pages/activity_offering_maintenance.rb +93 -0
  18. data/lib/sambal-kuali/pages/activity_offering_maintenance_view.rb +44 -0
  19. data/lib/sambal-kuali/pages/add_hold.rb +11 -0
  20. data/lib/sambal-kuali/pages/appointment_window_lookup.rb +12 -0
  21. data/lib/sambal-kuali/pages/calendar_search.rb +82 -0
  22. data/lib/sambal-kuali/pages/copy_holiday_calendar.rb +20 -0
  23. data/lib/sambal-kuali/pages/course_offering_edit.rb +122 -0
  24. data/lib/sambal-kuali/pages/course_offering_info_lookup.rb +12 -0
  25. data/lib/sambal-kuali/pages/create_acad_calendar.rb +22 -0
  26. data/lib/sambal-kuali/pages/create_course_offering.rb +20 -0
  27. data/lib/sambal-kuali/pages/create_holiday_calendar.rb +16 -0
  28. data/lib/sambal-kuali/pages/create_population.rb +19 -0
  29. data/lib/sambal-kuali/pages/create_process.rb +17 -0
  30. data/lib/sambal-kuali/pages/delete_term.rb +17 -0
  31. data/lib/sambal-kuali/pages/delivery_logistics_edit.rb +37 -0
  32. data/lib/sambal-kuali/pages/department_lookup.rb +37 -0
  33. data/lib/sambal-kuali/pages/display_schedule_of_classes.rb +132 -0
  34. data/lib/sambal-kuali/pages/document_search.rb +37 -0
  35. data/lib/sambal-kuali/pages/edit_academic_calendar.rb +57 -0
  36. data/lib/sambal-kuali/pages/edit_population.rb +18 -0
  37. data/lib/sambal-kuali/pages/enrollment.rb +23 -0
  38. data/lib/sambal-kuali/pages/enrollment_fee_lookup.rb +11 -0
  39. data/lib/sambal-kuali/pages/format_offering_info_lookup.rb +9 -0
  40. data/lib/sambal-kuali/pages/header.rb +5 -0
  41. data/lib/sambal-kuali/pages/hold_lookup.rb +34 -0
  42. data/lib/sambal-kuali/pages/holiday_calendar_information.rb +25 -0
  43. data/lib/sambal-kuali/pages/login_page.rb +15 -0
  44. data/lib/sambal-kuali/pages/main_menu.rb +73 -0
  45. data/lib/sambal-kuali/pages/manage_course_offerings.rb +72 -0
  46. data/lib/sambal-kuali/pages/manage_populations.rb +11 -0
  47. data/lib/sambal-kuali/pages/manage_process.rb +20 -0
  48. data/lib/sambal-kuali/pages/manage_registration_groups.rb +89 -0
  49. data/lib/sambal-kuali/pages/manage_registration_windows.rb +12 -0
  50. data/lib/sambal-kuali/pages/organization_lookup.rb +39 -0
  51. data/lib/sambal-kuali/pages/perform_rollover.rb +68 -0
  52. data/lib/sambal-kuali/pages/personnel_lookup.rb +44 -0
  53. data/lib/sambal-kuali/pages/rollover_confirm_release_to_depts.rb +14 -0
  54. data/lib/sambal-kuali/pages/rollover_details.rb +40 -0
  55. data/lib/sambal-kuali/pages/term_info_lookup.rb +10 -0
  56. data/lib/sambal-kuali/pages/term_information.rb +8 -0
  57. data/lib/sambal-kuali/pages/term_lookup.rb +15 -0
  58. data/lib/sambal-kuali/pages/unknown_term_course_offerings.rb +10 -0
  59. data/lib/sambal-kuali/pages/view_population.rb +18 -0
  60. data/lib/sambal-kuali/pages/workflow_preferences.rb +34 -0
  61. data/lib/sambal-kuali/workflows.rb +121 -0
  62. data/lib/sambal-kuali.rb +8 -0
  63. data/linux_headless_setup.sh +107 -0
  64. data/sambal-kuali.gemspec +12 -0
  65. metadata +129 -0
@@ -0,0 +1,37 @@
1
+ class DocumentSearch < BasePage
2
+
3
+ wrapper_elements
4
+ frame_element
5
+
6
+ element(:search_toggle) { |b| b.frm.button(name: "toggleAdvancedSearch") }
7
+ element(:user_toggle) { |b| b.frm.button(name: "toggleSuperUserSearch") }
8
+ element(:searches) { |b| b.frm.select(name: "savedSearchToLoadAndExecute") }
9
+
10
+ action(:basic_search) { |p| p.search_toggle.click }
11
+ action(:detailed_search) { |p| p.search_toggle.click }
12
+ action(:clear_saved_searches) { |b| b.frm.button(name: "resetSavedSearch").click }
13
+
14
+ element(:document_type) { |b| b.frm.text_field(name: "documentTypeName") }
15
+ element(:initiator) { |b| b.frm.text_field(name: "initiatorPrincipalName") }
16
+ element(:approver) { |b| b.frm.text_field(name: "approverPrincipalName") }
17
+ element(:viewer) { |b| b.frm.text_field(name: "viewerPrincipalName") }
18
+ element(:application_document_id) { |b| b.frm.text_field(name: "applicationDocumentId") }
19
+ element(:document_id) { |b| b.frm.text_field(name: "documentId") }
20
+ element(:document_status) { |b| b.frm.select(name: "statusCode") }
21
+ element(:date_created_from) { |b| b.frm.text_field(name: "rangeLowerBoundKeyPrefix_dateCreated") }
22
+ element(:date_created_to) { |b| b.frm.text_field(name: "dateCreated") }
23
+ element(:date_approved_from) { |b| b.frm.text_field(name: "rangeLowerBoundKeyPrefix_dateApproved") }
24
+ element(:date_approved_to) { |b| b.frm.text_field(name: "dateApproved") }
25
+ element(:date_last_modified_from) { |b| b.frm.text_field(name: "rangeLowerBoundKeyPrefix_dateLastModified") }
26
+ element(:date_last_modified_to) { |b| b.frm.text_field(name: "dateLastModified") }
27
+ element(:date_finalized_from) { |b| b.frm.text_field(name: "rangeLowerBoundKeyPrefix_dateFinalized") }
28
+ element(:date_finalized_to) { |b| b.frm.text_field(name: "dateFinalized") }
29
+ element(:title) { |b| b.frm.text_field(name: "title") }
30
+ element(:name_this_search) { |b| b.frm.text_field(name: "saveName") }
31
+
32
+ action(:search) { |b| b.frm.button(name: "methodToCall.search").click }
33
+ action(:clear) { |b| b.frm.button(name: "methodToCall.clearValues").click }
34
+
35
+ element(:results_table) { |b| b.frm.table(id: "row", class: "datatable-100") }
36
+
37
+ end
@@ -0,0 +1,57 @@
1
+ class EditAcademicCalendar < BasePage
2
+
3
+ expected_element :academic_calendar_name
4
+
5
+ wrapper_elements
6
+ frame_element
7
+
8
+ action(:information_tab) { |b| b.frm.link(text: "Information").click }
9
+ action(:terms_tab) { |b| b.frm.link(text: "Terms").click }
10
+
11
+ element(:academic_calendar_name) { |b| b.frm.text_field(name: "academicCalendarInfo.name") }
12
+ element(:organization) { |b| b.frm.select(name: "academicCalendarInfo.adminOrgId") }
13
+ element(:calendar_start_date) { |b| b.frm.text_field(name: "academicCalendarInfo.startDate") }
14
+ element(:calendar_end_date) { |b| b.frm.text_field(name: "academicCalendarInfo.endDate") }
15
+
16
+ action(:event_toggle) { |b| b.frm.link(id: "acal-info-event_toggle").click; sleep 1 }
17
+
18
+ element(:event_type) { |b| b.frm.select(name: "newCollectionLines['events'].eventTypeKey") }
19
+ element(:event_start_date) { |b| b.frm.text_field(name: "newCollectionLines['events'].startDate") }
20
+ element(:event_end_date) { |b| b.frm.text_field(name: "newCollectionLines['events'].endDate") }
21
+ element(:event_start_time) { |b| b.frm.text_field(name: "newCollectionLines['events'].startTime") }
22
+ element(:event_end_time) { |b| b.frm.text_field(name: "newCollectionLines['events'].endTime") }
23
+ element(:event_start_ampm) { |b| b.frm.select(name: "newCollectionLines['events'].startTimeAmPm") }
24
+ element(:event_end_ampm) { |b| b.frm.select(name: "newCollectionLines['events'].endTimeAmPm") }
25
+ element(:all_day) { |b| b.frm.checkbox(name: "newCollectionLines['events'].allDay") }
26
+ element(:date_range) { |b| b.frm.checkbox(name: "newCollectionLines['events'].dateRange") }
27
+ element(:add_event) { |b| b.frm.button(id: "u177_add") } # Persistent ID needed! Note that there can be multiple Adds on the page. Element identifiers for all need to be helpful
28
+ element(:make_official_button) { |b| b.frm.button(text: "Make Official") } # Persistent ID needed!
29
+
30
+ action(:make_official) { |p| p.make_official_button.click; p.loading.wait_while_present }
31
+ action(:save) { |b| b.frm.button(text: "Save").click; b.loading.wait_while_present } # Persistent ID needed!
32
+ action(:delete_draft) { |b| b.frm.link(text: "Delete Draft").click } # Persistent ID needed!
33
+
34
+ element(:term_type) { |b| b.frm.select(name: "newCollectionLines['termWrapperList'].termType") }
35
+ element(:term_start_date) { |b| b.frm.text_field(name: "newCollectionLines['termWrapperList'].startDate") }
36
+ element(:term_end_date) { |b| b.frm.text_field(name: "newCollectionLines['termWrapperList'].endDate") }
37
+
38
+ action(:add_term) { |b| b.frm.button(id: "u666_add").click; loading.wait_while_present } # Persistent ID needed!
39
+
40
+ element(:term_info_name) { |b| b.frm.text_field(name: "termWrapperList[0].name") }
41
+ element(:term_info_start_date) { |b| b.frm.text_field(name: "termWrapperList[0].startDate") }
42
+ element(:term_info_end_date) { |b| b.frm.text_field(name: "termWrapperList[0].instructionalDays") }
43
+
44
+ element(:key_date_type) { |b| b.frm.select(name: "newCollectionLines['termWrapperList_0_.keyDatesGroupWrappers_0_.keydates'].keyDateType") }
45
+ element(:key_date_start_date) { |b| b.frm.text_field(name: "newCollectionLines['termWrapperList_0_.keyDatesGroupWrappers_0_.keydates'].startDate") }
46
+ element(:key_date_start_time) { |b| b.frm.text_field(name: "newCollectionLines['termWrapperList_0_.keyDatesGroupWrappers_0_.keydates'].startTime") }
47
+ element(:key_date_start_ampm) { |b| b.frm.select(name: "newCollectionLines['termWrapperList_0_.keyDatesGroupWrappers_0_.keydates'].startTimeAmPm") }
48
+ element(:key_date_end_date) { |b| b.frm.text_field(name: "newCollectionLines['termWrapperList_0_.keyDatesGroupWrappers_0_.keydates'].endDate") }
49
+ element(:key_date_end_time) { |b| b.frm.text_field(name: "newCollectionLines['termWrapperList_0_.keyDatesGroupWrappers_0_.keydates'].endTime") }
50
+ element(:key_date_end_ampm) { |b| b.frm.select(name: "newCollectionLines['termWrapperList_0_.keyDatesGroupWrappers_0_.keydates'].endTimeAmPm") }
51
+ element(:key_date_all_day) { |b| b.frm.checkbox(name: "newCollectionLines['termWrapperList_0_.keyDatesGroupWrappers_0_.keydates'].allDay") }
52
+ element(:key_date_date_range) { |b| b.frm.checkbox(name: "newCollectionLines['termWrapperList_0_.keyDatesGroupWrappers_0_.keydates'].dateRange") }
53
+
54
+ action(:key_date_add) { |b| b.frm.button(id: "u1326_line0_line0_add").click } # Persistent ID needed!
55
+ action(:delete_keydate_group) { |b| b.frm.button(text: "delete keydate group").click } # Persistent ID needed!
56
+
57
+ end
@@ -0,0 +1,18 @@
1
+ class EditPopulation < PopulationsBase
2
+
3
+ expected_element :active
4
+
5
+ frame_element
6
+ population_attribute_elements
7
+ validation_elements
8
+ include PopulationEdit
9
+
10
+ element(:active) { |b| b.frm.radio(value: "kuali.population.population.state.active") }
11
+ element(:inactive) { |b| b.frm.radio(value: "kuali.population.population.state.inactive") }
12
+ element(:operation_element) { |b| b.frm.div(data_label: "Operation").span(index: 1) }
13
+
14
+ value(:operation) { |b| b.operation_element.text }
15
+
16
+ action(:update) { |b| b.frm.button(id: "button_updatePopulation").click; b.loading.wait_while_present }
17
+
18
+ end
@@ -0,0 +1,23 @@
1
+ class Enrollment < BasePage
2
+
3
+ expected_element :home_link
4
+
5
+ wrapper_elements
6
+ frame_element
7
+
8
+ element(:home_link) { |b| b.frm.link(text: "Home") }
9
+
10
+ action(:search_for_calendar_or_term) { |p| p.frm.link(text: "Search for Calendar or Term").click }
11
+ action(:create_academic_calendar) { |p| p.frm.link(text: "Create New Calendar (Academic Year)").click }
12
+ action(:create_holiday_calendar) { |p| p.frm.link(text: "Create Holiday Calendar").click }
13
+ action(:perform_rollover) { |p| p.frm.link(text: "Perform Rollover").click }
14
+ action(:manage_populations) { |p| p.frm.link(text: "Manage Populations").click }
15
+ action(:view_rollover_details) { |p| p.frm.link(text: "View Rollover Details").click }
16
+ action(:create_course_offerings) { |p| p.frm.link(text: "Create Course Offerings").click }
17
+ action(:manage_course_offerings) { |p| p.frm.link(text: "Manage Course Offerings").click }
18
+ action(:schedule_of_classes) { |p| p.frm.link(text: "Schedule of Classes").click }
19
+ action(:manage_registration_windows) { |p| p.frm.link(text: "Manage Registration Windows and Appointments").click }
20
+ action(:add_hold) { |b| b.frm.link(text: "Add Hold").click }
21
+ action(:manage_hold) { |b| b.frm.link(text: "Manage Hold").click }
22
+
23
+ end
@@ -0,0 +1,11 @@
1
+ class EnrollmentFeeLookup < BasePage
2
+
3
+ wrapper_elements
4
+ frame_element
5
+ green_search_buttons
6
+
7
+ element(:identifier) { |b| b.frm.text_field(name: "criteriaFields[id]") }
8
+ element(:reference_object_uri) { |b| b.frm.text_field(name: "criteriaFields[refObjectURI]") }
9
+ element(:reference_object) { |b| b.frm.text_field(name: "criteriaFields[refObjectId]") }
10
+
11
+ end
@@ -0,0 +1,9 @@
1
+ class FormatOfferingInfoLookup < BasePage
2
+
3
+ wrapper_elements
4
+ frame_element
5
+ green_search_buttons
6
+
7
+ element(:course_offering_id) { |b| b.frm.text_field(name: "criteriaFields[courseOfferingId]") }
8
+
9
+ end
@@ -0,0 +1,5 @@
1
+ class Header < BasePage
2
+
3
+ wrapper_elements
4
+
5
+ end
@@ -0,0 +1,34 @@
1
+ class HoldLookup < HoldBase
2
+
3
+ frame_element
4
+ wrapper_elements
5
+ hold_elements
6
+
7
+ element(:active) { |b| b.frm.radio(value: "active") }
8
+ element(:inactive) { |b| b.frm.radio(value: "inactive") }
9
+
10
+ action(:search) { |b| b.frm.button(text: "Search").click; b.loading.wait_while_present }
11
+
12
+ element(:results_table) { |b| b.frm.table(id: "u115") } # Needs persistent id!
13
+
14
+ def view(name)
15
+ target_row(name).link(text: "View").click
16
+ loading.wait_while_present
17
+ end
18
+
19
+ def edit(name)
20
+ target_row(name).link(text: "Edit").click
21
+ loading.wait_while_present
22
+ end
23
+
24
+ def delete(name)
25
+ target_row(name).link(text: "Delete").click
26
+ alert.ok
27
+ loading.wait_while_present
28
+ end
29
+
30
+ def target_row(name)
31
+ results_table.row(text: /#{Regexp.escape(name)}/)
32
+ end
33
+
34
+ end
@@ -0,0 +1,25 @@
1
+ class HolidayCalendarInfo < HolidayBase
2
+
3
+ include Holidays
4
+
5
+ expected_element :last_saved_element
6
+
7
+ frame_element
8
+ wrapper_elements
9
+
10
+ element(:last_saved_element) { |b| b.frm.span(id: "u35_span") } # Persistent ID needed!
11
+
12
+ value(:last_saved) { |b| b.last_saved_element.text } # Persistent ID needed!
13
+ value(:calendar_name) { |b| b.frm.span(id: "u40").text } # Persistent ID needed!
14
+ value(:organization) { |b| b.frm.span(id: "u57").text } # Persistent ID needed!
15
+
16
+ element(:holiday_table) { |b| b.frm.table(id: "u104") } # Persistent ID needed!
17
+
18
+ value(:holiday_calendar_name) { |b| b.frm.span(id: "u404_line0").text } # Persistent ID needed!
19
+ value(:holiday_calendar_org) { |b| b.frm.span(id: "u419_line0").text } # Persistent ID needed!
20
+ value(:holiday_calendar_start_date) { |b| b.frm.span(id: "u434_line0").text } # Persistent ID needed!
21
+ value(:holiday_calendar_end_date) { |b| b.frm.span(id: "u449_line0").text } # Persistent ID needed!
22
+
23
+ element(:holidays_table) { |b| b.frm.table(id: "u464_line0") } # Persistent ID needed!
24
+
25
+ end
@@ -0,0 +1,15 @@
1
+ class Login < PageMaker
2
+
3
+ page_url "#{TEST_SITE}/portal.do?selectedTab=main"
4
+
5
+ crucial_element(:username_field) { |b| b.text_field(:name=>"j_username") }
6
+ crucial_element(:password_field) { |b| b.text_field(:name=>"j_password") }
7
+ crucial_element(:login_button) { |b| b.button(:value=>"Login") }
8
+
9
+ def login_with username, password
10
+ username_field.set username
11
+ password_field.set password
12
+ login_button.click
13
+ end
14
+
15
+ end
@@ -0,0 +1,73 @@
1
+ class MainMenu < BasePage
2
+
3
+ page_url "#{TEST_SITE}/portal.do?selectedTab=main"
4
+ expected_title /Kuali Portal Index/
5
+ expected_element :enrollment_home_link
6
+
7
+ wrapper_elements
8
+
9
+ element(:enrollment_home_link) { |b| b.link(text: "Enrollment Home") }
10
+
11
+ action(:enrollment_home) { |b| b.enrollment_home_link.click }
12
+ action(:kuali_student_home) { |b| b.link(text: "Kuali Student Home").click }
13
+ action(:curriculum_management) { |b| b.link(text: "Curriculum Management").click }
14
+ action(:organization_management) { |b| b.link(text: "Organization Management").click }
15
+ action(:perform_rollover) { |b| b.link(text: "Perform Rollover").click }
16
+ action(:rollover_details) { |b| b.link(text: "Rollover Details").click }
17
+ action(:manage_course_offerings) { |b| b.link(text: "Manage Course Offerings").click }
18
+ action(:delete_target_term) { |b| b.link(text: "Delete Target Term").click }
19
+ action(:release_to_departments) { |b| b.link(text: "Release to Departments").click }
20
+ action(:activity_offering_lookup) { |b| b.link(text: "Activity Offering Lookup").click }
21
+ action(:activity_offering_lookup2) { |b| b.link(text: "Activity Offering Lookup 2").click }
22
+ action(:course_offering_info_lookup) { |b| b.link(title: "CourseOfferingInfo Lookup").click }
23
+ action(:enrollment_fee_info_lookup) { |b| b.link(title: "Enrollment Fee Info Lookup and Inquiry").click }
24
+ action(:format_offering_info_lookup) { |b| b.link(title: "Format Offering Info Lookup").click }
25
+ action(:socrolloverresultinfo_lookup) { |b| b.link(title: "SocRolloverResultInfo Lookup").click }
26
+ action(:socrolloverresultiteminfo_lookup) { |b| b.link(title: "SocRolloverResultItemInfo Lookup").click }
27
+ action(:term_info_lookup) { |b| b.link(title: "Term Info Lookup").click }
28
+ action(:course_info_lookup) { |b| b.link(title: "Course Info Lookup").click }
29
+ action(:new_course_offering) { |b| b.link(title: "Course Offering (New)").click }
30
+ action(:edit_course_offering) { |b| b.link(title: "Course Offering (Edit)").click }
31
+ action(:new_enrollment_fee_info) { |b| b.link(title: "Enrollment Fee Info (New)").click }
32
+ action(:new_format_offering_info) { |b| b.link(title: "Format Offering Info (New)").click }
33
+ action(:manage_registration_windows) { |b| b.link(title: "Manage Registration Windows And Appointments").click }
34
+ action(:registration_windows_lookup) { |b| b.link(title: "Registration Windows Lookup and Inquiry ").click }
35
+ action(:calendar_search) { |b| b.link(title: "Calendar Search").click }
36
+ action(:create_holiday_calendar) { |b| b.link(title: "Create Holiday Calendar").click }
37
+ action(:holiday_calendar_lookup) { |b| b.link(title: "Holiday Calendar Lookup").click }
38
+ action(:holiday_calendar_search) { |b| b.link(title: "Holiday Calendar Search (dev link)").click }
39
+ action(:create_academic_calendar) { |b| b.link(title: "Create Academic Calendar").click }
40
+ action(:copy_academic_calendar) { |b| b.link(title: "Copy Academic Calendar").click }
41
+ action(:atp) { |b| b.link(title: "ATP").click }
42
+ action(:date_range) { |b| b.link(title: "Date Range").click }
43
+ action(:milestone) { |b| b.link(title: "Milestone").click }
44
+ action(:enumeration) { |b| b.link(title: "Enumeration").click }
45
+ action(:enumerated_value) { |b| b.link(title: "Enumerated Value").click }
46
+ action(:message) { |b| b.link(title: "Message").click }
47
+ action(:atp_type) { |b| b.link(title: "ATP Type").click }
48
+ action(:atp_duration_type) { |b| b.link(title: "ATP Duration Type").click }
49
+ action(:atp_seasonal_type) { |b| b.link(title: "ATP Seasonal Type").click }
50
+ action(:date_range_type) { |b| b.link(title: "Date Range Type").click }
51
+ action(:milestone_type) { |b| b.link(title: "Milestone Type").click }
52
+ action(:user_preferences) { |b| b.link(title: "User Preferences").click }
53
+ action(:quicklinks) { |b| b.link(title: "Quicklinks").click }
54
+ action(:routing_report) { |b| b.link(title: "Routing Report").click }
55
+ action(:routing_rules) { |b| b.link(title: "Routing Rules").click }
56
+ action(:routing_rules_delegation) { |b| b.link(title: "Routing Rules Delegation").click }
57
+ action(:routing_and_id_mgmt_doc_heirarchy) { |b| b.link(title: "Routing and Identity Management Document Type Hierarchy").click }
58
+ action(:edoc_lite) { |b| b.link(title: "eDoc Lite").click }
59
+ action(:people_flow) { |b| b.link(title: "People Flow").click }
60
+ action(:notification_search) { |b| b.link(title: "Notification Search").click }
61
+ action(:channel_subscriptions) { |b| b.link(title: "Channel Subscriptions").click }
62
+ action(:delivery_types) { |b| b.link(title: "Delivery Types").click }
63
+ action(:create_new_agenda) { |b| b.link(title: "Create New Agenda").click }
64
+ action(:agenda_lookup) { |b| b.link(title: "Agenda Lookup").click }
65
+ action(:attribute_definition_lookup) { |b| b.link(title: "Attribute Definition Lookup").click }
66
+ action(:term_lookup) { |b| b.link(title: "Term Lookup").click }
67
+ action(:term_specification_lookup) { |b| b.link(title: "Term Specification Lookup").click }
68
+ action(:category_lookup) { |b| b.link(title: "Category Lookup").click }
69
+ action(:manage_population) { |b| b.link(title: "Manage Population (Lookup)").click }
70
+ action(:population_maintenance_edoc) { |b| b.link(title: "Population Maintenance eDoc (New)").click }
71
+ action(:schedule_of_classes) { |b| b.link(title: "Schedule of Classes").click }
72
+
73
+ end
@@ -0,0 +1,72 @@
1
+ class ManageCourseOfferings < BasePage
2
+
3
+ wrapper_elements
4
+ frame_element
5
+
6
+ expected_element :term
7
+
8
+ element(:term) { |b| b.frm.text_field(name: "termCode") }
9
+ element(:course_offering_code) { |b| b.frm.radio(value: "courseOfferingCode") }
10
+ element(:subject_code) { |b| b.frm.radio(value: "subjectCode") }
11
+ element(:input_code) { |b| b.frm.text_field(name: "inputCode") }
12
+
13
+ element(:manage_offering_links_div) { |b| b.frm.div(id: "KS-CourseOfferingManagement-CourseOfferingLinks")}
14
+ action(:manage_registration_groups) { |b| b.manage_offering_links_div.link(text: "Manage Registration Groups").click; b.loading.wait_while_present } # Persistent ID needed!
15
+
16
+ action(:show) { |b| b.frm.button(text: "Show").click; sleep 2; b.loading.wait_while_present } # Persistent ID needed!
17
+
18
+ value(:course_title) { |b| b.frm.div(id: "KS-CourseOfferingManagement-ActivityOfferingResultSection").h3(index: 0).text }
19
+ action(:edit_offering) { |b| b.frm.link(id: "u327").click; b.loading.wait_while_present } # Persistent ID needed!
20
+
21
+ element(:format) { |b| b.frm.select(name: "formatIdForNewAO") }
22
+ element(:activity_type) { |b| b.frm.select(name: "activityIdForNewAO") }
23
+ element(:quantity) { |b| b.frm.text_field(name: "noOfActivityOfferings") }
24
+
25
+ action(:add) { |b| b.frm.button(text: "Add").click; b.loading.wait_while_present } # Persistent ID needed!
26
+
27
+ action(:select_all) { |b| b.frm.link(id: "KS-CourseOfferingManagement-SelectAll").click; b.loading.wait_while_present }
28
+
29
+ AO_CODE = 1
30
+ AO_STATUS = 2
31
+ AO_TYPE = 3
32
+ AO_FORMAT = 4
33
+ AO_INSTRUCTOR = 5
34
+ AO_MAX_ENR = 6
35
+
36
+ element(:activity_offering_results_table) { |b| b.frm.table(class: "uif-tableCollectionLayout dataTable") } # Persistent ID needed!
37
+ element(:selected_offering_actions) { |b| b.frm.select(name: "selectedOfferingAction") }
38
+
39
+ action(:go) { |b| b.frm.button(text: "Go").click; b.loading.wait_while_present }
40
+
41
+ def view_activity_offering(code)
42
+ activity_offering_results_table.link(text: code).click
43
+ loading.wait_while_present
44
+ end
45
+
46
+ def target_row(code)
47
+ activity_offering_results_table.row(text: /\b#{Regexp.escape(code)}\b/)
48
+ end
49
+
50
+ def copy(code)
51
+ target_row(code).link(text: "Copy").click
52
+ loading.wait_while_present
53
+ end
54
+
55
+ def edit(code)
56
+ target_row(code).link(text: "Edit").click
57
+ loading.wait_while_present
58
+ end
59
+
60
+ def delete(code)
61
+ target_row(code).link(text: "Delete").click
62
+ loading.wait_while_present
63
+ end
64
+
65
+ def codes_list
66
+ codes = []
67
+ activity_offering_results_table.rows.each { |row| codes << row[AO_CODE].text }
68
+ codes.delete_if { |code| code == "CODE" }
69
+ codes
70
+ end
71
+
72
+ end
@@ -0,0 +1,11 @@
1
+ class ManagePopulations < PopulationsBase
2
+
3
+ expected_element :keyword
4
+
5
+ frame_element
6
+ population_lookup_elements
7
+ green_search_buttons
8
+ include PopulationsSearch
9
+
10
+ action(:create_new) { |b| b.frm.link(text: "Create New").click }
11
+ end
@@ -0,0 +1,20 @@
1
+ class ManageProcess < BasePage
2
+
3
+ frame_element
4
+ wrapper_elements
5
+ green_search_buttons
6
+
7
+ expected_element :process_name
8
+
9
+ element(:process_name) { |b| b.frm.text_field(name: "name") }
10
+ element(:process_category) { |b| b.frm.select(name: "typeKey") }
11
+ element(:hold_description) { |b| b.frm.text_area(name: "descr") }
12
+ element(:owning_organization) { |b| b.frm.text_field(name: "ownerOrgId") }
13
+
14
+ action(:lookup_organization) { |b| b.frm.button(title: "Search Field").click; b.loading.wait_while_present }
15
+
16
+ element(:active) { |b| b.frm.radio(value: "active") }
17
+ element(:disabled) { |b| b.frm.radio(value: "disabled") }
18
+ element(:inactive) { |b| b.frm.radio(value: "inactive") }
19
+
20
+ end
@@ -0,0 +1,89 @@
1
+ class ManageRegistrationGroups < BasePage
2
+
3
+ wrapper_elements
4
+ frame_element
5
+
6
+ expected_element :subject_code
7
+
8
+ element(:subject_code) { |b| b.frm.div(id: "manageRegistrationGroupsPage").span() } # Persistent ID needed!
9
+ element(:format_select) { |b| b.frm.div(data_label: "Select Format").select() }
10
+
11
+ element(:unassigned_ao_table) { |b| b.frm.div(id: "KS-ManageRegistrationGroupsPage-UnassignedActivityOfferingsPerFormatSection").table() }
12
+
13
+ def target_ao_row(ao_code)
14
+ ao_table.row(text: /\b#{ao_code}\b/)
15
+ end
16
+
17
+ def select_ao_row(ao_code)
18
+ target_ao_row(ao_code).cells[0].checkbox().set
19
+ end
20
+
21
+ element(:ao_cluster_select) { |b| b.frm.div(id: "KS-ManageRegistrationGroupPage-ClusterForFormat").select() }
22
+ action(:ao_cluster_assign_button) { |b| b.frm.div(id: "KS-ManageRegistrationGroupPage-ClusterForFormat").button().click b.loading.wait_while_present}
23
+
24
+ action(:create_new_cluster){ |b|b.frm.button(id: /create_new_cluster_button/).click; b.loading.wait_while_present}
25
+
26
+ action(:add_button) { |b| b.frm.div(id: "createNewClusterSection").button(text: "Create Cluster").click; b.loading.wait_while_present }
27
+
28
+ action(:generate_reg_groups_button) { |b| b.frm.button(id: "generate_unconstrained_rgs_button").click; b.loading.wait_while_present }
29
+
30
+ element(:cluster_list_div) { |b| b.frm.div(id: "KS-ManageRegistrationGroupPage-HasClusterCondition") }
31
+
32
+ #create cluster dialog
33
+ element(:createNewClusterDialog_div) { |b| b.frm.div(id: "createNewClusterDialog") }
34
+ element(:private_name) { |b| b.createNewClusterDialog_div.div(data_label: "Private Name").text_field() }
35
+ element(:published_name) { |b| b.createNewClusterDialog_div.div(data_label: "Published Name").text_field() }
36
+ action(:create_cluster){ |b|b.createNewClusterDialog_div.checkbox(index: 0).click; b.loading.wait_while_present}
37
+ action(:cancel_create_cluster){ |b|b.createNewClusterDialog_div.checkbox(index: 1).click; b.loading.wait_while_present}
38
+ #end create cluster dialog
39
+
40
+ def cluster_list_item_div_id(private_name)
41
+ img_id = cluster_list_div.span(text: /#{Regexp.escape("(#{private_name})")}/).image().id
42
+ img_id[0..-5] #eg changes u532_line0_exp to u532_line0
43
+ end
44
+
45
+ def cluster_list_row_name_text(private_name)
46
+ div_id = cluster_list_item_div_id(private_name)
47
+ cluster_list_div.div(id: "#{div_id}").span().text()
48
+ end
49
+
50
+ def cluster_list_row_generate_reg_groups(private_name)
51
+ div_id = cluster_list_item_div_id(private_name)
52
+ cluster_list_div.div(id: "#{div_id}").link(text: "Generate Registration Groups").click
53
+ end
54
+
55
+ def cluster_list_row_rename_cluster(private_name)
56
+ div_id = cluster_list_item_div_id(private_name)
57
+ cluster_list_div.div(id: "#{div_id}").link(text: "Rename Cluster").click
58
+ end
59
+
60
+ def cluster_list_row_remove_cluster(private_name)
61
+ div_id = cluster_list_item_div_id(private_name)
62
+ cluster_list_div.div(id: "#{div_id}").link(text: "Remove Cluster").click
63
+ end
64
+
65
+
66
+ #test script shell
67
+ #@course_offering = make CourseOffering
68
+ #@course_offering.manage
69
+ #on ManageCourseOfferings do |page|
70
+ # page.manage_registration_groups
71
+ #end
72
+ #on ManageRegistrationGroups do |page|
73
+ # puts page.subject_code.text()
74
+ # #page.private_name.set "test1pri"
75
+ # #page.published_name.set "test1pub"
76
+ # #
77
+ # #puts page.ao_table.rows.count
78
+ # puts page.cluster_list_row_name_text("test1pri")
79
+ # # page.ao_cluster_select.select("test1")
80
+ # #page.cluster_list_row_generate_reg_groups("test1")
81
+ # puts page.target_ao_row("A").cells[1].text
82
+ # puts page.target_ao_row("A").cells[2].text
83
+ # page.select_ao_row("A")
84
+ # page.ao_cluster_select.select("test1pub")
85
+ # page.ao_cluster_assign_button
86
+ #end
87
+
88
+
89
+ end
@@ -0,0 +1,12 @@
1
+ class ManageRegistrationWindows < BasePage
2
+
3
+ wrapper_elements
4
+ frame_element
5
+ validation_elements
6
+
7
+ element(:term_type) { |b| b.frm.select(name: "termType") }
8
+ element(:year) { |b| b.frm.text_field(name: "termYear") }
9
+
10
+ action(:search) { |b| b.frm.button(text: "Search").click; b.loading.wait_while_present } # Persistent ID needed!
11
+
12
+ end
@@ -0,0 +1,39 @@
1
+ class OrganizationLookup < OrganizationBase
2
+
3
+ expected_element :short_name
4
+
5
+ frame_element
6
+ wrapper_elements
7
+ green_search_buttons
8
+
9
+ organization_elements
10
+
11
+ end
12
+
13
+ class OrgLookupPopUp < OrganizationBase
14
+
15
+ expected_element :short_name
16
+
17
+ def frm
18
+ self.frame(class: "fancybox-iframe") # Persistent ID needed!
19
+ end
20
+
21
+ element(:results_table) { |b| b.frm.div(id: "uLookupResults").table(index: 0) }
22
+
23
+ def return_value(short_name)
24
+ target_org_row(short_name).wait_until_present
25
+ target_org_row(short_name).link(text: "return value").wait_until_present
26
+ target_org_row(short_name).link(text: "return value").click
27
+ loading.wait_while_present
28
+ end
29
+
30
+ def target_org_row(short_name)
31
+ results_table.row(text: /\b#{Regexp.escape(short_name.to_s)}\b/)
32
+ end
33
+
34
+ wrapper_elements
35
+ green_search_buttons
36
+
37
+ organization_elements
38
+
39
+ end
@@ -0,0 +1,68 @@
1
+ class PerformRollover < BasePage
2
+
3
+ wrapper_elements
4
+ frame_element
5
+
6
+ expected_element :target_term
7
+
8
+ element(:target_term) { |b| b.frm.text_field(name: "targetTermCode") }
9
+ element(:source_term) { |b| b.frm.text_field(name: "sourceTermCode") }
10
+
11
+ element(:target_term_input_div) { |b| b.frm.div(data_label: "Target Term")}
12
+ action(:target_term_go) { |b| b.target_term_input_div.button(text: "Go").click; b.loading.wait_while_present }
13
+
14
+ value(:target_term_code) { |b| b.frm.div(data_label: "Term Code").span(index: 2).text }
15
+ value(:target_term_start_date) { |b| b.frm.div(data_label: "Term Start Date").span(index: 2).text }
16
+ value(:target_term_end_date) { |b| b.frm.div(data_label: "Term End Date").span(index: 2).text }
17
+
18
+ element(:target_term_validation_msg_list) { |b| b.target_term_input_div.div(class: "uif-validationMessages uif-groupValidationMessages").ul }
19
+ value(:target_term_first_validation_msg) { |b| b.target_term_validation_msg_list.link.text }
20
+
21
+ element(:source_term_input_div) { |b| b.frm.div(data_label: "Source Term")}
22
+ element(:source_term_go_element) { |b| b.source_term_input_div.button(text: "Go") }
23
+ action(:source_term_go) { |b| b.source_term_go_element.click; b.loading.wait_while_present }
24
+
25
+ element(:source_term_validation_msg_list) { |b| b.source_term_input_div.div(class: "uif-validationMessages uif-groupValidationMessages").ul }
26
+ value(:source_term_first_validation_msg) { |b| b.source_term_validation_msg_list.link.text }
27
+
28
+ value(:source_term_code) { |b| b.frm.div(data_label: "Term Code", index: 1).span(index: 2).text }
29
+ value(:source_term_start_date) { |b| b.frm.div(data_label: "Term Start Date", index: 1).span(index: 2).text }
30
+ value(:source_term_end_date) { |b| b.frm.div(data_label: "Term End Date", index: 1).span(index: 2).text }
31
+
32
+ element(:rollover_button) { |b| b.frm.button(text: /Rollover/) }
33
+
34
+ action(:rollover_course_offerings) { |b| b.rollover_button.click; b.loading.wait_while_present }
35
+
36
+ value(:status) { |b| b.frm.div(data_label: "Status").span(index: 2).text } #status shows after rollover initiated
37
+
38
+
39
+ # looks for next available target term in the one specified is used - returns actual target term code used
40
+ def select_terms(m_target_term,m_source_term)
41
+ actual_target_term = m_target_term
42
+ select_target_term(actual_target_term)
43
+ source_term.set m_source_term
44
+ retry_ctr = 0
45
+
46
+ while source_term_go_element.disabled? and retry_ctr < 30
47
+ actual_target_term = increment_term_code_year(target_term.value)
48
+ select_target_term(actual_target_term)
49
+ retry_ctr = retry_ctr + 1
50
+ end
51
+
52
+ source_term_go
53
+ loading.wait_while_present
54
+ actual_target_term
55
+ end
56
+
57
+ private
58
+
59
+ def select_target_term(term)
60
+ target_term.set term
61
+ target_term_go
62
+ loading.wait_while_present
63
+ end
64
+
65
+ def increment_term_code_year(term_code)
66
+ "#{term_code[0..1]}#{(term_code[2..3].to_i + 1)}#{term_code[4]}"
67
+ end
68
+ end