Mercurial > hg > isophonics-drupal-site
diff vendor/psy/psysh/test/VersionUpdater/GitHubCheckerTest.php @ 13:5fb285c0d0e3
Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've
been lucky to get away with this so far, as we don't support self-registration
which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5
was vulnerable to.
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:33:26 +0100 |
parents | |
children | 129ea1e6d783 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/psy/psysh/test/VersionUpdater/GitHubCheckerTest.php Mon Apr 23 09:33:26 2018 +0100 @@ -0,0 +1,82 @@ +<?php + +/* + * This file is part of Psy Shell. + * + * (c) 2012-2018 Justin Hileman + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Psy\Test\VersionUpdater; + +use Psy\Shell; + +class GitHubCheckerTest extends \PHPUnit\Framework\TestCase +{ + /** + * @dataProvider malformedResults + * @expectedException \InvalidArgumentException + * @expectedExceptionMessage Unable to check for updates + * + * @param mixed $input + */ + public function testExceptionInvocation($input) + { + $checker = $this->getMockBuilder('Psy\\VersionUpdater\\GitHubChecker') + ->setMethods(['fetchLatestRelease']) + ->getMock(); + $checker->expects($this->once())->method('fetchLatestRelease')->willReturn($input); + $checker->isLatest(); + } + + /** + * @dataProvider jsonResults + * + * @param bool $assertion + * @param mixed $input + */ + public function testDataSetResults($assertion, $input) + { + $checker = $this->getMockBuilder('Psy\\VersionUpdater\\GitHubChecker') + ->setMethods(['fetchLatestRelease']) + ->getMock(); + $checker->expects($this->once())->method('fetchLatestRelease')->willReturn($input); + $this->assertSame($assertion, $checker->isLatest()); + } + + /** + * @return array + */ + public function jsonResults() + { + return [ + [false, json_decode('{"tag_name":"v9.0.0"}')], + [true, json_decode('{"tag_name":"v' . Shell::VERSION . '"}')], + [true, json_decode('{"tag_name":"v0.0.1"}')], + [true, json_decode('{"tag_name":"v0.4.1-alpha"}')], + [true, json_decode('{"tag_name":"v0.4.2-beta3"}')], + [true, json_decode('{"tag_name":"v0.0.1"}')], + [true, json_decode('{"tag_name":""}')], + ]; + } + + /** + * @return array + */ + public function malformedResults() + { + return [ + [null], + [false], + [true], + [json_decode('{"foo":"bar"}')], + [json_decode('{}')], + [json_decode('[]')], + [[]], + [json_decode('{"tag_name":false"}')], + [json_decode('{"tag_name":true"}')], + ]; + } +}