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
 
| 
         @@ -0,0 +1,213 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class SiteObject
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              include PageObject
         
     | 
| 
      
 4 
     | 
    
         
            +
              include Utilities
         
     | 
| 
      
 5 
     | 
    
         
            +
              include ToolsMenu
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              attr_accessor :name, :id, :subject, :course, :section, :term, :authorizer,
         
     | 
| 
      
 8 
     | 
    
         
            +
                :web_content_source, :email, :joiner_role, :creation_date, :web_content_title,
         
     | 
| 
      
 9 
     | 
    
         
            +
                :description, :short_description
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              def initialize(browser, opts={})
         
     | 
| 
      
 12 
     | 
    
         
            +
                @browser = browser
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                defaults = {
         
     | 
| 
      
 15 
     | 
    
         
            +
                  :subject => random_alphanums(8),
         
     | 
| 
      
 16 
     | 
    
         
            +
                  :course => random_alphanums(8),
         
     | 
| 
      
 17 
     | 
    
         
            +
                  :section => random_alphanums(8),
         
     | 
| 
      
 18 
     | 
    
         
            +
                  :authorizer => "admin",
         
     | 
| 
      
 19 
     | 
    
         
            +
                  :web_content_title => random_alphanums(15),
         
     | 
| 
      
 20 
     | 
    
         
            +
                  :web_content_source => "http://www.rsmart.com",
         
     | 
| 
      
 21 
     | 
    
         
            +
                  :email=>random_nicelink(32),
         
     | 
| 
      
 22 
     | 
    
         
            +
                  :joiner_role => "Student",
         
     | 
| 
      
 23 
     | 
    
         
            +
                  :description => random_alphanums(30),
         
     | 
| 
      
 24 
     | 
    
         
            +
                  :short_description => random_alphanums
         
     | 
| 
      
 25 
     | 
    
         
            +
                }
         
     | 
| 
      
 26 
     | 
    
         
            +
                options = defaults.merge(opts)
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                @subject=options[:subject]
         
     | 
| 
      
 29 
     | 
    
         
            +
                @course=options[:course]
         
     | 
| 
      
 30 
     | 
    
         
            +
                @section=options[:section]
         
     | 
| 
      
 31 
     | 
    
         
            +
                @authorizer=options[:authorizer]
         
     | 
| 
      
 32 
     | 
    
         
            +
                @web_content_source=options[:web_content_source]
         
     | 
| 
      
 33 
     | 
    
         
            +
                @email=options[:email]
         
     | 
| 
      
 34 
     | 
    
         
            +
                @joiner_role=options[:joiner_role]
         
     | 
| 
      
 35 
     | 
    
         
            +
                @web_content_title=options[:web_content_title]
         
     | 
| 
      
 36 
     | 
    
         
            +
                @description=options[:description]
         
     | 
| 
      
 37 
     | 
    
         
            +
                @short_description=options[:short_description]
         
     | 
| 
      
 38 
     | 
    
         
            +
              end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
              def create
         
     | 
| 
      
 41 
     | 
    
         
            +
                my_workspace unless @browser.title=~/My Workspace/
         
     | 
| 
      
 42 
     | 
    
         
            +
                site_setup unless @browser.title=~/Site Setup/
         
     | 
| 
      
 43 
     | 
    
         
            +
                on_page SiteSetup do |page|
         
     | 
| 
      
 44 
     | 
    
         
            +
                  page.new
         
     | 
| 
      
 45 
     | 
    
         
            +
                end
         
     | 
| 
      
 46 
     | 
    
         
            +
                site_type = SiteType.new @browser
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                # Select the Course Site radio button
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                site_type.select_course_site
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                # Store the selected term value for use later
         
     | 
| 
      
 53 
     | 
    
         
            +
                @term = site_type.academic_term_element.value
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                # Click continue
         
     | 
| 
      
 56 
     | 
    
         
            +
                course_section = site_type.continue
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                # Fill in those fields, storing the entered values for later verification steps
         
     | 
| 
      
 59 
     | 
    
         
            +
                course_section.subject = @subject
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                course_section.course = @course
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
                course_section.section = @section
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
                # Store site name for ease of coding and readability later
         
     | 
| 
      
 66 
     | 
    
         
            +
                @name = "#{@subject} #{@course} #{@section} #{@term}"
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                # Click continue button
         
     | 
| 
      
 69 
     | 
    
         
            +
                course_section.continue
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
                # Add a valid instructor id
         
     | 
| 
      
 72 
     | 
    
         
            +
                course_section.authorizers_username=@authorizer
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                # Click continue button
         
     | 
| 
      
 75 
     | 
    
         
            +
                course_site = course_section.continue
         
     | 
| 
      
 76 
     | 
    
         
            +
                course_site.editor.wait_until_present
         
     | 
| 
      
 77 
     | 
    
         
            +
                sleep 1 #FIXME
         
     | 
| 
      
 78 
     | 
    
         
            +
                course_site.source(course_site.editor)
         
     | 
| 
      
 79 
     | 
    
         
            +
                course_site.source=@description
         
     | 
| 
      
 80 
     | 
    
         
            +
                course_site.short_description=@short_description
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
                # Click Continue
         
     | 
| 
      
 83 
     | 
    
         
            +
                course_tools = course_site.continue
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
                #Check All Tools
         
     | 
| 
      
 86 
     | 
    
         
            +
                course_tools.check_all_tools
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
                course_tools.continue
         
     | 
| 
      
 89 
     | 
    
         
            +
                add_tools = AddMultipleTools.new @browser
         
     | 
| 
      
 90 
     | 
    
         
            +
                add_tools.site_email_address=@email
         
     | 
| 
      
 91 
     | 
    
         
            +
                add_tools.web_content_title=@web_content_title
         
     | 
| 
      
 92 
     | 
    
         
            +
                add_tools.web_content_source=@web_content_source
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
                # Click the Continue button
         
     | 
| 
      
 95 
     | 
    
         
            +
                # Note that I am calling this element directly rather than using its Class definition
         
     | 
| 
      
 96 
     | 
    
         
            +
                # because of an inexplicable ObsoleteElementError occuring in Selenium-Webdriver
         
     | 
