wiki.techinc.nl/tests/phpunit/unit/includes/cache/HtmlCacheUpdaterTest.php
Timo Tijhof 2f35c3ae67 HtmlCacheUpdater: Add getUrls() method and support selective purging
* Move the Title::getCdnUrls() logic to the new HtmlCacheUpdater service.

* Introduce a runtime option to decide whether this is for a direct
  revision or a cascading LinksUpdate.

Bug: T250261
Change-Id: I514b9052761e0d949234996e97fdef255582df86
2020-04-30 18:16:07 +00:00

47 lines
1.4 KiB
PHP

<?php
/**
* @group Cache
* @covers HtmlCacheUpdater
*/
class HtmlCacheUpdaterTest extends MediaWikiUnitTestCase {
public function testGetCdnUrls() {
$htmlCache = new HtmlCacheUpdater( 0, false );
$title = $this->createMock( Title::class );
$title->method( 'getInternalURL' )->will( $this->returnCallback( function ( $query = '' ) {
return 'https://test/?title=Example' . ( $query !== '' ? "&$query" : '' );
} ) );
$this->assertEquals(
[
'https://test/?title=Example',
'https://test/?title=Example&action=history',
],
$htmlCache->getUrls( $title ),
'all urls for an article'
);
$this->assertEquals(
[
'https://test/?title=Example',
],
$htmlCache->getUrls( $title, $htmlCache::PURGE_URLS_LINKSUPDATE_ONLY ),
'linkupdate urls for an article'
);
$title = $this->createMock( Title::class );
$title->method( 'getInternalURL' )->will( $this->returnCallback( function ( $query = '' ) {
return 'https://test/?title=User:Example/foo.js' . ( $query !== '' ? "&$query" : '' );
} ) );
$title->method( 'isUserJsConfigPage' )->willReturn( true );
$this->assertEquals(
[
'https://test/?title=User:Example/foo.js',
'https://test/?title=User:Example/foo.js&action=history',
'https://test/?title=User:Example/foo.js&action=raw&ctype=text/javascript',
],
$htmlCache->getUrls( $title ),
'all urls for a user js page'
);
}
}