public function testMessage() { $user = new MockSuperUser(); $user->setId(123); $title = Title::newFromText('MediaWiki:translated/fi'); $page = WikiPage::factory($title); $content = ContentHandler::makeContent('pupuliini', $title); $status = $page->doEditContent($content, __METHOD__, 0, false, $user); $value = $status->getValue(); $rev = $value['revision']; $revision = $rev->getId(); $group = MessageGroups::getGroup('test-group'); $collection = $group->initCollection('fi'); $collection->loadTranslations(); /** @var TMessage $translated */ $translated = $collection['translated']; $this->assertInstanceof('TMessage', $translated); $this->assertEquals('translated', $translated->key()); $this->assertEquals('bunny', $translated->definition()); $this->assertEquals('pupuliini', $translated->translation()); $this->assertEquals('SuperUser', $translated->getProperty('last-translator-text')); $this->assertEquals(123, $translated->getProperty('last-translator-id')); $this->assertEquals('translated', $translated->getProperty('status'), 'message status is translated'); $this->assertEquals($revision, $translated->getProperty('revision')); /** @var TMessage $untranslated */ $untranslated = $collection['untranslated']; $this->assertInstanceof('TMessage', $untranslated); $this->assertEquals(null, $untranslated->translation(), 'no translation is null'); $this->assertEquals(false, $untranslated->getProperty('last-translator-text')); $this->assertEquals(false, $untranslated->getProperty('last-translator-id')); $this->assertEquals('untranslated', $untranslated->getProperty('status'), 'message status is untranslated'); $this->assertEquals(false, $untranslated->getProperty('revision')); }
public function testgetReviewBlockers() { $superUser1 = new MockSuperUser(); $superUser1->setId(1); $superUser2 = new MockSuperUser(); $superUser2->setId(2); $plainUser = User::newFromName('PlainUser'); $title = Title::makeTitle(NS_MEDIAWIKI, 'Ugakey1/fi'); $content = ContentHandler::makeContent('trans1', $title); WikiPage::factory($title)->doEditContent($content, __METHOD__, 0, false, $superUser1); $title = Title::makeTitle(NS_MEDIAWIKI, 'Ugakey2/fi'); $content = ContentHandler::makeContent('!!FUZZY!!trans2', $title); WikiPage::factory($title)->doEditContent($content, __METHOD__, 0, false, $superUser2); $title = Title::makeTitle(NS_MEDIAWIKI, 'Ugakey3/fi'); $content = ContentHandler::makeContent('unknown message', $title); WikiPage::factory($title)->doEditContent($content, __METHOD__, 0, false, $superUser1); $testcases = array(array('permissiondenied', $plainUser, 'Ugakey1/fi', 'Unpriviledged user is not allowed to change state'), array('owntranslation', $superUser1, 'Ugakey1/fi', 'Cannot approve own translation'), array('fuzzymessage', $superUser1, 'Ugakey2/fi', 'Cannot approve fuzzy translation'), array('unknownmessage', $superUser1, 'Ugakey3/fi', 'Cannot approve unknown translation'), array('', $superUser2, 'Ugakey1/fi', 'Can approve non-fuzzy known non-own translation')); foreach ($testcases as $case) { list($expected, $user, $page, $comment) = $case; $revision = Revision::newFromTitle(Title::makeTitle(NS_MEDIAWIKI, $page)); $ok = ApiTranslationReview::getReviewBlockers($user, $revision); $this->assertEquals($expected, $ok, $comment); } }