| 
      
 97 
     | 
    
         
            +
                @browser.frame(:index=>0).button(:name, "Continue").click
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
                access = SiteAccess.new(@browser)
         
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
      
 101 
     | 
    
         
            +
                access.select_allow
         
     | 
| 
      
 102 
     | 
    
         
            +
                access.joiner_role=@joiner_role
         
     | 
| 
      
 103 
     | 
    
         
            +
             
     | 
| 
      
 104 
     | 
    
         
            +
                review = access.continue
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
      
 106 
     | 
    
         
            +
                site_setup = review.request_site
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
                # Create a string that will match the new Site's "creation date" string
         
     | 
| 
      
 109 
     | 
    
         
            +
                @creation_date = make_date(Time.now)
         
     | 
| 
      
 110 
     | 
    
         
            +
                site_setup.search_field.wait_until_present
         
     | 
| 
      
 111 
     | 
    
         
            +
                site_setup.search(Regexp.escape(@subject))
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
      
 113 
     | 
    
         
            +
                # Get the site id for storage
         
     | 
| 
      
 114 
     | 
    
         
            +
                @browser.frame(:class=>"portletMainIframe").link(:href=>/xsl-portal.site/, :index=>0).href =~ /(?<=\/site\/).+/
         
     | 
| 
      
 115 
     | 
    
         
            +
                @id = $~.to_s
         
     | 
| 
      
 116 
     | 
    
         
            +
             
     | 
| 
      
 117 
     | 
    
         
            +
              end
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
              def create_and_reuse_site(site_name)
         
     | 
| 
      
 120 
     | 
    
         
            +
                my_workspace unless @browser.title=~/My Workspace/
         
     | 
| 
      
 121 
     | 
    
         
            +
                site_setup unless @browser.title=~/Site Setup/
         
     | 
| 
      
 122 
     | 
    
         
            +
                on_page SiteSetup do |page|
         
     | 
| 
      
 123 
     | 
    
         
            +
                  page.new
         
     | 
| 
      
 124 
     | 
    
         
            +
                end
         
     | 
| 
      
 125 
     | 
    
         
            +
                site_type = SiteType.new @browser
         
     | 
| 
      
 126 
     | 
    
         
            +
             
     | 
| 
      
 127 
     | 
    
         
            +
                # Select the Course Site radio button
         
     | 
| 
      
 128 
     | 
    
         
            +
             
     | 
| 
      
 129 
     | 
    
         
            +
                site_type.select_course_site
         
     | 
| 
      
 130 
     | 
    
         
            +
             
     | 
| 
      
 131 
     | 
    
         
            +
                # Store the selected term value for use later
         
     | 
| 
      
 132 
     | 
    
         
            +
                @term = site_type.academic_term_element.value
         
     | 
| 
      
 133 
     | 
    
         
            +
             
     | 
| 
      
 134 
     | 
    
         
            +
                # Click continue
         
     | 
| 
      
 135 
     | 
    
         
            +
                course_section = site_type.continue
         
     | 
| 
      
 136 
     | 
    
         
            +
             
     | 
| 
      
 137 
     | 
    
         
            +
                # Fill in those fields, storing the entered values for later verification steps
         
     | 
| 
      
 138 
     | 
    
         
            +
                course_section.subject = @subject
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
                course_section.course = @course
         
     | 
| 
      
 141 
     | 
    
         
            +
             
     | 
| 
      
 142 
     | 
    
         
            +
                course_section.section = @section
         
     | 
| 
      
 143 
     | 
    
         
            +
             
     | 
| 
      
 144 
     | 
    
         
            +
                # Store site name for ease of coding and readability later
         
     | 
| 
      
 145 
     | 
    
         
            +
                @name = "#{@subject} #{@course} #{@section} #{@term}"
         
     | 
| 
      
 146 
     | 
    
         
            +
             
     | 
| 
      
 147 
     | 
    
         
            +
                # Click continue button
         
     | 
| 
      
 148 
     | 
    
         
            +
                course_section.continue
         
     | 
| 
      
 149 
     | 
    
         
            +
             
     | 
| 
      
 150 
     | 
    
         
            +
                # Add a valid instructor id
         
     | 
| 
      
 151 
     | 
    
         
            +
                course_section.authorizers_username=@authorizer
         
     | 
| 
      
 152 
     | 
    
         
            +
             
     | 
| 
      
 153 
     | 
    
         
            +
                # Click continue button
         
     | 
| 
      
 154 
     | 
    
         
            +
                course_site = course_section.continue
         
     | 
| 
      
 155 
     | 
    
         
            +
                course_site.editor.wait_until_present
         
     | 
| 
      
 156 
     | 
    
         
            +
                course_site.source(course_site.editor)
         
     | 
| 
      
 157 
     | 
    
         
            +
                course_site.source=@description
         
     | 
| 
      
 158 
     | 
    
         
            +
                course_site.short_description=@short_description
         
     | 
| 
      
 159 
     | 
    
         
            +
                # Click Continue
         
     | 
| 
      
 160 
     | 
    
         
            +
                course_tools = course_site.continue
         
     | 
| 
      
 161 
     | 
    
         
            +
             
     | 
| 
      
 162 
     | 
    
         
            +
                #Check All Tools
         
     | 
| 
      
 163 
     | 
    
         
            +
                course_tools.check_all_tools
         
     | 
| 
      
 164 
     | 
    
         
            +
                course_tools.select_yes
         
     | 
| 
      
 165 
     | 
    
         
            +
                course_tools.import_sites=site_name
         
     | 
| 
      
 166 
     | 
    
         
            +
                course_tools.continue
         
     | 
| 
      
 167 
     | 
    
         
            +
                on_page ReUseMaterial do |page|
         
     | 
| 
      
 168 
     | 
    
         
            +
                  page.announcements_checkbox.set
         
     | 
| 
      
 169 
     | 
    
         
            +
                  page.calendar_checkbox.set
         
     | 
| 
      
 170 
     | 
    
         
            +
                  page.discussion_forums_checkbox.set
         
     | 
