diff --git a/modules/sms_user/sms_user.module b/modules/sms_user/sms_user.module index 181ec8b..87405bc 100644 --- a/modules/sms_user/sms_user.module +++ b/modules/sms_user/sms_user.module @@ -262,14 +262,14 @@ function sms_user_settings($account) { break; } - if (variable_get('sms_user_sleep', 1)) { + if (variable_get('sms_user_sleep', 1) && $account->sms_user['number'] && $account->sms_user['status'] == SMS_USER_CONFIRMED) { $output2 = Array(); $output2['phoneform'] = $output; $output2['sleepform'] = drupal_get_form('sms_user_settings_sleep_form', $account); $output = $output2; } - if (variable_get('sms_user_allow_opt_out', 1)) { + if (variable_get('sms_user_allow_opt_out', 1) && $account->sms_user['number'] && $account->sms_user['status'] == SMS_USER_CONFIRMED) { $output['opt_out_form'] = drupal_get_form('sms_user_opt_out_form', $account); } diff --git a/modules/sms_user/tests/sms_user.test b/modules/sms_user/tests/sms_user.test index fe7b574..3263e83 100644 --- a/modules/sms_user/tests/sms_user.test +++ b/modules/sms_user/tests/sms_user.test @@ -44,6 +44,10 @@ class SmsUserWebTest extends DrupalWebTestCase { $edit = array('number' => '1234567890'); $this->drupalPost('user/' . $user->uid . '/edit/mobile', $edit, t('Confirm number')); $this->assertResponse(200); + // Confirm that opt-out and sleep settings options are not available yet. + $this->assertNoFieldByXPath('//input[@name="sms_user_opt_out"]', null, 'SMS User opt out settings not available until number confirmed.'); + $this->assertNoFieldByXPath('//input[@name="sleep_enabled"]', null, 'SMS User sleep enable settings not available until number confirmed.'); + // Get the code that was sent. $gw_result = sms_test_gateway_result(); preg_match('/\b([0-9]{4})\b/', $gw_result['message'], $matches); @@ -54,6 +58,9 @@ class SmsUserWebTest extends DrupalWebTestCase { // Confirm user's number is verified. $user = user_load($user->uid, TRUE); $this->assertTrue($user->sms_user['number'] == $edit['number'] && $user->sms_user['status'] == SMS_USER_CONFIRMED, 'Successfully confirmed user phone number ' . $edit['number']); + // Confirm that opt-out and sleep settings options are now available. + $this->assertFieldByXPath('//input[@name="sms_user_opt_out"]', null, 'SMS User opt out settings available after number confirmed.'); + $this->assertFieldByXPath('//input[@name="sleep_enabled"]', null, 'SMS User sleep enable settings available after number confirmed.'); // Send sms to user with registered number. $message = 'Test user message';