[MediaWiki-commits] [Gerrit] mediawiki...Collection[master]: Deal with extreme of an empty book

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

Change subject: Deal with extreme of an empty book
..


Deal with extreme of an empty book

This edge case currently throws an exception. Let's not do that.

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

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



diff --git a/includes/BookRenderer.php b/includes/BookRenderer.php
index 231868e..2dbb07d 100644
--- a/includes/BookRenderer.php
+++ b/includes/BookRenderer.php
@@ -41,6 +41,7 @@
$articleCount = count( array_filter( $collection['items'], 
function ( $item ) {
return $item['type'] === 'article';
} ) );
+   $hasArticles = $articleCount > 0;
 
$headingCounter = new HeadingCounter();
$bookBodyHtml = '';
@@ -119,19 +120,26 @@
$hasImages = isset( $metadata['images'] ) && 
$metadata['images'];
$hasLicense = isset( $metadata['license'] ) && 
$metadata['license'];
 
-   $outline = array_merge( $outline,
-   $this->getAdditionalBookChapters( $tocHeadingCounter, 
$metadataLevel,
-   $hasImages, $hasLicense )
-   );
+   if ( $hasArticles ) {
+   $outline = array_merge( $outline,
+   $this->getAdditionalBookChapters( 
$tocHeadingCounter, $metadataLevel,
+   $hasImages, $hasLicense )
+   );
+   }
 
$templateData = [
-   'contributors' => [
-   'data' => $metadata['contributors'],
-   'level' => 
$headingCounter->incrementAndGetTopLevel(),
-   ],
'outline' => $outline,
'html' => $bookBodyHtml,
];
+
+   if ( $hasArticles ) {
+   $templateData['contributors'] = [
+   'data' => $metadata['contributors'],
+   'level' => 
$headingCounter->incrementAndGetTopLevel(),
+   ];
+   } else {
+   $templateData['contributors'] = false;
+   }
if ( $hasImages ) {
$templateData['images'] = [
'data' => $metadata['images'],
diff --git a/tests/phpunit/includes/BookRendererTest.php 
b/tests/phpunit/includes/BookRendererTest.php
index c3d9ccc..f2d31f8 100644
--- a/tests/phpunit/includes/BookRendererTest.php
+++ b/tests/phpunit/includes/BookRendererTest.php
@@ -21,6 +21,19 @@
'Check table of contents generation' );
}
 
+   public function testGetBookTemplateDataImagesGeneration() {
+   $templateParser = new TemplateParser( __DIR__ . 
'/../../../templates' );
+   $renderer = new BookRenderer( $templateParser );
+   $collection = [ 'items' => [], 'title' => 'Empty book' ];
+   $data = $renderer->getBookTemplateData( $collection, [], [] );
+   $this->assertSame( $data['license'], false, 'Template data for 
empty book has no license' );
+   $this->assertSame( $data['images'], false, 'Template data for 
empty book has no images' );
+   $this->assertSame( $data['contributors'], false,
+   'Template data for empty book has no contributors' );
+   $this->assertArraySame( $data['outline'], [],
+   'Template data for empty book has empty outline' );
+   }
+
/**
 * @dataProvider provideRenderBook
 * @param array[] $collection Collection, as returned by 
CollectionSession::getCollection().

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I768a89d213611799a227270c6cb2b512c083e7ef
Gerrit-PatchSet: 4
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]: Deal with extreme of an empty book

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

Change subject: Deal with extreme of an empty book
..

Deal with extreme of an empty book

This edge case currently throws an exception. Let's not do that.

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


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

diff --git a/includes/BookRenderer.php b/includes/BookRenderer.php
index ef1a0f6..f064867 100644
--- a/includes/BookRenderer.php
+++ b/includes/BookRenderer.php
@@ -41,6 +41,7 @@
$articleCount = count( array_filter( $collection['items'], 
function ( $item ) {
return $item['type'] === 'article';
} ) );
+   $hasArticles = $articleCount > 0;
 
$headingCounter = new HeadingCounter();
$bookBodyHtml = '';
@@ -119,19 +120,26 @@
$hasImages = isset( $metadata['images'] ) && 
$metadata['images'];
$hasLicense = isset( $metadata['license'] ) && 
$metadata['license'];
 
-   $outline = array_merge( $outline,
-   $this->getAdditionalBookChapters( $tocHeadingCounter, 
$metadataLevel,
-   $hasImages, $hasLicense )
-   );
+   if ( $hasArticles ) {
+   $outline = array_merge( $outline,
+   $this->getAdditionalBookChapters( 
$tocHeadingCounter, $metadataLevel,
+   $hasImages, $hasLicense )
+   );
+   }
 
$templateData = [
-   'contributors' => [
-   'data' => $metadata['contributors'],
-   'level' => 
$headingCounter->incrementAndGetTopLevel(),
-   ],
'outline' => $outline,
'html' => $bookBodyHtml,
];
+
+   if ( $hasArticles ) {
+   $templateData['contributors'] = [
+   'data' => $metadata['contributors'],
+   'level' => 
$headingCounter->incrementAndGetTopLevel(),
+   ];
+   } else {
+   $templateData['contributors'] = false;
+   }
if ( $hasImages ) {
$templateData['images'] = [
'data' => $metadata['images'],
diff --git a/tests/phpunit/includes/BookRendererTest.php 
b/tests/phpunit/includes/BookRendererTest.php
index b097ea2..efe8001 100644
--- a/tests/phpunit/includes/BookRendererTest.php
+++ b/tests/phpunit/includes/BookRendererTest.php
@@ -20,6 +20,19 @@
$this->assertArraySame( $expectedOutline, $data['outline'], 
'Check table of contents generation' );
}
 
+
+   public function testGetBookTemplateDataImagesGeneration() {
+   $templateParser = new TemplateParser( __DIR__ . 
'/../../../templates' );
+   $renderer = new BookRenderer( $templateParser );
+   $collection = [ 'items' => [], 'title' => 'Empty book' ];
+   $data = $renderer->getBookTemplateData( $collection, [], [] );
+   $this->assertSame( $data['license'], false, 'Template data for 
empty book has no license' );
+   $this->assertSame( $data['images'], false, 'Template data for 
empty book has no images' );
+   $this->assertSame( $data['contributors'], false, 'Template data 
for empty book has no contributors' );
+   $this->assertArraySame( $data['outline'], [],
+   'Template data for empty book has empty outline' );
+   }
+
/**
 * @dataProvider provideRenderBook
 * @param array[] $collection Collection, as returned by 
CollectionSession::getCollection().

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I768a89d213611799a227270c6cb2b512c083e7ef
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