sambal-cle 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +3 -5
- data/Gemfile.lock +6 -9
- data/lib/sambal-cle/base_page.rb +21 -3
- data/lib/sambal-cle/data_objects/announcement.rb +1 -1
- data/lib/sambal-cle/data_objects/assignment.rb +3 -2
- data/lib/sambal-cle/data_objects/course.rb +5 -4
- data/lib/sambal-cle/data_objects/event.rb +7 -7
- data/lib/sambal-cle/data_objects/forum.rb +3 -2
- data/lib/sambal-cle/data_objects/lesson.rb +3 -1
- data/lib/sambal-cle/data_objects/resource.rb +3 -1
- data/lib/sambal-cle/page_objects/account.rb +15 -66
- data/lib/sambal-cle/page_objects/aliases.rb +3 -2
- data/lib/sambal-cle/page_objects/announcements.rb +16 -31
- data/lib/sambal-cle/page_objects/assessments.rb +22 -55
- data/lib/sambal-cle/page_objects/assignments.rb +1 -1
- data/lib/sambal-cle/page_objects/blogger.rb +21 -77
- data/lib/sambal-cle/page_objects/blogs.rb +3 -5
- data/lib/sambal-cle/page_objects/calendar.rb +22 -40
- data/lib/sambal-cle/page_objects/chat_room.rb +2 -2
- data/lib/sambal-cle/page_objects/email_archive.rb +1 -2
- data/lib/sambal-cle/page_objects/evaluations.rb +78 -50
- data/lib/sambal-cle/page_objects/feedback.rb +1 -5
- data/lib/sambal-cle/page_objects/forms.rb +14 -55
- data/lib/sambal-cle/page_objects/forums.rb +11 -24
- data/lib/sambal-cle/page_objects/glossary.rb +6 -12
- data/lib/sambal-cle/page_objects/home.rb +7 -18
- data/lib/sambal-cle/page_objects/jforums.rb +60 -197
- data/lib/sambal-cle/page_objects/job_scheduler.rb +16 -49
- data/lib/sambal-cle/page_objects/lessons.rb +11 -34
- data/lib/sambal-cle/page_objects/matrix.rb +12 -14
- data/lib/sambal-cle/page_objects/messages.rb +71 -466
- data/lib/sambal-cle/page_objects/my_workspace.rb +3 -3
- data/lib/sambal-cle/page_objects/podcasts.rb +1 -6
- data/lib/sambal-cle/page_objects/polls.rb +5 -5
- data/lib/sambal-cle/page_objects/portfolio_templates.rb +16 -66
- data/lib/sambal-cle/page_objects/portfolios.rb +17 -67
- data/lib/sambal-cle/page_objects/profile.rb +5 -16
- data/lib/sambal-cle/page_objects/profile2.rb +51 -119
- data/lib/sambal-cle/page_objects/public_search.rb +6 -27
- data/lib/sambal-cle/page_objects/realms.rb +2 -2
- data/lib/sambal-cle/page_objects/resources.rb +89 -116
- data/lib/sambal-cle/page_objects/resources_roster.rb +1 -0
- data/lib/sambal-cle/page_objects/rosters.rb +3 -13
- data/lib/sambal-cle/page_objects/rwiki.rb +2 -6
- data/lib/sambal-cle/page_objects/search.rb +10 -10
- data/lib/sambal-cle/page_objects/sections.rb +40 -81
- data/lib/sambal-cle/page_objects/site_setup.rb +46 -74
- data/lib/sambal-cle/page_objects/sites.rb +24 -110
- data/lib/sambal-cle/page_objects/styles.rb +6 -51
- data/lib/sambal-cle/page_objects/syllabus.rb +12 -26
- data/lib/sambal-cle/page_objects/user_membership.rb +3 -15
- data/lib/sambal-cle/page_objects/users.rb +9 -25
- data/sambal-cle.gemspec +1 -1
- data/test/add_assignment_to_calendar_spec.rb +55 -1
- data/test/config.yml +1 -1
- data/test/duplicate_site_spec.rb +11 -10
- data/test/import_site_content_spec.rb +6 -5
- metadata +2 -2
@@ -9,10 +9,8 @@ class JobScheduler < BasePage
|
|
9
9
|
|
10
10
|
# Clicks the Jobs link, then instantiates
|
11
11
|
# the JobList Class.
|
12
|
-
|
13
|
-
|
14
|
-
JobList.new(@browser)
|
15
|
-
end
|
12
|
+
link "Jobs"
|
13
|
+
link "Filter Events"
|
16
14
|
|
17
15
|
end
|
18
16
|
|
@@ -21,26 +19,12 @@ class JobList < BasePage
|
|
21
19
|
|
22
20
|
frame_element
|
23
21
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
# Clicks the link with the text "Triggers" associated with the
|
32
|
-
# specified job name,
|
33
|
-
# then instantiates the EditTriggers Class.
|
34
|
-
def triggers(job_name)
|
35
|
-
frm.div(:class=>"portletBody").table(:class=>"listHier lines").row(:text=>/#{Regexp.escape(job_name)}/).link(:text=>/Triggers/).click
|
36
|
-
sleep 1
|
37
|
-
EditTriggers.new(@browser)
|
38
|
-
end
|
39
|
-
|
40
|
-
def event_log
|
41
|
-
frm.link(:text=>"Event Log").click
|
42
|
-
EventLog.new(@browser)
|
43
|
-
end
|
22
|
+
link "New Job"
|
23
|
+
link "Delete"
|
24
|
+
link "Event Log"
|
25
|
+
|
26
|
+
action(:triggers) { |job_name, b| b.frm.div(:class=>"portletBody").table(:class=>"listHier lines").row(:text=>/#{Regexp.escape(job_name)}/).link(:text=>/Triggers/).click }
|
27
|
+
element(:check) { |job_name, b| b.frm.div(:class=>"portletBody").table(:class=>"listHier lines").row(:text=>/#{Regexp.escape(job_name)}/).checkbox }
|
44
28
|
|
45
29
|
end
|
46
30
|
|
@@ -51,13 +35,11 @@ class CreateNewJob < BasePage
|
|
51
35
|
|
52
36
|
# Clicks the Post button, then
|
53
37
|
# instantiates the JobList Class.
|
54
|
-
|
55
|
-
frm.button(:value=>"Post").click
|
56
|
-
JobList.new(@browser)
|
57
|
-
end
|
38
|
+
button "Post"
|
58
39
|
|
59
40
|
element(:job_name) { |b| b.frm.text_field(:id=>"_id2:job_name") }
|
60
41
|
element(:type) { |b| b.frm.select_list(:name=>"_id2:_id10") }
|
42
|
+
|
61
43
|
end
|
62
44
|
|
63
45
|
# The page for Editing Triggers
|
@@ -67,20 +49,10 @@ class EditTriggers < BasePage
|
|
67
49
|
|
68
50
|
# Clicks the "Run Job Now" link, then
|
69
51
|
# instantiates the RunJobConfirmation Class.
|
70
|
-
|
71
|
-
frm.div(:class=>"portletBody").link(:text=>"Run Job Now").click
|
72
|
-
RunJobConfirmation.new(@browser)
|
73
|
-
end
|
52
|
+
action(:run_job_now) { |b| b.frm.div(:class=>"portletBody").link(:text=>"Run Job Now").click }
|
74
53
|
|
75
|
-
|
76
|
-
|
77
|
-
JobList.new(@browser)
|
78
|
-
end
|
79
|
-
|
80
|
-
def new_trigger
|
81
|
-
frm.link(:text=>"New Trigger").click
|
82
|
-
CreateTrigger.new(@browser)
|
83
|
-
end
|
54
|
+
link "Return_to_Jobs"
|
55
|
+
link "New Trigger"
|
84
56
|
|
85
57
|
end
|
86
58
|
|
@@ -89,13 +61,11 @@ class CreateTrigger < BasePage
|
|
89
61
|
|
90
62
|
frame_element
|
91
63
|
|
92
|
-
|
93
|
-
frm.button(:value=>"Post").click
|
94
|
-
EditTriggers.new(@browser)
|
95
|
-
end
|
64
|
+
button "Post"
|
96
65
|
|
97
66
|
element(:name) { |b| b.frm.text_field(:id=>"_id2:trigger_name") }
|
98
67
|
element(:cron_expression) { |b| b.frm.text_field(:id=>"_id2:trigger_expression") }
|
68
|
+
|
99
69
|
end
|
100
70
|
|
101
71
|
|
@@ -106,10 +76,7 @@ class RunJobConfirmation < BasePage
|
|
106
76
|
|
107
77
|
# Clicks the "Run Now" button, then
|
108
78
|
# instantiates the JobList Class.
|
109
|
-
|
110
|
-
frm.button(:value=>"Run Now").click
|
111
|
-
JobList.new(@browser)
|
112
|
-
end
|
79
|
+
button "Run Now"
|
113
80
|
|
114
81
|
end
|
115
82
|
|
@@ -46,29 +46,14 @@ class Lessons < LessonsBase
|
|
46
46
|
action(:archive) { |b| b.frm.link(text: "Archive").click }
|
47
47
|
action(:move_sections) { |b| b.frm.link(text: "Move Section(s)").click }
|
48
48
|
|
49
|
-
|
50
|
-
|
51
|
-
# AddEditLesson, or ViewLesson class, depending
|
52
|
-
# on which page loads.
|
53
|
-
#
|
54
|
-
# Will error out if there is no
|
55
|
-
# matching link in the list.
|
56
|
-
def open_lesson(name)
|
57
|
-
frm.link(:text=>name).click
|
58
|
-
end
|
59
|
-
alias open_section open_lesson
|
49
|
+
action(:open_lesson) { |name, b| b.frm.link(:text=>name).click }
|
50
|
+
alias :open_section :open_lesson
|
60
51
|
|
61
|
-
|
62
|
-
frm.link(:text=>name).href
|
63
|
-
end
|
52
|
+
action(:href) { |name, b| b.frm.link(:text=>name).href }
|
64
53
|
|
65
|
-
|
66
|
-
frm.tr(text: /#{Regexp.escape(name)}/).td(class: "ModCheckClass").checkbox.set
|
67
|
-
end
|
54
|
+
action(:check_lesson) { |name, b| b.frm.tr(text: /#{Regexp.escape(name)}/).td(class: "ModCheckClass").checkbox.set }
|
68
55
|
|
69
|
-
|
70
|
-
frm.td(class: "SectionClass", text: /#{Regexp.escape(name)}/).checkbox.set
|
71
|
-
end
|
56
|
+
action(:check_section) { |name, b| b.frm.td(class: "SectionClass", text: /#{Regexp.escape(name)}/).checkbox.set }
|
72
57
|
|
73
58
|
# Returns an array of the Module titles displayed on the page.
|
74
59
|
def lessons_list
|
@@ -108,7 +93,7 @@ class ViewModule < LessonsBase
|
|
108
93
|
return list
|
109
94
|
end
|
110
95
|
|
111
|
-
|
96
|
+
link "Next"
|
112
97
|
|
113
98
|
# Returns the text of the Module title row
|
114
99
|
value(:module_title) { |b| b.frm.span(:id=>/modtitle/).text }
|
@@ -129,14 +114,10 @@ class ViewModuleList < LessonsBase
|
|
129
114
|
menu_elements
|
130
115
|
|
131
116
|
# LessonStudentSide
|
132
|
-
|
133
|
-
frm.link(:text=>name).click
|
134
|
-
end
|
117
|
+
action(:open_lesson) { |name, b| b.frm.link(:text=>name).click }
|
135
118
|
|
136
119
|
# SectionStudentSide
|
137
|
-
|
138
|
-
frm.link(:text=>name).click
|
139
|
-
end
|
120
|
+
action(:open_section) { |name, b| b.frm.link(:text=>name).click }
|
140
121
|
|
141
122
|
end
|
142
123
|
|
@@ -159,13 +140,9 @@ class LessonManage < LessonsBase
|
|
159
140
|
|
160
141
|
menu_elements
|
161
142
|
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
# Clicks the Import/Export button and
|
167
|
-
# next is the LessonImportExport class.
|
168
|
-
action(:import_export) {|b| b.frm.link(:text=>"Import/Export").click }
|
143
|
+
link "Manage Content"
|
144
|
+
link "Sort"
|
145
|
+
link "Import/Export"
|
169
146
|
|
170
147
|
end
|
171
148
|
|
@@ -9,11 +9,11 @@ class Matrices < BasePage
|
|
9
9
|
|
10
10
|
# Clicks the Add link and instantiates
|
11
11
|
# the AddEditMatrix Class.
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
link "Add"
|
13
|
+
link "Import"
|
14
|
+
link "Manage Site Associations"
|
15
|
+
link "Permissions"
|
16
|
+
link "My Preferences"
|
17
17
|
|
18
18
|
# Clicks the "Edit" link for the specified
|
19
19
|
# Matrix item, then instantiates the EditMatrixCells.
|
@@ -58,19 +58,19 @@ class AddEditMatrix < BasePage
|
|
58
58
|
element(:editor) { |b| b.frm.frame(:id=>"descriptionTextArea___Frame") }
|
59
59
|
|
60
60
|
# Clicks the "Create Matrix" button
|
61
|
-
|
61
|
+
button "Create Matrix"
|
62
62
|
|
63
63
|
# Clicks the "Save Changes" button
|
64
|
-
|
64
|
+
button "Save Changes"
|
65
65
|
|
66
66
|
# Clicks the "Select Style" link
|
67
|
-
|
67
|
+
link "Select Style"
|
68
68
|
|
69
69
|
# Clicks the "Add Column" link
|
70
|
-
|
70
|
+
link "Add Column"
|
71
71
|
|
72
72
|
# Clicks the "Add Row" link
|
73
|
-
|
73
|
+
link "Add Row"
|
74
74
|
|
75
75
|
element(:title) { |b| b.frm.text_field(:id=>"title-id") }
|
76
76
|
|
@@ -81,9 +81,7 @@ class SelectMatrixStyle < BasePage
|
|
81
81
|
|
82
82
|
frame_element
|
83
83
|
|
84
|
-
|
85
|
-
# instantiates the AddEditMatrix Class.
|
86
|
-
action(:go_back) { |b| b.frm.button(:value=>"Go Back").click }
|
84
|
+
button "Go Back"
|
87
85
|
|
88
86
|
# Clicks the "Select" link for the specified
|
89
87
|
# Style, then instantiates the AddEditMatrix Class.
|
@@ -96,7 +94,7 @@ class RowColumnCommon < BasePage
|
|
96
94
|
frame_element
|
97
95
|
class << self
|
98
96
|
def table_elements
|
99
|
-
|
97
|
+
button "Update"
|
100
98
|
element(:name) { |b| b.frm.text_field(:name=>"description") }
|
101
99
|
element(:background_color) { |b| b.frm.text_field(:id=>"color-id") }
|
102
100
|
element(:font_color) { |b| b.frm.text_field(:id=>"textColor-id") }
|
@@ -2,188 +2,19 @@ class Messages < BasePage
|
|
2
2
|
|
3
3
|
frame_element
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
ComposeMessage.new(@browser)
|
12
|
-
end
|
13
|
-
|
14
|
-
def received
|
15
|
-
frm.link(:text=>"Received").click
|
16
|
-
MessagesReceivedList.new(@browser)
|
17
|
-
end
|
18
|
-
|
19
|
-
def sent
|
20
|
-
frm.link(:text=>"Sent").click
|
21
|
-
MessagesSentList.new(@browser)
|
22
|
-
end
|
23
|
-
|
24
|
-
def deleted
|
25
|
-
frm.link(:text=>"Deleted").click
|
26
|
-
MessagesDeletedList.new(@browser)
|
27
|
-
end
|
28
|
-
|
29
|
-
def draft
|
30
|
-
frm.link(:text=>"Draft").click
|
31
|
-
MessagesDraftList.new(@browser)
|
32
|
-
end
|
33
|
-
|
34
|
-
def open_folder(foldername)
|
35
|
-
frm.link(:text=>foldername).click
|
36
|
-
FolderList.new(@browser)
|
37
|
-
end
|
38
|
-
|
39
|
-
def new_folder
|
40
|
-
frm.link(:text=>"New Folder").click
|
41
|
-
MessagesNewFolder.new(@browser)
|
42
|
-
end
|
43
|
-
|
44
|
-
def settings
|
45
|
-
frm.link(:text=>"Settings").click
|
46
|
-
MessagesSettings.new(@browser)
|
47
|
-
end
|
48
|
-
|
49
|
-
# Gets the count of messages
|
50
|
-
# in the specified folder
|
51
|
-
# and returns it as a string
|
52
|
-
def total_messages_in_folder(folder_name)
|
53
|
-
frm.table(:id=>"msgForum:_id23:0:privateForums").row(:text=>/#{Regexp.escape(folder_name)}/).span(:class=>"textPanelFooter", :index=>0).text =~ /\d+/
|
54
|
-
return $~.to_s
|
55
|
-
end
|
56
|
-
|
57
|
-
# Gets the count of unread messages
|
58
|
-
# in the specified folder and returns it
|
59
|
-
# as a string
|
60
|
-
def unread_messages_in_folder(folder_name)
|
61
|
-
frm.table(:id=>"msgForum:_id23:0:privateForums").row(:text=>/#{Regexp.escape(folder_name)}/).span(:text=>/unread/).text =~ /\d+/
|
62
|
-
return $~.to_s
|
63
|
-
end
|
64
|
-
|
65
|
-
# Gets all the folder names
|
66
|
-
def folders
|
67
|
-
links = frm.table(:class=>"hierItemBlockWrapper").links.find_all { |link| link.title != /Folder Settings/ }
|
68
|
-
folders = []
|
69
|
-
links.each { |link| folders << link.text }
|
70
|
-
return folders
|
71
|
-
end
|
72
|
-
|
73
|
-
def folder_settings(folder_name)
|
74
|
-
frm.table(:class=>"hierItemBlockWrapper").row(:text=>/#{Regexp.escape(folder_name)}/).link(:text=>"Folder Settings").click
|
75
|
-
MessageFolderSettings.new(@browser)
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
class MessagesSentList < BasePage
|
80
|
-
|
81
|
-
frame_element
|
82
|
-
|
83
|
-
# Clicks the "Messages" breadcrumb link to return
|
84
|
-
# to the top level of Messages. Then instantiates
|
85
|
-
# the Messages class.
|
86
|
-
def messages
|
87
|
-
frm.link(:text=>"Messages").click
|
88
|
-
Messages.new(@browser)
|
89
|
-
end
|
90
|
-
|
91
|
-
# Creates an array consisting of the
|
92
|
-
# message subject lines.
|
93
|
-
def subjects
|
94
|
-
titles = []
|
95
|
-
messages = frm.table(:id=>"prefs_pvt_form:pvtmsgs")
|
96
|
-
1.upto(messages.rows.size-1) do |x|
|
97
|
-
titles << messages.row(:index=>x).a.title
|
98
|
-
end
|
99
|
-
return titles
|
100
|
-
end
|
101
|
-
|
102
|
-
# Returns a string consisting of the content of the
|
103
|
-
# page header--or "breadcrumb", as it's called.
|
104
|
-
def header
|
105
|
-
frm.div(:class=>"breadCrumb specialLink").text
|
106
|
-
end
|
107
|
-
|
108
|
-
# Clicks the Compose Message button,
|
109
|
-
# then instantiates the
|
110
|
-
# ComposeMessage class.
|
111
|
-
def compose_message
|
112
|
-
frm.link(:text=>"Compose Message").click
|
113
|
-
ComposeMessage.new(@browser)
|
114
|
-
end
|
115
|
-
|
116
|
-
# Grabs the text from the message
|
117
|
-
# box that appears after doing some
|
118
|
-
# action.
|
119
|
-
#
|
120
|
-
# Use this method to simplify writing
|
121
|
-
# Test::Unit asserts
|
122
|
-
def alert_message_text
|
123
|
-
frm.span(:class=>"success").text
|
124
|
-
end
|
125
|
-
|
126
|
-
action(:check_all) { |b| b.frm.link(:text=>"Check All").click }
|
127
|
-
|
128
|
-
end
|
129
|
-
|
130
|
-
class MessagesReceivedList < BasePage
|
131
|
-
|
132
|
-
frame_element
|
133
|
-
|
134
|
-
# Returns a string consisting of the content of the
|
135
|
-
# page header--or "breadcrumb", as it's called.
|
136
|
-
def header
|
137
|
-
frm.div(:class=>"breadCrumb specialLink").text
|
138
|
-
end
|
139
|
-
|
140
|
-
# Clicks the "Messages" breadcrumb link to return
|
141
|
-
# to the top level of Messages. Then instantiates
|
142
|
-
# the Messages class.
|
143
|
-
def messages
|
144
|
-
frm.link(:text=>"Messages").click
|
145
|
-
Messages.new(@browser)
|
146
|
-
end
|
147
|
-
|
148
|
-
def compose_message
|
149
|
-
frm.link(:text=>"Compose Message").click
|
150
|
-
ComposeMessage.new(@browser)
|
151
|
-
end
|
152
|
-
|
153
|
-
# Clicks on the specified message subject
|
154
|
-
# then instantiates the MessageView class.
|
155
|
-
def open_message(subject)
|
156
|
-
frm.link(:text, /#{Regexp.escape(subject)}/).click
|
157
|
-
MessageView.new(@browser)
|
158
|
-
end
|
159
|
-
|
160
|
-
# Grabs the text from the message
|
161
|
-
# box that appears after doing some
|
162
|
-
# action.
|
163
|
-
#
|
164
|
-
# Use this method to simplify writing
|
165
|
-
# Test::Unit asserts
|
166
|
-
def alert_message_text
|
167
|
-
frm.span(:class=>"success").text
|
168
|
-
end
|
169
|
-
|
170
|
-
# Checks the checkbox for the specified
|
171
|
-
# message in the list.
|
172
|
-
#
|
173
|
-
# Will throw an error if the specified
|
174
|
-
# subject is not present.
|
175
|
-
def check_message(subject)
|
5
|
+
value(:header) { |b| b.frm.div(:class=>"breadCrumb specialLink").text }
|
6
|
+
value(:alert_message_text) { |b| b.frm.span(:class=>"success").text }
|
7
|
+
link "Compose Message"
|
8
|
+
link "Messages"
|
9
|
+
action(:open_message) { |subject, b| b.frm.link(:text, /#{Regexp.escape(subject)}/).click }
|
10
|
+
action(:check_message) { |subject, b|
|
176
11
|
index=subjects.index(subject)
|
177
|
-
frm.checkbox(:name=>"prefs_pvt_form:pvtmsgs:#{index}:_id122").set
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
def mark_read
|
184
|
-
frm.link(:text=>"Mark Read").click
|
185
|
-
MessagesReceivedList.new(@browser)
|
186
|
-
end
|
12
|
+
b.frm.checkbox(:name=>"prefs_pvt_form:pvtmsgs:#{index}:_id122").set }
|
13
|
+
link "Mark Read"
|
14
|
+
element(:view) { |b| b.frm.select(:id=>"prefs_pvt_form:viewlist") }
|
15
|
+
link "Check All"
|
16
|
+
link "Delete"
|
17
|
+
link "Move"
|
187
18
|
|
188
19
|
# Creates an array consisting of the
|
189
20
|
# message subject lines.
|
@@ -196,103 +27,44 @@ class MessagesReceivedList < BasePage
|
|
196
27
|
return titles
|
197
28
|
end
|
198
29
|
|
199
|
-
# Returns an Array object containing the
|
200
|
-
# subjects of the displayed messages that are
|
201
|
-
# marked unread.
|
202
30
|
def unread_messages
|
203
31
|
# TODO - Write this method
|
204
32
|
end
|
205
33
|
|
206
|
-
# Clicks the Move link, then
|
207
|
-
# instantiates the MoveMessageTo Class.
|
208
|
-
def move
|
209
|
-
frm.link(:text, "Move").click
|
210
|
-
MoveMessageTo.new(@browser)
|
211
|
-
end
|
212
|
-
|
213
|
-
element(:view) { |b| b.frm.select(:id=>"prefs_pvt_form:viewlist") }
|
214
|
-
action(:check_all) { |b| b.frm.link(:text=>"Check All").click }
|
215
|
-
action(:delete) { |b| b.frm.link(:text=>"Delete").click }
|
216
|
-
|
217
34
|
end
|
218
35
|
|
219
|
-
|
220
|
-
class FolderList < BasePage
|
36
|
+
class MessageFolders < BasePage
|
221
37
|
|
222
38
|
frame_element
|
223
39
|
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
# then instantiates the MessageView class.
|
231
|
-
def open_message(subject)
|
232
|
-
frm.link(:text, /#{Regexp.escape(subject)}/).click
|
233
|
-
MessageView.new(@browser)
|
234
|
-
end
|
235
|
-
|
236
|
-
# Grabs the text from the message
|
237
|
-
# box that appears after doing some
|
238
|
-
# action.
|
239
|
-
#
|
240
|
-
# Use this method to simplify writing
|
241
|
-
# Test::Unit asserts
|
242
|
-
def alert_message_text
|
243
|
-
frm.span(:class=>"success").text
|
244
|
-
end
|
245
|
-
|
246
|
-
# Checks the checkbox for the specified
|
247
|
-
# message in the list.
|
248
|
-
#
|
249
|
-
# Will throw an error if the specified
|
250
|
-
# subject is not present.
|
251
|
-
def check_message(subject)
|
252
|
-
index=subjects.index(subject)
|
253
|
-
frm.checkbox(:name=>"prefs_pvt_form:pvtmsgs:#{index}:_id122").set
|
254
|
-
end
|
40
|
+
link "Received"
|
41
|
+
link "Sent"
|
42
|
+
link "Deleted"
|
43
|
+
link "Draft"
|
44
|
+
link "New Folder"
|
45
|
+
link "Settings"
|
255
46
|
|
256
|
-
|
257
|
-
# Breadcrumb bar at the top of the
|
258
|
-
# page, then instantiates the Messages
|
259
|
-
# class
|
260
|
-
def messages
|
261
|
-
frm.link(:text=>"Messages").click
|
262
|
-
Messages.new(@browser)
|
263
|
-
end
|
264
|
-
|
265
|
-
# Clicks the "Mark Read" link, then
|
266
|
-
# reinstantiates the class because
|
267
|
-
# the page partially refreshes.
|
268
|
-
def mark_read
|
269
|
-
frm.link(:text=>"Mark Read").click
|
270
|
-
MessagesReceivedList.new(@browser)
|
271
|
-
end
|
47
|
+
action(:open_folder) { |foldername, b| b.frm.link(:text=>foldername).click }
|
272
48
|
|
273
|
-
#
|
274
|
-
#
|
275
|
-
|
276
|
-
|
277
|
-
messages = frm.table(:id=>"prefs_pvt_form:pvtmsgs")
|
278
|
-
1.upto(messages.rows.size-1) do |x|
|
279
|
-
titles << messages.row(:index=>x).a.title
|
280
|
-
end
|
281
|
-
return titles
|
282
|
-
end
|
49
|
+
# Gets the count of messages
|
50
|
+
# in the specified folder
|
51
|
+
# and returns it as a string
|
52
|
+
action(:total_messages_in_folder) { |folder_name, b| b.frm.table(:id=>"msgForum:_id23:0:privateForums").row(:text=>/#{Regexp.escape(folder_name)}/).span(:class=>"textPanelFooter", :index=>0).text =~ /\d+/; return $~.to_s }
|
283
53
|
|
284
|
-
|
285
|
-
|
286
|
-
|
54
|
+
# Gets the count of unread messages
|
55
|
+
# in the specified folder and returns it
|
56
|
+
# as a string
|
57
|
+
action(:unread_messages_in_folder) { |folder_name, b| b.frm.table(:id=>"msgForum:_id23:0:privateForums").row(:text=>/#{Regexp.escape(folder_name)}/).span(:text=>/unread/).text =~ /\d+/; return $~.to_s }
|
287
58
|
|
288
|
-
|
289
|
-
|
290
|
-
|
59
|
+
# Gets all the folder names
|
60
|
+
def folders
|
61
|
+
links = frm.table(:class=>"hierItemBlockWrapper").links.find_all { |link| link.title != /Folder Settings/ }
|
62
|
+
folders = []
|
63
|
+
links.each { |link| folders << link.text }
|
64
|
+
return folders
|
291
65
|
end
|
292
66
|
|
293
|
-
|
294
|
-
action(:check_all) { |b| b.frm.link(:text=>"Check All").click }
|
295
|
-
action(:delete) { |b| b.frm.link(:text=>"Delete").click }
|
67
|
+
action(:folder_settings) { |folder_name, b| b.frm.table(:class=>"hierItemBlockWrapper").row(:text=>/#{Regexp.escape(folder_name)}/).link(:text=>"Folder Settings").click }
|
296
68
|
|
297
69
|
end
|
298
70
|
|
@@ -302,18 +74,13 @@ class MoveMessageTo < BasePage
|
|
302
74
|
|
303
75
|
frame_element
|
304
76
|
|
305
|
-
|
306
|
-
frm.button(:value=>"Move Messages").click
|
307
|
-
Messages.new(@browser)
|
308
|
-
end
|
77
|
+
button "Move Messages"
|
309
78
|
|
310
79
|
# Method for selecting any custom folders
|
311
80
|
# present on the screen--and *only* the custom
|
312
81
|
# folders. Count begins with "1" for the first custom
|
313
82
|
# folder listed.
|
314
|
-
|
315
|
-
frm.radio(:index=>num.to_i+3).set
|
316
|
-
end
|
83
|
+
action(:select_custom_folder_num) { |num, b| b.frm.radio(:index=>num.to_i+3).set }
|
317
84
|
|
318
85
|
element(:received) { |b| b.frm.radio(:name=>"pvtMsgMove:_id16:0:privateForums:0:_id19") }
|
319
86
|
element(:sent) { |b| b.frm.radio(:name=>"pvtMsgMove:_id16:0:privateForums:1:_id19") }
|
@@ -322,159 +89,43 @@ class MoveMessageTo < BasePage
|
|
322
89
|
|
323
90
|
end
|
324
91
|
|
325
|
-
# The page showing the list of deleted messages.
|
326
|
-
class MessagesDeletedList < BasePage
|
327
|
-
|
328
|
-
frame_element
|
329
|
-
|
330
|
-
# Returns a string consisting of the content of the
|
331
|
-
# page header--or "breadcrumb", as it's called.
|
332
|
-
def header
|
333
|
-
frm.div(:class=>"breadCrumb specialLink").text
|
334
|
-
end
|
335
|
-
|
336
|
-
# Clicks the "Messages" breadcrumb link to return
|
337
|
-
# to the top level of Messages. Then instantiates
|
338
|
-
# the Messages class.
|
339
|
-
def messages
|
340
|
-
frm.link(:text=>"Messages").click
|
341
|
-
Messages.new(@browser)
|
342
|
-
end
|
343
|
-
|
344
|
-
def compose_message
|
345
|
-
frm.link(:text=>"Compose Message").click
|
346
|
-
ComposeMessage.new(@browser)
|
347
|
-
end
|
348
|
-
|
349
|
-
# Grabs the text from the message
|
350
|
-
# box that appears after doing some
|
351
|
-
# action.
|
352
|
-
#
|
353
|
-
# Use this method to simplify writing
|
354
|
-
# Test::Unit asserts
|
355
|
-
def alert_message_text
|
356
|
-
frm.span(:class=>"success").text
|
357
|
-
end
|
358
|
-
|
359
|
-
# Creates an array consisting of the
|
360
|
-
# message subject lines.
|
361
|
-
def subjects
|
362
|
-
titles = []
|
363
|
-
messages = frm.table(:id=>"prefs_pvt_form:pvtmsgs")
|
364
|
-
1.upto(messages.rows.size-1) do |x|
|
365
|
-
titles << messages[x][2].text
|
366
|
-
end
|
367
|
-
return titles
|
368
|
-
end
|
369
|
-
|
370
|
-
# Checks the checkbox for the specified
|
371
|
-
# message in the list.
|
372
|
-
#
|
373
|
-
# Will throw an error if the specified
|
374
|
-
# subject is not present.
|
375
|
-
def check_message(subject)
|
376
|
-
index=subjects.index(subject)
|
377
|
-
frm.checkbox(:name=>"prefs_pvt_form:pvtmsgs:#{index}:_id122").set
|
378
|
-
end
|
379
|
-
|
380
|
-
def move
|
381
|
-
frm.link(:text, "Move").click
|
382
|
-
MoveMessageTo.new(@browser)
|
383
|
-
end
|
384
|
-
|
385
|
-
def delete
|
386
|
-
frm.link(:text=>"Delete").click
|
387
|
-
MessageDeleteConfirmation.new(@browser)
|
388
|
-
end
|
389
|
-
|
390
|
-
action(:check_all) { |b| b.frm.link(:text=>"Check All").click }
|
391
|
-
|
392
|
-
end
|
393
|
-
|
394
|
-
# The page showing the list of Draft messages.
|
395
|
-
class MessagesDraftList < BasePage
|
396
|
-
|
397
|
-
frame_element
|
398
|
-
|
399
|
-
def compose_message
|
400
|
-
frm.link(:text=>"Compose Message").click
|
401
|
-
ComposeMessage.new(@browser)
|
402
|
-
end
|
403
|
-
|
404
|
-
# Grabs the text from the message
|
405
|
-
# box that appears after doing some
|
406
|
-
# action.
|
407
|
-
#
|
408
|
-
# Use this method to simplify writing
|
409
|
-
# Test::Unit asserts
|
410
|
-
def alert_message_text
|
411
|
-
frm.span(:class=>"success").text
|
412
|
-
end
|
413
|
-
|
414
|
-
action(:check_all) { |b| b.frm.link(:text=>"Check All").click }
|
415
|
-
|
416
|
-
end
|
417
|
-
|
418
92
|
# The Page where you are reading a Message.
|
419
93
|
class MessageView < BasePage
|
420
94
|
|
421
95
|
frame_element
|
422
96
|
|
423
97
|
# Returns the contents of the message body.
|
424
|
-
|
425
|
-
frm.div(:class=>"textPanel").text
|
426
|
-
end
|
98
|
+
value(:message_text) { |b| b.frm.div(:class=>"textPanel").text }
|
427
99
|
|
428
|
-
|
429
|
-
frm.button(:value=>"Reply").click
|
430
|
-
ReplyToMessage.new(@browser)
|
431
|
-
end
|
100
|
+
button "Reply"
|
432
101
|
|
433
|
-
|
434
|
-
frm.button(:value=>"Forward ").click
|
435
|
-
ForwardMessage.new(@browser)
|
436
|
-
end
|
102
|
+
action(:forward) { |b| b.frm.button(:value=>"Forward ").click }
|
437
103
|
|
438
|
-
|
439
|
-
frm.link(:text=>"Received").click
|
440
|
-
MessagesReceivedList.new(@browser)
|
441
|
-
end
|
104
|
+
link "Received"
|
442
105
|
|
443
106
|
# Clicks the "Messages" breadcrumb link to return
|
444
107
|
# to the top level of Messages. Then instantiates
|
445
108
|
# the Messages class.
|
446
|
-
|
447
|
-
|
448
|
-
Messages.new(@browser)
|
449
|
-
end
|
109
|
+
link "Messages"
|
110
|
+
|
450
111
|
end
|
451
112
|
|
452
113
|
class ComposeMessage < BasePage
|
453
114
|
|
115
|
+
include FCKEditor
|
454
116
|
frame_element
|
117
|
+
expected_element :editor
|
455
118
|
|
456
|
-
|
457
|
-
|
458
|
-
Messages.new(@browser)
|
459
|
-
end
|
119
|
+
element(:editor) { |b| b.frm.frame(:id, "compose:pvt_message_body_inputRichText___Frame") }
|
120
|
+
action(:send) { |b| b.frm.button(:value=>"Send ").click }
|
460
121
|
|
461
122
|
def message_text=(text)
|
462
|
-
|
463
|
-
sleep 0.3
|
464
|
-
frm.frame(:id, "compose:pvt_message_body_inputRichText___Frame").td(:id, "xEditingArea").frame(:index=>0).send_keys(text)
|
465
|
-
end
|
466
|
-
|
467
|
-
def add_attachments
|
468
|
-
frm.button(:value=>"Add attachments").click
|
469
|
-
MessagesAttachment.new(@browser)
|
470
|
-
end
|
471
|
-
|
472
|
-
def preview
|
473
|
-
frm.button(:value=>"Preview").click
|
474
|
-
MessagesPreview.new(@browser)
|
123
|
+
editor.td(:id, "xEditingArea").frame(:index=>0).send_keys(text)
|
475
124
|
end
|
476
125
|
|
477
|
-
|
126
|
+
button "Add attachments"
|
127
|
+
button "Preview"
|
128
|
+
button "Save Draft"
|
478
129
|
element(:send_to) { |b| b.frm.select(:id=>"compose:list1") }
|
479
130
|
element(:send_cc) { |b| b.frm.checkbox(:id=>"compose:send_email_out") }
|
480
131
|
element(:subject) { |b| b.frm.text_field(:id=>"compose:subject") }
|
@@ -488,34 +139,16 @@ class ReplyToMessage < BasePage
|
|
488
139
|
expected_element :editor
|
489
140
|
|
490
141
|
element(:editor) { |b| b.frm.frame(:id, "pvtMsgReply:df_compose_body_inputRichText___Frame") }
|
491
|
-
|
492
|
-
def send
|
493
|
-
frm.button(:value=>"Send ").click
|
494
|
-
# Need logic here to ensure the
|
495
|
-
# right class gets called...
|
496
|
-
if frm.div(:class=>/breadCrumb/).text=~ /Messages.\/.Received/
|
497
|
-
MessagesReceivedList.new(@browser)
|
498
|
-
else #FIXME
|
499
|
-
Messages.new(@browser)
|
500
|
-
end
|
501
|
-
end
|
142
|
+
action(:send) { |b| b.frm.button(:value=>"Send ").click }
|
502
143
|
|
503
144
|
def message_text=(text)
|
504
145
|
editor.td(:id, "xEditingArea").frame(:index=>0).send_keys(:home)
|
505
146
|
editor.td(:id, "xEditingArea").frame(:index=>0).send_keys(text)
|
506
147
|
end
|
507
148
|
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
end
|
512
|
-
|
513
|
-
def preview
|
514
|
-
frm.button(:value=>"Preview").click
|
515
|
-
MessagesPreview.new(@browser)
|
516
|
-
end
|
517
|
-
|
518
|
-
action(:save_draft) {|b| b.frm.button(:value=>"Save Draft").click }
|
149
|
+
button "Add attachments"
|
150
|
+
button "Preview"
|
151
|
+
button "Save Draft"
|
519
152
|
element(:select_additional_recipients) { |b| b.frm.select(:id=>"compose:list1") }
|
520
153
|
element(:send_cc) { |b| b.frm.checkbox(:id=>"compose:send_email_out") }
|
521
154
|
element(:subject) { |b| b.frm.text_field(:id=>"compose:subject") }
|
@@ -524,30 +157,22 @@ end
|
|
524
157
|
|
525
158
|
# The page for composing a message
|
526
159
|
class ForwardMessage < BasePage
|
527
|
-
|
160
|
+
include FCKEditor
|
528
161
|
frame_element
|
529
162
|
|
530
|
-
|
531
|
-
frm.button(:value=>"Send ").click
|
532
|
-
MessagesReceivedList.new(@browser) #FIXME!
|
533
|
-
end
|
534
|
-
|
535
|
-
def message_text=(text)
|
536
|
-
frm.frame(:id, "pvtMsgForward:df_compose_body_inputRichText___Frame").td(:id, "xEditingArea").frame(:index=>0).send_keys(:home)
|
537
|
-
frm.frame(:id, "pvtMsgForward:df_compose_body_inputRichText___Frame").td(:id, "xEditingArea").frame(:index=>0).send_keys(text)
|
538
|
-
end
|
163
|
+
expected_element :editor
|
539
164
|
|
540
|
-
|
541
|
-
|
542
|
-
MessagesAttachment.new(@browser)
|
543
|
-
end
|
165
|
+
element(:editor) { |b| b.frm.frame(:id, "pvtMsgForward:df_compose_body_inputRichText___Frame") }
|
166
|
+
action(:send) { |b| b.frm.button(:value=>"Send ").click }
|
544
167
|
|
545
|
-
def
|
546
|
-
|
547
|
-
|
168
|
+
def message_text=(text)
|
169
|
+
editor.td(:id, "xEditingArea").frame(:index=>0).send_keys(:home)
|
170
|
+
editor.td(:id, "xEditingArea").frame(:index=>0).send_keys(text)
|
548
171
|
end
|
549
172
|
|
550
|
-
|
173
|
+
button "Add attachments"
|
174
|
+
button "Preview"
|
175
|
+
button "Save Draft"
|
551
176
|
element(:select_forward_recipients) { |b| b.frm.select(:id=>"pvtMsgForward:list1") }
|
552
177
|
element(:send_cc) { |b| b.frm.checkbox(:id=>"compose:send_email_out") }
|
553
178
|
element(:subject) { |b| b.frm.text_field(:id=>"compose:subject") }
|
@@ -563,10 +188,7 @@ class MessageDeleteConfirmation < BasePage
|
|
563
188
|
|
564
189
|
value(:alert_message_text) { |b| b.frm.span(:class=>"alertMessage").text }
|
565
190
|
|
566
|
-
|
567
|
-
frm.button(:value=>"Delete Message(s)").click
|
568
|
-
MessagesDeletedList.new(@browser)
|
569
|
-
end
|
191
|
+
button "Delete Message(s)"
|
570
192
|
|
571
193
|
#FIXME
|
572
194
|
# Want eventually to have a method that will return
|
@@ -578,10 +200,7 @@ class MessagesNewFolder < BasePage
|
|
578
200
|
|
579
201
|
frame_element
|
580
202
|
|
581
|
-
|
582
|
-
frm.button(:value=>"Add").click
|
583
|
-
Messages.new(@browser)
|
584
|
-
end
|
203
|
+
button"Add"
|
585
204
|
|
586
205
|
element(:title) { |b| b.frm.text_field(:id=>"pvtMsgFolderAdd:title") }
|
587
206
|
|
@@ -592,20 +211,9 @@ class MessageFolderSettings < BasePage
|
|
592
211
|
|
593
212
|
frame_element
|
594
213
|
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
end
|
599
|
-
|
600
|
-
def add
|
601
|
-
frm.button(:value=>"Add").click
|
602
|
-
MessagesNewFolder.new(@browser)
|
603
|
-
end
|
604
|
-
|
605
|
-
def delete
|
606
|
-
frm.button(:value=>"Delete").click
|
607
|
-
FolderDeleteConfirm.new(@browser)
|
608
|
-
end
|
214
|
+
button "Rename Folder"
|
215
|
+
button "Add"
|
216
|
+
button "Delete"
|
609
217
|
|
610
218
|
end
|
611
219
|
|
@@ -614,9 +222,6 @@ class FolderDeleteConfirm < BasePage
|
|
614
222
|
|
615
223
|
frame_element
|
616
224
|
|
617
|
-
|
618
|
-
frm.button(:value=>"Delete").click
|
619
|
-
Messages.new(@browser)
|
620
|
-
end
|
225
|
+
button "Delete"
|
621
226
|
|
622
227
|
end
|