sambal-kuali 0.0.1

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