/** * @covers MassMessage::getMessengerUser * @dataProvider provideGetMessengerUser * @param $name */ public function testGetMessengerUser($name) { global $wgMassMessageAccountUsername; $wgMassMessageAccountUsername = $name; $user = MassMessage::getMessengerUser(); $this->assertEquals($user->getName(), $name); $this->assertTrue(in_array('bot', $user->getGroups())); $this->assertEquals($user->mPassword, ''); }
/** * Echo! * * @param $event EchoEvent * @return bool */ public static function onBeforeEchoEventInsert(EchoEvent $event) { // Don't spam a user with mention notifications if it's a MassMessage if ($event->getType() == 'mention' && $event->getAgent() && $event->getAgent()->getId() == MassMessage::getMessengerUser()->getId()) { return false; } return true; }
function makeAPIRequest(array $params) { global $wgUser, $wgRequest; $wgRequest = new DerivativeRequest($wgRequest, $params, true); $wgUser = MassMessage::getMessengerUser(); // New user objects will use $wgRequest, so we set that // to our DerivativeRequest, so we don't run into any issues RequestContext::getMain()->setUser($wgUser); RequestContext::getMain()->setRequest($wgRequest); // All further internal API requests will use the main // RequestContext, so setting it here will fix it for // all other internal uses, like how LQT does $api = new ApiMain($wgRequest, true); try { $api->execute(); } catch (UsageException $e) { $this->logLocalFailure($e->getCodeString()); } }
/** * A preview/confirmation screen * * @param $data Array * @return Status */ protected function preview(array $data) { $firstTarget = Title::newFromText('Project:Example'); $wikipage = WikiPage::factory($firstTarget); // Hacked up from EditPage.php // Is this really the best way to do this??? $subject = $data['subject']; $message = $data['message']; // Convert into a content object $content = ContentHandler::makeContent($message, $firstTarget); // Parser stuff. Taken from EditPage::getPreviewText() $parserOptions = $wikipage->makeParserOptions($this->getContext()); $parserOptions->setEditSection(false); $parserOptions->setIsPreview(true); $parserOptions->setIsSectionPreview(false); //$content = $content->addSectionHeader( $subject ); // Hooks not being run: EditPageGetPreviewContent, EditPageGetPreviewText $content = $content->preSaveTransform($firstTarget, MassMessage::getMessengerUser(), $parserOptions); $parserOutput = $content->getParserOutput($firstTarget, null, $parserOptions); $previewHTML = $parserOutput->getText(); $this->getOutput()->addWikiMsg('massmessage-just-preview'); $fieldsetMessage = $this->msg('massmessage-fieldset-preview')->text(); $wrapFieldset = Xml::fieldset($fieldsetMessage, $previewHTML); $this->getOutput()->addHTML($wrapFieldset); return false; }