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
 
| 
         
            File without changes
         
     | 
| 
         @@ -143,11 +143,12 @@ class EditEvaluationAssignment 
     | 
|
| 
       143 
143 
     | 
    
         
             
              end
         
     | 
| 
       144 
144 
     | 
    
         | 
| 
       145 
145 
     | 
    
         
             
              def check_group(title)
         
     | 
| 
      
 146 
     | 
    
         
            +
                frm.table(:class=>"listHier lines nolines").wait_until_present
         
     | 
| 
       146 
147 
     | 
    
         
             
                frm.table(:class=>"listHier lines nolines").row(:text=>/#{Regexp.escape(title)}/).checkbox(:name=>"selectedGroupIDs").set
         
     | 
| 
       147 
148 
     | 
    
         
             
              end
         
     | 
| 
       148 
149 
     | 
    
         | 
| 
       149 
150 
     | 
    
         
             
              in_frame(:class=>"portletMainIframe") do |frame|
         
     | 
| 
       150 
     | 
    
         
            -
                
         
     | 
| 
      
 151 
     | 
    
         
            +
                link(:assign_to_evaluation_groups, :text=>"Assign to Evaluation Groups", :frame=>frame)
         
     | 
| 
       151 
152 
     | 
    
         
             
              end
         
     | 
| 
       152 
153 
     | 
    
         
             
            end
         
     | 
| 
       153 
154 
     | 
    
         | 
| 
         @@ -226,11 +227,6 @@ class Home 
     | 
|
| 
       226 
227 
     | 
    
         
             
                button(:update_announcements, :name=>"eventSubmit_doUpdate", :frame=>frame)
         
     | 
| 
       227 
228 
     | 
    
         
             
              end
         
     | 
| 
       228 
229 
     | 
    
         | 
| 
       229 
     | 
    
         
            -
              # The Home class should be instantiated whenever the user
         
     | 
| 
       230 
     | 
    
         
            -
              # context is a given Site or the Administration Workspace.
         
     | 
| 
       231 
     | 
    
         
            -
              # In that context, the frame index is 1.
         
     | 
| 
       232 
     | 
    
         
            -
              $frame_index=1
         
     | 
| 
       233 
     | 
    
         
            -
              
         
     | 
| 
       234 
230 
     | 
    
         
             
              # Gets the text of the displayed announcements, for
         
     | 
| 
       235 
231 
     | 
    
         
             
              # test case verification
         
     | 
| 
       236 
232 
     | 
    
         
             
              def announcements_list
         
     | 
| 
         @@ -302,135 +298,7 @@ class MyWorkspace 
     | 
|
| 
       302 
298 
     | 
    
         | 
| 
       303 
299 
     | 
    
         
             
            end
         
     | 
| 
       304 
300 
     | 
    
         | 
| 
       305 
     | 
    
         
            -
            #================
         
     | 
| 
       306 
     | 
    
         
            -
            # Resources Pages 
         
     | 
| 
       307 
     | 
    
         
            -
            #================
         
     | 
| 
       308 
     | 
    
         
            -
             
     | 
| 
       309 
     | 
    
         
            -
            # New class template. For quick class creation...
         
     | 
| 
       310 
     | 
    
         
            -
            class ResourcesUploadFiles
         
     | 
| 
       311 
     | 
    
         
            -
              
         
     | 
| 
       312 
     | 
    
         
            -
              include ToolsMenu
         
     | 
| 
       313 
     | 
    
         
            -
              
         
     | 
| 
       314 
     | 
    
         
            -
              @@filex=0
         
     | 
| 
       315 
     | 
    
         
            -
              
         
     | 
| 
       316 
     | 
    
         
            -
              # Enters the specified folder/filename value into
         
     | 
| 
       317 
     | 
    
         
            -
              # the file field on the page. Note that files are
         
     | 
| 
       318 
     | 
    
         
            -
              # assumed to be in the relative path ../../data/sakai-cle-test-api
         
     | 
| 
       319 
     | 
    
         
            -
              # The method will throw an error if the specified file
         
     | 
| 
       320 
     | 
    
         
            -
              # is not found.
         
     | 
| 
       321 
     | 
    
         
            -
              # 
         
     | 
| 
       322 
     | 
    
         
            -
              # This method is designed to be able to use
         
     | 
| 
       323 
     | 
    
         
            -
              # multiple times, but it assumes
         
     | 
| 
       324 
     | 
    
         
            -
              # that the add_another_file method is used
         
     | 
| 
       325 
     | 
    
         
            -
              # before it, every time except before the first time.
         
     | 
| 
       326 
     | 
    
         
            -
              def file_to_upload(file_name, file_path="")
         
     | 
| 
       327 
     | 
    
         
            -
                frm.file_field(:id, "content_#{@@filex}").set(file_path + file_name)
         
     | 
| 
       328 
     | 
    
         
            -
                @@filex+=1
         
     | 
| 
       329 
     | 
    
         
            -
              end
         
     | 
| 
       330 
     | 
    
         
            -
              
         
     | 
| 
       331 
     | 
    
         
            -
              # Clicks the Upload Files Now button, resets the
         
     | 
| 
       332 
     | 
    
         
            -
              # @@filex class variable back to zero, and instantiates
         
     | 
| 
       333 
     | 
    
         
            -
              # the Resources page class.
         
     | 
| 
       334 
     | 
    
         
            -
              def upload_files_now
         
     | 
| 
       335 
     | 
    
         
            -
                frm.button(:value=>"Upload Files Now").click
         
     | 
| 
       336 
     | 
    
         
            -
                @@filex=0
         
     | 
| 
       337 
     | 
    
         
            -
                Resources.new(@browser)
         
     | 
| 
       338 
     | 
    
         
            -
              end
         
     | 
| 
       339 
     | 
    
         
            -
              
         
     | 
| 
       340 
     | 
    
         
            -
              # Clicks the Add Another File link.
         
     | 
| 
       341 
     | 
    
         
            -
              def add_another_file
         
     | 
| 
       342 
     | 
    
         
            -
                frm.link(:text=>"Add Another File").click
         
     | 
| 
       343 
     | 
    
         
            -
              end
         
     | 
| 
       344 
     | 
    
         
            -
              
         
     | 
| 
       345 
     | 
    
         
            -
            end
         
     | 
| 
       346 
     | 
    
         
            -
             
     | 
| 
       347 
     | 
    
         
            -
            class EditFileDetails
         
     | 
| 
       348 
     | 
    
         
            -
              
         
     | 
| 
       349 
     | 
    
         
            -
              include ToolsMenu
         
     | 
| 
       350 
     | 
    
         
            -
              
         
     | 
| 
       351 
     | 
    
         
            -
              # Clicks the Update button, then instantiates
         
     | 
| 
       352 
     | 
    
         
            -
              # the Resources page class.
         
     | 
| 
       353 
     | 
    
         
            -
              def update    
         
     | 
| 
       354 
     | 
    
         
            -
                frm.button(:value=>"Update").click
         
     | 
| 
       355 
     | 
    
         
            -
                Resources.new(@browser)
         
     | 
| 
       356 
     | 
    
         
            -
              end
         
     | 
| 
       357 
     | 
    
         
            -
              
         
     | 
| 
       358 
     | 
    
         
            -
              # Enters the specified string into the title field.
         
     | 
| 
       359 
     | 
    
         
            -
              def title=(title)
         
     | 
| 
       360 
     | 
    
         
            -
                frm.text_field(:id=>"displayName_0").set(title)
         
     | 
| 
       361 
     | 
    
         
            -
              end
         
     | 
| 
       362 
     | 
    
         
            -
              
         
     | 
| 
       363 
     | 
    
         
            -
              # Enters the specified string into the description field.
         
     | 
| 
       364 
     | 
    
         
            -
              def description=(description)
         
     | 
| 
       365 
     | 
    
         
            -
                frm.text_field(:id=>"description_0").set(description)
         
     | 
| 
       366 
     | 
    
         
            -
              end
         
     | 
| 
       367 
     | 
    
         
            -
              
         
     | 
| 
       368 
     | 
    
         
            -
              # Sets the radio button for publically viewable.
         
     | 
| 
       369 
     | 
    
         
            -
              def select_publicly_viewable
         
     | 
| 
       370 
     | 
    
         
            -
                frm.radio(:id=>"access_mode_public_0").set
         
     | 
| 
       371 
     | 
    
         
            -
              end
         
     | 
| 
       372 
     | 
    
         
            -
              
         
     | 
| 
       373 
     | 
    
         
            -
              # Checks the checkbox for showing only on the specifed
         
     | 
| 
       374 
     | 
    
         
            -
              # condition.
         
     | 
| 
       375 
     | 
    
         
            -
              def check_show_only_if_condition
         
     | 
| 
       376 
     | 
    
         
            -
                frm.checkbox(:id=>"cbCondition_0")
         
     | 
| 
       377 
     | 
    
         
            -
              end
         
     | 
| 
       378 
     | 
    
         
            -
              
         
     | 
| 
       379 
     | 
    
         
            -
              # Selects the specified Gradebook item value in the
         
     | 
| 
       380 
     | 
    
         
            -
              # select list.
         
     | 
| 
       381 
     | 
    
         
            -
              def gradebook_item=(item)
         
     | 
| 
       382 
     | 
    
         
            -
                frm.select(:id=>"selectResource_0").select(item)
         
     | 
| 
       383 
     | 
    
         
            -
              end
         
     | 
| 
       384 
     | 
    
         
            -
              
         
     | 
| 
       385 
     | 
    
         
            -
              # Selects the specified value in the item condition
         
     | 
| 
       386 
     | 
    
         
            -
              # field.
         
     | 
| 
       387 
     | 
    
         
            -
              def item_condition=(condition)
         
     | 
| 
       388 
     | 
    
         
            -
                frm.select(:id=>"selectCondition_0").select(condition)
         
     | 
| 
       389 
     | 
    
         
            -
              end
         
     | 
| 
       390 
     | 
    
         
            -
              
         
     | 
| 
       391 
     | 
    
         
            -
              # Sets the Grade field to the specified value.
         
     | 
| 
       392 
     | 
    
         
            -
              def assignment_grade=(grade)
         
     | 
| 
       393 
     | 
    
         
            -
                frm.text_field(:id=>"assignment_grade_0").set(grade)
         
     | 
| 
       394 
     | 
    
         
            -
              end
         
     | 
| 
       395 
     | 
    
         
            -
            end
         
     | 
| 
       396 
     | 
    
         
            -
             
     | 
| 
       397 
     | 
    
         
            -
            class CreateFolders #FIXME - Need to add functions for adding multiple folders
         
     | 
| 
       398 
     | 
    
         
            -
              
         
     | 
| 
       399 
     | 
    
         
            -
              include ToolsMenu
         
     | 
| 
       400 
     | 
    
         
            -
              
         
     | 
| 
       401 
     | 
    
         
            -
              # Clicks the Create Folders Now button, then
         
     | 
| 
       402 
     | 
    
         
            -
              # instantiates the Resources page class.
         
     | 
| 
       403 
     | 
    
         
            -
              def create_folders_now
         
     | 
| 
       404 
     | 
    
         
            -
                frm.button(:value=>"Create Folders Now").click
         
     | 
| 
       405 
     | 
    
         
            -
                Resources.new(@browser)
         
     | 
| 
       406 
     | 
    
         
            -
              end
         
     | 
| 
       407 
     | 
    
         
            -
             
     | 
| 
       408 
     | 
    
         
            -
              # Enters the specified string in the Folder Name
         
     | 
| 
       409 
     | 
    
         
            -
              # text field.
         
     | 
| 
       410 
     | 
    
         
            -
              def folder_name=(name)
         
     | 
| 
       411 
     | 
    
         
            -
                frm.text_field(:id=>"content_0").set(name)
         
     | 
| 
       412 
     | 
    
         
            -
              end
         
     | 
| 
       413 
     | 
    
         
            -
             
     | 
| 
       414 
     | 
    
         
            -
            end
         
     | 
| 
       415 
     | 
    
         
            -
             
     | 
| 
       416 
     | 
    
         
            -
            # Resources page for a given Site, in the Course Tools menu
         
     | 
| 
       417 
     | 
    
         
            -
            class Resources < AddFiles
         
     | 
| 
       418 
301 
     | 
    
         | 
| 
       419 
     | 
    
         
            -
              include ToolsMenu
         
     | 
| 
       420 
     | 
    
         
            -
              
         
     | 
| 
       421 
     | 
    
         
            -
              def initialize(browser)
         
     | 
| 
       422 
     | 
    
         
            -
                @browser = browser
         
     | 
| 
       423 
     | 
    
         
            -
                
         
     | 
| 
       424 
     | 
    
         
            -
                @@classes = {
         
     | 
| 
       425 
     | 
    
         
            -
                  :this=>             "Resources",
         
     | 
| 
       426 
     | 
    
         
            -
                  :parent =>          "Resources",
         
     | 
| 
       427 
     | 
    
         
            -
                  :file_details =>    "EditFileDetails",
         
     | 
| 
       428 
     | 
    
         
            -
                  :create_folders =>  "CreateFolders",
         
     | 
| 
       429 
     | 
    
         
            -
                  :upload_files =>    "ResourcesUploadFiles"
         
     | 
| 
       430 
     | 
    
         
            -
                }
         
     | 
| 
       431 
     | 
    
         
            -
              end
         
     | 
| 
       432 
     | 
    
         
            -
              
         
     | 
| 
       433 
     | 
    
         
            -
            end
         
     | 
| 
       434 
302 
     | 
    
         | 
| 
       435 
303 
     | 
    
         
             
            #================
         
     | 
| 
       436 
304 
     | 
    
         
             
            # Administrative Search Pages
         
     | 
| 
         @@ -514,7 +382,11 @@ class SiteSetup 
     | 
|
| 
       514 
382 
     | 
    
         | 
| 
       515 
383 
     | 
    
         
             
              include PageObject
         
     | 
| 
       516 
384 
     | 
    
         
             
              include ToolsMenu
         
     | 
| 
       517 
     | 
    
         
            -
             
     | 
| 
      
 385 
     | 
    
         
            +
             
     | 
| 
      
 386 
     | 
    
         
            +
              def search_field
         
     | 
| 
      
 387 
     | 
    
         
            +
                frm.text_field(:id, "search")
         
     | 
| 
      
 388 
     | 
    
         
            +
              end
         
     | 
| 
      
 389 
     | 
    
         
            +
             
     | 
| 
       518 
390 
     | 
    
         
             
              # Clicks the "New" link on the Site Setup page.
         
     | 
| 
       519 
391 
     | 
    
         
             
              # instantiates the SiteType class.
         
     | 
| 
       520 
392 
     | 
    
         
             
              def new
         
     | 
| 
         @@ -527,7 +399,7 @@ class SiteSetup 
     | 
|
| 
       527 
399 
     | 
    
         
             
              # Then clicks the Edit button and instantiates
         
     | 
| 
       528 
400 
     | 
    
         
             
              # The SiteSetupEdit class.
         
     | 
| 
       529 
401 
     | 
    
         
             
              def edit(site_name)
         
     | 
| 
       530 
     | 
    
         
            -
                 
     | 
| 
      
 402 
     | 
    
         
            +
                search_field.value=Regexp.escape(site_name)
         
     | 
| 
       531 
403 
     | 
    
         
             
                frm.button(:value=>"Search").click
         
     | 
| 
       532 
404 
     | 
    
         
             
                frm.div(:class=>"portletBody").checkbox(:name=>"selectedMembers").set
         
     | 
| 
       533 
405 
     | 
    
         
             
                frm.div(:class=>"portletBody").link(:text, "Edit").click
         
     | 
| 
         @@ -538,7 +410,7 @@ class SiteSetup 
     | 
|
| 
       538 
410 
     | 
    
         
             
              # field, clicks the Search button, then reinstantiates
         
     | 
| 
       539 
411 
     | 
    
         
             
              # the Class due to the page refresh.
         
     | 
| 
       540 
412 
     | 
    
         
             
              def search(site_name)
         
     | 
| 
       541 
     | 
    
         
            -
                 
     | 
| 
      
 413 
     | 
    
         
            +
                search_field.set site_name
         
     | 
| 
       542 
414 
     | 
    
         
             
                frm.button(:value, "Search").click
         
     | 
| 
       543 
415 
     | 
    
         
             
                SiteSetup.new(@browser)
         
     | 
| 
       544 
416 
     | 
    
         
             
              end
         
     | 
| 
         @@ -547,7 +419,7 @@ class SiteSetup 
     | 
|
| 
       547 
419 
     | 
    
         
             
              # checks the site, clicks the delete button,
         
     | 
| 
       548 
420 
     | 
    
         
             
              # and instantiates the DeleteSite class.
         
     | 
| 
       549 
421 
     | 
    
         
             
              def delete(site_name)
         
     | 
| 
       550 
     | 
    
         
            -
                 
     | 
| 
      
 422 
     | 
    
         
            +
                search_field.value=site_name
         
     | 
| 
       551 
423 
     | 
    
         
             
                frm.button(:value=>"Search").click
         
     | 
| 
       552 
424 
     | 
    
         
             
                frm.checkbox(:name=>"selectedMembers").set
         
     | 
| 
       553 
425 
     | 
    
         
             
                frm.div(:class=>"portletBody").link(:text, "Delete").click
         
     | 
| 
         @@ -603,11 +475,17 @@ class SiteEditor 
     | 
|
| 
       603 
475 
     | 
    
         
             
                frm.button(:value=>"Update Participants").click
         
     | 
| 
       604 
476 
     | 
    
         
             
                SiteEditor.new(@browser)
         
     | 
| 
       605 
477 
     | 
    
         
             
              end
         
     | 
| 
       606 
     | 
    
         
            -
             
     | 
| 
      
 478 
     | 
    
         
            +
             
     | 
| 
      
 479 
     | 
    
         
            +
              def return_button
         
     | 
| 
      
 480 
     | 
    
         
            +
                frm.button(:name=>"back")
         
     | 
| 
      
 481 
     | 
    
         
            +
              end
         
     | 
| 
      
 482 
     | 
    
         
            +
             
     | 
| 
      
 483 
     | 
    
         
            +
              def return_to_sites_list
         
     | 
| 
      
 484 
     | 
    
         
            +
                return_button.click
         
     | 
| 
      
 485 
     | 
    
         
            +
              end
         
     | 
| 
      
 486 
     | 
    
         
            +
             
     | 
| 
       607 
487 
     | 
    
         
             
              in_frame(:class=>"portletMainIframe") do |frame|
         
     | 
| 
       608 
488 
     | 
    
         
             
                button(:previous, :name=>"previous", :frame=>frame)
         
     | 
| 
       609 
     | 
    
         
            -
                button(:return_to_sites_list, :name=>"", :frame=>frame)
         
     | 
| 
       610 
     | 
    
         
            -
                button(:next, :name=>"", :frame=>frame)
         
     | 
| 
       611 
489 
     | 
    
         
             
                link(:printable_version, :text=>"Printable Version", :frame=>frame)
         
     | 
| 
       612 
490 
     | 
    
         
             
                select_list(:select_page_size, :name=>"selectPageSize", :frame=>frame)
         
     | 
| 
       613 
491 
     | 
    
         
             
                button(:next, :name=>"eventSubmit_doList_next", :frame=>frame)
         
     | 
| 
         @@ -816,20 +694,8 @@ class EditSiteTools 
     | 
|
| 
       816 
694 
     | 
    
         
             
              include PageObject
         
     | 
| 
       817 
695 
     | 
    
         
             
              include ToolsMenu
         
     | 
| 
       818 
696 
     | 
    
         | 
| 
       819 
     | 
    
         
            -
              # Clicks the Continue button 
     | 
| 
       820 
     | 
    
         
            -
               
     | 
| 
       821 
     | 
    
         
            -
              def continue
         
     | 
| 
       822 
     | 
    
         
            -
                frm.button(:value=>"Continue").click
         
     | 
| 
       823 
     | 
    
         
            -
                # Logic for determining the new page class...
         
     | 
| 
       824 
     | 
    
         
            -
                if frm.div(:class=>"portletBody").text =~ /^Add Multiple Tool/
         
     | 
| 
       825 
     | 
    
         
            -
                  AddMultipleTools.new(@browser)
         
     | 
| 
       826 
     | 
    
         
            -
                elsif frm.div(:class=>"portletBody").text =~ /^Confirming site tools edits for/
         
     | 
| 
       827 
     | 
    
         
            -
                  ConfirmSiteToolsEdits.new(@browser)
         
     | 
| 
       828 
     | 
    
         
            -
                else
         
     | 
| 
       829 
     | 
    
         
            -
                  puts "Something is wrong"
         
     | 
| 
       830 
     | 
    
         
            -
                  puts frm.div(:class=>"portletBody").text
         
     | 
| 
       831 
     | 
    
         
            -
                end
         
     | 
| 
       832 
     | 
    
         
            -
              end
         
     | 
| 
      
 697 
     | 
    
         
            +
              # Clicks the Continue button.
         
     | 
| 
      
 698 
     | 
    
         
            +
              action(:continue) { |b| b.frm.button(:value=>"Continue").click }
         
     | 
| 
       833 
699 
     | 
    
         | 
| 
       834 
700 
     | 
    
         
             
              in_frame(:class=>"portletMainIframe") do |frame|
         
     | 
| 
       835 
701 
     | 
    
         
             
                # This is a comprehensive list of all checkboxes and
         
     | 
| 
         @@ -894,16 +760,46 @@ class EditSiteTools 
     | 
|
| 
       894 
760 
     | 
    
         | 
| 
       895 
761 
     | 
    
         
             
            end
         
     | 
| 
       896 
762 
     | 
    
         | 
| 
      
 763 
     | 
    
         
            +
            class ReUseMaterial
         
     | 
| 
      
 764 
     | 
    
         
            +
             
     | 
| 
      
 765 
     | 
    
         
            +
              include PageObject
         
     | 
| 
      
 766 
     | 
    
         
            +
              include ToolsMenu
         
     | 
| 
      
 767 
     | 
    
         
            +
             
     | 
| 
      
 768 
     | 
    
         
            +
              thing(:announcements_checkbox) { |b| b.frm.checkbox(name: "sakai.announcements") }
         
     | 
| 
      
 769 
     | 
    
         
            +
              thing(:calendar_checkbox) { |b| b.frm.checkbox(name: "sakai.schedule") }
         
     | 
| 
      
 770 
     | 
    
         
            +
              thing(:discussion_forums_checkbox) { |b| b.frm.checkbox(name: "sakai.jforum.tool") }
         
     | 
| 
      
 771 
     | 
    
         
            +
              thing(:forums_checkbox) { |b| b.frm.checkbox(name: "sakai.forums") }
         
     | 
| 
      
 772 
     | 
    
         
            +
              thing(:chat_room_checkbox) { |b| b.frm.checkbox(name: "sakai.chat") }
         
     | 
| 
      
 773 
     | 
    
         
            +
              thing(:polls_checkbox) { |b| b.frm.checkbox(name: "sakai.poll") }
         
     | 
| 
      
 774 
     | 
    
         
            +
              thing(:syllabus_checkbox) { |b| b.frm.checkbox(name: "sakai.syllabus") }
         
     | 
| 
      
 775 
     | 
    
         
            +
              thing(:lessons_checkbox) { |b| b.frm.checkbox(name: "sakai.melete") }
         
     | 
| 
      
 776 
     | 
    
         
            +
              thing(:resources_checkbox) { |b| b.frm.checkbox(name: "sakai.resources") }
         
     | 
| 
      
 777 
     | 
    
         
            +
              thing(:assignments_checkbox) { |b| b.frm.checkbox(name: "sakai.assignment.grades") }
         
     | 
| 
      
 778 
     | 
    
         
            +
              thing(:tests_and_quizzes_checkbox) { |b| b.frm.checkbox(name: "sakai.samigo") }
         
     | 
| 
      
 779 
     | 
    
         
            +
              thing(:gradebook_checkbox) { |b| b.frm.checkbox(name: "sakai.gradebook.tool") }
         
     | 
| 
      
 780 
     | 
    
         
            +
              thing(:gradebook2_checkbox) { |b| b.frm.checkbox(name: "sakai.gradebook.gwt.rpc") }
         
     | 
| 
      
 781 
     | 
    
         
            +
              thing(:wiki_checkbox) { |b| b.frm.checkbox(name: "sakai.rwiki") }
         
     | 
| 
      
 782 
     | 
    
         
            +
              thing(:news_checkbox) { |b| b.frm.checkbox(name: "sakai.news") }
         
     | 
| 
      
 783 
     | 
    
         
            +
              thing(:web_content_checkbox) { |b| b.frm.checkbox(name: "sakai.iframe") }
         
     | 
| 
      
 784 
     | 
    
         
            +
              thing(:site_statistics_checkbox) { |b| b.frm.checkbox(name: "sakai.sitestats") }
         
     | 
| 
      
 785 
     | 
    
         
            +
              action(:continue) { |b| b.frm.button(name: "eventSubmit_doContinue").click }
         
     | 
| 
      
 786 
     | 
    
         
            +
             
     | 
| 
      
 787 
     | 
    
         
            +
            end
         
     | 
| 
      
 788 
     | 
    
         
            +
             
     | 
| 
       897 
789 
     | 
    
         
             
            # Confirmation page when editing site tools in Site Setup
         
     | 
| 
       898 
790 
     | 
    
         
             
            class ConfirmSiteToolsEdits
         
     | 
| 
       899 
791 
     | 
    
         | 
| 
       900 
792 
     | 
    
         
             
              include PageObject
         
     | 
| 
       901 
793 
     | 
    
         
             
              include ToolsMenu
         
     | 
| 
       902 
     | 
    
         
            -
             
     | 
| 
      
 794 
     | 
    
         
            +
             
     | 
| 
      
 795 
     | 
    
         
            +
              def finish_button
         
     | 
| 
      
 796 
     | 
    
         
            +
                frm.button(:value=>"Finish")
         
     | 
| 
      
 797 
     | 
    
         
            +
              end
         
     | 
| 
      
 798 
     | 
    
         
            +
             
     | 
| 
       903 
799 
     | 
    
         
             
              # Clicks the Finish button, then instantiates
         
     | 
| 
       904 
800 
     | 
    
         
             
              # the SiteSetupEdit class.
         
     | 
| 
       905 
801 
     | 
    
         
             
              def finish
         
     | 
| 
       906 
     | 
    
         
            -
                 
     | 
| 
      
 802 
     | 
    
         
            +
                finish_button.click
         
     | 
| 
       907 
803 
     | 
    
         
             
                SiteEditor.new(@browser)
         
     | 
| 
       908 
804 
     | 
    
         
             
              end
         
     | 
| 
       909 
805 
     | 
    
         | 
| 
         @@ -993,20 +889,8 @@ class AddMultipleTools 
     | 
|
| 
       993 
889 
     | 
    
         
             
              include PageObject
         
     | 
| 
       994 
890 
     | 
    
         
             
              include ToolsMenu
         
     | 
| 
       995 
891 
     | 
    
         | 
| 
       996 
     | 
    
         
            -
              # Clicks the Continue button 
     | 
| 
       997 
     | 
    
         
            -
               
     | 
| 
       998 
     | 
    
         
            -
              # appears.
         
     | 
| 
       999 
     | 
    
         
            -
              def continue
         
     | 
| 
       1000 
     | 
    
         
            -
                frm.button(:value=>"Continue").click
         
     | 
| 
       1001 
     | 
    
         
            -
                # Logic to determine the new page class
         
     | 
| 
       1002 
     | 
    
         
            -
                if frm.div(:class=>"portletBody").text =~ /Course Site Access/
         
     | 
| 
       1003 
     | 
    
         
            -
                  SiteAccess.new(@browser)
         
     | 
| 
       1004 
     | 
    
         
            -
                elsif frm.div(:class=>"portletBody").text =~ /^Confirming site tools edits/
         
     | 
| 
       1005 
     | 
    
         
            -
                  ConfirmSiteToolsEdits.new(@browser)
         
     | 
| 
       1006 
     | 
    
         
            -
                else
         
     | 
| 
       1007 
     | 
    
         
            -
                  puts "There's another path to define"
         
     | 
| 
       1008 
     | 
    
         
            -
                end
         
     | 
| 
       1009 
     | 
    
         
            -
              end
         
     | 
| 
      
 892 
     | 
    
         
            +
              # Clicks the Continue button.
         
     | 
| 
      
 893 
     | 
    
         
            +
              action(:continue) { |b| b.frm.button(:value=>"Continue").click }
         
     | 
| 
       1010 
894 
     | 
    
         | 
| 
       1011 
895 
     | 
    
         
             
              in_frame(:class=>"portletMainIframe") do |frame|
         
     | 
| 
       1012 
896 
     | 
    
         
             
                # Note that the text field definitions included here
         
     | 
| 
         @@ -1142,7 +1026,20 @@ class CourseSiteInfo 
     | 
|
| 
       1142 
1026 
     | 
    
         | 
| 
       1143 
1027 
     | 
    
         
             
              include PageObject
         
     | 
| 
       1144 
1028 
     | 
    
         
             
              include ToolsMenu
         
     | 
| 
       1145 
     | 
    
         
            -
              
         
     | 
| 
      
 1029 
     | 
    
         
            +
              include FCKEditor
         
     | 
| 
      
 1030 
     | 
    
         
            +
             
     | 
| 
      
 1031 
     | 
    
         
            +
              def editor
         
     | 
| 
      
 1032 
     | 
    
         
            +
                frm.frame(:id=>"description___Frame")
         
     | 
| 
      
 1033 
     | 
    
         
            +
              end
         
     | 
| 
      
 1034 
     | 
    
         
            +
             
     | 
| 
      
 1035 
     | 
    
         
            +
              def description=(text)
         
     | 
| 
      
 1036 
     | 
    
         
            +
                editor.td(:id, "xEditingArea").frame(:index=>0).send_keys text
         
     | 
| 
      
 1037 
     | 
    
         
            +
              end
         
     | 
| 
      
 1038 
     | 
    
         
            +
             
     | 
| 
      
 1039 
     | 
    
         
            +
              def source=(text)
         
     | 
| 
      
 1040 
     | 
    
         
            +
                editor.td(:id, "xEditingArea").text_field(:class=>"SourceField").set text
         
     | 
| 
      
 1041 
     | 
    
         
            +
              end
         
     | 
| 
      
 1042 
     | 
    
         
            +
             
     | 
| 
       1146 
1043 
     | 
    
         
             
              # Clicks the Continue button, then
         
     | 
| 
       1147 
1044 
     | 
    
         
             
              # instantiates the EditSiteTools Class.
         
     | 
| 
       1148 
1045 
     | 
    
         
             
              def continue
         
     | 
| 
         @@ -0,0 +1,90 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class Time
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              # Using the :year_range option (or no option), this method creates a
         
     | 
| 
      
 4 
     | 
    
         
            +
              # Time object of a random value, within
         
     | 
| 
      
 5 
     | 
    
         
            +
              # the year range specified (default is 5 years in the past).
         
     | 
| 
      
 6 
     | 
    
         
            +
              #
         
     | 
| 
      
 7 
     | 
    
         
            +
              # Using the :series option, this method returns an array
         
     | 
| 
      
 8 
     | 
    
         
            +
              # containing a randomized Time object as its first element (limited by
         
     | 
| 
      
 9 
     | 
    
         
            +
              # the specified :year_range value). Subsequent elements will be Time objects
         
     | 
| 
      
 10 
     | 
    
         
            +
              # with values putting them later than the prior element, within the specified
         
     | 
| 
      
 11 
     | 
    
         
            +
              # range value (see examples).
         
     | 
| 
      
 12 
     | 
    
         
            +
              #
         
     | 
| 
      
 13 
     | 
    
         
            +
              # Usage Examples:
         
     | 
| 
      
 14 
     | 
    
         
            +
              # @example
         
     | 
| 
      
 15 
     | 
    
         
            +
              #   a random date...
         
     | 
| 
      
 16 
     | 
    
         
            +
              #   ?> Time.random
         
     | 
| 
      
 17 
     | 
    
         
            +
              #   => Tue Aug 05 00:00:00 EDT 2007
         
     | 
| 
      
 18 
     | 
    
         
            +
              #
         
     | 
| 
      
 19 
     | 
    
         
            +
              #   birthdays, anyone?...
         
     | 
| 
      
 20 
     | 
    
         
            +
              #   5.times { p Time.random(:year_range=>80) }
         
     | 
| 
      
 21 
     | 
    
         
            +
              #   Wed Feb 06 00:00:00 EDT 1974
         
     | 
| 
      
 22 
     | 
    
         
            +
              #   Tue Dec 22 00:00:00 EST 1992
         
     | 
| 
      
 23 
     | 
    
         
            +
              #   Fri Apr 14 00:00:00 EWT 1944
         
     | 
| 
      
 24 
     | 
    
         
            +
              #   Thu Jul 01 00:00:00 EDT 1993
         
     | 
| 
      
 25 
     | 
    
         
            +
              #   Wed Oct 02 00:00:00 EDT 2002
         
     | 
| 
      
 26 
     | 
    
         
            +
              #
         
     | 
| 
      
 27 
     | 
    
         
            +
              #   A series of dates are useful for account-related info...
         
     | 
| 
      
 28 
     | 
    
         
            +
              #   ?> Time.random(:series=>[20.days, 3.years])
         
     | 
| 
      
 29 
     | 
    
         
            +
              #   => [Sat Jan 22 00:00:00 EST 2005,
         
     | 
| 
      
 30 
     | 
    
         
            +
              #   Sat Jan 29 12:58:45 EST 2005,
         
     | 
| 
      
 31 
     | 
    
         
            +
              #   Fri Sep 08 09:34:58 EDT 2006]
         
     | 
| 
      
 32 
     | 
    
         
            +
              #
         
     | 
| 
      
 33 
     | 
    
         
            +
              #   or maybe to simulate events during an hour?...
         
     | 
| 
      
 34 
     | 
    
         
            +
              #   ?> Time.random(:series=>[1.hour,1.hour,1.hour])
         
     | 
| 
      
 35 
     | 
    
         
            +
              #   => [Wed Apr 21 00:00:00 EDT 2004,
         
     | 
| 
      
 36 
     | 
    
         
            +
              #   Wed Apr 21 00:45:59 EDT 2004,
         
     | 
| 
      
 37 
     | 
    
         
            +
              #   Wed Apr 21 01:02:47 EDT 2004,
         
     | 
| 
      
 38 
     | 
    
         
            +
              #   Wed Apr 21 01:31:00 EDT 2004]
         
     | 
| 
      
 39 
     | 
    
         
            +
              def self.random(params={})
         
     | 
| 
      
 40 
     | 
    
         
            +
                years_back = params[:year_range] || 5
         
     | 
| 
      
 41 
     | 
    
         
            +
                year = (rand * (years_back)).ceil + (Time.now.year - years_back)
         
     | 
| 
      
 42 
     | 
    
         
            +
                month = (rand * 12).ceil
         
     | 
| 
      
 43 
     | 
    
         
            +
                day = (rand * 31).ceil
         
     | 
| 
      
 44 
     | 
    
         
            +
                series = [date = Time.local(year, month, day)]
         
     | 
| 
      
 45 
     | 
    
         
            +
                if params[:series]
         
     | 
| 
      
 46 
     | 
    
         
            +
                  params[:series].each do |some_time_after|
         
     | 
| 
      
 47 
     | 
    
         
            +
                    series << series.last + (rand * some_time_after).ceil
         
     | 
| 
      
 48 
     | 
    
         
            +
                  end
         
     | 
| 
      
 49 
     | 
    
         
            +
                  return series
         
     | 
| 
      
 50 
     | 
    
         
            +
                end
         
     | 
| 
      
 51 
     | 
    
         
            +
                date
         
     | 
| 
      
 52 
     | 
    
         
            +
              end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
            end  # Time
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
            module Enumerable
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
              # Use for getting a natural sort order instead of the ASCII
         
     | 
| 
      
 59 
     | 
    
         
            +
              # sort order.
         
     | 
| 
      
 60 
     | 
    
         
            +
              def alphabetize
         
     | 
| 
      
 61 
     | 
    
         
            +
                sort { |a, b| grouped_compare(a, b) }
         
     | 
| 
      
 62 
     | 
    
         
            +
              end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
              # Use for sorting an Enumerable object in place.
         
     | 
| 
      
 65 
     | 
    
         
            +
              def alphabetize!
         
     | 
| 
      
 66 
     | 
    
         
            +
                sort! { |a, b| grouped_compare(a, b) }
         
     | 
| 
      
 67 
     | 
    
         
            +
              end
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
              private
         
     | 
| 
      
 70 
     | 
    
         
            +
              def grouped_compare(a, b)
         
     | 
| 
      
 71 
     | 
    
         
            +
                loop {
         
     | 
| 
      
 72 
     | 
    
         
            +
                  a_chunk, a = extract_alpha_or_number_group(a)
         
     | 
| 
      
 73 
     | 
    
         
            +
                  b_chunk, b = extract_alpha_or_number_group(b)
         
     | 
| 
      
 74 
     | 
    
         
            +
                  ret = a_chunk <=> b_chunk
         
     | 
| 
      
 75 
     | 
    
         
            +
                  return -1 if a_chunk == ''
         
     | 
| 
      
 76 
     | 
    
         
            +
                  return ret if ret != 0
         
     | 
| 
      
 77 
     | 
    
         
            +
                }
         
     | 
| 
      
 78 
     | 
    
         
            +
              end
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
              def extract_alpha_or_number_group(item)
         
     | 
| 
      
 81 
     | 
    
         
            +
                test_item = item.downcase
         
     | 
| 
      
 82 
     | 
    
         
            +
                matchdata = /([a-z]+|[\d]+)/.match(test_item)
         
     | 
| 
      
 83 
     | 
    
         
            +
                if matchdata.nil?
         
     | 
| 
      
 84 
     | 
    
         
            +
                  ["", ""]
         
     | 
| 
      
 85 
     | 
    
         
            +
                else
         
     | 
| 
      
 86 
     | 
    
         
            +
                  [matchdata[0], test_item = test_item[matchdata.offset(0)[1] .. -1]]
         
     | 
| 
      
 87 
     | 
    
         
            +
                end
         
     | 
| 
      
 88 
     | 
    
         
            +
              end
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
            end # Enumerable
         
     | 
| 
         @@ -0,0 +1,38 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class AnnouncementObject
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              include PageObject
         
     | 
| 
      
 4 
     | 
    
         
            +
              include Utilities
         
     | 
| 
      
 5 
     | 
    
         
            +
              include ToolsMenu
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              attr_accessor :title, :body, :site, :link
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              def initialize(browser, opts={})
         
     | 
| 
      
 10 
     | 
    
         
            +
                @browser = browser
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                defaults = {
         
     | 
| 
      
 13 
     | 
    
         
            +
                    :title=>random_alphanums,
         
     | 
| 
      
 14 
     | 
    
         
            +
                    :body=>random_multiline(500, 10, :alpha)
         
     | 
| 
      
 15 
     | 
    
         
            +
                }
         
     | 
| 
      
 16 
     | 
    
         
            +
                options = defaults.merge(opts)
         
     | 
| 
      
 17 
     | 
    
         
            +
                @title=options[:title]
         
     | 
| 
      
 18 
     | 
    
         
            +
                @body=options[:body]
         
     | 
| 
      
 19 
     | 
    
         
            +
                @site=options[:site]
         
     | 
| 
      
 20 
     | 
    
         
            +
                raise "You must specify a Site for the announcement" if @site==nil
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
              def create
         
     | 
| 
      
 24 
     | 
    
         
            +
                my_workspace.open_my_site_by_name @site unless @browser.title=~/#{@site}/
         
     | 
| 
      
 25 
     | 
    
         
            +
                announcements unless @browser.title=~/Announcements$/
         
     | 
| 
      
 26 
     | 
    
         
            +
                on_page Announcements do |page|
         
     | 
| 
      
 27 
     | 
    
         
            +
                  page.add
         
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
      
 29 
     | 
    
         
            +
                on_page AddEditAnnouncements do |page|
         
     | 
| 
      
 30 
     | 
    
         
            +
                  page.title=@title
         
     | 
| 
      
 31 
     | 
    
         
            +
                  page.body=@body
         
     | 
| 
      
 32 
     | 
    
         
            +
                  page.add_announcement
         
     | 
| 
      
 33 
     | 
    
         
            +
                end
         
     | 
| 
      
 34 
     | 
    
         
            +
                on_page Announcements do |page|
         
     | 
| 
      
 35 
     | 
    
         
            +
                  @link = page.href(@title)
         
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
      
 37 
     | 
    
         
            +
              end
         
     | 
| 
      
 38 
     | 
    
         
            +
            end
         
     |