2009-08-31 3 views
0

Я использую simpletest для интеграции, проверяя мои сайты. Мне нужно сказать внутреннему браузеру подождать некоторое время (в то время как перенаправление страницы), а затем сделать assertText.cakephp simpletest webtester delay/sleep function

Есть ли простой способ сделать это?

ответ

1

Существует нет «простого» способа замедления перенаправления из среды CakeTest.

Для этого вам нужно будет войти в библиотеку SimpleTest и внести туда изменения.

Вот идея классов участвуют:

cake_web_test_case -> web_test_case (web_tester.php) -> simple_browser (browser.php) -> simple_user_agent (user_agent.php)

Если вы хотите замедлить перенаправления, я бы предложил открыть /vendors/simpletest/user_agent.php и отредактировать функцию «& _fetchWhileRedirected». Просто добавьте sleep() в оператор do..while и он должен замедлить перенаправление.

Надеюсь, это поможет.

+0

На странице есть meta http-equiv = refresh, поэтому на самом деле код возврата http не равен 200. Как я могу заставить SimpleTest/WebTester следовать этому обновлению? –

+1

Поскольку вы знаете, как искать мета-обновление, почему бы не разобрать эту строку из результатов «$ this-> get» или «$ this-> post»? Как только у вас появится новый URL-адрес, вы можете ввести sleep(), а затем запустить еще $ this-> get ($ new_url); – Dooltaz

+0

Пример: 1) $ page = $ this-> get ($ url); 2) $ url = $ this -> _ parse_page ($ page); 3) сон (10); 4) $ new_page = $ this-> get ($ url); Я не уверен, но это то, что вы ищете? функция _parse_page будет в основном выполнять регулярное выражение или сопоставление текста, чтобы вытащить новый url. – Dooltaz