Skip to content

Commit 23f824a

Browse files
committed
tests: Fix “THE ERROR HANDLER HAS CHANGED!”
1 parent 2a57124 commit 23f824a

File tree

1 file changed

+43
-35
lines changed

1 file changed

+43
-35
lines changed

tests/ReadabilityTest.php

Lines changed: 43 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -335,48 +335,56 @@ public function testTitleTooShortUseH1(): void
335335

336336
public function testAutoClosingIframeNotThrowingException(): void
337337
{
338-
error_reporting(\E_ALL | \E_STRICT);
339-
ini_set('display_errors', '1');
338+
$oldErrorReporting = error_reporting(\E_ALL | \E_STRICT);
339+
$oldDisplayErrors = ini_set('display_errors', '1');
340340
// dummy function to be used to the next test
341341
set_error_handler(function (int $errno, string $errstr, string $errfile, int $errline, array $errcontext) {
342342
throw new \Exception($errstr, $errno);
343343
}, \E_ALL | \E_STRICT);
344344

345-
$data = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
346-
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru-RU" prefix="og: http://ogp.me/ns#">
347-
348-
<head profile="http://gmpg.org/xfn/11">
349-
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
350-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
351-
352-
</head>
353-
<body class="single single-post postid-22030 single-format-standard">
354-
<div id="wrapper">
355-
<div id="content">
356-
<div class="post-22030 post type-post status-publish format-standard has-post-thumbnail hentry category-video category-reviews tag-193" id="post-22030">
357-
<h1>3D Touch &#8212; будущее мобильных игр</h1>
358-
<div class="postdate">Автор: <strong>Сергей Пак</strong> | Просмотров: 1363 | Опубликовано: 14 сентября 2015 </div>
359-
<div class="entry">
360-
<p>Компания Apple представила новую технологию 3D Touch, которая является прямым потомком более ранней версии Force Touch &#8212; последняя, напомним, используется сейчас в трекпадах Macbook Pro и Macbook 2015. Теперь управлять устройством стало в разы проще, и Force Touch открывает перед пользователями новые возможности, но при этом 3D Touch &#8212; это про другое. Дело в том, что теперь и на мобильных устройствах интерфейс будет постепенно меняться, кардинальные перемены ждут мобильный гейминг, потому что здесь разработчики действительно могут разгуляться.<span id="more-22030"></span></p>
361-
<p><iframe src="https://www.youtube.com/embed/PUep6xNeKjA" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
362-
<p>Итак, просто представьте себе, что iPhone 6S &#8212; это, по большому счету, отличная игровая приставка, которую вы носите с собой, а еще она может выдавать невероятной красоты картинку. Но проблема заключается, пожалуй, в том, что управлять персонажем в играх довольно трудно &#8212; он неповоротлив, обладает заторможенной реакцией, а игровой клиент зачастую требует перегруза интерфейса для того, чтобы обеспечить максимально большое количество возможностей. Благодаря трехуровневому нажатию можно избавиться от лишних кнопок и обеспечить более качественный обзор местности, и при этом пользователь будет закрывать пальцами минимальное пространство.</p>
345+
try {
346+
$data = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
347+
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru-RU" prefix="og: http://ogp.me/ns#">
348+
349+
<head profile="http://gmpg.org/xfn/11">
350+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
351+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
352+
353+
</head>
354+
<body class="single single-post postid-22030 single-format-standard">
355+
<div id="wrapper">
356+
<div id="content">
357+
<div class="post-22030 post type-post status-publish format-standard has-post-thumbnail hentry category-video category-reviews tag-193" id="post-22030">
358+
<h1>3D Touch &#8212; будущее мобильных игр</h1>
359+
<div class="postdate">Автор: <strong>Сергей Пак</strong> | Просмотров: 1363 | Опубликовано: 14 сентября 2015 </div>
360+
<div class="entry">
361+
<p>Компания Apple представила новую технологию 3D Touch, которая является прямым потомком более ранней версии Force Touch &#8212; последняя, напомним, используется сейчас в трекпадах Macbook Pro и Macbook 2015. Теперь управлять устройством стало в разы проще, и Force Touch открывает перед пользователями новые возможности, но при этом 3D Touch &#8212; это про другое. Дело в том, что теперь и на мобильных устройствах интерфейс будет постепенно меняться, кардинальные перемены ждут мобильный гейминг, потому что здесь разработчики действительно могут разгуляться.<span id="more-22030"></span></p>
362+
<p><iframe src="https://www.youtube.com/embed/PUep6xNeKjA" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
363+
<p>Итак, просто представьте себе, что iPhone 6S &#8212; это, по большому счету, отличная игровая приставка, которую вы носите с собой, а еще она может выдавать невероятной красоты картинку. Но проблема заключается, пожалуй, в том, что управлять персонажем в играх довольно трудно &#8212; он неповоротлив, обладает заторможенной реакцией, а игровой клиент зачастую требует перегруза интерфейса для того, чтобы обеспечить максимально большое количество возможностей. Благодаря трехуровневому нажатию можно избавиться от лишних кнопок и обеспечить более качественный обзор местности, и при этом пользователь будет закрывать пальцами минимальное пространство.</p>
364+
</div>
365+
</div>
363366
</div>
364367
</div>
365-
</div>
366-
</div>
367-
</body>
368-
</html>';
369-
370-
$readability = $this->getReadability($data, 'http://iosgames.ru/?p=22030');
371-
$readability->debug = true;
372-
373-
$res = $readability->init();
374-
375-
$this->assertTrue($res);
376-
$this->assertInstanceOf(JSLikeHTMLElement::class, $readability->getContent());
377-
$this->assertInstanceOf(JSLikeHTMLElement::class, $readability->getTitle());
378-
$this->assertStringContainsString('<iframe src="https://www.youtube.com/embed/PUep6xNeKjA" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"> </iframe>', $readability->getContent()->getInnerHtml());
379-
$this->assertStringContainsString('3D Touch', $readability->getTitle()->getInnerHtml());
368+
</body>
369+
</html>';
370+
371+
$readability = $this->getReadability($data, 'http://iosgames.ru/?p=22030');
372+
$readability->debug = true;
373+
374+
$res = $readability->init();
375+
376+
$this->assertTrue($res);
377+
$this->assertInstanceOf(JSLikeHTMLElement::class, $readability->getContent());
378+
$this->assertInstanceOf(JSLikeHTMLElement::class, $readability->getTitle());
379+
$this->assertStringContainsString('<iframe src="https://www.youtube.com/embed/PUep6xNeKjA" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"> </iframe>', $readability->getContent()->getInnerHtml());
380+
$this->assertStringContainsString('3D Touch', $readability->getTitle()->getInnerHtml());
381+
} finally {
382+
restore_error_handler();
383+
if (false !== $oldDisplayErrors) {
384+
ini_set('display_errors', $oldDisplayErrors);
385+
}
386+
error_reporting($oldErrorReporting);
387+
}
380388
}
381389

382390
/**

0 commit comments

Comments
 (0)