sambal-cle 0.1.3 → 0.1.4
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/README.md +3 -1
- data/lib/sambal-cle/base_page.rb +3 -1
- data/lib/sambal-cle/data_objects/announcement.rb +7 -10
- data/lib/sambal-cle/data_objects/assessment.rb +265 -9
- data/lib/sambal-cle/data_objects/assignment.rb +38 -32
- data/lib/sambal-cle/data_objects/assignment_permissions.rb +61 -0
- data/lib/sambal-cle/data_objects/assignment_submission.rb +126 -0
- data/lib/sambal-cle/data_objects/blog.rb +4 -7
- data/lib/sambal-cle/data_objects/blogger.rb +4 -10
- data/lib/sambal-cle/data_objects/chat_room.rb +5 -8
- data/lib/sambal-cle/data_objects/event.rb +6 -17
- data/lib/sambal-cle/data_objects/forum.rb +9 -19
- data/lib/sambal-cle/data_objects/lesson.rb +8 -29
- data/lib/sambal-cle/data_objects/message.rb +7 -10
- data/lib/sambal-cle/data_objects/poll.rb +6 -11
- data/lib/sambal-cle/data_objects/resource.rb +28 -37
- data/lib/sambal-cle/data_objects/site.rb +6 -17
- data/lib/sambal-cle/data_objects/syllabus.rb +6 -8
- data/lib/sambal-cle/data_objects/user.rb +88 -0
- data/lib/sambal-cle/data_objects/web_content_tool.rb +5 -6
- data/lib/sambal-cle/data_objects/wiki.rb +6 -6
- data/lib/sambal-cle/page_objects/account.rb +0 -2
- data/lib/sambal-cle/page_objects/announcements.rb +0 -1
- data/lib/sambal-cle/page_objects/assessments.rb +57 -87
- data/lib/sambal-cle/page_objects/assignments.rb +117 -337
- data/lib/sambal-cle/page_objects/calendar.rb +0 -2
- data/lib/sambal-cle/page_objects/login.rb +3 -9
- data/lib/sambal-cle/page_objects/sections.rb +2 -3
- data/lib/sambal-cle/page_objects/site_setup.rb +9 -19
- data/lib/sambal-cle/rich_text.rb +6 -0
- data/lib/sambal-cle/utilities.rb +4 -10
- data/lib/sambal-cle/workflows.rb +1 -5
- data/lib/sambal-cle.rb +2 -10
- data/sambal-cle.gemspec +7 -8
- data/test/add_assignment_to_calendar_spec.rb +14 -15
- data/test/assessment_create_spec.rb +355 -0
- data/test/assignment_announcements_spec.rb +14 -15
- data/test/assignment_duplicate_spec.rb +56 -0
- data/test/assignment_gradebook_spec.rb +16 -15
- data/test/assignment_permissions_spec.rb +77 -0
- data/test/assignments_grading_spec.rb +123 -0
- data/test/assignments_submission_spec.rb +143 -0
- data/test/config.yml +3 -0
- data/test/directory.yml +120 -0
- data/test/duplicate_site_spec.rb +5 -3
- data/test/import_site_content_spec.rb +248 -0
- metadata +22 -31
- data/lib/sambal-cle/core-ext.rb +0 -90
- data/lib/sambal-cle/date_makers.rb +0 -118
- data/lib/sambal-cle/gem_ext.rb +0 -23
- data/lib/sambal-cle/page_helper.rb +0 -22
- data/lib/sambal-cle/page_maker.rb +0 -48
- data/lib/sambal-cle/randomizers.rb +0 -117
@@ -35,7 +35,6 @@ class AssessmentsBase <BasePage
|
|
35
35
|
element(:keywords) { |b| b.frm.text_field(:id=>/:keyfield/) }
|
36
36
|
# QuestionPoolsList
|
37
37
|
action(:save) { |b| b.frm.button(:id=>"questionpool:submit").click }
|
38
|
-
action(:cancel) { |b| b.frm.button(:value=>"Cancel").click }
|
39
38
|
end
|
40
39
|
end
|
41
40
|
end
|
@@ -56,7 +55,6 @@ class AssessmentsList < AssessmentsBase
|
|
56
55
|
# then returns them as an Array.
|
57
56
|
def pending_assessment_titles
|
58
57
|
titles =[]
|
59
|
-
pending_table = frm.table(:id=>"authorIndexForm:coreAssessments")
|
60
58
|
1.upto(pending_table.rows.size-1) do |x|
|
61
59
|
titles << pending_table[x][1].span(:id=>/assessmentTitle/).text
|
62
60
|
end
|
@@ -67,7 +65,6 @@ class AssessmentsList < AssessmentsBase
|
|
67
65
|
# then returns them as an Array.
|
68
66
|
def published_assessment_titles
|
69
67
|
titles =[]
|
70
|
-
published_table = frm.div(:class=>"tier2", :index=>2).table(:class=>"listHier", :index=>0)
|
71
68
|
1.upto(published_table.rows.size-1) do |x|
|
72
69
|
titles << published_table[x][1].span(:id=>/publishedAssessmentTitle/).text
|
73
70
|
end
|
@@ -78,7 +75,6 @@ class AssessmentsList < AssessmentsBase
|
|
78
75
|
# in the list.
|
79
76
|
def inactive_assessment_titles
|
80
77
|
titles =[]
|
81
|
-
inactive_table = frm.div(:class=>"tier2", :index=>2).table(:id=>"authorIndexForm:inactivePublishedAssessments")
|
82
78
|
1.upto(inactive_table.rows.size-1) do |x|
|
83
79
|
titles << inactive_table[x][1].span(:id=>/inactivePublishedAssessmentTitle/).text
|
84
80
|
end
|
@@ -88,12 +84,16 @@ class AssessmentsList < AssessmentsBase
|
|
88
84
|
# Opens the selected test for scoring
|
89
85
|
# then instantiates the AssessmentTotalScores class.
|
90
86
|
# @param test_title [String] the title of the test to be clicked.
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
87
|
+
pgmd(:score_test) { |test_title, b| b.frm.tbody(:id=>"authorIndexForm:_id88:tbody_element").row(:text=>/#{Regexp.escape(test_title)}/).link(:id=>/authorIndexToScore/).click }
|
88
|
+
|
89
|
+
pgmd(:publish) { |test_title, b| b.pending_table.tr(:text=>/#{Regexp.escape(test_title)}/).select(:name=>/Select/).select "Publish" }
|
90
|
+
|
91
|
+
pgmd(:edit) { |test_title, b| b.form(:id=>"authorIndexForm").tr(:text=>/#{Regexp.escape(test_title)}/).select(:name=>/Select/).select "Edit" }
|
95
92
|
|
96
93
|
element(:title) { |b| b.frm.text_field(:id=>"authorIndexForm:title") }
|
94
|
+
element(:pending_table) { |b| b.frm.table(:id=>"authorIndexForm:coreAssessments") }
|
95
|
+
element(:published_table) { |b| b.frm.div(:class=>"tier2", :index=>2).table(:class=>"listHier", :index=>0) }
|
96
|
+
element(:inactive_table) { |b| b.frm.div(:class=>"tier2", :index=>2).table(:id=>"authorIndexForm:inactivePublishedAssessments") }
|
97
97
|
element(:create_using_builder) { |b| b.frm.radio(:name=>"authorIndexForm:_id29", :index=>0) }
|
98
98
|
element(:create_using_text) { |b| b.frm.radio(:name=>"authorIndexForm:_id29") }
|
99
99
|
element(:select_assessment_type) { |b| b.frm.select(:id=>"authorIndexForm:assessmentTemplate") }
|
@@ -108,31 +108,20 @@ class PreviewOverview < BasePage
|
|
108
108
|
frame_element
|
109
109
|
|
110
110
|
# Scrapes the value of the due date from the page. Returns it as a string.
|
111
|
-
|
112
|
-
frm.div(:class=>"tier2").table(:index=>0)[0][0].text
|
113
|
-
end
|
111
|
+
value(:due_date) { |b| b.frm.frm.div(:class=>"tier2").table(:index=>0)[0][0].text }
|
114
112
|
|
115
113
|
# Scrapes the value of the time limit from the page. Returns it as a string.
|
116
|
-
|
117
|
-
frm.div(:class=>"tier2").table(:index=>0)[3][0].text
|
118
|
-
end
|
114
|
+
value(:time_limit) { |b| b.frm.frm.div(:class=>"tier2").table(:index=>0)[3][0].text }
|
119
115
|
|
120
116
|
# Scrapes the submission limit from the page. Returns it as a string.
|
121
|
-
|
122
|
-
frm.div(:class=>"tier2").table(:index=>0)[6][0].text
|
123
|
-
end
|
117
|
+
value(:submission_limit) { |b| b.frm.frm.div(:class=>"tier2").table(:index=>0)[6][0].text }
|
124
118
|
|
125
119
|
# Scrapes the Feedback policy from the page. Returns it as a string.
|
126
|
-
|
127
|
-
frm.div(:class=>"tier2").table(:index=>0)[9][0].text
|
128
|
-
end
|
120
|
+
value(:feedback) { |b| b.frm.div(:class=>"tier2").table(:index=>0)[9][0].text }
|
129
121
|
|
130
122
|
# Clicks the Done button, then instantiates
|
131
123
|
# the EditAssessment class.
|
132
|
-
|
133
|
-
frm.button(:name=>"takeAssessmentForm:_id5").click
|
134
|
-
EditAssessment.new(@browser)
|
135
|
-
end
|
124
|
+
action(:done) { |b| b.frm.button(:name=>"takeAssessmentForm:_id5").click }
|
136
125
|
|
137
126
|
action(:begin_assessment) { |b| b.frm.button(:id=>"takeAssessmentForm:beginAssessment3").click }
|
138
127
|
|
@@ -143,45 +132,44 @@ class AssessmentSettings < AssessmentsBase
|
|
143
132
|
|
144
133
|
menu_bar_elements
|
145
134
|
|
135
|
+
expected_element :cancel_button
|
136
|
+
|
146
137
|
# Scrapes the Assessment Type from the page and returns it as a string.
|
147
|
-
|
148
|
-
frm.div(:class=>"tier2").table(:index=>0)[0][1].text
|
149
|
-
end
|
138
|
+
value(:assessment_type_title) { |b| b.frm.div(:class=>"tier2").table(:index=>0)[0][1].text }
|
150
139
|
|
151
140
|
# Scrapes the Assessment Author information from the page and returns it as a string.
|
152
|
-
|
153
|
-
frm.div(:class=>"tier2").table(:index=>0)[1][1].text
|
154
|
-
end
|
141
|
+
value(:assessment_type_author) { |b| b.frm.div(:class=>"tier2").table(:index=>0)[1][1].text }
|
155
142
|
|
156
143
|
# Scrapes the Assessment Type Description from the page and returns it as a string.
|
157
|
-
|
158
|
-
frm.div(:class=>"tier2").table(:index=>0)[2][1].text
|
159
|
-
end
|
144
|
+
value(:assessment_type_description) { |b| b.frm.div(:class=>"tier2").table(:index=>0)[2][1].text }
|
160
145
|
|
161
146
|
# Clicks the Save Settings and Publish button
|
162
147
|
# then instantiates the PublishAssessment class.
|
163
|
-
|
164
|
-
frm.button(:value=>"Save Settings and Publish").click
|
165
|
-
PublishAssessment.new(@browser)
|
166
|
-
end
|
148
|
+
action(:save_and_publish) { |b| b.frm.button(:value=>"Save Settings and Publish").click }
|
167
149
|
|
168
|
-
action(:open) { |b| b.frm.link(:text=>"Open") }
|
169
|
-
action(:close) { |b| b.frm.link(:text=>"Close") }
|
150
|
+
action(:open) { |b| b.frm.link(:text=>"Open").click }
|
151
|
+
action(:close) { |b| b.frm.link(:text=>"Close").click }
|
152
|
+
# Introduction
|
170
153
|
element(:title) { |b| b.frm.text_field(:id=>"assessmentSettingsAction:intro:assessment_title") }
|
171
154
|
element(:authors) { |b| b.frm.text_field(:id=>"assessmentSettingsAction:intro:assessment_author") }
|
172
155
|
element(:description) { |b| b.frm.text_field(:id=>"assessmentSettingsAction:intro:_id44_textinput") }
|
173
156
|
action(:add_attachments_to_intro) { |b| b.frm.button(:name=>"assessmentSettingsAction:intro:_id90").click }
|
157
|
+
# Delivery Dates
|
174
158
|
element(:available_date) { |b| b.frm.text_field(:id=>"assessmentSettingsAction:startDate") }
|
175
159
|
element(:due_date) { |b| b.frm.text_field(:id=>"assessmentSettingsAction:endDate") }
|
176
160
|
element(:retract_date) { |b| b.frm.text_field(:id=>"assessmentSettingsAction:retractDate") }
|
161
|
+
# Assessment Released To
|
177
162
|
element(:released_to_anonymous) { |b| b.frm.radio(:name=>"assessmentSettingsAction:_id117") }
|
178
163
|
element(:released_to_site) { |b| b.frm.radio(:name=>"assessmentSettingsAction:_id117") }
|
179
164
|
element(:specified_ips) { |b| b.frm.text_field(:name=>"assessmentSettingsAction:_id132") }
|
165
|
+
# High Security
|
180
166
|
element(:secondary_id) { |b| b.frm.text_field(:id=>"assessmentSettingsAction:username") }
|
181
167
|
element(:secondary_pw) { |b| b.frm.text_field(:id=>"assessmentSettingsAction:password") }
|
168
|
+
element(:allow_specified_ips) { |b| b.frm.text_field(:name=>"assessmentSettingsAction:_id132") }
|
182
169
|
element(:timed_assessment) { |b| b.frm.checkbox(:id=>"assessmentSettingsAction:selTimeAssess") }
|
183
170
|
element(:limit_hour) { |b| b.frm.select(:id=>"assessmentSettingsAction:timedHours") }
|
184
171
|
element(:limit_mins) { |b| b.frm.select(:id=>"assessmentSettingsAction:timedMinutes") }
|
172
|
+
# Assessment Organization
|
185
173
|
element(:linear_access) { |b| b.frm.radio(:name=>"assessmentSettingsAction:itemNavigation") }
|
186
174
|
element(:random_access) { |b| b.frm.radio(:name=>"assessmentSettingsAction:itemNavigation") }
|
187
175
|
element(:question_per_page) { |b| b.frm.radio(:name=>"assessmentSettingsAction:assessmentFormat") }
|
@@ -189,14 +177,17 @@ class AssessmentSettings < AssessmentsBase
|
|
189
177
|
element(:assessment_per_page) { |b| b.frm.radio(:name=>"assessmentSettingsAction:assessmentFormat") }
|
190
178
|
element(:continuous_numbering) { |b| b.frm.radio(:name=>"assessmentSettingsAction:itemNumbering") }
|
191
179
|
element(:restart_per_part) { |b| b.frm.radio(:name=>"assessmentSettingsAction:itemNumbering") }
|
180
|
+
# Mark for review
|
192
181
|
element(:add_mark_for_review) { |b| b.frm.text_field(:id=>"assessmentSettingsAction:markForReview1") }
|
193
182
|
element(:unlimited_submissions) { |b| b.frm.radio(:name=>"assessmentSettingsAction:unlimitedSubmissions") }
|
194
183
|
element(:only_x_submissions) { |b| b.frm.radio(:name=>"assessmentSettingsAction:unlimitedSubmissions") }
|
195
184
|
element(:allowed_submissions) { |b| b.frm.text_field(:id=>"assessmentSettingsAction:submissions_Allowed") }
|
196
185
|
element(:late_submissions_not_accepted) { |b| b.frm.radio(:name=>"assessmentSettingsAction:lateHandling") }
|
197
186
|
element(:late_submissions_accepted) { |b| b.frm.radio(:name=>"assessmentSettingsAction:lateHandling") }
|
198
|
-
|
187
|
+
# Submission Message
|
188
|
+
element(:submission_message) { |b| b.frm.text_field(:id=>"assessmentSettingsAction:_id250_textinput") }
|
199
189
|
element(:final_page_url) { |b| b.frm.text_field(:id=>"assessmentSettingsAction:finalPageUrl") }
|
190
|
+
# Feedback
|
200
191
|
element(:question_level_feedback) { |b| b.frm.radio(:name=>"assessmentSettingsAction:feedbackAuthoring") }
|
201
192
|
element(:selection_level_feedback) { |b| b.frm.radio(:name=>"assessmentSettingsAction:feedbackAuthoring") }
|
202
193
|
element(:both_feedback_levels) { |b| b.frm.radio(:name=>"assessmentSettingsAction:feedbackAuthoring") }
|
@@ -229,8 +220,9 @@ class AssessmentSettings < AssessmentsBase
|
|
229
220
|
#text_field(:objectives, :=>"") }
|
230
221
|
#text_field(:rubrics, :=>"") }
|
231
222
|
#checkbox(:record_metadata_for_questions, :=>"") }
|
232
|
-
action(:save) { |b| b.frm.button(:
|
233
|
-
|
223
|
+
action(:save) { |b| b.frm.button(:value=>"Save Settings").click }
|
224
|
+
element(:cancel_button) { |b| b.frm.button(:value=>"Cancel") }
|
225
|
+
action(:cancel) { |p| p.cancel_button.click }
|
234
226
|
|
235
227
|
end
|
236
228
|
|
@@ -252,7 +244,7 @@ class AssessmentTotalScores < BasePage
|
|
252
244
|
scores_table = frm.table(:id=>"editTotalResults:totalScoreTable").to_a
|
253
245
|
scores_table.delete_at(0)
|
254
246
|
scores_table.each { |row| ids << row[1] }
|
255
|
-
|
247
|
+
ids
|
256
248
|
end
|
257
249
|
|
258
250
|
# Adds a comment to the specified student's comment box.
|
@@ -262,10 +254,10 @@ class AssessmentTotalScores < BasePage
|
|
262
254
|
# selecting the appropriate comment box.
|
263
255
|
# @param student_id [String] the target student id
|
264
256
|
# @param comment [String] the text of the comment being made to the student
|
265
|
-
|
266
|
-
index_val = student_ids.index(student_id)
|
267
|
-
frm.text_field(:name=>"editTotalResults:totalScoreTable:#{index_val}:_id345").value=comment
|
268
|
-
|
257
|
+
pgmd(:comment_for_student) { |student_id, comment, b|
|
258
|
+
index_val = b.student_ids.index(student_id)
|
259
|
+
b.frm.text_field(:name=>"editTotalResults:totalScoreTable:#{index_val}:_id345").value=comment
|
260
|
+
}
|
269
261
|
|
270
262
|
# Clicks the Submit Date link in the table header to sort/reverse sort the list.
|
271
263
|
def sort_by_submit_date
|
@@ -340,60 +332,41 @@ class EditAssessment < AssessmentsBase
|
|
340
332
|
# Allows removing a specified
|
341
333
|
# Assessment part number.
|
342
334
|
# @param part_num [String] the part number of the assessment you want
|
343
|
-
|
344
|
-
frm.link(:xpath, "//a[contains(@onclick, 'assesssmentForm:parts:#{part_num.to_i-1}:copyToPool')]").click
|
345
|
-
end
|
335
|
+
pgmd(:remove_part) { |part_num, b| b.frm.link(:xpath, "//a[contains(@onclick, 'assesssmentForm:parts:#{part_num.to_i-1}:copyToPool')]").click }
|
346
336
|
|
347
337
|
# Clicks the Add Part button, then
|
348
338
|
# instantiates the AddEditAssessmentPart page class.
|
349
|
-
|
350
|
-
frm.link(:text=>"Add Part").click
|
351
|
-
AddEditAssessmentPart.new(@browser)
|
352
|
-
end
|
339
|
+
action(:add_part) { |b| b.frm.link(:text=>"Add Part").click }
|
353
340
|
|
354
341
|
# Selects the desired question type from the
|
355
|
-
# drop down list.
|
356
|
-
|
342
|
+
# drop down list at the top of the page.
|
343
|
+
pgmd(:question_type) { |qtype, b| b.frm.select(:id=>"assesssmentForm:changeQType").select(qtype) }
|
357
344
|
|
358
345
|
# Clicks the Preview button,
|
359
346
|
# then instantiates the PreviewOverview page class.
|
360
|
-
|
361
|
-
frm.link(:text=>"Preview").click
|
362
|
-
PreviewOverview.new(@browser)
|
363
|
-
end
|
347
|
+
action(:preview) { |b| b.frm.link(:text=>"Preview").click }
|
364
348
|
|
365
349
|
# Clicks the Settings link, then
|
366
350
|
# instantiates the AssessmentSettings page class.
|
367
|
-
|
368
|
-
frm.link(:text=>"Settings").click
|
369
|
-
AssessmentSettings.new(@browser)
|
370
|
-
end
|
351
|
+
action(:settings) { |b| b.frm.link(:text=>"Settings").click }
|
371
352
|
|
372
353
|
# Clicks the Publish button, then
|
373
354
|
# instantiates the PublishAssessment page class.
|
374
|
-
|
375
|
-
frm.link(:text=>"Publish").click
|
376
|
-
PublishAssessment.new(@browser)
|
377
|
-
end
|
378
|
-
|
379
|
-
# Clicks the Question Pools button, then
|
380
|
-
# instantiates the QuestionPoolsList page class.
|
381
|
-
def question_pools
|
382
|
-
frm.link(:text=>"Question Pools").click
|
383
|
-
QuestionPoolsList.new(@browser)
|
384
|
-
end
|
355
|
+
action(:publish) { |b| b.frm.link(:text=>"Publish").click }
|
385
356
|
|
386
357
|
# Allows retrieval of a specified question's
|
387
358
|
# text, by part and question number.
|
388
359
|
# @param part_num [String] the Part number containing the question you want
|
389
360
|
# @param question_num [String] the number of the question you want
|
390
|
-
|
391
|
-
frm.table(:id=>"assesssmentForm:parts:#{part_number.to_i-1}:parts").div(:class=>"tier3", :index=>question_number.to_i-1).text
|
392
|
-
end
|
361
|
+
pgmd(:get_question_text) { |part_number, question_number, b| b.frm.table(:id=>"assesssmentForm:parts:#{part_number.to_i-1}:parts").div(:class=>"tier3", :index=>question_number.to_i-1).text }
|
393
362
|
|
394
363
|
action(:print) { |b| b.frm.button(:text=>"Print").click }
|
395
364
|
action(:update_points) { |b| b.frm.button(:id=>"assesssmentForm:pointsUpdate").click }
|
396
365
|
|
366
|
+
pgmd(:add_question_to_part) { |part, p| p.assessment_form.row(:text=>/#{Regexp.escape(part)}/).select(:id=>/changeQType/) }
|
367
|
+
|
368
|
+
element(:assessment_form) { |b| b.table(:id=>"assesssmentForm:parts") }
|
369
|
+
|
397
370
|
end
|
398
371
|
|
399
372
|
# This is the page for adding and editing a part of an assessment
|
@@ -401,17 +374,16 @@ class AddEditAssessmentPart < BasePage
|
|
401
374
|
|
402
375
|
frame_element
|
403
376
|
|
404
|
-
# Clicks the Save button
|
405
|
-
# the EditAssessment page class.
|
377
|
+
# Clicks the Save button
|
406
378
|
def save
|
407
379
|
frm.button(:name=>"modifyPartForm:_id89").click
|
408
|
-
|
380
|
+
|
409
381
|
end
|
410
382
|
|
411
383
|
element(:title) { |b| b.frm.text_field(:id=>"modifyPartForm:title") }
|
412
384
|
element(:information) { |b| b.frm.text_field(:id=>"modifyPartForm:_id10_textinput") }
|
413
385
|
action(:add_attachments) { |b| b.frm.button(:name=>"modifyPartForm:_id54").click }
|
414
|
-
element(:
|
386
|
+
element(:one_by_one) { |b| b.frm.radio(:index=>0, :name=>"modifyPartForm:_id60") }
|
415
387
|
element(:random_draw) { |b| b.frm.radio(:index=>1, :name=>"modifyPartForm:_id60") }
|
416
388
|
element(:pool_name) { |b| b.frm.select(:id=>"modifyPartForm:assignToPool") }
|
417
389
|
element(:number_of_questions) { |b| b.frm.text_field(:id=>"modifyPartForm:numSelected") }
|
@@ -433,14 +405,12 @@ end
|
|
433
405
|
class PublishAssessment < BasePage
|
434
406
|
|
435
407
|
frame_element
|
408
|
+
basic_page_elements
|
409
|
+
|
436
410
|
# Clicks the Publish button, then
|
437
411
|
# instantiates the AssessmentsList page class.
|
438
|
-
|
439
|
-
frm.button(:value=>"Publish").click
|
440
|
-
AssessmentsList.new(@browser)
|
441
|
-
end
|
412
|
+
action(:publish) { |b| b.frm.button(:value=>"Publish").click }
|
442
413
|
|
443
|
-
action(:cancel) { |b| b.frm.button(:value=>"Cancel").click }
|
444
414
|
action(:edit) { |b| b.frm.button(:name=>"publishAssessmentForm:_id23").click }
|
445
415
|
element(:notification) { |b| b.frm.select(:id=>"publishAssessmentForm:number") }
|
446
416
|
|