2015-05-13 4 views
0

Так есть функция, которая делает что-то вроде этого:Как проверить drupal_goto в функции init?

function mymod_init() 
{ 
    $ip = '123.123.123.123'; 
    $newPath = mymod_redirect_calculate($ip); 
    if (!empty($newPath)) drupal_goto($newPath); 
} 

Это полностью разрушает модульное тестирование. У меня есть тесты для «mymod_redirect_calculate», но если я добавлю приведенное выше к моей функции init, как показано, тесты не могут выполняться.

Из того, что я собрал, «выход» и «drupal_goto» прерывает модульное тестирование.

Как мне обойти это?

ответ

0

Фактически drupal_goto() заканчивается звонком exit(). Использование header() должно работать:

function mymod_init() { 
    $ip = '123.123.123.123'; 
    $newPath = mymod_redirect_calculate($ip); 
    if (!empty($newPath)) { 
    $url = url($newPath, array('absolute' => TRUE)); 
    header('Location: ' . $url, TRUE); 
    } 
}