diff options
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Utils/PageDeleter.php')
-rw-r--r-- | www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Utils/PageDeleter.php | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Utils/PageDeleter.php b/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Utils/PageDeleter.php new file mode 100644 index 00000000..cebc13c1 --- /dev/null +++ b/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Utils/PageDeleter.php @@ -0,0 +1,67 @@ +<?php + +namespace SMW\Tests\Utils; + +use SMW\DIWikiPage; +use SMW\Tests\TestEnvironment; +use Title; +use WikiPage; + +/** + * @group SMW + * @group SMWExtension + * + * @license GNU GPL v2+ + * @since 1.9.1 + */ +class PageDeleter { + + /** + * @var TestEnvironment + */ + private $testEnvironment; + + /** + * @since 2.4 + */ + public function __construct() { + $this->testEnvironment = new TestEnvironment(); + } + + /** + * @since 1.9.1 + */ + public function deletePage( Title $title ) { + $page = new WikiPage( $title ); + $page->doDeleteArticle( 'SMW system test: delete page' ); + $this->testEnvironment->executePendingDeferredUpdates(); + } + + /** + * @since 2.1 + * + * @param array $poolOfPages + */ + public function doDeletePoolOfPages( array $poolOfPages ) { + + foreach ( $poolOfPages as $page ) { + + if ( $page instanceof WikiPage || $page instanceof DIWikiPage ) { + $page = $page->getTitle(); + } + + if ( is_string( $page ) ) { + $page = Title::newFromText( $page ); + } + + if ( !$page instanceof Title ) { + continue; + } + + $this->deletePage( $page ); + } + + $this->testEnvironment->executePendingDeferredUpdates(); + } + +} |