Validate Error Handling PDF Print E-mail
Written by Lauren Snyder   
Sunday, 01 July 2007
require 'test/unit'
require 'test/unit/testcase'
require 'watir'

#includes for using logger
require 'example_logger1'
#include other files in directory

  class TC_error_handling < Test::Unit::TestCase
    include Watir
    
    def setup
      #open IE browser
      url = "http://www.google.com"
      $ie = Watir::IE.start(url)
      $ie.bring_to_front  
            
    #create a logger
      filePrefix = "test_logger"
      $logger = LoggerFactory.start_xml_logger(filePrefix)
      $ie.set_logger($logger)
    
    #start logging
      $logger.log("")
      $logger.log("## Beginning Test ##")
      $logger.log("")  
    end
    
    def click_button
      $ie.button(:name, "imageField").click
      $logger.log("Clicked on the 'Submit' button to launch pop-up")
    end    
         
    def teardown
      $logger.log("")
      $logger.log("## Testing Complete ##")
      $logger.log("")
      $ie.close
    end
    
    def personal_information
      $logger.log("")
      $logger.log(" ## Personal Information ## ")
      per_fields = ["Title", "First Name", "Last Name", "Home Phone", "Address",
                  "City", "Cell Phone", "State", "Zip",
                  "Time At This Residence(Yrs)",
                  "Time At This Residence(Mos)",
                  "Email Address",
                  "Do You Own Your Own Home?",
                  "U.S. Resident 18 Years or Older?",
                  "Social Security Number",
                  "Date of Birth",
                  "Drivers License State",
                  "Drivers License Number"]
      per_fields.each do | personal_field_name |
        click_button
        $logger.log("")
        $logger.log("#{personal_field_name}")
        assert($ie.div(:id => "errorPanel_hd", :text => "Field Required").exists?)
        $logger.log(" #Found: header")
        case personal_field_name
          when personal_field_name = "Title":                                  assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{personal_field_name}").exists?)
          when personal_field_name = "First Name":                             assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{personal_field_name}").exists?)
          when personal_field_name = "Last Name":                              assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{personal_field_name}").exists?)
          when personal_field_name = "Address":                                assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{personal_field_name}").exists?)
          when personal_field_name = "City":                                 assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{personal_field_name}").exists?)
          when personal_field_name = "State":                                 assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{personal_field_name}").exists?)
          when personal_field_name = "Zip":                                    assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{personal_field_name}").exists?)
          when personal_field_name = "Time At This Residence(Yrs)":            assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your time at this residence in (years)").exists?)
          when personal_field_name = "Time At This Residence(Mos)":            assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your time at this residence in (months)").exists?)
          when personal_field_name = "Email Address":                          assert($ie.div(:id => "errorPanel_bd", :text => "A valid email address is required.").exists?)
          when personal_field_name = "Do You Own Your Own Home?":              assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your current status - Do you Rent or Own").exists?)
          when personal_field_name = "U.S. Resident 18 Years or Older?":      assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your US Residency").exists?)
          when personal_field_name = "Social Security Number":                 assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{personal_field_name}").exists?)
          when personal_field_name = "Date of Birth":                          assert($ie.div(:id => "errorPanel_bd", :text => "A valid date of birth must be entered in mm/dd/yyyy format. (Please note you must be at least 18 years old to apply.)").exists?)
          when personal_field_name = "Drivers License State":                  assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{personal_field_name}").exists?)
          when personal_field_name = "Drivers License Number":                 assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{personal_field_name}").exists?)
          #Telephone Validation fields
          when personal_field_name = "Home Phone":  assert($ie.div(:id => "errorPanel_bd", :text => "A valid phone number is required.").exists?)
          when personal_field_name = "Cell Phone":  assert_equal(false, ($ie.div(:id => "errorPanel_bd", :text => "A valid phone number is required.").exists?))
          end          
        $logger.log(" #Found: body text for field: #{personal_field_name}")
        $ie.button(:type, "button").click
        $logger.log("Clicked on the 'OK' button to close pop-up")
          case personal_field_name
          when personal_field_name = "Title":                                  $ie.select_list(:id, "field_salutation").select("Mr")
          when personal_field_name = "First Name":                             $ie.text_field(:id, "field_firstName").set("First Test")
          when personal_field_name = "Last Name":                              $ie.text_field(:id, "field_lastName").set("Last Test")
          when personal_field_name = "Address":                                $ie.text_field(:id, "field_address").set("1234 S. Testing Street")
          when personal_field_name = "Home Phone":                             $ie.text_field(:id, "field_homePhone").set("480-234-8789")
          when personal_field_name = "City":                                   $ie.text_field(:id, "field_city").set("Gilbert")
          when personal_field_name = "Cell Phone":                             $ie.text_field(:id, "field_cellPhone").set("452-965-4714")
          when personal_field_name = "State":                                 $ie.select_list(:id, "field_state").select("Arizona")
          when personal_field_name = "Zip":                                    $ie.text_field(:id, "field_zip").set("85226")
          when personal_field_name = "Time At This Residence(Yrs)":         $ie.select_list(:id, "field_resYears").select("3")
          when personal_field_name = "Time At This Residence(Mos)":          $ie.select_list(:id, "field_resMonths").select("4")
          when personal_field_name = "Email Address":                          $ie.text_field(:id, "field_email").set(" This e-mail address is being protected from spam bots, you need JavaScript enabled to view it ")
          when personal_field_name = "Do You Own Your Own Home?":             $ie.radio(:id, "field_rentown_Yes").set
          when personal_field_name = "U.S. Resident 18 Years or Older?": $ie.radio(:id, "field_resident_Yes").set
          when personal_field_name = "Social Security Number":                $ie.text_field(:id, "field_SSN").set("601-85-9658")
          when personal_field_name = "Date of Birth":                          $ie.text_field(:id, "field_dob").set("07/03/1972")
          when personal_field_name = "Drivers License State":                 $ie.select_list(:id, "field_dlState").select("Arizona")
          when personal_field_name = "Drivers License Number":              $ie.text_field(:id, "field_dlNumber").set("111212322")

          else   $logger.log("Your field could not be found.")
          end
        end
      end
      
      def employer_information
        $logger.log("")
        $logger.log(" ## Employer Information ## ")
        emp_fields = ["employer", "work phone", "length of employment(yrs)", "length of employment(mos)",
                  "Employer Address", "Employer City", "Employer State", "Employer Zip",
                  "Employment Verification",
                  "Direct Deposit Verification",
                  "monthly net income", "Income Type",
                  "How Often Do You Get Paid", "1st Pay Date",
                  ]
        emp_fields.each do | employer_field_name |
        click_button
        $logger.log("")
        $logger.log("#{employer_field_name}")
        assert($ie.div(:id => "errorPanel_hd", :text => "Field Required").exists?)
        $logger.log(" #Found: header")
        case employer_field_name
          when employer_field_name = "employer":                                  assert($ie.div(:id => "errorPanel_bd", :text => /Please enter your #{employer_field_name}/i).exists?)
          when employer_field_name = "work phone":                                assert($ie.div(:id => "errorPanel_bd", :text => "A valid phone number is required.").exists?)
          when employer_field_name = "length of employment(yrs)":                 assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your Employment Length (Years)").exists?)
          when employer_field_name = "length of employment(mos)":                 assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your Employment Length (Months)").exists?)
          when employer_field_name = "Employer Address":                          assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{employer_field_name}").exists?)
          when employer_field_name = "Employer City":                             assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{employer_field_name}").exists?)
          when employer_field_name = "Employer State":                            assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{employer_field_name}").exists?)
          when employer_field_name = "Employer Zip":                              assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{employer_field_name}").exists?)
          when employer_field_name = "monthly net income":                        assert($ie.div(:id => "errorPanel_bd", :text => "Please supply a numeric value for this field.").exists?)
          when employer_field_name = "Income Type":                               assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{employer_field_name}").exists?)
          when employer_field_name = "How Often Do You Get Paid":                 assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{employer_field_name}").exists?)
          when employer_field_name = "1st Pay Date":                              assert($ie.div(:id => "errorPanel_bd", :text => "Please enter the date of your next paycheck. The next paycheck date must be after today.").exists?)
          when employer_field_name = "2nd Pay Date":                              assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{employer_field_name}").exists?)
          when employer_field_name = "Employment Verification":                   assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{employer_field_name}").exists?)
          when employer_field_name = "Direct Deposit Verification":              assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{employer_field_name}").exists?)
          #social security number, date of birth, driver's license state, driver's license #
          
          end          
        $logger.log(" #Found: body text for field: #{employer_field_name}")
        $ie.button(:type, "button").click
        $logger.log("Clicked on the 'OK' button to close pop-up")
          case employer_field_name
          when employer_field_name = "employer":                                  $ie.text_field(:id, "field_empName").set("LeapLab")
          when employer_field_name = "work phone":                                $ie.text_field(:id, "field_workPhone").set("800-452-8569")
          when employer_field_name = "length of employment(yrs)":         $ie.select_list(:id, "field_empYears").select("3")
          when employer_field_name = "length of employment(mos)":         $ie.select_list(:id, "field_empMonths").select("4")
          when employer_field_name = "Employer Address":                       $ie.text_field(:id, "field_EmployerAddress").set("3300 S. Ray Rd, Ste 300")
          when employer_field_name = "Employer City":                            $ie.text_field(:id, "field_EmployerCity").set("Chandler")
          when employer_field_name = "Employer State":                          $ie.select_list(:id, "field_EmployerState").select("Arizona")
          when employer_field_name = "Employer Zip":                             $ie.text_field(:id, "field_EmployerZip").set("85226")
          when employer_field_name = "monthly net income":                    $ie.text_field(:id, "field_income").set("1500")
          when employer_field_name = "Income Type":                               $ie.select_list(:id, "field_incomeType").select("Employment")
          when employer_field_name = "How Often Do You Get Paid":         $ie.select_list(:id, "field_payPeriod").select("Weekly")
          when employer_field_name = "1st Pay Date":    
                    #Get a date 7 days greater (in the future) from the current date
                    d = Date.today
                    d = d + 7      
                    enterDate = "#{d.month}/#{d.day}/#{d.year}"              
                    #Put this date in the correct format in the PayDate 1 field
                    $ie.text_field(:id, "field_payDate1").set(enterDate)
                    #2nd PayDate field should prepopulate based on the payperiod and 1st paydate fields being populated.
          when employer_field_name = "Employment Verification":              $ie.radio(:id, "field_currentlyemployed_Yes").set         
          when employer_field_name = "Direct Deposit Verification":        $ie.radio(:id, "field_directDeposit_Yes").set
          #social security.set
          else   $logger.log("Your field could not be found.")
          end
        end
      end  
      
    def references
      $logger.log("")
      $logger.log(" ## References ## ")
      ref_fields = ["ref1 first name", "ref1 last name", "ref1 phone number", "ref1 relationship",
                  "ref2 first name", "ref2 last name", "ref2 phone number", "ref2 relationship"
                  ]
        ref_fields.each do | reference_field_name |
        click_button
        $logger.log("")
        $logger.log("#{reference_field_name}")
        assert($ie.div(:id => "errorPanel_hd", :text => "Field Required").exists?)
        $logger.log(" #Found: header")
        case reference_field_name
          when reference_field_name = "ref1 first name":                        assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your Reference 1 First Name").exists?)
          when reference_field_name = "ref1 last name":                         assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your Reference 1 Last Name").exists?)
          when reference_field_name = "ref1 phone number":                      assert($ie.div(:id => "errorPanel_bd", :text => /A valid phone number is required/).exists?)
          when reference_field_name = "ref1 relationship":                      assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your Reference 1 Relationship").exists?)
          when reference_field_name = "ref2 first name":                        assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your Reference 2 First Name").exists?)
          when reference_field_name = "ref2 last name":                         assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your Reference 2 Last Name").exists?)
          when reference_field_name = "ref2 phone number":                      assert($ie.div(:id => "errorPanel_bd", :text => /A valid phone number is required/).exists?)
          when reference_field_name = "ref2 relationship":                      assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your Reference 2 Relationship").exists?)
          end          
        $logger.log(" #Found: body text for field: #{reference_field_name}")
        $ie.button(:type, "button").click
        $logger.log("Clicked on the 'OK' button to close pop-up")
        case reference_field_name
          when reference_field_name = "ref1 first name":                       $ie.text_field(:id, "field_ref1FirstName").set("Maria")
          when reference_field_name = "ref1 last name":                        $ie.text_field(:id, "field_ref1LastName").set("Shriver")
          when reference_field_name = "ref1 phone number":                     $ie.text_field(:id, "field_ref1PhoneNumber").set("480-859-6523")     
          when reference_field_name = "ref1 relationship":                     $ie.select_list(:id, "field_ref1Relationship").set("Parent")         
          when reference_field_name = "ref2 first name":                      $ie.text_field(:id, "field_ref2FirstName").set("Arnold")
          when reference_field_name = "ref2 last name":                        $ie.text_field(:id, "field_ref2LastName").set("Schwartzeneger")        
          when reference_field_name = "ref2 phone number":                     $ie.text_field(:id, "field_ref2PhoneNumber").set("405-758-9741")       
          when reference_field_name = "ref2 relationship":                     $ie.select_list(:id, "field_ref2Relationship").select("Friend")           
          else   $logger.log("Your field could not be found.")
          end
        end
      end
      
    def banking_information
      $logger.log("")
      $logger.log(" ## Banking Information ## ")
      bank_fields = ["Bank Name", "Account Number", "Bank Phone",
                  "Do you have a valid check account"]   #"aBA/Routing#", removed until MILO bug fix resolved.
      bank_fields.each do | bank_field_name |
        click_button
        $logger.log("")
        $logger.log("#{bank_field_name}")
        assert($ie.div(:id => "errorPanel_hd", :text => "Field Required").exists?)
        $logger.log(" #Found: header")
        case bank_field_name
          when bank_field_name = "Bank Name":                                  assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{bank_field_name}").exists?)
          #when bank_field_name = "aBA/Routing#":                              assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{bank_field_name}").exists?)
          when bank_field_name = "Account Number":                             assert($ie.div(:id => "errorPanel_bd", :text => "Please supply a numeric value for this field.").exists?)
          when bank_field_name = "Bank Phone":                                 assert($ie.div(:id => "errorPanel_bd", :text => "A valid phone number is required.").exists?)
          when bank_field_name = "Do you have a valid check account": assert($ie.div(:id => "errorPanel_bd", :text => "Please enter your #{bank_field_name}").exists?)
          end          
        $logger.log(" #Found: body text for field: #{bank_field_name}")
        $ie.button(:type, "button").click
        $logger.log("Clicked on the 'OK' button to close pop-up")
        case bank_field_name
          when bank_field_name = "Bank Name":                                 $ie.text_field(:id, "field_bankName").set("Bank of Developers")
          #when bank_field_name = "aBa/Routing#":                             $ie.text_field(:id, "field_aba").set("111032331")
          when bank_field_name = "Account Number":                            $ie.text_field(:id, "field_accountNumber").set("2344334233")     
          when bank_field_name = "Bank Phone":                                $ie.text_field(:id, "field_bankPhone").set("800-966-5552")        
          when bank_field_name = "Do you have a valid check account":    $ie.radio(:id, "field_validchecking_Yes").set
          else  $logger.log("Your field could not be found.")
          end
      end
    end
 
    def test_error_panel
      personal_information
      employer_information
      references
      banking_information
    end  
    
  end #end class TC_error_handling
Last Updated ( Monday, 23 July 2007 )