| 
      
 171 
     | 
    
         
            +
                  page.forums_checkbox.set
         
     | 
| 
      
 172 
     | 
    
         
            +
                  page.chat_room_checkbox.set
         
     | 
| 
      
 173 
     | 
    
         
            +
                  page.polls_checkbox.set
         
     | 
| 
      
 174 
     | 
    
         
            +
                  page.syllabus_checkbox.set
         
     | 
| 
      
 175 
     | 
    
         
            +
                  page.lessons_checkbox.set
         
     | 
| 
      
 176 
     | 
    
         
            +
                  page.resources_checkbox.set
         
     | 
| 
      
 177 
     | 
    
         
            +
                  page.assignments_checkbox.set
         
     | 
| 
      
 178 
     | 
    
         
            +
                  page.tests_and_quizzes_checkbox.set
         
     | 
| 
      
 179 
     | 
    
         
            +
                  page.gradebook_checkbox.set
         
     | 
| 
      
 180 
     | 
    
         
            +
                  page.gradebook2_checkbox.set
         
     | 
| 
      
 181 
     | 
    
         
            +
                  page.wiki_checkbox.set
         
     | 
| 
      
 182 
     | 
    
         
            +
                  page.news_checkbox.set
         
     | 
| 
      
 183 
     | 
    
         
            +
                  page.web_content_checkbox.set
         
     | 
| 
      
 184 
     | 
    
         
            +
                  page.site_statistics_checkbox.set
         
     | 
| 
      
 185 
     | 
    
         
            +
                  page.continue
         
     | 
| 
      
 186 
     | 
    
         
            +
                end
         
     | 
| 
      
 187 
     | 
    
         
            +
                on_page AddMultipleTools do |page|
         
     | 
| 
      
 188 
     | 
    
         
            +
                  page.site_email_address=@email
         
     | 
| 
      
 189 
     | 
    
         
            +
                  page.web_content_title=@web_content_title
         
     | 
| 
      
 190 
     | 
    
         
            +
                  page.web_content_source=@web_content_source
         
     | 
| 
      
 191 
     | 
    
         
            +
                  page.continue
         
     | 
| 
      
 192 
     | 
    
         
            +
                end
         
     | 
| 
      
 193 
     | 
    
         
            +
                on_page SiteAccess do |page|
         
     | 
| 
      
 194 
     | 
    
         
            +
                  page.select_allow
         
     | 
| 
      
 195 
     | 
    
         
            +
                  page.joiner_role=@joiner_role
         
     | 
| 
      
 196 
     | 
    
         
            +
                  page.continue
         
     | 
| 
      
 197 
     | 
    
         
            +
                end
         
     | 
| 
      
 198 
     | 
    
         
            +
                on_page ConfirmSiteSetup do |page|
         
     | 
| 
      
 199 
     | 
    
         
            +
                  page.request_site
         
     | 
| 
      
 200 
     | 
    
         
            +
                end
         
     | 
| 
      
 201 
     | 
    
         
            +
                # Create a string that will match the new Site's "creation date" string
         
     | 
| 
      
 202 
     | 
    
         
            +
                @creation_date = make_date(Time.now)
         
     | 
| 
      
 203 
     | 
    
         
            +
                on_page SiteSetup do |page|
         
     | 
| 
      
 204 
     | 
    
         
            +
                  page.search_field.wait_until_present
         
     | 
| 
      
 205 
     | 
    
         
            +
                  page.search(Regexp.escape(@subject))
         
     | 
| 
      
 206 
     | 
    
         
            +
                end
         
     | 
| 
      
 207 
     | 
    
         
            +
                # Get the site id for storage
         
     | 
| 
      
 208 
     | 
    
         
            +
                @browser.frame(:class=>"portletMainIframe").link(:href=>/xsl-portal.site/, :index=>0).href =~ /(?<=\/site\/).+/
         
     | 
| 
      
 209 
     | 
    
         
            +
                @id = $~.to_s
         
     | 
| 
      
 210 
     | 
    
         
            +
             
     | 
| 
      
 211 
     | 
    
         
            +
              end
         
     | 
| 
      
 212 
     | 
    
         
            +
             
     | 
| 
      
 213 
     | 
    
         
            +
            end
         
     | 
| 
         
            File without changes
         
     | 
| 
         @@ -0,0 +1,52 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class WebContentObject
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              include PageObject
         
     | 
| 
      
 4 
     | 
    
         
            +
              include Utilities
         
     | 
| 
      
 5 
     | 
    
         
            +
              include ToolsMenu
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              attr_accessor :title, :source, :site
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              def initialize(browser, opts={})
         
     | 
| 
      
 10 
     | 
    
         
            +
                @browser = browser
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                defaults = {
         
     | 
| 
      
 13 
     | 
    
         
            +
                  :title=>random_alphanums,
         
     | 
| 
      
 14 
     | 
    
         
            +
                  :source=>"www.rsmart.com"
         
     | 
| 
      
 15 
     | 
    
         
            +
                }
         
     | 
| 
      
 16 
     | 
    
         
            +
                options = defaults.merge(opts)
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                @title=options[:title]
         
     | 
| 
      
 19 
     | 
    
         
            +
                @source=options[:source]
         
     | 
| 
      
 20 
     | 
    
         
            +
                @site=options[:site]
         
     | 
| 
      
 21 
     | 
    
         
            +
                raise "You need to specify a site for your web content" if @site==nil
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              def create
         
     | 
| 
      
 25 
     | 
    
         
            +
                my_workspace unless @browser.title=~/My Workspace/
         
     | 
| 
      
 26 
     | 
    
         
            +
                site_setup unless @browser.title=~/Site Setup$/
         
     | 
| 
      
 27 
     | 
    
         
            +
                on_page SiteSetup do |page|
         
     | 
| 
      
 28 
     | 
    
         
            +
                  page.edit @site
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
                on_page SiteEditor do |page|
         
     | 
| 
      
 31 
     | 
    
         
            +
                  page.edit_tools
         
     | 
| 
      
 32 
     | 
    
         
            +
                end
         
     | 
| 
      
 33 
     | 
    
         
            +
                on_page EditSiteTools do |page|
         
     | 
