public function doTestSetTermExceptions($params, $expected) { // -- set any defaults ------------------------------------ $params['action'] = self::$testAction; if (!array_key_exists('id', $params) && !array_key_exists('site', $params) && !array_key_exists('title', $params)) { $params['id'] = EntityTestHelper::getId('Empty'); } $this->doTestQueryExceptions($params, $expected['exception']); }
/** * @dataProvider provideData */ public function testSetAliases($params, $expected) { // -- set any defaults ------------------------------------ $params['action'] = self::$testAction; if (!array_key_exists('id', $params)) { $params['id'] = EntityTestHelper::getId('Empty'); } if (!array_key_exists('value', $expected)) { $expected['value'] = array(); } // -- do the request -------------------------------------------------- list($result, , ) = $this->doApiRequestWithToken($params); // -- check the result ------------------------------------------------ $this->assertArrayHasKey('success', $result, "Missing 'success' marker in response."); $this->assertResultHasEntityType($result); $this->assertArrayHasKey('entity', $result, "Missing 'entity' section in response."); if (array_key_exists($params['language'], $expected['value'])) { $resAliases = $this->flattenArray($result['entity']['aliases'], 'language', 'value', true); $this->assertArrayHasKey($params['language'], $resAliases); $this->assertArrayEquals($expected['value'][$params['language']], $resAliases[$params['language']]); } // -- check any warnings ---------------------------------------------- if (array_key_exists('warning', $expected)) { $this->assertArrayHasKey('warnings', $result, "Missing 'warnings' section in response."); $this->assertEquals($expected['warning'], $result['warnings']['messages']['0']['name']); $this->assertArrayHasKey('html', $result['warnings']['messages']); } // -- check item in database ------------------------------------------- $dbEntity = $this->loadEntity(EntityTestHelper::getId('Empty')); $this->assertArrayHasKey('aliases', $dbEntity); $dbAliases = $this->flattenArray($dbEntity['aliases'], 'language', 'value', true); foreach ($expected['value'] as $valueLanguage => $value) { $this->assertArrayEquals($value, $dbAliases[$valueLanguage]); } // -- check the edit summary -------------------------------------------- if (empty($expected['edit-no-change'])) { $this->assertRevisionSummary(array(self::$testAction, $params['language']), $result['entity']['lastrevid']); if (array_key_exists('summary', $params)) { $this->assertRevisionSummary('/' . $params['summary'] . '/', $result['entity']['lastrevid']); } } }
public function testSiteLinkFilter() { $id = EntityTestHelper::getId('Oslo'); list($res, , ) = $this->doApiRequest(array('action' => 'wbgetentities', 'sitefilter' => 'dewiki|enwiki', 'format' => 'json', 'ids' => $id)); $expectedSiteLinks = array('dewiki' => array('site' => 'dewiki', 'title' => 'Oslo', 'badges' => array()), 'enwiki' => array('site' => 'enwiki', 'title' => 'Oslo', 'badges' => array())); $this->assertEquals($expectedSiteLinks, $res['entities'][$id]['sitelinks']); }