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.
Files changed (58) hide show
  1. data/Gemfile +3 -5
  2. data/Gemfile.lock +6 -9
  3. data/lib/sambal-cle/base_page.rb +21 -3
  4. data/lib/sambal-cle/data_objects/announcement.rb +1 -1
  5. data/lib/sambal-cle/data_objects/assignment.rb +3 -2
  6. data/lib/sambal-cle/data_objects/course.rb +5 -4
  7. data/lib/sambal-cle/data_objects/event.rb +7 -7
  8. data/lib/sambal-cle/data_objects/forum.rb +3 -2
  9. data/lib/sambal-cle/data_objects/lesson.rb +3 -1
  10. data/lib/sambal-cle/data_objects/resource.rb +3 -1
  11. data/lib/sambal-cle/page_objects/account.rb +15 -66
  12. data/lib/sambal-cle/page_objects/aliases.rb +3 -2
  13. data/lib/sambal-cle/page_objects/announcements.rb +16 -31
  14. data/lib/sambal-cle/page_objects/assessments.rb +22 -55
  15. data/lib/sambal-cle/page_objects/assignments.rb +1 -1
  16. data/lib/sambal-cle/page_objects/blogger.rb +21 -77
  17. data/lib/sambal-cle/page_objects/blogs.rb +3 -5
  18. data/lib/sambal-cle/page_objects/calendar.rb +22 -40
  19. data/lib/sambal-cle/page_objects/chat_room.rb +2 -2
  20. data/lib/sambal-cle/page_objects/email_archive.rb +1 -2
  21. data/lib/sambal-cle/page_objects/evaluations.rb +78 -50
  22. data/lib/sambal-cle/page_objects/feedback.rb +1 -5
  23. data/lib/sambal-cle/page_objects/forms.rb +14 -55
  24. data/lib/sambal-cle/page_objects/forums.rb +11 -24
  25. data/lib/sambal-cle/page_objects/glossary.rb +6 -12
  26. data/lib/sambal-cle/page_objects/home.rb +7 -18
  27. data/lib/sambal-cle/page_objects/jforums.rb +60 -197
  28. data/lib/sambal-cle/page_objects/job_scheduler.rb +16 -49
  29. data/lib/sambal-cle/page_objects/lessons.rb +11 -34
  30. data/lib/sambal-cle/page_objects/matrix.rb +12 -14
  31. data/lib/sambal-cle/page_objects/messages.rb +71 -466
  32. data/lib/sambal-cle/page_objects/my_workspace.rb +3 -3
  33. data/lib/sambal-cle/page_objects/podcasts.rb +1 -6
  34. data/lib/sambal-cle/page_objects/polls.rb +5 -5
  35. data/lib/sambal-cle/page_objects/portfolio_templates.rb +16 -66
  36. data/lib/sambal-cle/page_objects/portfolios.rb +17 -67
  37. data/lib/sambal-cle/page_objects/profile.rb +5 -16
  38. data/lib/sambal-cle/page_objects/profile2.rb +51 -119
  39. data/lib/sambal-cle/page_objects/public_search.rb +6 -27
  40. data/lib/sambal-cle/page_objects/realms.rb +2 -2
  41. data/lib/sambal-cle/page_objects/resources.rb +89 -116
  42. data/lib/sambal-cle/page_objects/resources_roster.rb +1 -0
  43. data/lib/sambal-cle/page_objects/rosters.rb +3 -13
  44. data/lib/sambal-cle/page_objects/rwiki.rb +2 -6
  45. data/lib/sambal-cle/page_objects/search.rb +10 -10
  46. data/lib/sambal-cle/page_objects/sections.rb +40 -81
  47. data/lib/sambal-cle/page_objects/site_setup.rb +46 -74
  48. data/lib/sambal-cle/page_objects/sites.rb +24 -110
  49. data/lib/sambal-cle/page_objects/styles.rb +6 -51
  50. data/lib/sambal-cle/page_objects/syllabus.rb +12 -26
  51. data/lib/sambal-cle/page_objects/user_membership.rb +3 -15
  52. data/lib/sambal-cle/page_objects/users.rb +9 -25
  53. data/sambal-cle.gemspec +1 -1
  54. data/test/add_assignment_to_calendar_spec.rb +55 -1
  55. data/test/config.yml +1 -1
  56. data/test/duplicate_site_spec.rb +11 -10
  57. data/test/import_site_content_spec.rb +6 -5
  58. metadata +2 -2
