summaryrefslogtreecommitdiff
path: root/bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PageIdentifierTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PageIdentifierTest.php')
-rw-r--r--bin/wiki/vendor/addwiki/mediawiki-datamodel/tests/PageIdentifierTest.php54
1 files changed, 54 insertions, 0 deletions
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