sakai-cle-test-api 0.0.7 → 0.0.9
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/lib/sakai-cle-test-api.rb +7 -2
- data/lib/sakai-cle-test-api/add_files.rb +198 -0
- data/lib/sakai-cle-test-api/admin_page_elements.rb +7 -3
- data/lib/sakai-cle-test-api/announcements.rb +274 -7
- data/lib/sakai-cle-test-api/assessments.rb +930 -27
- data/lib/sakai-cle-test-api/assignments.rb +769 -13
- data/lib/sakai-cle-test-api/basic_lti.rb +5 -1
- data/lib/sakai-cle-test-api/blogs.rb +54 -2
- data/lib/sakai-cle-test-api/calendar.rb +423 -8
- data/lib/sakai-cle-test-api/chat_room.rb +0 -0
- data/lib/sakai-cle-test-api/common_page_elements.rb +69 -172
- data/lib/sakai-cle-test-api/core-ext.rb +90 -0
- data/lib/sakai-cle-test-api/data_objects/announcement.rb +38 -0
- data/lib/sakai-cle-test-api/data_objects/assessment.rb +32 -0
- data/lib/sakai-cle-test-api/data_objects/assignment.rb +62 -0
- data/lib/sakai-cle-test-api/data_objects/event.rb +86 -0
- data/lib/sakai-cle-test-api/data_objects/lesson.rb +137 -0
- data/lib/sakai-cle-test-api/data_objects/resource.rb +174 -0
- data/lib/sakai-cle-test-api/data_objects/site.rb +213 -0
- data/lib/sakai-cle-test-api/data_objects/syllabus.rb +7 -0
- data/lib/sakai-cle-test-api/data_objects/topic.rb +0 -0
- data/lib/sakai-cle-test-api/data_objects/web_content_tool.rb +52 -0
- data/lib/sakai-cle-test-api/data_objects/wiki.rb +7 -0
- data/lib/sakai-cle-test-api/drop_box.rb +21 -0
- data/lib/sakai-cle-test-api/email_archive.rb +15 -1
- data/lib/sakai-cle-test-api/forums.rb +282 -8
- data/lib/sakai-cle-test-api/gem_ext.rb +45 -0
- data/lib/sakai-cle-test-api/gradebook.rb +19 -1
- data/lib/sakai-cle-test-api/gradebook2.rb +15 -1
- data/lib/sakai-cle-test-api/lessons.rb +440 -0
- data/lib/sakai-cle-test-api/messages.rb +551 -15
- data/lib/sakai-cle-test-api/news.rb +3 -1
- data/lib/sakai-cle-test-api/polls.rb +65 -3
- data/lib/sakai-cle-test-api/profile.rb +36 -2
- data/lib/sakai-cle-test-api/profile2.rb +315 -6
- data/lib/sakai-cle-test-api/resources.rb +138 -0
- data/lib/sakai-cle-test-api/rich_text.rb +13 -0
- data/lib/sakai-cle-test-api/sections.rb +198 -8
- data/lib/sakai-cle-test-api/site_page_elements.rb +4 -441
- data/lib/sakai-cle-test-api/syllabus.rb +149 -7
- data/lib/sakai-cle-test-api/tools_menu.rb +3 -20
- data/lib/sakai-cle-test-api/utilities.rb +260 -0
- data/sakai-cle-test-api.gemspec +2 -3
- metadata +21 -19
data/lib/sakai-cle-test-api.rb
CHANGED
@@ -1,9 +1,15 @@
|
|
1
1
|
require 'cgi'
|
2
|
-
require '
|
2
|
+
require 'watir-webdriver'
|
3
|
+
require 'page-object'
|
4
|
+
require 'sakai-cle-test-api/gem_ext'
|
5
|
+
require 'sakai-cle-test-api/core-ext'
|
6
|
+
require 'sakai-cle-test-api/utilities'
|
7
|
+
require 'sakai-cle-test-api/rich_text'
|
3
8
|
require 'sakai-cle-test-api/utilities'
|
4
9
|
require 'sakai-cle-test-api/tools_menu'
|
5
10
|
require 'sakai-cle-test-api/admin_page_elements'
|
6
11
|
Dir["#{File.dirname(__FILE__)}/sakai-cle-test-api/*.rb"].each {|f| require f }
|
12
|
+
Dir["#{File.dirname(__FILE__)}/sakai-cle-test-api/data_objects/*.rb"].each {|f| require f }
|
7
13
|
|
8
14
|
# Initialize this class at the start of your test cases to
|
9
15
|
# open the specified test browser at the specified Sakai welcome page URL.
|
@@ -21,7 +27,6 @@ class SakaiCLE
|
|
21
27
|
@browser = Watir::Browser.new web_browser
|
22
28
|
@browser.window.resize_to(1400,900)
|
23
29
|
@browser.goto url
|
24
|
-
$frame_index = 0 # TODO - Need to remove this and all dependent code.
|
25
30
|
end
|
26
31
|
|
27
32
|
# Returns the class containing the welcome page's page elements.
|
@@ -0,0 +1,198 @@
|
|
1
|
+
# This class consolidates the code that can be shared among all the
|
2
|
+
# File Upload and Attachment pages.
|
3
|
+
#
|
4
|
+
# Not every method in this class will be appropriate for every attachment page.
|
5
|
+
class AddFiles
|
6
|
+
|
7
|
+
include PageObject
|
8
|
+
|
9
|
+
thing(:files_table) { |b| b.frm.table(:class=>/listHier lines/) }
|
10
|
+
|
11
|
+
# Returns an array of the displayed folder names.
|
12
|
+
def folder_names
|
13
|
+
names = []
|
14
|
+
files_table.rows.each do |row|
|
15
|
+
next if row.td(:class=>"specialLink").exist? == false
|
16
|
+
next if row.td(:class=>"specialLink").link(:title=>"Folder").exist? == false
|
17
|
+
names << row.td(:class=>"specialLink").link(:title=>"Folder").text
|
18
|
+
end
|
19
|
+
names
|
20
|
+
end
|
21
|
+
|
22
|
+
# Returns an array of the file names currently listed
|
23
|
+
# on the page.
|
24
|
+
#
|
25
|
+
# It excludes folder names.
|
26
|
+
def file_names
|
27
|
+
names = []
|
28
|
+
files_table.rows.each do |row|
|
29
|
+
next if row.td(:class=>"specialLink").exist? == false
|
30
|
+
next if row.td(:class=>"specialLink").link(:title=>"Folder").exist?
|
31
|
+
names << row.td(:class=>"specialLink").link(:href=>/access.content/, :index=>1).text
|
32
|
+
end
|
33
|
+
names
|
34
|
+
end
|
35
|
+
|
36
|
+
# Clicks the Select button next to the specified file.
|
37
|
+
def select_file(filename)
|
38
|
+
files_table.row(:text, /#{Regexp.escape(filename)}/).link(:text=>"Select").click
|
39
|
+
end
|
40
|
+
|
41
|
+
# Clicks the Remove button.
|
42
|
+
action(:remove) { |b| b.frm.button(:value=>"Remove").click }
|
43
|
+
|
44
|
+
# Clicks the remove link for the specified item in the attachment list.
|
45
|
+
def remove_item(file_name)
|
46
|
+
files_table.row(:text=>/#{Regexp.escape(file_name)}/).link(:href=>/doRemoveitem/).click
|
47
|
+
end
|
48
|
+
|
49
|
+
# Clicks the Move button.
|
50
|
+
action(:move) { |b| b.frm.button(:value=>"Move").click }
|
51
|
+
|
52
|
+
# Clicks the Show Other Sites link.
|
53
|
+
action(:show_other_sites) { |b| b.frm.link(:text=>"Show other sites").click }
|
54
|
+
|
55
|
+
def href(item)
|
56
|
+
frm.link(:text=>item).href
|
57
|
+
end
|
58
|
+
|
59
|
+
# Clicks on the specified folder image, which
|
60
|
+
# will open the folder tree and remain on the page.
|
61
|
+
def open_folder(foldername)
|
62
|
+
files_table.row(:text=>/#{Regexp.escape(foldername)}/).link(:title=>"Open this folder").click
|
63
|
+
end
|
64
|
+
|
65
|
+
# Clicks on the specified folder name, which should open
|
66
|
+
# the folder contents on a refreshed page.
|
67
|
+
def go_to_folder(foldername)
|
68
|
+
frm.link(:text=>foldername).click
|
69
|
+
end
|
70
|
+
|
71
|
+
# Sets the URL field to the specified value.
|
72
|
+
def url=(url_string)
|
73
|
+
frm.text_field(:id=>"url").set(url_string)
|
74
|
+
end
|
75
|
+
|
76
|
+
# Clicks the Add button next to the URL field.
|
77
|
+
def add
|
78
|
+
frm.button(:value=>"Add").click
|
79
|
+
end
|
80
|
+
|
81
|
+
# Gets the value of the access level cell for the specified
|
82
|
+
# file.
|
83
|
+
def access_level(filename)
|
84
|
+
files_table.row(:text=>/#{Regexp.escape(filename)}/)[6].text
|
85
|
+
end
|
86
|
+
|
87
|
+
def edit_details(name)
|
88
|
+
files_table.row(:text=>/#{Regexp.escape(name)}/).li(:text=>/Action/, :class=>"menuOpen").fire_event("onclick")
|
89
|
+
files_table.row(:text=>/#{Regexp.escape(name)}/).link(:text=>"Edit Details").click
|
90
|
+
end
|
91
|
+
|
92
|
+
# Clicks the Create Folders menu item in the
|
93
|
+
# Add menu of the specified folder.
|
94
|
+
def create_subfolders_in(folder_name)
|
95
|
+
open_add_menu(folder_name)
|
96
|
+
files_table.row(:text=>/#{Regexp.escape(folder_name)}/).link(:text=>"Create Folders").click
|
97
|
+
end
|
98
|
+
|
99
|
+
def create_html_page_in(folder_name)
|
100
|
+
open_add_menu(folder_name)
|
101
|
+
files_table.row(:text=>/#{Regexp.escape(folder_name)}/).link(:text=>"Create HTML Page").click
|
102
|
+
end
|
103
|
+
|
104
|
+
# Enters the specified file into the file field name (assuming it's in the
|
105
|
+
# data/sakai-cle-test-api folder or a subfolder therein)
|
106
|
+
#
|
107
|
+
def upload_file(filename, filepath="")
|
108
|
+
frm.file_field(:id=>"upload").set(filepath + filename)
|
109
|
+
if frm.div(:class=>"alertMessage").exist?
|
110
|
+
sleep 2
|
111
|
+
upload_file(filename)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
# Enters the specified file into the file field name (assuming it's in the
|
116
|
+
# data/sakai-cle-test-api folder or a subfolder therein)
|
117
|
+
#
|
118
|
+
# Use this method ONLY for instances where there's a file field on the page
|
119
|
+
# with an "upload" id.
|
120
|
+
def upload_local_file(filename, filepath="")
|
121
|
+
frm.file_field(:id=>"upload").set(filepath + filename)
|
122
|
+
if frm.div(:class=>"alertMessage").exist?
|
123
|
+
sleep 2
|
124
|
+
upload_local_file(filename)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
# Clicks the Add Menu for the specified
|
129
|
+
# folder, then selects the Upload Files
|
130
|
+
# command in the menu that appears.
|
131
|
+
def upload_file_to_folder(folder_name)
|
132
|
+
upload_files_to_folder(folder_name)
|
133
|
+
end
|
134
|
+
|
135
|
+
# Clicks the Add Menu for the specified
|
136
|
+
# folder, then selects the Upload Files
|
137
|
+
# command in the menu that appears.
|
138
|
+
def upload_files_to_folder(folder_name)
|
139
|
+
if frm.li(:text=>/A/, :class=>"menuOpen").exist?
|
140
|
+
files_table.row(:text=>/#{Regexp.escape(folder_name)}/).li(:text=>/A/, :class=>"menuOpen").fire_event("onclick")
|
141
|
+
else
|
142
|
+
files_table.row(:text=>/#{Regexp.escape(folder_name)}/).link(:text=>"Start Add Menu").fire_event("onfocus")
|
143
|
+
end
|
144
|
+
files_table.row(:text=>/#{Regexp.escape(folder_name)}/).link(:text=>"Upload Files").click
|
145
|
+
end
|
146
|
+
|
147
|
+
# Clicks the "Attach a copy" link for the specified
|
148
|
+
# file, then reinstantiates the Class.
|
149
|
+
# If an alert box appears, the method will call itself again.
|
150
|
+
# Note that this can lead to an infinite loop. Will need to fix later.
|
151
|
+
def attach_a_copy(file_name)
|
152
|
+
files_table.row(:text=>/#{Regexp.escape(file_name)}/).link(:href=>/doAttachitem/).click
|
153
|
+
if frm.div(:class=>"alertMessage").exist?
|
154
|
+
sleep 1
|
155
|
+
attach_a_copy(file_name) # TODO - This can loop infinitely
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
# Takes the specified array object containing pointers
|
160
|
+
# to local file resources, then uploads those files to
|
161
|
+
# the folder specified, checks if they all uploaded properly and
|
162
|
+
# if not, re-tries the ones that failed the first time.
|
163
|
+
#
|
164
|
+
# Finally, it re-instantiates the appropriate page class.
|
165
|
+
# Note that it expects all files to be located in the same folder (can be in subfolders of that folder).
|
166
|
+
def upload_multiple_files_to_folder(folder, file_array, file_path="")
|
167
|
+
|
168
|
+
upload = upload_files_to_folder folder
|
169
|
+
|
170
|
+
file_array.each do |file|
|
171
|
+
upload.file_to_upload(file, file_path)
|
172
|
+
upload.add_another_file
|
173
|
+
end
|
174
|
+
|
175
|
+
resources = upload.upload_files_now
|
176
|
+
|
177
|
+
file_array.each do |file|
|
178
|
+
file =~ /(?<=\/).+/
|
179
|
+
# puts $~.to_s # For debugging purposes
|
180
|
+
unless resources.file_names.include?($~.to_s)
|
181
|
+
upload_files = resources.upload_files_to_folder(folder)
|
182
|
+
upload_files.file_to_upload(file, file_path)
|
183
|
+
upload_files.upload_files_now
|
184
|
+
end
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
# Clicks the Continue button
|
189
|
+
def continue
|
190
|
+
frm.div(:class=>"highlightPanel").span(:id=>"submitnotifxxx").wait_while_present
|
191
|
+
frm.button(:value=>"Continue").click
|
192
|
+
end
|
193
|
+
|
194
|
+
def open_add_menu(folder_name)
|
195
|
+
files_table.row(:text=>/#{Regexp.escape(folder_name)}/).link(:text=>"Start Add Menu").fire_event("onfocus")
|
196
|
+
end
|
197
|
+
|
198
|
+
end
|
@@ -104,7 +104,7 @@ class Login
|
|
104
104
|
frame.text_field(:id, "eid").set username
|
105
105
|
frame.text_field(:id, "pw").set password
|
106
106
|
frame.form(:method, "post").submit
|
107
|
-
MyWorkspace.new(@browser)
|
107
|
+
return MyWorkspace.new(@browser)
|
108
108
|
end
|
109
109
|
alias log_in login
|
110
110
|
alias sign_in login
|
@@ -744,7 +744,12 @@ class EditUser
|
|
744
744
|
|
745
745
|
include PageObject
|
746
746
|
include ToolsMenu
|
747
|
-
|
747
|
+
|
748
|
+
def update_details
|
749
|
+
frm.button(:name=>"eventSubmit_doSave").click
|
750
|
+
sleep 1
|
751
|
+
end
|
752
|
+
|
748
753
|
in_frame(:class=>"portletMainIframe") do |frame|
|
749
754
|
link(:remove_user, :text=>"Remove User", :frame=>frame)
|
750
755
|
text_field(:first_name, :id=>"first-name", :frame=>frame)
|
@@ -752,7 +757,6 @@ class EditUser
|
|
752
757
|
text_field(:email, :id=>"email", :frame=>frame)
|
753
758
|
text_field(:create_new_password, :id=>"pw", :frame=>frame)
|
754
759
|
text_field(:verify_new_password, :id=>"pw0", :frame=>frame)
|
755
|
-
button(:update_details, :name=>"eventSubmit_doSave", :frame=>frame)
|
756
760
|
button(:cancel_changes, :name=>"eventSubmit_doCancel", :frame=>frame)
|
757
761
|
end
|
758
762
|
|
@@ -1,27 +1,294 @@
|
|
1
1
|
# The Announcements list page for a Site.
|
2
2
|
class Announcements
|
3
3
|
include ToolsMenu
|
4
|
-
|
4
|
+
|
5
|
+
# Clicks the add button, instantiates the AddEditAnnouncements class.
|
6
|
+
def add
|
7
|
+
frm.div(:class=>"portletBody").link(:title=>"Add").click
|
8
|
+
frm.frame(:id, "body___Frame").td(:id, "xEditingArea").frame(:index=>0).wait_until_present(60)
|
9
|
+
AddEditAnnouncements.new(@browser)
|
10
|
+
end
|
11
|
+
|
12
|
+
# Edits the specified announcement in the list.
|
13
|
+
# @param subject [String] the text of the announcement listing link.
|
14
|
+
def edit(subject)
|
15
|
+
frm.table(:class=>"listHier").row(:text=>/#{Regexp.escape(subject)}/).link(:text=>"Edit").click
|
16
|
+
AddEditAnnouncements.new(@browser)
|
17
|
+
end
|
18
|
+
|
19
|
+
# Returns an array of the subject strings of the announcements
|
20
|
+
# listed on the page.
|
21
|
+
def subjects
|
22
|
+
links = frm.table(:class=>"listHier").links.find_all { |link| link.title=~/View announcement/ }
|
23
|
+
subjects = []
|
24
|
+
links.each { |link| subjects << link.text }
|
25
|
+
return subjects
|
26
|
+
end
|
27
|
+
|
28
|
+
def href(subject)
|
29
|
+
frm.link(:text=>subject).href
|
30
|
+
end
|
31
|
+
|
32
|
+
# Returns true or false depending on whether the specified announcement has an attachment.
|
33
|
+
# @param subject [String] the text of the announcement listing link.
|
34
|
+
def has_attachment?(subject)
|
35
|
+
if frm.table(:class=>"listHier").row(:text=>/#{Regexp.escape(subject)}/).exist?
|
36
|
+
return frm.table(:class=>"listHier").row(:text=>/#{Regexp.escape(subject)}/).image(:alt=>"attachment").exist?
|
37
|
+
else
|
38
|
+
puts "Can't find your target row. Your test is faulty."
|
39
|
+
return false
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# Returns the text of the "For" column for
|
44
|
+
# the specified announcement.
|
45
|
+
# @param subject [String] the text of the announcement listing link.
|
46
|
+
def for_column(subject)
|
47
|
+
frm.table(:class=>"listHier").row(:text=>/#{Regexp.escape(subject)}/)[4].text
|
48
|
+
end
|
49
|
+
|
50
|
+
# Clicks the specified announcement link and instantiates the PreviewAnnouncements class.
|
51
|
+
# @param subject [String] the text of the announcement listing link.
|
52
|
+
def preview_announcement(subject)
|
53
|
+
frm.link(:text=>subject).click
|
54
|
+
PreviewAnnouncements.new(@browser)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Selects the specified list item from the View selection list.
|
58
|
+
# @param list_item [String] the text of the option in the selection list.
|
59
|
+
def view=(list_item)
|
60
|
+
frm.select(:id=>"view").set(list_item)
|
61
|
+
end
|
62
|
+
|
63
|
+
# Clicks the Merge link and instantiates the AnnouncementsMerge class.
|
64
|
+
def merge
|
65
|
+
frm.link(:text=>"Merge").click
|
66
|
+
AnnouncementsMerge.new(@browser)
|
67
|
+
end
|
68
|
+
|
5
69
|
end
|
6
70
|
|
7
71
|
# Show Announcements from Another Site. On this page you select what announcements
|
8
72
|
# you want to merge into the current Site.
|
9
73
|
class AnnouncementsMerge
|
10
74
|
include ToolsMenu
|
11
|
-
|
75
|
+
|
76
|
+
# Checks the checkbox for the specified site name
|
77
|
+
# @param site_name [String] the name of the relevant site displayed in the table
|
78
|
+
def check(site_name)
|
79
|
+
frm.table(:class=>"listHier lines nolines").row(:text=>/#{Regexp.escape(site_name)}/).checkbox(:id=>/site/).set
|
80
|
+
end
|
81
|
+
|
82
|
+
# Clicks the Save button and returns the Announcements class.
|
83
|
+
def save
|
84
|
+
frm.button(:value=>"Save").click
|
85
|
+
Announcements.new(@browser)
|
86
|
+
end
|
87
|
+
|
12
88
|
end
|
13
89
|
|
14
90
|
# This Class does double-duty. It's for the Preview page when editing an
|
15
91
|
# Announcement, plus for when you just click an Announcement to view it.
|
16
92
|
class PreviewAnnouncements
|
17
93
|
include ToolsMenu
|
18
|
-
|
94
|
+
|
95
|
+
# Clicks the Return to list button and returns the Announcements class.
|
96
|
+
def return_to_list
|
97
|
+
frm.button(:value=>"Return to List").click
|
98
|
+
Announcements.new(@browser)
|
99
|
+
end
|
100
|
+
|
101
|
+
# Clicks the Save changes button and returns the Announcements class.
|
102
|
+
def save_changes
|
103
|
+
frm.button(:value=>"Save Changes").click
|
104
|
+
Announcements.new(@browser)
|
105
|
+
end
|
106
|
+
|
107
|
+
# Clicks the Edit button and returns the AddEditAnnouncements class.
|
108
|
+
def edit
|
109
|
+
frm.button(:value=>"Edit").click
|
110
|
+
AddEditAnnouncements.new(@browser)
|
111
|
+
end
|
112
|
+
|
19
113
|
end
|
20
114
|
|
21
115
|
# The page where an announcement is created or edited.
|
22
116
|
class AddEditAnnouncements
|
23
117
|
include ToolsMenu
|
24
|
-
|
118
|
+
|
119
|
+
# Clicks the Add Announcement button and then determines whether to return
|
120
|
+
# AddEditAnnouncements or Announcements class.
|
121
|
+
def add_announcement
|
122
|
+
frm.button(:value=>"Add Announcement").click
|
123
|
+
if frm.div(:class=>"portletBody").h3.text=~/Add Announcement/
|
124
|
+
AddEditAnnouncements.new(@browser)
|
125
|
+
else
|
126
|
+
Announcements.new(@browser)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
# Clicks the Save changes button and returns the Announcements class.
|
131
|
+
def save_changes
|
132
|
+
frm.button(:value=>"Save Changes").click
|
133
|
+
Announcements.new(@browser)
|
134
|
+
end
|
135
|
+
|
136
|
+
# Clicks the Preview button and returns the PreviewAnnouncements class.
|
137
|
+
def preview
|
138
|
+
frm.button(:value=>"Preview").click
|
139
|
+
PreviewAnnouncements.new(@browser)
|
140
|
+
end
|
141
|
+
|
142
|
+
# Sends the specified text block to the rich text editor
|
143
|
+
# @param text [String] the text that you want to add to the editor.
|
144
|
+
def body=(text)
|
145
|
+
frm.frame(:id, "body___Frame").td(:id, "xEditingArea").frame(:index=>0).send_keys(text)
|
146
|
+
end
|
147
|
+
|
148
|
+
# Clicks the Add attachments button and returns the Announcments Attach class.
|
149
|
+
def add_attachments
|
150
|
+
frm.button(:value=>"Add Attachments").click
|
151
|
+
AnnouncementsAttach.new(@browser)
|
152
|
+
end
|
153
|
+
|
154
|
+
# Clicks the checkbox for the specified group name
|
155
|
+
# when you've set the announcement access to display
|
156
|
+
# to groups.
|
157
|
+
# @param group_name [String] the name of the group in the table that you intend to select.
|
158
|
+
def check_group(group_name)
|
159
|
+
frm.table(:id=>"groupTable").row(:text=>/#{Regexp.escape(group_name)}/).checkbox(:name=>"selectedGroups").set
|
160
|
+
end
|
161
|
+
|
162
|
+
# Sets the Announcement Title field to the specified
|
163
|
+
# string value.
|
164
|
+
# @param string [String] the text you want to put in the title field.
|
165
|
+
def title=(string)
|
166
|
+
frm.text_field(:id=>"subject").set(string)
|
167
|
+
end
|
168
|
+
|
169
|
+
# Clicks the radio button for "Only members of this site can see this announcement"
|
170
|
+
def select_site_members
|
171
|
+
frm.radio(:id=>"site").set
|
172
|
+
end
|
173
|
+
|
174
|
+
# Clicks the radio button for "This announcement is publicly viewable"
|
175
|
+
def select_publicly_viewable
|
176
|
+
frm.radio(:id=>"pubview").set
|
177
|
+
end
|
178
|
+
|
179
|
+
# Clicks the radio button for "Displays this announcement to selected groups only."
|
180
|
+
def select_groups
|
181
|
+
frm.radio(:id=>"groups").set
|
182
|
+
end
|
183
|
+
|
184
|
+
# Clicks the radio button for "Show - (Post and display this announcement immediately)"
|
185
|
+
def select_show
|
186
|
+
frm.radio(:id=>"hidden_false").set
|
187
|
+
end
|
188
|
+
|
189
|
+
# Clicks the radio button for "Hide - (Draft mode - Do not display this announcement at this time)"
|
190
|
+
def select_hide
|
191
|
+
frm.radio(:id=>"hidden_true").set
|
192
|
+
end
|
193
|
+
|
194
|
+
# Clicks the radio button for "Specify Dates - (Choose when this announcement will be displayed)"
|
195
|
+
def select_specify_dates
|
196
|
+
frm.radio(:id=>"hidden_specify").set
|
197
|
+
end
|
198
|
+
|
199
|
+
# Checks the checkbox for "Beginning"
|
200
|
+
def check_beginning
|
201
|
+
frm.checkbox(:id=>"use_start_date").set
|
202
|
+
end
|
203
|
+
|
204
|
+
# Checks the checkbox for "Ending"
|
205
|
+
def check_ending
|
206
|
+
frm.checkbox(:id=>"use_end_date").set
|
207
|
+
end
|
208
|
+
|
209
|
+
# Checks the checkbox for selecting all Groups
|
210
|
+
def check_all
|
211
|
+
frm.checkbox(:id=>"selectall").set
|
212
|
+
end
|
213
|
+
|
214
|
+
# Sets the Beginning Month selection to the
|
215
|
+
# specified string.
|
216
|
+
def beginning_month=(string)
|
217
|
+
frm.select(:id=>"release_month").select(string)
|
218
|
+
end
|
219
|
+
|
220
|
+
# Sets the Beginning Day selection to the
|
221
|
+
# specified string.
|
222
|
+
def beginning_day=(string)
|
223
|
+
frm.select(:id=>"release_day").select(string)
|
224
|
+
end
|
225
|
+
|
226
|
+
# Sets the Beginning Year selection to the
|
227
|
+
# specified string.
|
228
|
+
def beginning_year=(string)
|
229
|
+
frm.select(:id=>"release_year").select(string)
|
230
|
+
end
|
231
|
+
|
232
|
+
# Sets the Beginning Hour selection to the
|
233
|
+
# specified string
|
234
|
+
def beginning_hour=(string)
|
235
|
+
frm.select(:id=>"release_hour").select(string)
|
236
|
+
end
|
237
|
+
|
238
|
+
# Sets the Beginning Minute selection to the
|
239
|
+
# specified string
|
240
|
+
def beginning_minute=(string)
|
241
|
+
frm.select(:id=>"release_minute").select(string)
|
242
|
+
end
|
243
|
+
|
244
|
+
# Sets the AM or PM value to the specified string.
|
245
|
+
# Obviously the string should be either "AM" or "PM".
|
246
|
+
def beginning_meridian=(string)
|
247
|
+
frm.select(:id=>"release_ampm").select(string)
|
248
|
+
end
|
249
|
+
|
250
|
+
# Sets the Ending Month selection to the specified
|
251
|
+
# string.
|
252
|
+
def ending_month=(string)
|
253
|
+
frm.select(:id=>"retract_month").select(string)
|
254
|
+
end
|
255
|
+
|
256
|
+
# Sets the Ending Day selection to the specified
|
257
|
+
# string.
|
258
|
+
def ending_day=(string)
|
259
|
+
frm.select(:id=>"retract_day").select(string)
|
260
|
+
end
|
261
|
+
|
262
|
+
# Sets the Ending Year selection to the specified
|
263
|
+
# string.
|
264
|
+
def ending_year=(string)
|
265
|
+
frm.select(:id=>"retract_year").select(string)
|
266
|
+
end
|
267
|
+
|
268
|
+
# Sets the Ending Hour selection to the specified
|
269
|
+
# string.
|
270
|
+
def ending_hour=(string)
|
271
|
+
frm.select(:id=>"retract_hour").select(string)
|
272
|
+
end
|
273
|
+
|
274
|
+
# Sets the Ending Minute selection to the specified
|
275
|
+
# string.
|
276
|
+
def ending_minute=(string)
|
277
|
+
frm.select(:id=>"retract_minute").select(string)
|
278
|
+
end
|
279
|
+
|
280
|
+
# Sets the Ending AM/PM selection to the specified
|
281
|
+
# value.
|
282
|
+
def ending_meridian=(string)
|
283
|
+
frm.select(:id=>"retract_ampm").select(string)
|
284
|
+
end
|
285
|
+
|
286
|
+
# Gets the text of the alert message when it appears on
|
287
|
+
# the page
|
288
|
+
def alert_message
|
289
|
+
frm.div(:class=>"alertMessage").text
|
290
|
+
end
|
291
|
+
|
25
292
|
end
|
26
293
|
|
27
294
|
# The page for attaching files and links to Announcements.
|
@@ -43,17 +310,17 @@ end
|
|
43
310
|
# Page for merging announcements from other sites
|
44
311
|
class AnnouncementsMerge
|
45
312
|
include ToolsMenu
|
46
|
-
|
313
|
+
|
47
314
|
end
|
48
315
|
|
49
316
|
# Page for setting up options for announcements
|
50
317
|
class AnnouncementsOptions
|
51
318
|
include ToolsMenu
|
52
|
-
|
319
|
+
|
53
320
|
end
|
54
321
|
|
55
322
|
# Page containing permissions options for announcements
|
56
323
|
class AnnouncementsPermissions
|
57
324
|
include ToolsMenu
|
58
|
-
|
325
|
+
|
59
326
|
end
|