diff options
author | Brian Evans <grknight@gentoo.org> | 2020-10-02 15:24:06 -0400 |
---|---|---|
committer | Brian Evans <grknight@gentoo.org> | 2020-10-02 15:24:06 -0400 |
commit | 60dd5fd95847643eab04ce173f0774c9c584e795 (patch) | |
tree | 52299ac4e3c5c69df75997bfd7d62b71ef9e0089 /MLEB/Translate/tests/phpunit/helpers/TranslatablePageTestTrait.php | |
parent | Update Widgets to 1.35 (diff) | |
download | extensions-60dd5fd95847643eab04ce173f0774c9c584e795.tar.gz extensions-60dd5fd95847643eab04ce173f0774c9c584e795.tar.bz2 extensions-60dd5fd95847643eab04ce173f0774c9c584e795.zip |
Update MLEB to 2020.07
Signed-off-by: Brian Evans <grknight@gentoo.org>
Diffstat (limited to 'MLEB/Translate/tests/phpunit/helpers/TranslatablePageTestTrait.php')
-rw-r--r-- | MLEB/Translate/tests/phpunit/helpers/TranslatablePageTestTrait.php | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/MLEB/Translate/tests/phpunit/helpers/TranslatablePageTestTrait.php b/MLEB/Translate/tests/phpunit/helpers/TranslatablePageTestTrait.php new file mode 100644 index 00000000..d3e0e744 --- /dev/null +++ b/MLEB/Translate/tests/phpunit/helpers/TranslatablePageTestTrait.php @@ -0,0 +1,61 @@ +<?php +/** + * @license GPL-2.0-or-later + * @file + */ + +/** + * A utility trait containing reusable methods for use in tests + * @since 2020.04 + */ +trait TranslatablePageTestTrait { + /** + * Creates a translatable page but does not mark it for translation. + * + * @param string $title + * @param string $content + * @param User $creator + * @return TranslatablePage + */ + public function createUnmarkedTranslatablePage( + string $title, string $content, User $creator + ): TranslatablePage { + return $this->createTranslatablePage( $title, $content, $creator, false ); + } + + /** + * Creates a translatable page and marks it for translation. + * + * @param string $title + * @param string $content + * @param User $creator + * @return void + */ + public function createMarkedTranslatablePage( + string $title, string $content, User $creator + ): TranslatablePage { + return $this->createTranslatablePage( $title, $content, $creator, true ); + } + + private function createTranslatablePage( + string $title, string $content, User $creator, bool $markForTranslation + ): TranslatablePage { + // Create new page + $translatablePageTitle = Title::newFromText( $title ); + $page = WikiPage::factory( $translatablePageTitle ); + $text = "<translate>$content</translate>"; + $content = ContentHandler::makeContent( $text, $translatablePageTitle ); + $translatablePage = TranslatablePage::newFromTitle( $translatablePageTitle ); + + // Create the page + $editStatus = $page->doEditContent( $content, __METHOD__, 0, false, $creator ); + + if ( $markForTranslation ) { + // Mark the page for translation + $latestRevisionId = $editStatus->value['revision-record']->getId(); + $translatablePage->addMarkedTag( $latestRevisionId ); + } + + return $translatablePage; + } +} |