| 
      
 34 
     | 
    
         
            +
                  page.check_web_content
         
     | 
| 
      
 35 
     | 
    
         
            +
                  page.continue
         
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
      
 37 
     | 
    
         
            +
                on_page AddMultipleTools do |page|
         
     | 
| 
      
 38 
     | 
    
         
            +
                  page.web_content_title=@title
         
     | 
| 
      
 39 
     | 
    
         
            +
                  page.web_content_source=@source
         
     | 
| 
      
 40 
     | 
    
         
            +
                  page.continue
         
     | 
| 
      
 41 
     | 
    
         
            +
                end
         
     | 
| 
      
 42 
     | 
    
         
            +
                on_page ConfirmSiteToolsEdits do |page|
         
     | 
| 
      
 43 
     | 
    
         
            +
                  page.finish_button.wait_until_present
         
     | 
| 
      
 44 
     | 
    
         
            +
                  page.finish
         
     | 
| 
      
 45 
     | 
    
         
            +
                end
         
     | 
| 
      
 46 
     | 
    
         
            +
                on_page SiteEditor do |page|
         
     | 
| 
      
 47 
     | 
    
         
            +
                  page.return_button.wait_until_present
         
     | 
| 
      
 48 
     | 
    
         
            +
                  page.return_to_sites_list
         
     | 
| 
      
 49 
     | 
    
         
            +
                end
         
     | 
| 
      
 50 
     | 
    
         
            +
              end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #================
         
     | 
| 
      
 2 
     | 
    
         
            +
            # Drop Box pages
         
     | 
| 
      
 3 
     | 
    
         
            +
            #================
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            #
         
     | 
| 
      
 6 
     | 
    
         
            +
            class DropBox < AddFiles
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
              include ToolsMenu
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              def initialize(browser)
         
     | 
| 
      
 11 
     | 
    
         
            +
                @browser = browser
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                @@classes = {
         
     | 
| 
      
 14 
     | 
    
         
            +
                    :this => "DropBox",
         
     | 
| 
      
 15 
     | 
    
         
            +
                    :parent => "DropBox",
         
     | 
| 
      
 16 
     | 
    
         
            +
                    :second => "",
         
     | 
| 
      
 17 
     | 
    
         
            +
                    :third => ""
         
     | 
| 
      
 18 
     | 
    
         
            +
                }
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,7 +1,21 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            #
         
     | 
| 
       2 
2 
     | 
    
         
             
            class EmailArchive
         
     | 
| 
       3 
3 
     | 
    
         
             
              include ToolsMenu
         
     | 
| 
       4 
     | 
    
         
            -
              include  
     | 
| 
      
 4 
     | 
    
         
            +
              include PageObject
         
     | 
| 
      
 5 
     | 
    
         
            +
              def options
         
     | 
| 
      
 6 
     | 
    
         
            +
                frm.link(:text=>"Options").click
         
     | 
| 
      
 7 
     | 
    
         
            +
                EmailArchiveOptions.new(@browser)
         
     | 
| 
      
 8 
     | 
    
         
            +
              end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              # Returns an array containing the
         
     | 
| 
      
 11 
     | 
    
         
            +
              def email_list
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              in_frame(:class=>"portletMainIframe") do |frame|
         
     | 
| 
      
 15 
     | 
    
         
            +
                text_field(:search_field, :id=>"search", :frame=>frame)
         
     | 
| 
      
 16 
     | 
    
         
            +
                button(:search_button, :value=>"Search", :frame=>frame)
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
              end
         
     | 
| 
       5 
19 
     | 
    
         
             
            end
         
     | 
| 
       6 
20 
     | 
    
         | 
| 
       7 
21 
     | 
    
         
             
            class EmailArchiveOptions
         
     | 
| 
         @@ -1,39 +1,313 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            class Forums
         
     | 
| 
       2 
2 
     | 
    
         
             
              include ToolsMenu
         
     | 
| 
       3 
     | 
    
         
            -
               
     | 
| 
      
 3 
     | 
    
         
            +
              # Pass this method a string that matches
         
     | 
| 
      
 4 
     | 
    
         
            +
              # the title of a Forum on the page, it returns
         
     | 
| 
      
 5 
     | 
    
         
            +
              # True if the specified forum row has "DRAFT" in it.
         
     | 
| 
      
 6 
     | 
    
         
            +
              def draft?(title)
         
     | 