data/Gemfile CHANGED
@@ -1,7 +1,5 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem 'rspec'
4
- gem 'test-factory'
5
- gem 'watir-webdriver'
6
-
7
- gemspec
3
+ gem "rspec"
4
+ gem "test-factory", ">=0.0.7"
5
+ gem "watir-webdriver", ">=0.6.0"
data/Gemfile.lock CHANGED
@@ -1,9 +1,3 @@
1
- PATH
2
- remote: .
3
- specs:
4
- sambal-cle (0.1.5)
5
- test-factory (>= 0.0.1)
6
-
7
1
  GEM
8
2
  remote: http://rubygems.org/
9
3
  specs:
@@ -24,6 +18,9 @@ GEM
24
18
  diff-lcs (~> 1.1.3)
25
19
  rspec-mocks (2.9.0)
26
20
  rubyzip (0.9.7)
21
+ sambal-cle (0.1.3)
22
+ selenium-webdriver (>= 2.21.2)
23
+ watir-webdriver (>= 0.5.5)
27
24
  selenium-webdriver (2.25.0)
28
25
  childprocess (>= 0.2.5)
29
26
  libwebsocket (~> 0.1.3)
@@ -39,6 +36,6 @@ PLATFORMS
39
36
 
40
37
  DEPENDENCIES
41
38
  rspec
42
- sambal-cle!
43
- test-factory
44
- watir-webdriver
39
+ sambal-cle
40
+ test-factory (>= 0.0.2)
41
+ watir-webdriver (>= 0.6.0)
@@ -11,11 +11,29 @@ class BasePage < PageFactory
11
11
  value(:alert_box) { |b| b.frm.div(:class=>"alertMessage").text }
12
12
  # Returns the text of the header.
13
13
  value(:header) { |b| b.frm.div(:class=>"portletBody").h3.text }
14
- element(:cancel_button) { |b| b.frm.button(:value=>"Cancel") }
15
- action(:cancel) { |p| p.cancel_button.click }
14
+ button("Cancel")
15
+ button("Save")
16
+ button("Back")
16
17
  end
17
18
 
