summaryrefslogtreecommitdiff
path: root/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/NamespaceInfoTest.php
blob: 4587a8a05651b150903f0bd3861275c9f5e04069 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php

namespace Mediawiki\DataModel\Test;

use Mediawiki\DataModel\NamespaceInfo;

/**
 * @covers \Mediawiki\DataModel\NamespaceInfo
 * @author gbirke
 */
class NamespaceInfoTest extends \PHPUnit_Framework_TestCase
{
	/**
	 * @dataProvider provideValidConstruction
	 * @param int $id
	 * @param string $canonicalName
	 * @param string $localName
	 * @param string $caseHandling
	 * @param null $defaultContentModel
	 * @param array $aliases
	 */
	public function testValidConstruction($id, $canonicalName, $localName, $caseHandling, $defaultContentModel = null,
                                          $aliases = [] ) {
		$namespace = new NamespaceInfo( $id, $canonicalName, $localName, $caseHandling, $defaultContentModel, $aliases );
		$this->assertSame( $id, $namespace->getId() );
		$this->assertSame( $canonicalName, $namespace->getCanonicalName() );
		$this->assertSame( $localName, $namespace->getLocalName() );
		$this->assertSame( $caseHandling, $namespace->getCaseHandling() );
		$this->assertSame( $defaultContentModel, $namespace->getDefaultContentModel() );
		$this->assertSame( $aliases, $namespace->getAliases() );
	}

	public function provideValidConstruction() {
		return array(
			array( -2, 'Media', 'Media', 'first-letter' ),
			array( 0, '', '', 'first-letter' ),
			array( 4, 'Project', 'Wikipedia', 'first-letter' ),
			array( 2302, 'Gadget definition', 'Gadget definition', 'case-sensitive', 'GadgetDefinition' ),
			array( 2302, 'Gadget definition', 'Gadget definition', 'case-sensitive', 'GadgetDefinition', [ 'GD' ] ),
		);
	}

	/**
	 * @param $id
	 * @param $canonicalName
	 * @param $localName
	 * @param $caseHandling
	 * @param null $defaultContentModel
	 * @param array $aliases
	 *
	 * @dataProvider provideInvalidConstruction
	 */
	public function testInvalidConstruction($id, $canonicalName, $localName, $caseHandling, $defaultContentModel = null,
                                            $aliases = [] ) {
		$this->setExpectedException( 'InvalidArgumentException' );
		new NamespaceInfo( $id, $canonicalName, $localName, $caseHandling, $defaultContentModel, $aliases );
	}

	public function provideInvalidConstruction() {
		return array(
			array( .5, 'Media', 'Media', 'first-letter' ),
			array( '0', '', '', 'first-letter' ),
			array( -2, null, 'Media', 'first-letter' ),
			array( -2, 'Media', null, 'first-letter' ),
			array( 4, 'Project', 'Wikipedia', 'first-letter', 5 ),
			array( 2302, null, 'Gadget definition', 'case-sensitive', 'GadgetDefinition' ),
			array( 4, 'Project', 'Wikipedia', 'first-letter', 5 ),
			array( 4, 'Project', 'Wikipedia', 'first-letter', 'GadgetDefinition', 'notanalias' ),
		);
	}

}