summaryrefslogtreecommitdiff
path: root/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests
diff options
context:
space:
mode:
Diffstat (limited to 'bin/wiki/vendor/addwiki/mediawiki-datamodel/tests')
-rw-r--r--bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/ContentTest.php30
-rw-r--r--bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/EditInfoTest.php51
-rw-r--r--bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/FileTest.php44
-rw-r--r--bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/LogListTest.php25
-rw-r--r--bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/NamespaceInfoTest.php72
-rw-r--r--bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PageIdentifierTest.php54
-rw-r--r--bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PageTest.php48
-rw-r--r--bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PagesTest.php44
-rw-r--r--bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/RedirectTest.php20
-rw-r--r--bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/RevisionTest.php57
-rw-r--r--bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/RevisionsTest.php41
-rw-r--r--bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/TitleTest.php56
-rw-r--r--bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/UserTest.php59
13 files changed, 601 insertions, 0 deletions
diff --git a/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/ContentTest.php b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/ContentTest.php
new file mode 100644
index 00000000..e412749a
--- /dev/null
+++ b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/ContentTest.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace Mediawiki\DataModel\Test;
+
+use Mediawiki\DataModel\Content;
+use PHPUnit_Framework_TestCase;
+
+class ContentTest extends PHPUnit_Framework_TestCase {
+
+ /**
+ * @dataProvider provideValidConstruction
+ */
+ public function testValidConstruction( $data, $model ) {
+ $content = new Content( $data, $model );
+ $this->assertEquals( $data, $content->getData() );
+ $this->assertEquals( $model, $content->getModel() );
+ $this->assertTrue( is_string( $content->getHash() ) );
+ $this->assertFalse( $content->hasChanged() );
+ }
+
+ public function provideValidConstruction() {
+ return array(
+ array( '', null ),
+ array( 'foo', null ),
+ array( new \stdClass(), null ),
+ );
+ }
+
+}
+ \ No newline at end of file
diff --git a/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/EditInfoTest.php b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/EditInfoTest.php
new file mode 100644
index 00000000..c3128bca
--- /dev/null
+++ b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/EditInfoTest.php
@@ -0,0 +1,51 @@
+<?php
+
+namespace Mediawiki\DataModel\Test;
+
+use Mediawiki\DataModel\EditInfo;
+use PHPUnit_Framework_TestCase;
+
+/**
+ * @covers \Mediawiki\DataModel\EditInfo
+ * @author Addshore
+ */
+class EditInfoTest extends PHPUnit_Framework_TestCase {
+
+ /**
+ * @dataProvider provideValidConstruction
+ */
+ public function testValidConstruction( $sum, $minor, $bot ) {
+ $flags = new EditInfo( $sum, $minor, $bot );
+ $this->assertEquals( $sum, $flags->getSummary() );
+ $this->assertEquals( $minor, $flags->getMinor() );
+ $this->assertEquals( $bot, $flags->getBot() );
+ }
+
+ public function provideValidConstruction() {
+ return array(
+ array( '', EditInfo::MINOR, EditInfo::BOT ),
+ array( '', EditInfo::MINOR, EditInfo::NOTBOT ),
+ array( '', EditInfo::NOTMINOR, EditInfo::BOT ),
+ array( '', EditInfo::NOTMINOR, EditInfo::NOTBOT ),
+ array( 'FOO', EditInfo::NOTMINOR, EditInfo::NOTBOT ),
+ );
+ }
+
+ /**
+ * @dataProvider provideInvalidConstruction
+ */
+ public function testInvalidConstruction( $sum, $minor, $bot ) {
+ $this->setExpectedException( 'InvalidArgumentException' );
+ new EditInfo( $sum, $minor, $bot );
+ }
+
+ public function provideInvalidConstruction() {
+ return array(
+ array( 1, 2, 3 ),
+ array( "foo", false, 3 ),
+ array( "foo", 3, false ),
+ array( array(), true, false ),
+ );
+ }
+
+} \ No newline at end of file
diff --git a/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/FileTest.php b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/FileTest.php
new file mode 100644
index 00000000..0da77bd1
--- /dev/null
+++ b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/FileTest.php
@@ -0,0 +1,44 @@
+<?php
+
+namespace Mediawiki\DataModel\Test;
+
+use Mediawiki\DataModel\File;
+use Mediawiki\DataModel\PageIdentifier;
+
+/**
+ * @covers \Mediawiki\DataModel\File
+ * @author Addshore
+ */
+class FileTest extends \PHPUnit_Framework_TestCase {
+
+ /**
+ * @dataProvider provideValidConstruction
+ */
+ public function testValidConstruction( $url ) {
+ $file = new File(
+ $url,
+ new PageIdentifier( $this->newMockTitle(), 1 ),
+ $this->newMockRevisions()
+ );
+ $this->assertEquals( $url, $file->getUrl() );
+ }
+
+ public function provideValidConstruction() {
+ return array(
+ array( 'http://upload.wikimedia.org/wikipedia/en/3/39/Journal_of_Geek_Studies_-_logo.jpg' ),
+ );
+ }
+
+ private function newMockTitle() {
+ return $this->getMockBuilder( '\Mediawiki\DataModel\Title' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ }
+
+ private function newMockRevisions() {
+ return $this->getMockBuilder( '\Mediawiki\DataModel\Revisions' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ }
+
+} \ No newline at end of file
diff --git a/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/LogListTest.php b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/LogListTest.php
new file mode 100644
index 00000000..1098a8a6
--- /dev/null
+++ b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/LogListTest.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace Mediawiki\DataModel\Test;
+
+use Mediawiki\DataModel\Log;
+use Mediawiki\DataModel\LogList;
+use Mediawiki\DataModel\PageIdentifier;
+
+/**
+ * @covers \Mediawiki\DataModel\LogList
+ * @author Addshore
+ */
+class LogListTest extends \PHPUnit_Framework_TestCase {
+
+ public function testJsonRoundTrip() {
+ $logList = new LogList( array(
+ new Log( 1, 'ty', 'ac', '2014', 'Addshore', new PageIdentifier( null, 22 ), 'comment', array() ),
+ new Log( 2, 'ty2', 'ac2', '2015', 'Addbot', new PageIdentifier( null, 33 ), 'comment2', array() ),
+ ) );
+ $json = $logList->jsonSerialize();
+ $json = json_decode( json_encode( $json ), true );
+ $this->assertEquals( $logList, LogList::jsonDeserialize( $json ) );
+ }
+
+}
diff --git a/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/NamespaceInfoTest.php b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/NamespaceInfoTest.php
new file mode 100644
index 00000000..4587a8a0
--- /dev/null
+++ b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/NamespaceInfoTest.php
@@ -0,0 +1,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' ),
+ );
+ }
+
+}
diff --git a/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PageIdentifierTest.php b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PageIdentifierTest.php
new file mode 100644
index 00000000..42aa8412
--- /dev/null
+++ b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PageIdentifierTest.php
@@ -0,0 +1,54 @@
+<?php
+
+namespace Mediawiki\DataModel\Test;
+
+use Mediawiki\DataModel\PageIdentifier;
+use Mediawiki\DataModel\Title;
+
+/**
+ * @covers Mediawiki\DataModel\PageIdentifier
+ */
+class PageIdentifierTest extends \PHPUnit_Framework_TestCase {
+
+ /**
+ * @dataProvider provideValidConstruction
+ */
+ public function testValidConstruction( $title, $pageid, $identifiesPage ) {
+ $pageIdentifier = new PageIdentifier( $title, $pageid );
+ if( is_string( $title ) ) {
+ $this->assertEquals( new Title( $title ), $pageIdentifier->getTitle() );
+ } else {
+ $this->assertEquals( $title, $pageIdentifier->getTitle() );
+ }
+ $this->assertEquals( $pageid, $pageIdentifier->getId() );
+ $this->assertEquals( $identifiesPage, $pageIdentifier->identifiesPage() );
+ }
+
+ public function provideValidConstruction() {
+ return array(
+ array( null, null, false ),
+ array( new Title( 'Foo' ), null, true ),
+ array( new Title( 'Foo', 2 ), null, true ),
+ array( null, 3, true ),
+ );
+ }
+
+ public function provideRoundTripObjects() {
+ return array(
+ array( new PageIdentifier( null, null ) ),
+ array( new PageIdentifier( null, 44 ) ),
+ array( new PageIdentifier( new Title( 'someTitle', 12 ), null ) ),
+ array( new PageIdentifier( new Title( 'someTitle', 55 ), 99 ) ),
+ );
+ }
+
+ /**
+ * @dataProvider provideRoundTripObjects
+ */
+ public function testJsonRoundTrip( PageIdentifier $identifierObject ) {
+ $json = $identifierObject->jsonSerialize();
+ $this->assertEquals( $identifierObject, PageIdentifier::jsonDeserialize( $json ) );
+ }
+
+}
+ \ No newline at end of file
diff --git a/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PageTest.php b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PageTest.php
new file mode 100644
index 00000000..cbc31c8c
--- /dev/null
+++ b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PageTest.php
@@ -0,0 +1,48 @@
+<?php
+
+namespace Mediawiki\DataModel\Test;
+
+use Mediawiki\DataModel\Page;
+use Mediawiki\DataModel\PageIdentifier;
+
+/**
+ * @covers \Mediawiki\DataModel\Page
+ * @author Addshore
+ */
+class PageTest extends \PHPUnit_Framework_TestCase {
+
+ /**
+ * @dataProvider provideValidConstruction
+ */
+ public function testValidConstruction( $pageIdentifier, $revisions ) {
+ $page = new Page( $pageIdentifier, $revisions );
+ $this->assertEquals( $pageIdentifier, $page->getPageIdentifier() );
+ if( is_null( $revisions ) ) {
+ $this->assertInstanceOf( 'Mediawiki\DataModel\Revisions', $page->getRevisions() );
+ } else {
+ $this->assertEquals( $revisions, $page->getRevisions() );
+ }
+ }
+
+ public function provideValidConstruction() {
+ return array(
+ array( null, null ),
+ array( null, $this->newMockRevisions() ),
+ array( new PageIdentifier( $this->newMockTitle(), 1 ), $this->newMockRevisions() ),
+ array( new PageIdentifier( $this->newMockTitle(), 123 ), null ),
+ );
+ }
+
+ private function newMockTitle() {
+ return $this->getMockBuilder( '\Mediawiki\DataModel\Title' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ }
+
+ private function newMockRevisions() {
+ return $this->getMockBuilder( '\Mediawiki\DataModel\Revisions' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ }
+
+} \ No newline at end of file
diff --git a/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PagesTest.php b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PagesTest.php
new file mode 100644
index 00000000..0055ecc7
--- /dev/null
+++ b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PagesTest.php
@@ -0,0 +1,44 @@
+<?php
+
+namespace Mediawiki\DataModel\Test;
+
+use Mediawiki\DataModel\Page;
+use Mediawiki\DataModel\PageIdentifier;
+use Mediawiki\DataModel\Pages;
+
+/**
+ * @covers \Mediawiki\DataModel\Pages
+ * @author Addshore
+ */
+class PagesTest extends \PHPUnit_Framework_TestCase {
+
+ /**
+ * @dataProvider provideValidConstruction
+ */
+ public function testValidConstruction( $input, $expected ) {
+ $pages = new Pages( $input );
+ $this->assertEquals( $expected, $pages->toArray() );
+ }
+
+ public function provideValidConstruction() {
+ $mockTitle = $this->getMockBuilder( 'Mediawiki\DataModel\Title' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $mockRevisions = $this->getMockBuilder( 'Mediawiki\DataModel\Revisions' )
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ //todo mock these
+ $page1 = new Page( new PageIdentifier( $mockTitle, 1 ), $mockRevisions );
+ $page2 = new Page( new PageIdentifier( $mockTitle, 2 ), $mockRevisions );
+ $page4 = new Page( new PageIdentifier( $mockTitle, 4 ), $mockRevisions );
+
+ return array(
+ array( array( $page1 ), array( 1 => $page1 ) ),
+ array( array( $page2, $page1 ), array( 1 => $page1, 2 => $page2 ) ),
+ array( array( $page4, $page1 ), array( 1 => $page1, 4 => $page4 ) ),
+ array( new Pages( array( $page4, $page1 ) ), array( 1 => $page1, 4 => $page4 ) ),
+ );
+ }
+
+}
diff --git a/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/RedirectTest.php b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/RedirectTest.php
new file mode 100644
index 00000000..0f561e92
--- /dev/null
+++ b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/RedirectTest.php
@@ -0,0 +1,20 @@
+<?php
+
+namespace Mediawiki\DataModel\Test;
+
+use Mediawiki\DataModel\Redirect;
+use Mediawiki\DataModel\Title;
+
+/**
+ * @covers \Mediawiki\DataModel\Redirect
+ * @author Addshore
+ */
+class RedirectTest extends \PHPUnit_Framework_TestCase {
+
+ public function testJsonRoundTrip() {
+ $title = new Redirect( new Title( 'Foo', 12 ), new Title( 'bar', 13 ) );
+ $json = $title->jsonSerialize();
+ $this->assertEquals( $title, Redirect::jsonDeserialize( $json ) );
+ }
+
+}
diff --git a/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/RevisionTest.php b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/RevisionTest.php
new file mode 100644
index 00000000..e6260acb
--- /dev/null
+++ b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/RevisionTest.php
@@ -0,0 +1,57 @@
+<?php
+
+namespace Mediawiki\DataModel\Test;
+
+use Mediawiki\DataModel\PageIdentifier;
+use Mediawiki\DataModel\Revision;
+
+/**
+ * @covers \Mediawiki\DataModel\Revision
+ * @author Addshore
+ */
+class RevisionTest extends \PHPUnit_Framework_TestCase {
+
+ /**
+ * @dataProvider provideValidConstruction
+ */
+ public function testValidConstruction( $content, $pageIdentifier, $id, $editInfo, $user, $timestamp ) {
+ $rev = new Revision( $content, $pageIdentifier, $id, $editInfo, $user, $timestamp );
+ $this->assertEquals( $content, $rev->getContent() );
+ if( !is_null( $pageIdentifier ) ) {
+ $this->assertEquals( $pageIdentifier, $rev->getPageIdentifier() );
+ } else {
+ $this->assertInstanceOf( '\Mediawiki\DataModel\PageIdentifier', $rev->getPageIdentifier() );
+ }
+
+ $this->assertEquals( $id, $rev->getId() );
+ if( !is_null( $editInfo ) ) {
+ $this->assertEquals( $editInfo, $rev->getEditInfo() );
+ } else {
+ $this->assertInstanceOf( '\Mediawiki\DataModel\EditInfo', $rev->getEditInfo() );
+ }
+ $this->assertEquals( $user, $rev->getUser() );
+ $this->assertEquals( $timestamp, $rev->getTimestamp() );
+ }
+
+ public function provideValidConstruction() {
+ $mockContent = $this->getMockBuilder( 'Mediawiki\DataModel\Content' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $mockEditInfo = $this->getMockBuilder( '\Mediawiki\DataModel\EditInfo' )
+ ->disableOriginalConstructor()
+ ->getMock();
+ $mockTitle = $this->getMockBuilder( 'Mediawiki\DataModel\Title' )
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ return array(
+ array( $mockContent, null, null, null, null, null ),
+ array( $mockContent, new PageIdentifier( null, 1 ), null , null, null,null ),
+ array( $mockContent, new PageIdentifier( null, 1 ), 1 , null, null, null ),
+ array( $mockContent, new PageIdentifier( null, 2 ), 1 , $mockEditInfo, null, null ),
+ array( $mockContent, new PageIdentifier( $mockTitle ), 1 , $mockEditInfo, 'foo', null ),
+ array( $mockContent, new PageIdentifier( $mockTitle, 3 ), 1 , $mockEditInfo, 'foo', '20141212121212' ),
+ );
+ }
+
+} \ No newline at end of file
diff --git a/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/RevisionsTest.php b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/RevisionsTest.php
new file mode 100644
index 00000000..6b7afbed
--- /dev/null
+++ b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/RevisionsTest.php
@@ -0,0 +1,41 @@
+<?php
+
+namespace Mediawiki\DataModel\Test;
+
+use Mediawiki\DataModel\PageIdentifier;
+use Mediawiki\DataModel\Revision;
+use Mediawiki\DataModel\Revisions;
+
+/**
+ * @covers \Mediawiki\DataModel\Revisions
+ * @author Addshore
+ */
+class RevisionsTest extends \PHPUnit_Framework_TestCase {
+
+ /**
+ * @dataProvider provideValidConstruction
+ */
+ public function testValidConstruction( $input, $expected ) {
+ $revisions = new Revisions( $input );
+ $this->assertEquals( $expected, $revisions->toArray() );
+ }
+
+ public function provideValidConstruction() {
+ $mockContent = $this->getMockBuilder( 'Mediawiki\DataModel\Content' )
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ //todo mock these
+ $rev1 = new Revision( $mockContent, new PageIdentifier( null, 1 ), 1 );
+ $rev2 = new Revision( $mockContent, new PageIdentifier( null, 1 ), 2 );
+ $rev4 = new Revision( $mockContent, new PageIdentifier( null, 1 ), 4 );
+
+ return array(
+ array( array( $rev1 ), array( 1 => $rev1 ) ),
+ array( array( $rev2, $rev1 ), array( 1 => $rev1, 2 => $rev2 ) ),
+ array( array( $rev4, $rev1 ), array( 1 => $rev1, 4 => $rev4 ) ),
+ array( new Revisions( array( $rev4, $rev1 ) ), array( 1 => $rev1, 4 => $rev4 ) ),
+ );
+ }
+
+} \ No newline at end of file
diff --git a/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/TitleTest.php b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/TitleTest.php
new file mode 100644
index 00000000..2c4d73da
--- /dev/null
+++ b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/TitleTest.php
@@ -0,0 +1,56 @@
+<?php
+
+namespace Mediawiki\DataModel\Test;
+
+use Mediawiki\DataModel\Title;
+
+/**
+ * @covers \Mediawiki\DataModel\Title
+ * @author Addshore
+ */
+class TitleTest extends \PHPUnit_Framework_TestCase {
+
+ /**
+ * @dataProvider provideValidConstruction
+ */
+ public function testValidConstruction( $title, $ns ) {
+ $titleObj = new Title( $title, $ns );
+ $this->assertEquals( $title, $titleObj->getText() );
+ $this->assertEquals( $title, $titleObj->getTitle() );
+ $this->assertEquals( $ns, $titleObj->getNs() );
+ }
+
+ public function provideValidConstruction() {
+ return array(
+ array( 'fooo', 0 ),
+ array( 'Foo:Bar', 15 ),
+ array( 'FooBar:Bar', 9999 ),
+ );
+ }
+
+ /**
+ * @dataProvider provideInvalidConstruction
+ */
+ public function testInvalidConstruction( $title, $ns ) {
+ $this->setExpectedException( 'InvalidArgumentException' );
+ new Title( $title, $ns );
+ }
+
+ public function provideInvalidConstruction() {
+ return array(
+ array( array(), array() ),
+ array( 'foo', array() ),
+ array( array(), 1 ),
+ array( null, 1 ),
+ array( null, null ),
+ array( 'foo', null ),
+ );
+ }
+
+ public function testJsonRoundTrip() {
+ $title = new Title( 'Foo', 19 );
+ $json = $title->jsonSerialize();
+ $this->assertEquals( $title, Title::jsonDeserialize( $json ) );
+ }
+
+} \ No newline at end of file
diff --git a/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/UserTest.php b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/UserTest.php
new file mode 100644
index 00000000..fcf89994
--- /dev/null
+++ b/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/UserTest.php
@@ -0,0 +1,59 @@
+<?php
+
+namespace Mediawiki\DataModel\Test;
+
+use Mediawiki\DataModel\User;
+
+/**
+ * @covers \Mediawiki\DataModel\User
+ * @author Addshore
+ */
+class UserTest extends \PHPUnit_Framework_TestCase {
+
+ /**
+ * @dataProvider provideValidConstruction
+ */
+ public function testValidConstruction( $name, $id, $editcount, $registration, $groups, $rights, $gender ) {
+ $user = new User( $name, $id, $editcount, $registration, $groups, $rights, $gender );
+ $this->assertEquals( $name, $user->getName() );
+ $this->assertEquals( $id, $user->getId() );
+ $this->assertEquals( $editcount, $user->getEditcount() );
+ $this->assertEquals( $registration, $user->getRegistration() );
+ $this->assertEquals( $groups['groups'], $user->getGroups() );
+ $this->assertEquals( $groups['implicitgroups'], $user->getGroups( 'implicitgroups' ) );
+ $this->assertEquals( $rights, $user->getRights() );
+ $this->assertEquals( $gender, $user->getGender() );
+ }
+
+ public function provideValidConstruction() {
+ return array(
+ array( 'Username', 1, 1, 'TIMESTAMP', array( 'groups' => array(), 'implicitgroups' => array() ), array(), 'male' ),
+ array( 'Username', 1, 1, 'TIMESTAMP', array( 'groups' => array(), 'implicitgroups' => array() ), array(), 'female' ),
+ array( 'Username', 99999999, 99999997, 'TIMESTAMP', array( 'groups' => array(), 'implicitgroups' => array() ), array(), 'male' ),
+ array( 'Username', 1, 1, null, array( 'groups' => array(), 'implicitgroups' => array() ), array(), 'female' ),
+ );
+ }
+
+ /**
+ * @dataProvider provideInvalidConstruction
+ */
+ public function testInvalidConstruction( $name, $id, $editcount, $registration, $groups, $rights, $gender ) {
+ $this->setExpectedException( 'InvalidArgumentException' );
+ new User( $name, $id, $editcount, $registration, $groups, $rights, $gender );
+ }
+
+ public function provideInvalidConstruction() {
+ return array(
+ array( 'Username', 1, 1, 'TIMESTAMP', 'bad', array(), 'male' ),
+ array( 'Username', 1, 1, 'TIMESTAMP', array( 'groups' => array(), 'implicitgroups' => array() ), 'bad', 'male' ),
+ array( 'Username', 1, 1, 'TIMESTAMP', array( 'groups' => array(), 'implicitgroups' => array() ), array(), 1 ),
+ array( 'Username', 1, 'bad', 'TIMESTAMP', array( 'groups' => array(), 'implicitgroups' => array() ), array(), 'male' ),
+ array( 'Username', 'bad', 1, 'TIMESTAMP', array( 'groups' => array(), 'implicitgroups' => array() ), array(), 'male' ),
+ array( 14287941, 1, 1, 'TIMESTAMP', array( 'groups' => array(), 'implicitgroups' => array() ), array(), 'male' ),
+ array( 'Username', 1, 1, 'TIMESTAMP', array( 'groups' => array(), 'foo' => array() ), array(), 'male' ),
+ array( 'Username', 1, 1, 'TIMESTAMP', array( 'groups' => array() ), array(), 'male' ),
+ array( 'Username', 1, 1, 'TIMESTAMP', array(), array(), 'male' ),
+ );
+ }
+
+}