Beispiel #1
0
 public function testRedirectPartner()
 {
     // Create Charles.
     $charlesTitle = Title::newFromText('Charles');
     $charlesPage = new WikiPage($charlesTitle);
     $charlesPage->doEditContent(new WikitextContent('{{#genealogy:partner|Diana}}'), '');
     $charles = new Person($charlesTitle);
     // Create Diana and made sure she's Charles' partner.
     $diannaTitle = Title::newFromText('Diana');
     $diannaPage = new WikiPage($diannaTitle);
     $diannaPage->doEditContent(new WikitextContent("Dianna"), '');
     $this->assertEquals('Diana', $charles->getPartners()['Diana']->getTitle());
     // Redirect Diana to Dianna.
     $diannaPage->doEditContent(new WikitextContent("#REDIRECT [[Dianna]]"), 'Redirecting');
     $diana = new Person(Title::newFromText('Diana'));
     $this->assertEquals('Dianna', $diana->getTitle()->getText());
     $this->assertEquals(['Diana', 'Dianna'], array_keys($diana->getTitles()));
     // Check that Charles and Dianna have the expected partners.
     $this->assertCount(1, $charles->getPartners());
     $this->assertEquals('Dianna', $charles->getPartners()['Dianna']->getTitle());
     $this->assertCount(1, $diana->getPartners());
     $this->assertEquals('Charles', $diana->getPartners()['Charles']->getTitle());
     // Then redirect Charles and check everything again.
     $charlesPage->doEditContent(new WikitextContent("#REDIRECT [[King Charles]]"), '');
     $kingChPage = new WikiPage(Title::newFromText('King Charles'));
     $kingChPage->doEditContent(new WikitextContent('{{#genealogy:partner|Diana}}'), '');
     $this->assertEquals(['Charles', 'King_Charles'], array_keys($charles->getTitles()));
     $this->assertCount(1, $charles->getPartners());
     $this->assertEquals('Dianna', $charles->getPartners()['Dianna']->getTitle());
     $this->assertCount(1, $diana->getPartners());
     $this->assertEquals('King Charles', $diana->getPartners()['King_Charles']->getTitle()->getText());
 }