summaryrefslogtreecommitdiff
path: root/www/wiki/tests/phpunit/suites/UploadFromUrlTestSuite.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/tests/phpunit/suites/UploadFromUrlTestSuite.php')
-rw-r--r--www/wiki/tests/phpunit/suites/UploadFromUrlTestSuite.php99
1 files changed, 99 insertions, 0 deletions
diff --git a/www/wiki/tests/phpunit/suites/UploadFromUrlTestSuite.php b/www/wiki/tests/phpunit/suites/UploadFromUrlTestSuite.php
new file mode 100644
index 00000000..556c7541
--- /dev/null
+++ b/www/wiki/tests/phpunit/suites/UploadFromUrlTestSuite.php
@@ -0,0 +1,99 @@
+<?php
+
+require_once dirname( __DIR__ ) . '/includes/upload/UploadFromUrlTest.php';
+
+class UploadFromUrlTestSuite extends PHPUnit_Framework_TestSuite {
+ public $savedGlobals = [];
+
+ public static function addTables( &$tables ) {
+ $tables[] = 'user_properties';
+ $tables[] = 'filearchive';
+ $tables[] = 'logging';
+ $tables[] = 'updatelog';
+ $tables[] = 'iwlinks';
+
+ return true;
+ }
+
+ protected function setUp() {
+ global $wgParser, $wgParserConf, $IP, $messageMemc, $wgMemc, $wgUser,
+ $wgLang, $wgOut, $wgRequest, $wgStyleDirectory,
+ $wgParserCacheType, $wgNamespaceAliases, $wgNamespaceProtection;
+
+ $tmpDir = $this->getNewTempDirectory();
+ $tmpGlobals = [];
+
+ $tmpGlobals['wgScript'] = '/index.php';
+ $tmpGlobals['wgScriptPath'] = '/';
+ $tmpGlobals['wgArticlePath'] = '/wiki/$1';
+ $tmpGlobals['wgStylePath'] = '/skins';
+ $tmpGlobals['wgThumbnailScriptPath'] = false;
+ $tmpGlobals['wgLocalFileRepo'] = [
+ 'class' => LocalRepo::class,
+ 'name' => 'local',
+ 'url' => 'http://example.com/images',
+ 'hashLevels' => 2,
+ 'transformVia404' => false,
+ 'backend' => new FSFileBackend( [
+ 'name' => 'local-backend',
+ 'wikiId' => wfWikiID(),
+ 'containerPaths' => [
+ 'local-public' => "{$tmpDir}/test-repo/public",
+ 'local-thumb' => "{$tmpDir}/test-repo/thumb",
+ 'local-temp' => "{$tmpDir}/test-repo/temp",
+ 'local-deleted' => "{$tmpDir}/test-repo/delete",
+ ]
+ ] ),
+ ];
+ foreach ( $tmpGlobals as $var => $val ) {
+ if ( array_key_exists( $var, $GLOBALS ) ) {
+ $this->savedGlobals[$var] = $GLOBALS[$var];
+ }
+ $GLOBALS[$var] = $val;
+ }
+
+ $wgNamespaceProtection[NS_MEDIAWIKI] = 'editinterface';
+ $wgNamespaceAliases['Image'] = NS_FILE;
+ $wgNamespaceAliases['Image_talk'] = NS_FILE_TALK;
+
+ $wgParserCacheType = CACHE_NONE;
+ DeferredUpdates::clearPendingUpdates();
+ $wgMemc = wfGetMainCache();
+ $messageMemc = wfGetMessageCacheStorage();
+
+ RequestContext::resetMain();
+ $context = RequestContext::getMain();
+ $wgUser = new User;
+ $wgLang = $context->getLanguage();
+ $wgOut = $context->getOutput();
+ $wgParser = new StubObject( 'wgParser', $wgParserConf['class'], [ $wgParserConf ] );
+ $wgRequest = $context->getRequest();
+
+ if ( $wgStyleDirectory === false ) {
+ $wgStyleDirectory = "$IP/skins";
+ }
+
+ RepoGroup::destroySingleton();
+ FileBackendGroup::destroySingleton();
+ }
+
+ protected function tearDown() {
+ foreach ( $this->savedGlobals as $var => $val ) {
+ $GLOBALS[$var] = $val;
+ }
+ // Restore backends
+ RepoGroup::destroySingleton();
+ FileBackendGroup::destroySingleton();
+
+ parent::tearDown();
+ }
+
+ public static function suite() {
+ // Hack to invoke the autoloader required to get phpunit to recognize
+ // the UploadFromUrlTest class
+ class_exists( 'UploadFromUrlTest' );
+ $suite = new UploadFromUrlTestSuite( 'UploadFromUrlTest' );
+
+ return $suite;
+ }
+}