X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2FOutputPageTest.php;h=6520fc5633edcaf3289bbbed1d6689ef23551e60;hb=4260b0f8a9bb89d92c39a61d8c48a31007b7240f;hp=448eec8fd089c84014e9d41a984b18ba674f34d4;hpb=51aed12d942b6e0ba160275ea92bde7a26e1ba98;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/phpunit/includes/OutputPageTest.php b/tests/phpunit/includes/OutputPageTest.php index 448eec8fd0..6520fc5633 100644 --- a/tests/phpunit/includes/OutputPageTest.php +++ b/tests/phpunit/includes/OutputPageTest.php @@ -2537,35 +2537,42 @@ class OutputPageTest extends MediaWikiTestCase { $rl = $out->getResourceLoader(); $rl->setMessageBlobStore( $this->createMock( MessageBlobStore::class ) ); $rl->register( [ - 'test.foo' => new ResourceLoaderTestModule( [ + 'test.foo' => [ + 'class' => ResourceLoaderTestModule::class, 'script' => 'mw.test.foo( { a: true } );', 'styles' => '.mw-test-foo { content: "style"; }', - ] ), - 'test.bar' => new ResourceLoaderTestModule( [ + ], + 'test.bar' => [ + 'class' => ResourceLoaderTestModule::class, 'script' => 'mw.test.bar( { a: true } );', 'styles' => '.mw-test-bar { content: "style"; }', - ] ), - 'test.baz' => new ResourceLoaderTestModule( [ + ], + 'test.baz' => [ + 'class' => ResourceLoaderTestModule::class, 'script' => 'mw.test.baz( { a: true } );', 'styles' => '.mw-test-baz { content: "style"; }', - ] ), - 'test.quux' => new ResourceLoaderTestModule( [ + ], + 'test.quux' => [ + 'class' => ResourceLoaderTestModule::class, 'script' => 'mw.test.baz( { token: 123 } );', 'styles' => '/* pref-animate=off */ .mw-icon { transition: none; }', 'group' => 'private', - ] ), - 'test.noscript' => new ResourceLoaderTestModule( [ + ], + 'test.noscript' => [ + 'class' => ResourceLoaderTestModule::class, 'styles' => '.stuff { color: red; }', 'group' => 'noscript', - ] ), - 'test.group.foo' => new ResourceLoaderTestModule( [ + ], + 'test.group.foo' => [ + 'class' => ResourceLoaderTestModule::class, 'script' => 'mw.doStuff( "foo" );', 'group' => 'foo', - ] ), - 'test.group.bar' => new ResourceLoaderTestModule( [ + ], + 'test.group.bar' => [ + 'class' => ResourceLoaderTestModule::class, 'script' => 'mw.doStuff( "bar" );', 'group' => 'bar', - ] ), + ], ] ); $links = $method->invokeArgs( $out, $args ); $actualHtml = strval( $links ); @@ -2648,17 +2655,16 @@ class OutputPageTest extends MediaWikiTestCase { ->setConstructorArgs( [ $ctx ] ) ->setMethods( [ 'buildCssLinksArray' ] ) ->getMock(); - $op->expects( $this->any() ) - ->method( 'buildCssLinksArray' ) + $op->method( 'buildCssLinksArray' ) ->willReturn( [] ); $rl = $op->getResourceLoader(); $rl->setMessageBlobStore( $this->createMock( MessageBlobStore::class ) ); // Register custom modules $rl->register( [ - 'example.site.a' => new ResourceLoaderTestModule( [ 'group' => 'site' ] ), - 'example.site.b' => new ResourceLoaderTestModule( [ 'group' => 'site' ] ), - 'example.user' => new ResourceLoaderTestModule( [ 'group' => 'user' ] ), + 'example.site.a' => [ 'class' => ResourceLoaderTestModule::class, 'group' => 'site' ], + 'example.site.b' => [ 'class' => ResourceLoaderTestModule::class, 'group' => 'site' ], + 'example.user' => [ 'class' => ResourceLoaderTestModule::class, 'group' => 'user' ], ] ); $op = TestingAccessWrapper::newFromObject( $op ); @@ -3023,6 +3029,35 @@ class OutputPageTest extends MediaWikiTestCase { ]; } + /** + * @param int $titleLastRevision Last Title revision to set + * @param int $outputRevision Revision stored in OutputPage + * @param bool $expectedResult Expected result of $output->isRevisionCurrent call + * @covers OutputPage::isRevisionCurrent + * @dataProvider provideIsRevisionCurrent + */ + public function testIsRevisionCurrent( $titleLastRevision, $outputRevision, $expectedResult ) { + $titleMock = $this->getMock( Title::class, [], [], '', false ); + $titleMock->expects( $this->any() ) + ->method( 'getLatestRevID' ) + ->willReturn( $titleLastRevision ); + + $output = $this->newInstance( [], null, [ 'notitle' => true ] ); + $output->setTitle( $titleMock ); + $output->setRevisionId( $outputRevision ); + $this->assertEquals( $expectedResult, $output->isRevisionCurrent() ); + } + + public function provideIsRevisionCurrent() { + return [ + [ 10, null, true ], + [ 42, 42, true ], + [ null, 0, true ], + [ 42, 47, false ], + [ 47, 42, false ] + ]; + } + /** * @return OutputPage */