[MediaWiki-commits] [Gerrit] mediawiki...Collection[master]: Restore table of content generation tests

2017-10-11 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/383411 )

Change subject: Restore table of content generation tests
..


Restore table of content generation tests

Bug: T175856
Change-Id: Ie6c023924cf4d1623243cb879974b945772d5962
---
M includes/BookRenderer.php
M tests/phpunit/includes/BookRendererTest.php
2 files changed, 26 insertions(+), 2 deletions(-)

Approvals:
  Bmansurov: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/includes/BookRenderer.php b/includes/BookRenderer.php
index d4e01ee..231868e 100644
--- a/includes/BookRenderer.php
+++ b/includes/BookRenderer.php
@@ -29,12 +29,12 @@
 * @param array[] $collection as returned by
 *   CollectionSession::getCollection().
 * @param string[] $pages Map of prefixed DB key => Parsoid HTML.
-* @param array[] &$metadata Map of prefixed DB key => metadata, as 
returned by fetchMetadata().
+* @param array[] $metadata Map of prefixed DB key => metadata, as 
returned by fetchMetadata().
 *   Section data will be updated to account for heading level and id 
changes.
 *   Also, an outline will be added (see renderCoverAndToc() for 
format).
 * @return array with keys html representing the data needed to render 
the book
 */
-   private function getBookTemplateData( $collection, $pages, $metadata ) {
+   public function getBookTemplateData( $collection, $pages, $metadata ) {
$hasChapters = !empty( array_filter( $collection['items'], 
function ( $item ) {
return $item['type'] === 'chapter';
} ) );
diff --git a/tests/phpunit/includes/BookRendererTest.php 
b/tests/phpunit/includes/BookRendererTest.php
index 4cb7072..c3d9ccc 100644
--- a/tests/phpunit/includes/BookRendererTest.php
+++ b/tests/phpunit/includes/BookRendererTest.php
@@ -9,6 +9,19 @@
 
 class BookRendererTest extends MediaWikiTestCase {
/**
+* @dataProvider provideGetBookTemplateDataOutlineGeneration
+*/
+   public function testGetBookTemplateDataOutlineGeneration(
+   $collection, $pages, $metadata, $expectedOutline
+   ) {
+   $templateParser = new TemplateParser( __DIR__ . 
'/../../../templates' );
+   $renderer = new BookRenderer( $templateParser );
+   $data = $renderer->getBookTemplateData( $collection, $pages, 
$metadata );
+   $this->assertArraySame( $expectedOutline, $data['outline'],
+   'Check table of contents generation' );
+   }
+
+   /**
 * @dataProvider provideRenderBook
 * @param array[] $collection Collection, as returned by 
CollectionSession::getCollection().
 * @param string[] $pages Map of prefixed DB key => Parsoid HTML.
@@ -35,6 +48,17 @@
];
}
 
+   public function provideGetBookTemplateDataOutlineGeneration() {
+   $cases = [];
+   foreach ( [ 'single_page', 'two_pages', 'chapters', 
'id_conflict', 'header_conflict' ] as $key ) {
+   $eg = $this->loadData( $key );
+   $cases[] = [
+   $eg['collection'], $eg['pages'], 
$eg['metadata'], $eg['expectedOutline'],
+   ];
+   }
+   return $cases;
+   }
+
/**
 * @param string $title Book title
 * @param string $subtitle Book subtitle

-- 
To view, visit https://gerrit.wikimedia.org/r/383411
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie6c023924cf4d1623243cb879974b945772d5962
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/Collection
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson 
Gerrit-Reviewer: Bmansurov 
Gerrit-Reviewer: C. Scott Ananian 
Gerrit-Reviewer: jenkins-bot <>

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] mediawiki...Collection[master]: Restore table of content generation tests

2017-10-10 Thread Jdlrobson (Code Review)
Jdlrobson has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/383411 )

Change subject: Restore table of content generation tests
..

Restore table of content generation tests

Bug: T175856
Change-Id: Ie6c023924cf4d1623243cb879974b945772d5962
---
M includes/BookRenderer.php
M tests/phpunit/includes/BookRendererTest.php
2 files changed, 24 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection 
refs/changes/11/383411/1

diff --git a/includes/BookRenderer.php b/includes/BookRenderer.php
index d4e01ee..ef1a0f6 100644
--- a/includes/BookRenderer.php
+++ b/includes/BookRenderer.php
@@ -34,7 +34,7 @@
 *   Also, an outline will be added (see renderCoverAndToc() for 
format).
 * @return array with keys html representing the data needed to render 
the book
 */
-   private function getBookTemplateData( $collection, $pages, $metadata ) {
+   public function getBookTemplateData( $collection, $pages, $metadata ) {
$hasChapters = !empty( array_filter( $collection['items'], 
function ( $item ) {
return $item['type'] === 'chapter';
} ) );
diff --git a/tests/phpunit/includes/BookRendererTest.php 
b/tests/phpunit/includes/BookRendererTest.php
index 4cb7072..b097ea2 100644
--- a/tests/phpunit/includes/BookRendererTest.php
+++ b/tests/phpunit/includes/BookRendererTest.php
@@ -9,6 +9,18 @@
 
 class BookRendererTest extends MediaWikiTestCase {
/**
+* @dataProvider provideGetBookTemplateDataOutlineGeneration
+*/
+   public function testGetBookTemplateDataOutlineGeneration(
+   $collection, $pages, $metadata, $expectedOutline
+   ) {
+   $templateParser = new TemplateParser( __DIR__ . 
'/../../../templates' );
+   $renderer = new BookRenderer( $templateParser );
+   $data = $renderer->getBookTemplateData( $collection, $pages, 
$metadata );
+   $this->assertArraySame( $expectedOutline, $data['outline'], 
'Check table of contents generation' );
+   }
+
+   /**
 * @dataProvider provideRenderBook
 * @param array[] $collection Collection, as returned by 
CollectionSession::getCollection().
 * @param string[] $pages Map of prefixed DB key => Parsoid HTML.
@@ -35,6 +47,17 @@
];
}
 
+   public function provideGetBookTemplateDataOutlineGeneration() {
+   $cases = [];
+   foreach ( [ 'single_page', 'two_pages', 'chapters', 
'id_conflict', 'header_conflict' ] as $key ) {
+   $eg = $this->loadData( $key );
+   $cases[] = [
+   $eg['collection'], $eg['pages'], 
$eg['metadata'], $eg['expectedOutline'],
+   ];
+   }
+   return $cases;
+   }
+
/**
 * @param string $title Book title
 * @param string $subtitle Book subtitle

-- 
To view, visit https://gerrit.wikimedia.org/r/383411
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie6c023924cf4d1623243cb879974b945772d5962
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits