public function changeOpAliasesProvider()
 {
     // "INVALID" is invalid
     $validatorFactory = $this->getTermValidatorFactory();
     $enAliases = array('en-alias1', 'en-alias2', 'en-alias3');
     $existingEnAliases = array('en-existingAlias1', 'en-existingAlias2');
     $itemContent = ItemContent::newEmpty();
     $item = $itemContent->getEntity();
     $item->setAliases('en', $existingEnAliases);
     return array('add' => array($item->copy(), new ChangeOpAliases('en', $enAliases, 'add', $validatorFactory), array_merge($existingEnAliases, $enAliases)), 'set' => array($item->copy(), new ChangeOpAliases('en', $enAliases, 'set', $validatorFactory), $enAliases), 'set (default)' => array($item->copy(), new ChangeOpAliases('en', $enAliases, '', $validatorFactory), $enAliases), 'remove' => array($item->copy(), new ChangeOpAliases('en', $existingEnAliases, 'remove', $validatorFactory), null));
 }
 /**
  * @param Status $inputStatus
  * @param Entity|EntityRedirect|null $new
  * @param array $expected
  *
  * @dataProvider runData
  */
 public function testRun_hooksAreCalled(Status $inputStatus, $new, array $expected)
 {
     $hooks = array_merge($GLOBALS['wgHooks'], array('EditFilterMergedContent' => array()));
     $testCase = $this;
     $hooks['EditFilterMergedContent'][] = function (IContextSource $context, Content $content, Status $status, $summary, User $user, $minoredit) use($testCase, $expected, $inputStatus) {
         $testCase->assertEquals($expected['title'], $context->getTitle()->getFullText());
         $testCase->assertSame($context->getTitle(), $context->getWikiPage()->getTitle());
         $testCase->assertEquals($expected['namespace'], $context->getTitle()->getNamespace());
         $testCase->assertEquals(ItemContent::newEmpty(), $content);
         $testCase->assertTrue($status->isGood());
         $testCase->assertTrue(is_string($summary));
         $testCase->assertEquals('EditFilterHookRunnerTestUser', $user->getName());
         $testCase->assertTrue(is_bool($minoredit));
         //Change the status
         $status->merge($inputStatus);
     };
     $this->setMwGlobals(array('wgHooks' => $hooks));
     $runner = $this->getEditFilterHookRunner();
     $status = $runner->run($new, User::newFromName('EditFilterHookRunnerTestUser'), 'summary');
     $this->assertEquals($expected['status'], $status);
 }
 public function provideGetEntityStatus()
 {
     $cases = parent::provideGetEntityStatus();
     $contentLinkStub = ItemContent::newEmpty();
     $contentLinkStub->getEntity()->getSiteLinkList()->addNewSiteLink('enwiki', 'Foo');
     $cases['linkstub'] = array($contentLinkStub, ItemContent::STATUS_LINKSTUB);
     $linksAndTerms = $contentLinkStub->copy();
     $linksAndTerms->getEntity()->setLabel('en', 'foo');
     $cases['linkstub with terms'] = array($linksAndTerms, ItemContent::STATUS_LINKSTUB);
     // @todo this is needed in PropertyContentTest as well
     //       once we have statements in properties
     $contentWithClaim = $this->newEmpty();
     $snak = new PropertyNoValueSnak(83);
     $guid = '$testing$';
     $contentWithClaim->getEntity()->getStatements()->addNewStatement($snak, null, null, $guid);
     $cases['claims'] = array($contentWithClaim, EntityContent::STATUS_NONE);
     $contentWithClaimAndLink = $contentWithClaim->copy();
     $contentWithClaimAndLink->getEntity()->getSiteLinkList()->addNewSiteLink('enwiki', 'Foo');
     $cases['statements and links'] = array($contentWithClaimAndLink, EntityContent::STATUS_NONE);
     return $cases;
 }