| 
      
 7 
     | 
    
         
            +
                frm.table(:id=>"msgForum:forums").row(:text=>/#{Regexp.escape(title)}/).span(:text=>"DRAFT").exist?
         
     | 
| 
      
 8 
     | 
    
         
            +
              end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              def new_forum
         
     | 
| 
      
 11 
     | 
    
         
            +
                frm.link(:text=>"New Forum").click
         
     | 
| 
      
 12 
     | 
    
         
            +
                EditForum.new(@browser)
         
     | 
| 
      
 13 
     | 
    
         
            +
              end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              def new_topic_for_forum(name)
         
     | 
| 
      
 16 
     | 
    
         
            +
                index = forum_titles.index(name)
         
     | 
| 
      
 17 
     | 
    
         
            +
                frm.link(:text=>"New Topic", :index=>index).click
         
     | 
| 
      
 18 
     | 
    
         
            +
                AddEditTopic.new(@browser)
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
              def organize
         
     | 
| 
      
 22 
     | 
    
         
            +
                frm.link(:text=>"Organize").click
         
     | 
| 
      
 23 
     | 
    
         
            +
                OrganizeForums.new(@browser)
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
              def template_settings
         
     | 
| 
      
 27 
     | 
    
         
            +
                frm.link(:text=>"Template Settings").click
         
     | 
| 
      
 28 
     | 
    
         
            +
                ForumTemplateSettings.new(@browser)
         
     | 
| 
      
 29 
     | 
    
         
            +
              end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
              def forums_table
         
     | 
| 
      
 32 
     | 
    
         
            +
                frm.div(:class=>"portletBody").table(:id=>"msgForum:forums")
         
     | 
| 
      
 33 
     | 
    
         
            +
              end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
              def forum_titles
         
     | 
| 
      
 36 
     | 
    
         
            +
                titles = []
         
     | 
| 
      
 37 
     | 
    
         
            +
                title_links = frm.div(:class=>"portletBody").links.find_all { |link| link.class_name=="title" && link.id=="" }
         
     | 
| 
      
 38 
     | 
    
         
            +
                title_links.each { |link| titles << link.text }
         
     | 
| 
      
 39 
     | 
    
         
            +
                return titles
         
     | 
| 
      
 40 
     | 
    
         
            +
              end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
              def topic_titles
         
     | 
| 
      
 43 
     | 
    
         
            +
                titles = []
         
     | 
| 
      
 44 
     | 
    
         
            +
                title_links = frm.div(:class=>"portletBody").links.find_all { |link| link.class_name == "title" && link.id != "" }
         
     | 
| 
      
 45 
     | 
    
         
            +
                title_links.each { |link| titles << link.text }
         
     | 
| 
      
 46 
     | 
    
         
            +
                return titles
         
     | 
| 
      
 47 
     | 
    
         
            +
              end
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
              def forum_settings(name)
         
     | 
| 
      
 50 
     | 
    
         
            +
                index = forum_titles.index(name)
         
     | 
| 
      
 51 
     | 
    
         
            +
                frm.link(:text=>"Forum Settings", :index=>index).click
         
     | 
| 
      
 52 
     | 
    
         
            +
                EditForum.new(@browser)
         
     | 
| 
      
 53 
     | 
    
         
            +
              end
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
              def topic_settings(name)
         
     | 
| 
      
 56 
     | 
    
         
            +
                index = topic_titles.index(name)
         
     | 
| 
      
 57 
     | 
    
         
            +
                frm.link(:text=>"Topic Settings", :index=>index).click
         
     | 
| 
      
 58 
     | 
    
         
            +
                AddEditTopic.new(@browser)
         
     | 
| 
      
 59 
     | 
    
         
            +
              end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
              def delete_forum(name)
         
     | 
| 
      
 62 
     | 
    
         
            +
                index = forum_titles.index(name)
         
     | 
| 
      
 63 
     | 
    
         
            +
                frm.link(:id=>/msgForum:forums:\d+:delete/,:text=>"Delete", :index=>index).click
         
     | 
| 
      
 64 
     | 
    
         
            +
                EditForum.new(@browser)
         
     | 
| 
      
 65 
     | 
    
         
            +
              end
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
              def delete_topic(name)
         
     | 
| 
      
 68 
     | 
    
         
            +
                index = topic_titles.index(name)
         
     | 
| 
      
 69 
     | 
    
         
            +
                frm.link(:id=>/topics:\d+:delete_confirm/, :text=>"Delete", :index=>index).click
         
     | 
| 
      
 70 
     | 
    
         
            +
                AddEditTopic.new(@browser)
         
     | 
| 
      
 71 
     | 
    
         
            +
              end
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
              def open_forum(forum_title)
         
     | 
| 
      
 74 
     | 
    
         
            +
                frm.link(:text=>forum_title).click
         
     | 
| 
      
 75 
     | 
    
         
            +
                # New Class def goes here.
         
     | 
| 
      
 76 
     | 
    
         
            +
              end
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
              def open_topic(topic_title)
         
     | 
| 
      
 79 
     | 
    
         
            +
                frm.link(:text=>topic_title).click
         
     | 
| 
      
 80 
     | 
    
         
            +
                TopicPage.new(@browser)
         
     | 
| 
      
 81 
     | 
    
         
            +
              end
         
     | 
| 
       4 
82 
     | 
    
         
             
            end
         
     | 
| 
       5 
83 
     | 
    
         | 
| 
       6 
84 
     | 
    
         
             
            class TopicPage
         
     | 
| 
       7 
85 
     | 
    
         
             
              include ToolsMenu
         
     | 
| 
       8 
     | 
    
         
            -
               
     | 
| 
      
 86 
     | 
    
         
            +
              def post_new_thread
         
     | 
| 
      
 87 
     | 
    
         
            +
                frm.link(:text=>"Post New Thread").click
         
     | 
| 
      
 88 
     | 
    
         
            +
                ComposeForumMessage.new(@browser)
         
     | 
| 
      
 89 
     | 
    
         
            +
              end
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
              def thread_titles
         
     | 
| 
      
 92 
     | 
    
         
            +
                titles = []
         
     | 
| 
      
 93 
     | 
    
         
            +
                message_table = frm.table(:id=>"msgForum:messagesInHierDataTable")
         
     | 
| 
      
 94 
     | 
    
         
            +
                1.upto(message_table.rows.size-1) do |x|
         
     | 
| 
      
 95 
     | 
    
         
            +
                  titles << message_table[x][1].span(:class=>"firstChild").link(:index=>0).text
         
     | 
| 
      
 96 
     | 
    
         
            +
                end
         
     | 
| 
      
 97 
     | 
    
         
            +
                return titles
         
     | 
| 
      
 98 
     | 
    
         
            +
              end
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
              def open_message(message_title)
         
     | 
| 
      
 101 
     | 
    
         
            +
                frm.div(:class=>"portletBody").link(:text=>message_title).click
         
     | 
| 
      
 102 
     | 
    
         
            +
                ViewForumThread.new(@browser)
         
     | 
| 
      
 103 
     | 
    
         
            +
              end
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
              def display_entire_message
         
     | 
| 
      
 106 
     | 
    
         
            +
                frm.link(:text=>"Display Entire Message").click
         
     | 
| 
      
 107 
     | 
    
         
            +
                TopicPage.new(@browser)
         
     | 
| 
      
 108 
     | 
    
         
            +
              end
         
     | 
| 
       9 
109 
     | 
    
         
             
            end
         
     | 
| 
       10 
110 
     | 
    
         | 
| 
       11 
111 
     | 
    
         
             
            class ViewForumThread
         
     | 
| 
       12 
112 
     | 
    
         
             
              include ToolsMenu
         
     | 
| 
       13 
     | 
    
         
            -
               
     | 
| 
      
 113 
     | 
    
         
            +
              def reply_to_thread
         
     | 
| 
      
 114 
     | 
    
         
            +
                frm.link(:text=>"Reply to Thread").click
         
     | 
| 
      
 115 
     | 
    
         
            +
                ComposeForumMessage.new(@browser)
         
     | 
| 
      
 116 
     | 
    
         
            +
              end
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
              def reply_to_message(index)
         
     | 
| 
      
 119 
     | 
    
         
            +
                frm.link(:text=>"Reply", :index=>(index.to_i - 1)).click
         
     | 
| 
      
 120 
     | 
    
         
            +
                ComposeForumMessage.new(@browser)
         
     | 
| 
      
 121 
     | 
    
         
            +
              end
         
     | 
| 
       14 
122 
     | 
    
         
             
            end
         
     | 
| 
       15 
123 
     | 
    
         | 
| 
       16 
124 
     | 
    
         
             
            class ComposeForumMessage
         
     | 
| 
       17 
125 
     | 
    
         
             
              include ToolsMenu
         
     | 
| 
       18 
     | 
    
         
            -
              include  
     | 
| 
      
 126 
     | 
    
         
            +
              include PageObject
         
     | 
| 
      
 127 
     | 
    
         
            +
              def post_message
         
     | 
| 
      
 128 
     | 
    
         
            +
                frm.button(:text=>"Post Message").click
         
     | 
| 
      
 129 
     | 
    
         
            +
                # Not sure if we need logic here...
         
     | 
| 
      
 130 
     | 
    
         
            +
                TopicPage.new(@browser)
         
     | 
| 
      
 131 
     | 
    
         
            +
              end
         
     | 
| 
      
 132 
     | 
    
         
            +
             
     | 
| 
      
 133 
     | 
    
         
            +
              def editor
         
     | 
| 
      
 134 
     | 
    
         
            +
                frm.frame(:id, "dfCompose:df_compose_body_inputRichText___Frame").td(:id, "xEditingArea").frame(:index=>0)
         
     | 
| 
      
 135 
     | 
    
         
            +
              end
         
     | 
| 
      
 136 
     | 
    
         
            +
             
     | 
| 
      
 137 
     | 
    
         
            +
              def message=(text)
         
     | 
| 
      
 138 
     | 
    
         
            +
                editor.send_keys(text)
         
     | 
| 
      
 139 
     | 
    
         
            +
              end
         
     | 
| 
      
 140 
     | 
    
         
            +
             
     | 
| 
      
 141 
     | 
    
         
            +
              def reply_text
         
     | 
| 
      
 142 
     | 
    
         
            +
                @browser.frame(:index=>1).div(:class=>"singleMessageReply").text
         
     | 
| 
      
 143 
     | 
    
         
            +
              end
         
     | 
| 
      
 144 
     | 
    
         
            +
             
     | 
| 
      
 145 
     | 
    
         
            +
              def add_attachments
         
     | 
| 
      
 146 
     | 
    
         
            +
                #FIXME
         
     | 
| 
      
 147 
     | 
    
         
            +
              end
         
     | 
| 
      
 148 
     | 
    
         
            +
             
     | 
| 
      
 149 
     | 
    
         
            +
              def cancel
         
     | 
| 
      
 150 
     | 
    
         
            +
                frm.button(:value=>"Cancel").click
         
     | 
| 
      
 151 
     | 
    
         
            +
                # Logic for picking the correct page class
         
     | 
| 
      
 152 
     | 
    
         
            +
                if frm.link(:text=>"Reply to Thread")
         
     | 
| 
      
 153 
     | 
    
         
            +
                  ViewForumThread.new(@browser)
         
     | 
| 
      
 154 
     | 
    
         
            +
                elsif frm.link(:text=>"Post New Thread").click
         
     | 
| 
      
 155 
     | 
    
         
            +
                  TopicPage.new(@browser)
         
     | 
| 
      
 156 
     | 
    
         
            +
                end
         
     | 
| 
      
 157 
     | 
    
         
            +
              end
         
     | 
| 
      
 158 
     | 
    
         
            +
             
     | 
| 
      
 159 
     | 
    
         
            +
              in_frame(:class=>"portletMainIframe") do |frame|
         
     | 
| 
      
 160 
     | 
    
         
            +
                text_field(:title, :id=>"dfCompose:df_compose_title", :frame=>frame)
         
     | 
| 
      
 161 
     | 
    
         
            +
             
     | 
| 
      
 162 
     | 
    
         
            +
              end
         
     | 
| 
       19 
163 
     | 
    
         
             
            end
         
     | 
| 
       20 
164 
     | 
    
         | 
| 
       21 
165 
     | 
    
         
             
            class ForumTemplateSettings
         
     | 
| 
       22 
166 
     | 
    
         
             
              include ToolsMenu
         
     | 
| 
       23 
     | 
    
         
            -
               
     | 
| 
      
 167 
     | 
    
         
            +
              def page_title
         
     | 
| 
      
 168 
     | 
    
         
            +
                frm.div(:class=>"portletBody").h3(:index=>0).text
         
     | 
| 
      
 169 
     | 
    
         
            +
              end
         
     | 
| 
      
 170 
     | 
    
         
            +
             
     | 
| 
      
 171 
     | 
    
         
            +
              def save
         
     | 
| 
      
 172 
     | 
    
         
            +
                frm.button(:value=>"Save").click
         
     | 
| 
      
 173 
     | 
    
         
            +
                Forums.new(@browser)
         
     | 
| 
      
 174 
     | 
    
         
            +
              end
         
     | 
| 
      
 175 
     | 
    
         
            +
             
     | 
| 
      
 176 
     | 
    
         
            +
              def cancel
         
     | 
| 
      
 177 
     | 
    
         
            +
                frm.button(:value=>"Cancel").click
         
     | 
| 
      
 178 
     | 
    
         
            +
                Forums.new(@browser)
         
     | 
| 
      
 179 
     | 
    
         
            +
              end
         
     | 
| 
      
 180 
     | 
    
         
            +
            =begin
         
     | 
| 
      
 181 
     | 
    
         
            +
                def site_role=(role)
         
     | 
| 
      
 182 
     | 
    
         
            +
                frm.select(:id=>"revise:role").select(role)
         
     | 
| 
      
 183 
     | 
    
         
            +
                0.upto(frm.select(:id=>"revise:role").length - 1) do |x|
         
     | 
| 
      
 184 
     | 
    
         
            +
                  if frm.div(:class=>"portletBody").table(:class=>"permissionPanel jsfFormTable lines nolines", :index=>x).visible?
         
     | 
| 
      
 185 
     | 
    
         
            +
                    @@table_index = x
         
     | 
| 
      
 186 
     | 
    
         
            +
             
     | 
| 
      
 187 
     | 
    
         
            +
                    def permission_level=(value)
         
     | 
| 
      
 188 
     | 
    
         
            +
                      frm.select(:id=>"revise:perm:#{@@table_index}:level").select(value)
         
     | 
| 
      
 189 
     | 
    
         
            +
                    end
         
     | 
| 
      
 190 
     | 
    
         
            +
             
     | 
| 
      
 191 
     | 
    
         
            +
                  end
         
     | 
| 
      
 192 
     | 
    
         
            +
                end
         
     | 
| 
      
 193 
     | 
    
         
            +
              end
         
     | 
| 
      
 194 
     | 
    
         
            +
            =end
         
     | 
| 
       24 
195 
     | 
    
         
             
            end
         
     | 
| 
       25 
196 
     | 
    
         | 
| 
       26 
197 
     | 
    
         
             
            class OrganizeForums
         
     | 
| 
       27 
198 
     | 
    
         
             
              include ToolsMenu
         
     | 
| 
       28 
     | 
    
         
            -
               
     | 
| 
      
 199 
     | 
    
         
            +
              def save
         
     | 
| 
      
 200 
     | 
    
         
            +
                frm.button(:value=>"Save").click
         
     | 
| 
      
 201 
     | 
    
         
            +
                Forums.new(@browser)
         
     | 
| 
      
 202 
     | 
    
         
            +
              end
         
     | 
| 
      
 203 
     | 
    
         
            +
             
     | 
| 
      
 204 
     | 
    
         
            +
              # These are set to so that the user
         
     | 
| 
      
 205 
     | 
    
         
            +
              # does not have to start the list at zero...
         
     | 
| 
      
 206 
     | 
    
         
            +
              def forum(index)
         
     | 
| 
      
 207 
     | 
    
         
            +
                frm.select(:id, "revise:forums:#{index.to_i - 1}:forumIndex")
         
     | 
| 
      
 208 
     | 
    
         
            +
              end
         
     | 
| 
      
 209 
     | 
    
         
            +
             
     | 
| 
      
 210 
     | 
    
         
            +
              def topic(forumindex, topicindex)
         
     | 
| 
      
 211 
     | 
    
         
            +
                frm.select(:id, "revise:forums:#{forumindex.to_i - 1}:topics:#{topicindex.to_i - 1}:topicIndex")
         
     | 
| 
      
 212 
     | 
    
         
            +
              end
         
     | 
| 
       29 
213 
     | 
    
         
             
            end
         
     | 
| 
       30 
214 
     | 
    
         | 
| 
       31 
215 
     | 
    
         
             
            class EditForum
         
     | 
| 
       32 
216 
     | 
    
         
             
              include ToolsMenu
         
     | 
| 
       33 
     | 
    
         
            -
              include  
     | 
| 
      
 217 
     | 
    
         
            +
              include PageObject
         
     | 
| 
      
 218 
     | 
    
         
            +
              def save
         
     | 
| 
      
 219 
     | 
    
         
            +
                frm.button(:value=>"Save").click
         
     | 
| 
      
 220 
     | 
    
         
            +
                Forums.new(@browser)
         
     | 
| 
      
 221 
     | 
    
         
            +
              end
         
     | 
| 
      
 222 
     | 
    
         
            +
             
     | 
| 
      
 223 
     | 
    
         
            +
              def save_and_add
         
     | 
| 
      
 224 
     | 
    
         
            +
                frm.button(:value=>"Save Settings & Add Topic").click
         
     | 
| 
      
 225 
     | 
    
         
            +
                AddEditTopic.new(@browser)
         
     | 
| 
      
 226 
     | 
    
         
            +
              end
         
     | 
| 
      
 227 
     | 
    
         
            +
             
     | 
| 
      
 228 
     | 
    
         
            +
              def editor
         
     | 
| 
      
 229 
     | 
    
         
            +
                frm.div(:class=>"portletBody").frame(:id, "revise:df_compose_description_inputRichText___Frame").td(:id, "xEditingArea").frame(:index=>0)
         
     | 
| 
      
 230 
     | 
    
         
            +
              end
         
     | 
| 
      
 231 
     | 
    
         
            +
             
     | 
| 
      
 232 
     | 
    
         
            +
              def description=(text)
         
     | 
| 
      
 233 
     | 
    
         
            +
                editor.send_keys(text)
         
     | 
| 
      
 234 
     | 
    
         
            +
              end
         
     | 
| 
      
 235 
     | 
    
         
            +
             
     | 
| 
      
 236 
     | 
    
         
            +
              def add_attachments
         
     | 
| 
      
 237 
     | 
    
         
            +
                frm.button(:value=>/attachments/).click
         
     | 
| 
      
 238 
     | 
    
         
            +
                ForumsAddAttachments.new(@browser)
         
     | 
| 
      
 239 
     | 
    
         
            +
              end
         
     | 
| 
      
 240 
     | 
    
         
            +
             
     | 
| 
      
 241 
     | 
    
         
            +
              in_frame(:class=>"portletMainIframe") do |frame|
         
     | 
| 
      
 242 
     | 
    
         
            +
                text_field(:title, :id=>"revise:forum_title", :frame=>frame)
         
     | 
| 
      
 243 
     | 
    
         
            +
                text_area(:short_description, :id=>"revise:forum_shortDescription", :frame=>frame)
         
     | 
| 
      
 244 
     | 
    
         
            +
             
     | 
| 
      
 245 
     | 
    
         
            +
              end
         
     | 
| 
       34 
246 
     | 
    
         
             
            end
         
     | 
| 
       35 
247 
     | 
    
         | 
| 
       36 
248 
     | 
    
         
             
            class AddEditTopic
         
     | 
| 
       37 
249 
     | 
    
         
             
              include ToolsMenu
         
     | 
| 
       38 
     | 
    
         
            -
              include  
     | 
| 
      
 250 
     | 
    
         
            +
              include PageObject
         
     | 
| 
      
 251 
     | 
    
         
            +
             
     | 
| 
      
 252 
     | 
    
         
            +
              @@table_index=0
         
     | 
| 
      
 253 
     | 
    
         
            +
             
     | 
| 
      
 254 
     | 
    
         
            +
              def editor
         
     | 
| 
      
 255 
     | 
    
         
            +
                frm.div(:class=>"portletBody").frame(:id, "revise:topic_description_inputRichText___Frame").td(:id, "xEditingArea").frame(:index=>0)
         
     | 
| 
      
 256 
     | 
    
         
            +
              end
         
     | 
| 
      
 257 
     | 
    
         
            +
             
     | 
| 
      
 258 
     | 
    
         
            +
              def description=(text)
         
     | 
| 
      
 259 
     | 
    
         
            +
                editor.send_keys(text)
         
     | 
| 
      
 260 
     | 
    
         
            +
              end
         
     | 
| 
      
 261 
     | 
    
         
            +
             
     | 
| 
      
 262 
     | 
    
         
            +
              def save
         
     | 
| 
      
 263 
     | 
    
         
            +
                frm.button(:value=>"Save").click
         
     | 
| 
      
 264 
     | 
    
         
            +
                Forums.new(@browser)
         
     | 
| 
      
 265 
     | 
    
         
            +
              end
         
     | 
| 
      
 266 
     | 
    
         
            +
             
     | 
| 
      
 267 
     | 
    
         
            +
              def add_attachments
         
     | 
| 
      
 268 
     | 
    
         
            +
                frm.button(:value=>/Add.+ttachment/).click
         
     | 
| 
      
 269 
     | 
    
         
            +
                ForumsAddAttachments.new(@browser)
         
     | 
| 
      
 270 
     | 
    
         
            +
              end
         
     | 
| 
      
 271 
     | 
    
         
            +
             
     | 
| 
      
 272 
     | 
    
         
            +
              def roles
         
     | 
| 
      
 273 
     | 
    
         
            +
                roles=[]
         
     | 
| 
      
 274 
     | 
    
         
            +
                options = frm.select(:id=>"revise:role").options.to_a
         
     | 
| 
      
 275 
     | 
    
         
            +
                options.each { |option| roles << option.text }
         
     | 
| 
      
 276 
     | 
    
         
            +
                return roles
         
     | 
| 
      
 277 
     | 
    
         
            +
              end
         
     | 
| 
      
 278 
     | 
    
         
            +
             
     | 
| 
      
 279 
     | 
    
         
            +
              def site_role=(role)
         
     | 
| 
      
 280 
     | 
    
         
            +
                frm.select(:id=>"revise:role").select(role)
         
     | 
| 
      
 281 
     | 
    
         
            +
                0.upto(frm.select(:id=>"revise:role").length - 1) do |x|
         
     | 
| 
      
 282 
     | 
    
         
            +
                  if frm.div(:class=>"portletBody").table(:class=>"permissionPanel jsfFormTable lines nolines", :index=>x).visible?
         
     | 
| 
      
 283 
     | 
    
         
            +
                    @@table_index = x
         
     | 
| 
      
 284 
     | 
    
         
            +
             
     | 
| 
      
 285 
     | 
    
         
            +
                    def permission_level=(value)
         
     | 
| 
      
 286 
     | 
    
         
            +
                      frm.select(:id=>"revise:perm:#{@@table_index}:level").select(value)
         
     | 
| 
      
 287 
     | 
    
         
            +
                    end
         
     | 
| 
      
 288 
     | 
    
         
            +
             
     | 
| 
      
 289 
     | 
    
         
            +
                  end
         
     | 
| 
      
 290 
     | 
    
         
            +
                end
         
     | 
| 
      
 291 
     | 
    
         
            +
              end
         
     | 
| 
      
 292 
     | 
    
         
            +
             
     | 
| 
      
 293 
     | 
    
         
            +
              in_frame(:class=>"portletMainIframe") do |frame|
         
     | 
| 
      
 294 
     | 
    
         
            +
                text_field(:title, :id=>"revise:topic_title", :frame=>frame)
         
     | 
| 
      
 295 
     | 
    
         
            +
                text_area(:short_description, :id=>"revise:topic_shortDescription", :frame=>frame)
         
     | 
| 
      
 296 
     | 
    
         
            +
             
     | 
| 
      
 297 
     | 
    
         
            +
              end
         
     | 
| 
      
 298 
     | 
    
         
            +
            end
         
     | 
| 
      
 299 
     | 
    
         
            +
             
     | 
| 
      
 300 
     | 
    
         
            +
            # TODO: Determine where this should go and a better way to organize the code
         
     | 
| 
      
 301 
     | 
    
         
            +
            class ForumsAddAttachments < AddFiles
         
     | 
| 
      
 302 
     | 
    
         
            +
             
     | 
| 
      
 303 
     | 
    
         
            +
              def initialize(browser)
         
     | 
| 
      
 304 
     | 
    
         
            +
                @browser = browser
         
     | 
| 
      
 305 
     | 
    
         
            +
             
     | 
| 
      
 306 
     | 
    
         
            +
                @@classes = {
         
     | 
| 
      
 307 
     | 
    
         
            +
                    :this => "ForumsAddAttachments",
         
     | 
| 
      
 308 
     | 
    
         
            +
                    :parent => "AddEditTopic",
         
     | 
| 
      
 309 
     | 
    
         
            +
                    :second => "EditForum"
         
     | 
| 
      
 310 
     | 
    
         
            +
                }
         
     | 
| 
      
 311 
     | 
    
         
            +
              end
         
     | 
| 
      
 312 
     | 
    
         
            +
             
     | 
| 
       39 
313 
     | 
    
         
             
            end
         
     |