18
- # More element group defs go here...
19
+ def link(link_text)
20
+ element(damballa(link_text+"_link")) { |b| b.frm.link(:text=>link_text) }
21
+ action(damballa(link_text)) { |b| b.frm.link(:text=>link_text).click }
22
+ end
23
+
24
+ def button(button_text)
25
+ element(damballa(button_text+"_button")) { |b| b.frm.button(:value=>button_text) }
26
+ action(damballa(button_text)) { |b| b.frm.button(:value=>button_text).click }
27
+ end
28
+
29
+ def damballa(text)
30
+ text.gsub(/([+=|\\\.~@#'"\?`!\{\}\[\]\$%\^&\*\(\)])/, "").
31
+ gsub(/([-\/\ ])/,"_").
32
+ downcase.
33
+ to_sym
34
+ end
35
+
36
+ # Any additional needed element group defs go here...
19
37
 
20
38
  end
21
39
 
@@ -25,7 +25,7 @@ class AnnouncementObject
25
25
  alias :name :title
26
26
 
27
27
  def create
28
- open_my_site_by_name
28
+ open_my_site_by_name @site
29
29
  announcements
30
30
  on_page Announcements do |page|
31
31
  page.add
@@ -115,8 +115,9 @@ class AssignmentObject
115
115
  edit.enter_source_text edit.editor, opts[:instructions]
116
116
  end
117
117
  edit.grade_scale.fit opts[:grade_scale]
118
- edit.max_points.fit opts[:max_points]
119
-
118
+ #if edit.max_points.enabled?
119
+ edit.max_points.fit opts[:max_points]
120
+ #end
120
121
  #TODO: All the rest goes here
121
122
 
122
123
  # This should be one of the last items edited...
@@ -6,7 +6,7 @@ class CourseSiteObject
6
6
  include DateFactory
7
7
  include Workflows
8
8
 
9
- attr_accessor :name, :id, :subject, :course, :section, :term, :authorizer,
9
+ attr_accessor :name, :id, :subject, :course, :section, :term, :term_value, :authorizer,
10
10
  :web_content_source, :email, :joiner_role, :creation_date, :web_content_title,
11
11
  :description, :short_description, :site_contact_name, :site_contact_email, :participants
12
12
 
@@ -42,7 +42,8 @@ class CourseSiteObject
42
42
  page.course_site.set
43
43
  # Store the selected term value for use later
44
44
  # TODO: Add logic here in case we want to actually SET the term value instead.
45
- @term = page.academic_term.value
45
+ @term_value = page.academic_term.value
46
+ @term = page.academic_term.selected_options[0].text
46
47
 
47
48
  page.continue
48
49
  end
@@ -55,7 +56,7 @@ class CourseSiteObject
55
56
  page.section.set @section
56
57
 
57
58
  # Store site name for ease of coding and readability later
58
- @name = "#{@subject} #{@course} #{@section} #{@term}"
59
+ @name = "#{@subject} #{@course} #{@section} #{@term_value}"
59
60
  # Add a valid instructor id
60
61
  page.authorizers_username.set @authorizer
61
62
 
@@ -131,7 +132,7 @@ class CourseSiteObject
131
132
  course_section.section.set @section
132
133
 
133
134
  # Store site name for ease of coding and readability later
134
- @name = "#{@subject} #{@course} #{@section} #{@term}"
135
+ @name = "#{@subject} #{@course} #{@section} #{@term_value}"
135
136
 
136
137
  # Add a valid instructor id
137
138
  course_section.authorizers_username.set @authorizer
@@ -15,13 +15,13 @@ class EventObject
15
15
 
16
16
  defaults = {
17
17
  :title=>random_alphanums,
18
- :month=>in_15_minutes[:month_str],
19
- :day=>in_15_minutes[:day],
20
- :year=>in_15_minutes[:year],
21
- :start_hour=>in_15_minutes[:hour],
22
- :start_minute=>in_15_minutes[:minute],
23
- :start_meridian=>in_15_minutes[:meridian],
24
- :message=>random_multiline(400,20, :alpha)
18
+ :month=>minutes_from_now(15)[:MON],
19
+ :day=>minutes_from_now(15)[:day_of_month],
20
+ :year=>minutes_from_now(15)[:year],
21
+ :start_hour=>minutes_from_now(15)[:hour],
22
+ :start_minute=>minutes_from_now(15)[:minute_rounded],
23
+ :start_meridian=>minutes_from_now(15)[:meridian],
24
+ :message=>random_multiline(400, 20, :lorem)
25
25
  }
26
26
  options = defaults.merge(opts)
27
27
 
@@ -24,7 +24,7 @@ class ForumObject
24
24
  alias :name :title
25
25
 
26
26
  def create
27
- open_my_site_by_name
27
+ open_my_site_by_name @site
28
28
  forums
29
29
  on Forums do |forums|
30
30
  forums.new_forum
@@ -98,7 +98,8 @@ end
98
98
  class TopicObject
99
99
 
100
100
  include Foundry
101
- include Utilities
101
+ include DataFactory
102
+ include StringFactory
102
103
  include Workflows
103
104
 
104
105
  attr_accessor :title, :short_description, :description, :site, :forum,
@@ -2,6 +2,7 @@ class ModuleObject
2
2
 
3
3
  include Foundry
4
4
  include DataFactory
5
+ include StringFactory
5
6
  include Workflows
6
7
 
7
8
  attr_accessor :title, :description, :keywords, :start_date, :end_date, :site, :href
@@ -49,6 +50,7 @@ class ContentSectionObject
49
50
 
50
51
  include Foundry
51
52
  include DataFactory
53
+ include StringFactory
52
54
  include Workflows
53
55
 
54
56
  attr_accessor :site, :module, :title, :instructions, :modality, :content_type,
@@ -116,7 +118,7 @@ class ContentSectionObject
116
118
  page.url_description.set @url_description
117
119
  when "Upload or link to a file in Resources"
118
120
  page.select_or_upload_file
119
- on_page ResourcesBase do |add|
121
+ on_page Resources do |add|
120
122
  add.open_folder @file_folder unless @file_folder == nil
121
123
  add.select_file @file_name
122
124
  add.continue
@@ -22,7 +22,7 @@ class FileObject
22
22
  open_my_site_by_name @site
23
23
  resources
24
24
  on Resources do |file|
25
- file.upload_file_to_folder @target_folder
25
+ file.upload_files_to_folder @target_folder
26
26
  end
27
27
  on ResourcesUploadFiles do |upload|
28
28
  upload.file_to_upload @name, @source_path
@@ -39,6 +39,7 @@ class FolderObject
39
39
  include Foundry
40
40
  include DataFactory
41
41
  include Workflows
42
+ include StringFactory
42
43
 
43
44
  attr_accessor :name, :parent_folder, :site
44
45
 
@@ -94,6 +95,7 @@ class HTMLPageObject
94
95
 
95
96
  include Foundry
96
97
  include DataFactory
98
+ include StringFactory
97
99
  include Workflows
98
100
 
99
101
  attr_accessor :name, :description, :site, :folder, :html, :url
@@ -7,23 +7,7 @@ class EditAccount < BasePage
7
7
 
8
8
  frame_element
9
9
 
10
- # Clicks the update details button then
11
- # makes sure there isn't any error message present.
12
- # If there is, it reinstantiates the Edit Account Class,
13
- # otherwise it instantiates the UserAccount Class.
14
- def update_details
15
- frm.button(:value=>"Update Details").click
16
- # Need to check if the update took...
17
- if frm.div(:class=>"portletBody").h3.text=="My Account Details"
18
- # Apparently it did...
19
- UserAccount.new(@browser)
20
- elsif frm.div(:class=>"portletBody").h3.text=="Account Details"
21
- # We are on the edit page (or we're using the Admin account)...
22
- EditAccount.new(@browser)
23
- elsif frm.div(:class=>"portletBody").h3.text=="Users"
24
- Users.new(@browser)
25
- end
26
- end
10
+ button("Update Details")
27
11
 
28
12
  element(:first_name) { |b| b.frm.text_field(:id=>"first-name") }
29
13
  element(:last_name) { |b| b.frm.text_field(:id=>"last-name") }
@@ -31,79 +15,44 @@ class EditAccount < BasePage
31
15
  element(:current_password) { |b| b.frm.text_field(:id=>"pwcur") }
32
16
  element(:create_new_password) { |b| b.frm.text_field(:id=>"pw") }
33
17
  element(:verify_new_password) { |b| b.frm.text_field(:id=>"pw0") }
34
- end
35
18
 
19
+ end
36
20
 
37
21
  # A Non-Admin User's Account page
38
- # Accessible via the "Account" link in "MY SETTINGS"
39
- #
40
- # IMPORTANT: this class does not use PageObject or the ToolsMenu!!
41
- # So, the only available method to navigate away from this page is
42
- # Home. Otherwise, you'll have to call the navigation link
43
- # Explicitly in the test case itself.
44
- #
45
- # Objects and methods used in this class must be explicitly
46
- # defined using Watir and Ruby code.
47
- #
48
- # Do NOT use the PageObject syntax in this class.
49
22
  class UserAccount < BasePage
50
23
 
51
- frame_element
24
+ def frm
25
+ self.frame(:index=>0) #TODO: Test that this really is needed instead of the frame_element
26
+ end
52
27
 
53
28
  # Clicks the Modify Details button. Instantiates the EditAccount class.
54
- def modify_details
55
- @browser.frame(:index=>0).button(:name=>"eventSubmit_doModify").click
56
- end
29
+ action(:modify_details) {|b| b.frm.button(:name=>"eventSubmit_doModify").click }
57
30
 
58
31
  # Gets the text of the User ID field.
59
- def user_id
60
- @browser.frame(:index=>0).table(:class=>"itemSummary", :index=>0)[0][1].text
61
- end
32
+ value(:user_id) { |b| b.frm.table(:class=>"itemSummary", :index=>0)[0][1].text }
62
33
 
63
34
  # Gets the text of the First Name field.
64
- def first_name
65
- @browser.frame(:index=>0).table(:class=>"itemSummary", :index=>0)[1][1].text
66
- end
35
+ value(:first_name) {|b| b.frm.table(:class=>"itemSummary", :index=>0)[1][1].text }
67
36
 
68
37
  # Gets the text of the Last Name field.
69
- def last_name
70
- @browser.frame(:index=>0).table(:class=>"itemSummary", :index=>0)[2][1].text
71
- end
38
+ value(:last_name) {|b| b.frm.table(:class=>"itemSummary", :index=>0)[2][1].text }
72
39
 
73
40
  # Gets the text of the Email field.
74
- def email
75
- @browser.frame(:index=>0).table(:class=>"itemSummary", :index=>0)[3][1].text
76
- end
41
+ value(:email) {|b| b.frm.table(:class=>"itemSummary", :index=>0)[3][1].text }
77
42
 
78
43
  # Gets the text of the Type field.
79
- def type
80
- @browser.frame(:index=>0).table(:class=>"itemSummary", :index=>0)[4][1].text
81
- end
44
+ value(:type) {|b| b.frm.table(:class=>"itemSummary", :index=>0)[4][1].text }
82
45
 
83
46
  # Gets the text of the Created By field.
84
- def created_by
85
- @browser.frame(:index=>0).table(:class=>"itemSummary", :index=>1)[0][1].text
86
- end
47
+ value(:created_by) {|b| b.frm.table(:class=>"itemSummary", :index=>1)[0][1].text }
87
48
 
88
49
  # Gets the text of the Created field.
89
- def created
90
- @browser.frame(:index=>0).table(:class=>"itemSummary", :index=>1)[1][1].text
91
- end
50
+ value(:created) {|b| b.frm.table(:class=>"itemSummary", :index=>1)[1][1].text }
92
51
 
93
52
  # Gets the text of the Modified By field.
94
- def modified_by
95
- @browser.frame(:index=>0).table(:class=>"itemSummary", :index=>1)[2][1].text
96
- end
53
+ value(:modified_by) {|b| b.frm.table(:class=>"itemSummary", :index=>1)[2][1].text }
97
54
 
98
55
  # Gets the text of the Modified (date) field.
99
- def modified
100
- @browser.frame(:index=>0).table(:class=>"itemSummary", :index=>1)[3][1].text
101
- end
102
-
103
- # Clicks the Home buton in the left menu.
104
- # instantiates the Home Class.
105
- def home
106
- @browser.link(:text, "Home").click
107
- end
56
+ value(:modified) {|b| b.frm.table(:class=>"itemSummary", :index=>1)[3][1].text }
108
57
 
109
58
  end
@@ -12,7 +12,7 @@ class Aliases < BasePage
12
12
  action(:last) { |b| b.frm.button(:name=>"eventSubmit_doList_last").click }
13
13
  action(:previous) { |b| b.frm.button(name=>"eventSubmit_doList_prev").click }
14
14
  action(:first) { |b| b.frm.button(:name=>"eventSubmit_doList_first").click }
15
- action(:new_alias) { |b| b.frm.link(:text=>"New Alias").click }
15
+ link("New Alias")
16
16
  action(:search_button) { |b| b.frm.button(:text=>"Search").click }
17
17
  element(:select_page_size) { |b| b.frm.select(:id=>"selectPageSize") }
18
18
 
@@ -35,7 +35,8 @@ class EditAlias < BasePage
35
35
 
36
36
  frame_element
37
37
 
38
- action(:remove_alias) { |b| b.frm.link(:text=>"Remove Alias").click }
38
+ link("Remove Alias")
39
+
39
40
  element(:target) { |b| b.frm.text_field(:id=>"target") }
40
41
  action(:save) { |b| b.frm.button(:name=>"eventSubmit_doSave").click }
41
42
  action(:cancel) { |b| b.frm.button(:name=>"eventSubmit_doCancel").click }
@@ -8,13 +8,9 @@ class Announcements < BasePage
8
8
 
9
9
  # Edits the specified announcement in the list.
10
10
  # @param subject [String] the text of the announcement listing link.
11
- def edit(subject)
12
- frm.table(:class=>"listHier").row(:text=>/#{Regexp.escape(subject)}/).link(:text=>"Edit").click
13
- end
11
+ action(:edit) { |subject, b| b.frm.table(:class=>"listHier").row(:text=>/#{Regexp.escape(subject)}/).link(:text=>"Edit").click }
14
12
 
15
- def view(title)
16
- frm.link(:text=>title).click
17
- end
13
+ action(:view) { |title, b| b.frm.link(:text=>title).click }
18
14
 
19
15
  # Returns an array of the subject strings of the announcements
20
16
  # listed on the page.
@@ -25,9 +21,7 @@ class Announcements < BasePage
25
21
  return subjects
26
22
  end
27
23
 
28
- def href(subject)
29
- frm.link(:text=>subject).href
30
- end
24
+ action(:href) { |subject, b| b.frm.link(:text=>subject).href }
31
25
 
32
26
  # Returns true or false depending on whether the specified announcement has an attachment.
33
27
  # @param subject [String] the text of the announcement listing link.
@@ -43,15 +37,11 @@ class Announcements < BasePage
43
37
  # Returns the text of the "For" column for
44
38
  # the specified announcement.
45
39
  # @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
40
+ action(:for_column) { |subject, b| b.frm.table(:class=>"listHier").row(:text=>/#{Regexp.escape(subject)}/)[4].text }
49
41
 
50
42
  # Clicks the specified announcement link and instantiates the PreviewAnnouncements class.
51
43
  # @param subject [String] the text of the announcement listing link.
52
- def preview_announcement(subject)
53
- frm.link(:text=>subject).click
54
- end
44
+ action(:preview_announcement) { |subject, b| b.frm.link(:text=>subject).click }
55
45
 
56
46
  # Selects the specified list item from the View selection list.
57
47
  # @param list_item [String] the text of the option in the selection list.
@@ -60,7 +50,7 @@ class Announcements < BasePage
60
50
  end
61
51
 
62
52
  # Clicks the Merge link and goes to the AnnouncementsMerge class.
63
- action(:merge) { |b| b.frm.link(:text=>"Merge").click }
53
+ link("Merge")
64
54
 
65
55
  end
66
56
 
@@ -72,12 +62,10 @@ class AnnouncementsMerge < BasePage
72
62
 
73
63
  # Checks the checkbox for the specified site name
74
64
  # @param site_name [String] the name of the relevant site displayed in the table
75
- def check(site_name)
76
- frm.table(:class=>"listHier lines nolines").row(:text=>/#{Regexp.escape(site_name)}/).checkbox(:id=>/site/).set
77
- end
65
+ action(:check) { |site_name, b| b.frm.table(:class=>"listHier lines nolines").row(:text=>/#{Regexp.escape(site_name)}/).checkbox(:id=>/site/).set }
78
66
 
79
67
  # Clicks the Save button and goes to the Announcements class.
80
- action(:save) { |b| b.frm.button(:value=>"Save").click }
68
+ button("Save")
81
69
 
82
70
  end
83
71
 
@@ -88,13 +76,13 @@ class ViewAnnouncement < BasePage
88
76
  frame_element
89
77
 
90
78
  # Clicks the Return to list button and goes to the Announcements class.
91
- action(:return_to_list) { |b| b.frm.button(:value=>"Return to List").click }
79
+ button("Return to List")
92
80
 
93
81
  # Clicks the Save changes button and goes to the Announcements class.
94
- action(:save_changes) { |b| b.frm.button(:value=>"Save Changes").click }
82
+ button("Save Changes")
95
83
 
96
84
  # Clicks the Edit button and goes to the AddEditAnnouncements class.
97
- action(:edit) { |b| b.frm.button(:value=>"Edit").click }
85
+ button("Edit")
98
86
 
99
87
  value(:subject) { |b| b.frm.table(class: "itemSummary")[0][1].text }
100
88
  value(:saved_by) { |b| b.frm.table(class: "itemSummary")[1][1].text }
@@ -117,14 +105,13 @@ class AddEditAnnouncements < BasePage
117
105
 
118
106
  # Clicks the Add Announcement button. The next class is either
119
107
  # AddEditAnnouncements or Announcements.
120
- action(:add_announcement) { |b| b.frm.button(:value=>"Add Announcement").click }
108
+ button("Add Announcement")
121
109
 
122
110
  # Clicks the Save changes button. Next is the Announcements class.
123
- action(:save_changes) { |b| b.frm.button(:value=>"Save Changes").click }
111
+ button("Save Changes")
124
112
 
125
113
  # Clicks the Preview button. Next is the PreviewAnnouncements class.
126
- action(:preview){ |b| b.frm.button(:value=>"Preview").click }
127
-
114
+ button("Preview")
128
115
 
129
116
  # Sends the specified text block to the rich text editor
130
117
  # @param text [String] the text that you want to add to the editor.
@@ -133,15 +120,13 @@ class AddEditAnnouncements < BasePage
133
120
  end
134
121
 
135
122
  # Clicks the Add attachments button. Next is the Announcments Attach class.
136
- action(:add_attachments) { |b| b.frm.button(:value=>"Add Attachments").click }
123
+ button("Add Attachments")
137
124
 
138
125
  # Clicks the checkbox for the specified group name
139
126
  # when you've set the announcement access to display
140
127
  # to groups.
141
128
  # @param group_name [String] the name of the group in the table that you intend to select.
142
- def check_group(group_name)
143
- frm.table(:id=>"groupTable").row(:text=>/#{Regexp.escape(group_name)}/).checkbox(:name=>"selectedGroups").set
144
- end
129
+ action(:check_group) { |group_name, b| b.frm.table(:id=>"groupTable").row(:text=>/#{Regexp.escape(group_name)}/).checkbox(:name=>"selectedGroups").set }
145
130
 
146
131
  element(:title) { |b| b.frm.text_field(:id=>"subject") }
147
132
  element(:site_members) { |b| b.frm.radio(:id=>"site") }