public function goodConstructorProvider() {
return [
- [ NS_USER, 'TestThis', 'stuff', true ],
- [ NS_USER, 'TestThis', '', false ],
+ [ NS_USER, 'TestThis', 'stuff', '', true, false ],
+ [ NS_USER, 'TestThis', '', 'baz', false, true ],
];
}
/**
* @dataProvider goodConstructorProvider
*/
- public function testConstruction( $ns, $text, $fragment, $hasFragment ) {
- $title = new TitleValue( $ns, $text, $fragment );
+ public function testConstruction( $ns, $text, $fragment, $interwiki, $hasFragment,
+ $hasInterwiki
+ ) {
+ $title = new TitleValue( $ns, $text, $fragment, $interwiki );
$this->assertEquals( $ns, $title->getNamespace() );
+ $this->assertTrue( $title->inNamespace( $ns ) );
$this->assertEquals( $text, $title->getText() );
$this->assertEquals( $fragment, $title->getFragment() );
$this->assertEquals( $hasFragment, $title->hasFragment() );
+ $this->assertEquals( $interwiki, $title->getInterwiki() );
+ $this->assertEquals( $hasInterwiki, $title->isExternal() );
}
public function badConstructorProvider() {
return [
- [ 'foo', 'title', 'fragment' ],
- [ null, 'title', 'fragment' ],
- [ 2.3, 'title', 'fragment' ],
-
- [ NS_MAIN, 5, 'fragment' ],
- [ NS_MAIN, null, 'fragment' ],
- [ NS_MAIN, '', 'fragment' ],
- [ NS_MAIN, 'foo bar', '' ],
- [ NS_MAIN, 'bar_', '' ],
- [ NS_MAIN, '_foo', '' ],
- [ NS_MAIN, ' eek ', '' ],
-
- [ NS_MAIN, 'title', 5 ],
- [ NS_MAIN, 'title', null ],
- [ NS_MAIN, 'title', [] ],
+ [ 'foo', 'title', 'fragment', '' ],
+ [ null, 'title', 'fragment', '' ],
+ [ 2.3, 'title', 'fragment', '' ],
+
+ [ NS_MAIN, 5, 'fragment', '' ],
+ [ NS_MAIN, null, 'fragment', '' ],
+ [ NS_MAIN, '', 'fragment', '' ],
+ [ NS_MAIN, 'foo bar', '', '' ],
+ [ NS_MAIN, 'bar_', '', '' ],
+ [ NS_MAIN, '_foo', '', '' ],
+ [ NS_MAIN, ' eek ', '', '' ],
+
+ [ NS_MAIN, 'title', 5, '' ],
+ [ NS_MAIN, 'title', null, '' ],
+ [ NS_MAIN, 'title', [], '' ],
+
+ [ NS_MAIN, 'title', '', 5 ],
+ [ NS_MAIN, 'title', null, 5 ],
+ [ NS_MAIN, 'title', [], 5 ],
];
}
/**
* @dataProvider badConstructorProvider
*/
- public function testConstructionErrors( $ns, $text, $fragment ) {
+ public function testConstructionErrors( $ns, $text, $fragment, $interwiki ) {
$this->setExpectedException( 'InvalidArgumentException' );
- new TitleValue( $ns, $text, $fragment );
+ new TitleValue( $ns, $text, $fragment, $interwiki );
}
public function fragmentTitleProvider() {
* @dataProvider fragmentTitleProvider
*/
public function testCreateFragmentTitle( TitleValue $title, $fragment ) {
- $fragmentTitle = $title->createFragmentTitle( $fragment );
+ $fragmentTitle = $title->createFragmentTarget( $fragment );
$this->assertEquals( $title->getNamespace(), $fragmentTitle->getNamespace() );
$this->assertEquals( $title->getText(), $fragmentTitle->getText() );
$this->assertEquals( $text, $title->getText() );
}
+
+ public function provideTestToString() {
+ yield [
+ new TitleValue( 0, 'Foo' ),
+ '0:Foo'
+ ];
+ yield [
+ new TitleValue( 1, 'Bar_Baz' ),
+ '1:Bar_Baz'
+ ];
+ yield [
+ new TitleValue( 9, 'JoJo', 'Frag' ),
+ '9:JoJo#Frag'
+ ];
+ yield [
+ new TitleValue( 200, 'tea', 'Fragment', 'wikicode' ),
+ 'wikicode:200:tea#Fragment'
+ ];
+ }
+
+ /**
+ * @dataProvider provideTestToString
+ */
+ public function testToString( TitleValue $value, $expected ) {
+ $this->assertSame(
+ $expected,
+ $value->__toString()
+ );
+ }
}