| Lines 21-30
          use Modern::Perl;
      
      
        Link Here | 
        
          | 21 | use Scalar::Util qw(blessed); | 21 | use Scalar::Util qw(blessed); | 
        
          | 22 | use Test::More; | 22 | use Test::More; | 
        
          | 23 |  | 23 |  | 
          
            
              | 24 | use base qw(t::lib::Page::Intra t::lib::Page::Members::Toolbar); | 24 | use base qw(t::lib::Page::Intra t::lib::Page::Members::Toolbar t::lib::Page::Members::LeftNavigation); | 
        
          | 25 |  | 25 |  | 
        
          | 26 | use Koha::Exception::BadParameter; | 26 | use Koha::Exception::BadParameter; | 
        
          | 27 |  | 27 |  | 
            
              |  |  | 28 | use t::lib::Page::Circulation::Circulation; | 
            
              | 29 |  | 
        
          | 28 |  | 30 |  | 
        
          | 29 | sub new { | 31 | sub new { | 
        
          | 30 |     my ($class, $params) = @_; | 32 |     my ($class, $params) = @_; | 
  
    | Lines 61-75
          sub _getInputFieldsForValidation {
      
      
        Link Here | 
        
          | 61 |     my ($self) = @_; | 63 |     my ($self) = @_; | 
        
          | 62 |     my $d = $self->getDriver(); | 64 |     my $d = $self->getDriver(); | 
        
          | 63 |  | 65 |  | 
          
            
              | 64 |     my $emailInput  = $d->find_element('#email'); | 66 |     my ($emailInput, $emailProInput, $email_BInput, $phoneInput, $phoneProInput, $phone_BInput, $SMSnumber); | 
            
              | 65 |     my $emailProInput  = $d->find_element('#emailpro'); | 67 |     eval { | 
            
              | 66 |     my $email_BInput  = $d->find_element('#B_email'); | 68 |         $emailInput  = $d->find_element('#email'); | 
            
              |  |  | 69 |     }; | 
            
              | 70 |     eval { | 
            
              | 71 |         $emailProInput  = $d->find_element('#emailpro'); | 
            
              | 72 |     }; | 
            
              | 73 |     eval { | 
            
              | 74 |         $email_BInput  = $d->find_element('#B_email'); | 
            
              | 75 |     }; | 
            
              | 76 |     eval { | 
            
              | 77 |         $phoneInput  = $d->find_element('#phone'); | 
            
              | 78 |     }; | 
            
              | 79 |     eval { | 
            
              | 80 |         $phoneProInput  = $d->find_element('#phonepro'); | 
            
              | 81 |     }; | 
            
              | 82 |     eval { | 
            
              | 83 |         $phone_BInput  = $d->find_element('#B_phone'); | 
            
              | 84 |     }; | 
            
              | 85 |     eval { | 
            
              | 86 |         $SMSnumber = $d->find_element('#SMSnumber'); | 
            
              | 87 |     }; | 
        
          | 67 |      | 88 |      | 
          
            
              | 68 |     my $phoneInput  = $d->find_element('#phone'); | 89 |     return ($emailInput, $emailProInput, $email_BInput, $phoneInput, $phoneProInput, $phone_BInput, $SMSnumber); | 
            
              | 69 |     my $phoneProInput  = $d->find_element('#phonepro'); | 90 | } | 
            
              | 70 |     my $phone_BInput  = $d->find_element('#B_phone'); | 91 |  | 
            
              |  |  | 92 | sub _getMessagingPreferenceCheckboxes { | 
            
              | 93 |     my ($self) = @_; | 
            
              | 94 |     my $d = $self->getDriver(); | 
            
              | 95 |  | 
            
              | 96 |     my @email_prefs = $d->find_elements('input[type="checkbox"][id^="email"]'); | 
            
              | 97 |     my @phone_prefs = $d->find_elements('input[type="checkbox"][id^="phone"]'); | 
            
              | 98 |     my @sms_prefs = $d->find_elements('input[type="checkbox"][id^="sms"]'); | 
        
          | 71 |      | 99 |      | 
          
            
              | 72 |     return ($emailInput, $emailProInput, $email_BInput, $phoneInput, $phoneProInput, $phone_BInput); | 100 |     return  { email => \@email_prefs, phone => \@phone_prefs, sms => \@sms_prefs }; | 
        
          | 73 | } | 101 | } | 
        
          | 74 |  | 102 |  | 
        
          | 75 |  | 103 |  | 
  
    | Lines 79-90
          sub _getInputFieldsForValidation {
      
      
        Link Here | 
        
          | 79 | =cut | 107 | =cut | 
        
          | 80 | ################################################################################ | 108 | ################################################################################ | 
        
          | 81 |  | 109 |  | 
            
              |  |  | 110 | sub checkMessagingPreferencesSet { | 
            
              | 111 |     my ($self, $valid, @prefs) = @_; | 
            
              | 112 |     my $d = $self->getDriver(); | 
            
              | 113 |     $self->debugTakeSessionSnapshot(); | 
            
              | 114 |      | 
            
              | 115 |     foreach my $type (@prefs){ | 
            
              | 116 |         my @this_pref = $d->find_elements('input[type="checkbox"][id^="'.$type.'"]'); | 
            
              | 117 |          | 
            
              | 118 |         my $ok = 0; | 
            
              | 119 |          | 
            
              | 120 |         foreach my $checkbox (@this_pref){ | 
            
              | 121 |             ok(0, "Intra Memberentry $type messaging checkbox ".$checkbox->get_attribute('id')." not checked") if !$checkbox->is_selected() and $valid; | 
            
              | 122 |             ok(0, "Intra Memberentry $type messaging checkbox ".$checkbox->get_attribute('id')." checked (not supposed to be)") if $checkbox->is_selected() and !$valid; | 
            
              | 123 |             $ok = 1; | 
            
              | 124 |         } | 
            
              | 125 |         ok($ok, "Intra Memberentry $type messaging checkboxes ok (all " . (($valid) ? 'checked':'unchecked') . ")"); | 
            
              | 126 |     } | 
            
              | 127 |      | 
            
              | 128 |     return $self; | 
            
              | 129 | } | 
            
              | 130 |  | 
            
              | 131 | sub clearMessagingContactFields { | 
            
              | 132 |     my ($self, @fields) = @_; | 
            
              | 133 |     my $d = $self->getDriver(); | 
            
              | 134 |     $self->debugTakeSessionSnapshot(); | 
            
              | 135 |      | 
            
              | 136 |     my ($emailInput, $emailProInput, $email_BInput, $phoneInput, $phoneProInput, $phone_BInput, $SMSnumber) = $self->_getInputFieldsForValidation(); | 
            
              | 137 |  | 
            
              | 138 |     if (@fields) { | 
            
              | 139 |         for my $field (@fields){ | 
            
              | 140 |             $emailInput->clear() if $field eq "email"; | 
            
              | 141 |             $emailProInput->clear() if $field eq "emailpro"; | 
            
              | 142 |             $email_BInput->clear() if $field eq "B_email"; | 
            
              | 143 |             $phoneInput->clear() if $field eq "phone"; | 
            
              | 144 |             $phoneProInput->clear() if $field eq "phonepro"; | 
            
              | 145 |             $phone_BInput->clear() if $field eq "B_phone"; | 
            
              | 146 |             $SMSnumber->clear() if $field eq "SMSnumber"; | 
            
              | 147 |         } | 
            
              | 148 |         ok(1, "Intra Memberentry contact fields (@fields) cleared"); | 
            
              | 149 |     } else { | 
            
              | 150 |         $emailInput->clear(); | 
            
              | 151 |         $emailProInput->clear(); | 
            
              | 152 |         $email_BInput->clear(); | 
            
              | 153 |         $phoneInput->clear(); | 
            
              | 154 |         $phoneProInput->clear(); | 
            
              | 155 |         $phone_BInput->clear(); | 
            
              | 156 |         $SMSnumber->clear(); | 
            
              | 157 |         ok(1, "Intra Memberentry contact fields (email, emailpro, email_B, phone, phonepro, phone_B, SMSnumber) cleared"); | 
            
              | 158 |     } | 
            
              | 159 |      | 
            
              | 160 |     return $self; | 
            
              | 161 | } | 
            
              | 162 |  | 
            
              | 163 | sub checkPreferences { | 
            
              | 164 |     my ($self, $valid, $type) = @_; | 
            
              | 165 |     my $d = $self->getDriver(); | 
            
              | 166 |     $self->debugTakeSessionSnapshot(); | 
            
              | 167 |      | 
            
              | 168 |     my $checkboxes = $self->_getMessagingPreferenceCheckboxes(); | 
            
              | 169 |      | 
            
              | 170 |     ok (0, "Intra $type checkboxes not defined") if not defined $checkboxes->{$type}; | 
            
              | 171 |     return 0 if not defined $checkboxes->{$type}; | 
            
              | 172 |      | 
            
              | 173 |     foreach my $checkbox (@{ $checkboxes->{$type} }){ | 
            
              | 174 |         ok(0, "Intra Memberentry $type messaging checkbox ".$checkbox->get_attribute('id')." not available") if !$checkbox->is_enabled() and $valid; | 
            
              | 175 |         ok(0, "Intra Memberentry $type messaging checkbox ".$checkbox->get_attribute('id')." available (not supposed to be)") if $checkbox->is_enabled() and !$valid; | 
            
              | 176 |  | 
            
              | 177 |         $checkbox->click() if not $checkbox->is_selected(); | 
            
              | 178 |     } | 
            
              | 179 |     ok (1, "Intra Memberentry $type messaging checkboxes checked") if $valid; | 
            
              | 180 |      | 
            
              | 181 |     return $self; | 
            
              | 182 | } | 
        
          | 82 | sub setEmail { | 183 | sub setEmail { | 
        
          | 83 |     my ($self, $input) = @_; | 184 |     my ($self, $input) = @_; | 
        
          | 84 |     my $d = $self->getDriver(); | 185 |     my $d = $self->getDriver(); | 
        
          | 85 |     $self->debugTakeSessionSnapshot(); | 186 |     $self->debugTakeSessionSnapshot(); | 
        
          | 86 |      | 187 |      | 
          
            
              | 87 |     my ($emailInput, $emailProInput, $email_BInput, $phoneInput, $phoneProInput, $phone_BInput) = $self->_getInputFieldsForValidation(); | 188 |     my ($emailInput, $emailProInput, $email_BInput, $phoneInput, $phoneProInput, $phone_BInput, $SMSnumber) = $self->_getInputFieldsForValidation(); | 
        
          | 88 |      | 189 |      | 
        
          | 89 |     $emailInput->clear(); | 190 |     $emailInput->clear(); | 
        
          | 90 |     $emailProInput->clear(); | 191 |     $emailProInput->clear(); | 
  
    | Lines 102-108
          sub setPhone {
      
      
        Link Here | 
        
          | 102 |     my $d = $self->getDriver(); | 203 |     my $d = $self->getDriver(); | 
        
          | 103 |     $self->debugTakeSessionSnapshot(); | 204 |     $self->debugTakeSessionSnapshot(); | 
        
          | 104 |      | 205 |      | 
          
            
              | 105 |     my ($emailInput, $emailProInput, $email_BInput, $phoneInput, $phoneProInput, $phone_BInput) = $self->_getInputFieldsForValidation(); | 206 |     my ($emailInput, $emailProInput, $email_BInput, $phoneInput, $phoneProInput, $phone_BInput, $SMSnumber) = $self->_getInputFieldsForValidation(); | 
        
          | 106 |      | 207 |      | 
        
          | 107 |     $phoneInput->clear(); | 208 |     $phoneInput->clear(); | 
        
          | 108 |     $phoneProInput->clear(); | 209 |     $phoneProInput->clear(); | 
  
    | Lines 115-134
          sub setPhone {
      
      
        Link Here | 
        
          | 115 |     return $self; | 216 |     return $self; | 
        
          | 116 | } | 217 | } | 
        
          | 117 |  | 218 |  | 
            
              |  |  | 219 | sub setSMSNumber { | 
            
              | 220 |     my ($self, $input) = @_; | 
            
              | 221 |     my $d = $self->getDriver(); | 
            
              | 222 |     $self->debugTakeSessionSnapshot(); | 
            
              | 223 |      | 
            
              | 224 |     my ($emailInput, $emailProInput, $email_BInput, $phoneInput, $phoneProInput, $phone_BInput, $SMSnumber) = $self->_getInputFieldsForValidation(); | 
            
              | 225 |      | 
            
              | 226 |     $SMSnumber->clear(); | 
            
              | 227 |     $SMSnumber->send_keys($input); | 
            
              | 228 |     ok(1, "Intra Memberentry Wrote \"$input\" to SMSnumber."); | 
            
              | 229 |      | 
            
              | 230 |     return $self; | 
            
              | 231 | } | 
            
              | 232 |  | 
        
          | 118 | sub submitForm { | 233 | sub submitForm { | 
        
          | 119 |     my ($self, $valid) = @_; | 234 |     my ($self, $valid) = @_; | 
        
          | 120 |     my $d = $self->getDriver(); | 235 |     my $d = $self->getDriver(); | 
        
          | 121 |     $self->debugTakeSessionSnapshot(); | 236 |     $self->debugTakeSessionSnapshot(); | 
        
          | 122 |      | 237 |      | 
        
          | 123 |     my $submitButton = $d->find_element('form#entryform input[type="submit"]'); | 238 |     my $submitButton = $d->find_element('form#entryform input[type="submit"]'); | 
          
            
              | 124 |     $submitButton->click(); | 239 |     $submitButton->submit(); | 
            
              | 125 |      |  |  | 
        
          | 126 |     $self->debugTakeSessionSnapshot(); | 240 |     $self->debugTakeSessionSnapshot(); | 
        
          | 127 |      | 241 |      | 
        
          | 128 |     if ($valid) { | 242 |     if ($valid) { | 
        
          | 129 |         my $submitted = $d->find_element("#editpatron", 'css'); | 243 |         my $submitted = $d->find_element("#editpatron", 'css'); | 
        
          | 130 |         ok(1, "Intra Memberentry Submit changes success"); | 244 |         ok(1, "Intra Memberentry Submit changes success"); | 
          
            
              | 131 |         return t::lib::Page::Members::Moremember->rebrandFromPageObject($self); | 245 |         return t::lib::Page::Circulation::Circulation->rebrandFromPageObject($self); | 
        
          | 132 |     } else { | 246 |     } else { | 
        
          | 133 |         my @notsubmitted = $d->find_elements('form#entryform label[class="error"]', 'css'); | 247 |         my @notsubmitted = $d->find_elements('form#entryform label[class="error"]', 'css'); | 
        
          | 134 |         my $error_ids = ""; | 248 |         my $error_ids = ""; | 
  
    | Lines 142-151
          sub submitForm {
      
      
        Link Here | 
        
          | 142 |         $d->refresh(); | 256 |         $d->refresh(); | 
        
          | 143 |         return $self; | 257 |         return $self; | 
        
          | 144 |     } | 258 |     } | 
            
              | 145 |      |  |  | 
            
              | 146 |      | 
            
              | 147 |      | 
            
              | 148 |      | 
        
          | 149 | } | 259 | } | 
        
          | 150 |  | 260 |  | 
        
          | 151 | 1; | 261 | 1; |