jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/392194 )

Change subject: Removes ProofreadPagePage and ProofreadIndexPage
......................................................................


Removes ProofreadPagePage and ProofreadIndexPage

Change-Id: Ib77a4a0aae7c92fc38e4f97d9caa55d659768d2d
---
M ProofreadPage.body.php
M extension.json
M includes/FileProvider.php
M includes/Pagination/FilePagination.php
M includes/Pagination/PagePagination.php
M includes/Pagination/Pagination.php
M includes/Pagination/PaginationFactory.php
M includes/Parser/PagelistTagParser.php
M includes/Parser/PagesTagParser.php
M includes/index/DatabaseIndexContentLookup.php
M includes/index/IndexContentLookup.php
D includes/index/ProofreadIndexPage.php
M includes/page/DatabaseIndexForPageLookup.php
M includes/page/EditPagePage.php
M includes/page/IndexForPageLookup.php
M includes/page/PageContentBuilder.php
M includes/page/PageDisplayHandler.php
M includes/page/PageEditAction.php
M includes/page/PageSubmitAction.php
M includes/page/PageViewAction.php
D includes/page/ProofreadPagePage.php
M tests/phpunit/FileProviderTest.php
M tests/phpunit/Pagination/FilePaginationTest.php
M tests/phpunit/Pagination/PagePaginationTest.php
M tests/phpunit/Pagination/PaginationFactoryTest.php
M tests/phpunit/ProofreadPageTestCase.php
M tests/phpunit/index/IndexContentLookupMock.php
D tests/phpunit/index/ProofreadIndexPageTest.php
M tests/phpunit/page/DatabaseIndexForPageLookupTest.php
M tests/phpunit/page/IndexForPageLookupMock.php
M tests/phpunit/page/PageContentBuilderTest.php
M tests/phpunit/page/PageDisplayHandlerTest.php
D tests/phpunit/page/ProofreadPagePageTest.php
33 files changed, 322 insertions(+), 589 deletions(-)

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



diff --git a/ProofreadPage.body.php b/ProofreadPage.body.php
index c088bc1..8e7a3b6 100644
--- a/ProofreadPage.body.php
+++ b/ProofreadPage.body.php
@@ -123,13 +123,13 @@
         * @param Title $title
         */
        public static function loadIndex( $title ) {
-               $title->prpIndexPage = null;
+               $title->prpIndexTitle = null;
                $result = ProofreadIndexDbConnector::getRowsFromTitle( $title );
 
                foreach ( $result as $x ) {
                        $refTitle = Title::makeTitle( $x->page_namespace, 
$x->page_title );
                        if ( $refTitle !== null && $refTitle->inNamespace( 
self::getIndexNamespaceId() ) ) {
-                               $title->prpIndexPage = 
ProofreadIndexPage::newFromTitle( $refTitle );
+                               $title->prpIndexTitle = $refTitle;
                                return;
                        }
                }
@@ -149,7 +149,7 @@
                                self::getIndexNamespaceId(), 
$image->getTitle()->getText()
                        );
                        if ( $indexTitle !== null ) {
-                               $title->prpIndexPage = 
ProofreadIndexPage::newFromTitle( $indexTitle );
+                               $title->prpIndexTitle = $indexTitle;
                        }
                }
        }
@@ -295,8 +295,8 @@
         */
        private static function updateIndexOfPage( Title $title, $deleted = 
false ) {
                self::loadIndex( $title );
-               if ( $title->prpIndexPage !== null ) {
-                       $indexTitle = $title->prpIndexPage->getTitle();
+               if ( $title->prpIndexTitle !== null ) {
+                       $indexTitle = $title->prpIndexTitle;
                        $indexTitle->invalidateCache();
                        $index = WikiPage::factory( $indexTitle );
                        if ( $index ) {
@@ -325,22 +325,22 @@
                }
 
                /* check if there is an index */
-               if ( !isset( $title->prpIndexPage ) ) {
+               if ( !isset( $title->prpIndexTitle ) ) {
                        self::loadIndex( $title );
                }
-               if ( $title->prpIndexPage === null ) {
+               if ( $title->prpIndexTitle === null ) {
                        return true;
                }
 
                /**
                 * invalidate the cache of the index page
                 */
-               $title->prpIndexPage->getTitle()->invalidateCache();
+               $title->prpIndexTitle->invalidateCache();
 
                /**
                 * update pr_index iteratively
                 */
-               $indexId = $title->prpIndexPage->getTitle()->getArticleID();
+               $indexId = $title->prpIndexTitle->getArticleID();
                $indexData = 
ProofreadIndexDbConnector::getIndexDataFromIndexPageId( $indexId );
                if ( $indexData ) {
                        ProofreadIndexDbConnector::replaceIndexById( 
$indexData, $indexId, $article );
@@ -421,9 +421,9 @@
 
                if ( $nt->inNamespace( self::getPageNamespaceId() ) ) {
                        self::loadIndex( $nt );
-                       if ( $nt->prpIndexPage !== null
-                               && ( !isset( $ot->prpIndexPage ) ||
-                               ( $nt->prpIndexPage->getTitle()->equals( 
$ot->prpIndexPage->getTitle() ) ) )
+                       if ( $nt->prpIndexTitle !== null
+                               && ( !isset( $ot->prpIndexTitle ) ||
+                               ( $nt->prpIndexTitle->equals( 
$ot->prpIndexTitle ) ) )
                        ) {
                                self::updateIndexOfPage( $nt );
                        }
@@ -463,12 +463,10 @@
                // read the list of pages
                $pages = [];
                $pagination =
-               
Context::getDefaultContext()->getPaginationFactory()->getPaginationForIndexPage(
-                       ProofreadIndexPage::newFromTitle( $indexTitle )
-               );
+               
Context::getDefaultContext()->getPaginationFactory()->getPaginationForIndexTitle(
 $indexTitle );
                foreach ( $pagination as $page ) {
-                       if ( $deletedPage === null || 
!$page->getTitle()->equals( $deletedPage ) ) {
-                               array_push( $pages, 
$page->getTitle()->getDBkey() );
+                       if ( $deletedPage === null || !$page->equals( 
$deletedPage ) ) {
+                               $pages[] = $page->getDBkey();
                        }
                }
 
@@ -622,9 +620,7 @@
                $pageContentBuilder = new PageContentBuilder(
                        RequestContext::getMain(), Context::getDefaultContext()
                );
-               $content = $pageContentBuilder->buildDefaultContentForPage(
-                       new ProofreadPagePage( $title )
-               );
+               $content = 
$pageContentBuilder->buildDefaultContentForPageTitle( $title );
                $text = $content->serialize();
 
                return true;
@@ -702,22 +698,21 @@
         */
        public static function onSkinTemplateNavigation( SkinTemplate &$skin, 
array &$links ) {
                $title = $skin->getTitle();
-               if ( !$title->inNamespace( self::getPageNamespaceId() ) ) {
+               if ( $title === null || !$title->inNamespace( 
self::getPageNamespaceId() ) ) {
                        return true;
                }
-               $page = ProofreadPagePage::newFromTitle( $title );
 
                // Image link
                try {
                        $fileProvider = 
Context::getDefaultContext()->getFileProvider();
-                       $image = $fileProvider->getForPagePage( $page );
+                       $image = $fileProvider->getFileForPageTitle( $title );
                        $imageUrl = null;
                        if ( $image->isMultipage() ) {
                                $transformAttributes = [
                                        'width' => $image->getWidth()
                                ];
                                try {
-                                       $transformAttributes['page'] = 
$fileProvider->getPageNumberForPagePage( $page );
+                                       $transformAttributes['page'] = 
$fileProvider->getPageNumberForPageTitle( $title );
                                } catch ( PageNumberNotFoundException $e ) {
                                        // We do not care
                                }
@@ -744,16 +739,16 @@
                }
 
                // Prev, Next and Index links
-               $indexPage = 
Context::getDefaultContext()->getIndexForPageLookup()->getIndexForPage( $page );
-               if ( $indexPage !== null ) {
+               $indexTitle = Context::getDefaultContext()
+                       ->getIndexForPageLookup()->getIndexForPageTitle( $title 
);
+               if ( $indexTitle !== null ) {
                        $pagination = Context::getDefaultContext()
-                               
->getPaginationFactory()->getPaginationForIndexPage( $indexPage );
+                               
->getPaginationFactory()->getPaginationForIndexTitle( $indexTitle );
                        try {
-                               $pageNumber = $pagination->getPageNumber( $page 
);
+                               $pageNumber = $pagination->getPageNumber( 
$title );
 
                                try {
-                                       $prevPage  = $pagination->getPage( 
$pageNumber - 1 );
-                                       $prevTitle = $prevPage->getTitle();
+                                       $prevTitle  = 
$pagination->getPageTitle( $pageNumber - 1 );
                                        
$links['namespaces']['proofreadPagePrevLink'] = [
                                                'class' => ( $skin->skinname 
=== 'vector' ) ? 'icon' : '',
                                                'href' => 
self::getLinkUrlForTitle( $prevTitle ),
@@ -764,8 +759,7 @@
                                } // if the previous page does not exits
 
                                try {
-                                       $nextPage  = $pagination->getPage( 
$pageNumber + 1 );
-                                       $nextTitle = $nextPage->getTitle();
+                                       $nextTitle  = 
$pagination->getPageTitle( $pageNumber + 1 );
                                        
$links['namespaces']['proofreadPageNextLink'] = [
                                                'class' => ( $skin->skinname 
=== 'vector' ) ? 'icon' : '',
                                                'href' => 
self::getLinkUrlForTitle( $nextTitle ),
@@ -774,13 +768,12 @@
                                }
                                catch ( OutOfBoundsException $e ) {
                                } // if the next page does not exits
-                       }
-                       catch ( PageNotInPaginationException $e ) {
+                       } catch ( PageNotInPaginationException $e ) {
                        }
 
                        $links['namespaces']['proofreadPageIndexLink'] = [
                                'class' => ( $skin->skinname === 'vector' ) ? 
'icon' : '',
-                               'href' => $indexPage->getTitle()->getLinkURL(),
+                               'href' => $indexTitle->getLinkURL(),
                                'text' => wfMessage( 'proofreadpage_index' 
)->plain()
                        ];
                }
diff --git a/extension.json b/extension.json
index 8e2de1e..ea80d0f 100644
--- a/extension.json
+++ b/extension.json
@@ -52,7 +52,6 @@
                "ProofreadPage\\PageNumberNotFoundException": 
"includes/PageNumberNotFoundException.php",
                "ProofreadPage\\FileProvider": "includes/FileProvider.php",
                "ProofreadPage\\Link": "includes/Link.php",
-               "ProofreadIndexPage": "includes/index/ProofreadIndexPage.php",
                "ProofreadPage\\Index\\CustomIndexField": 
"includes/index/CustomIndexField.php",
                "ProofreadPage\\Index\\CustomIndexFieldsParser": 
"includes/index/CustomIndexFieldsParser.php",
                "ProofreadPage\\Index\\IndexContentLookup": 
"includes/index/IndexContentLookup.php",
@@ -76,7 +75,6 @@
                "ProofreadPageDbConnector": 
"includes/page/ProofreadPageDbConnector.php",
                "ProofreadPage\\Page\\EditPagePage": 
"includes/page/EditPagePage.php",
                "ProofreadPage\\Page\\PageContentBuilder": 
"includes/page/PageContentBuilder.php",
-               "ProofreadPagePage": "includes/page/ProofreadPagePage.php",
                "ProofreadPage\\Page\\PageContent": 
"includes/page/PageContent.php",
                "ProofreadPage\\Page\\PageLevel": "includes/page/PageLevel.php",
                "ProofreadPage\\Page\\PageContentHandler": 
"includes/page/PageContentHandler.php",
diff --git a/includes/FileProvider.php b/includes/FileProvider.php
index 037dea9..d07189f 100644
--- a/includes/FileProvider.php
+++ b/includes/FileProvider.php
@@ -3,8 +3,6 @@
 namespace ProofreadPage;
 
 use File;
-use ProofreadIndexPage;
-use ProofreadPagePage;
 use RepoGroup;
 use Title;
 
@@ -41,48 +39,48 @@
        }
 
        /**
-        * @param ProofreadIndexPage $page
+        * @param Title $indexTitle
         * @return File
         * @throws FileNotFoundException
         */
-       public function getForIndexPage( ProofreadIndexPage $page ) {
+       public function getFileForIndexTitle( Title $indexTitle ) {
                return $this->getFileFromTitle(
-                       Title::makeTitle( NS_FILE, $page->getTitle()->getText() 
)
+                       Title::makeTitle( NS_FILE, $indexTitle->getText() )
                );
        }
 
        /**
-        * @param ProofreadPagePage $page
+        * @param Title $pageTitle
         * @return File
         * @throws FileNotFoundException
         */
-       public function getForPagePage( ProofreadPagePage $page ) {
+       public function getFileForPageTitle( Title $pageTitle ) {
                // try to get an image with the same name as the file
                return $this->getFileFromTitle(
-                       // use the base name as file name
-                       Title::makeTitle( NS_FILE, strtok( 
$page->getTitle()->getText(), '/' ) )
+               // use the base name as file name
+                       Title::makeTitle( NS_FILE, strtok( 
$pageTitle->getText(), '/' ) )
                );
        }
 
        /**
-        * @param ProofreadPagePage $page
+        * @param Title $pageTitle
         * @return int
         * @throws PageNumberNotFoundException
         */
-       public function getPageNumberForPagePage( ProofreadPagePage $page ) {
-               $parts = explode( '/', $page->getTitle()->getText() );
+       public function getPageNumberForPageTitle( Title $pageTitle ) {
+               $parts = explode( '/', $pageTitle->getText() );
                if ( count( $parts ) === 1 ) {
                        throw new PageNumberNotFoundException(
-                               $page->getTitle()->getFullText() . ' does not 
provide a page number.'
+                               $pageTitle->getFullText() . ' does not provide 
a page number.'
                        );
                }
-               $number = 
$page->getTitle()->getPageLanguage()->parseFormattedNumber( end( $parts ) );
+               $number = $pageTitle->getPageLanguage()->parseFormattedNumber( 
end( $parts ) );
                if ( $number > 0 ) {
                        // Valid page numbers are integer > 0.
                        return (int)$number;
                }
                throw new PageNumberNotFoundException(
-                       $page->getTitle()->getFullText() . ' does not provide a 
valid page number.'
+                       $pageTitle->getFullText() . ' does not provide a valid 
page number.'
                );
        }
 }
diff --git a/includes/Pagination/FilePagination.php 
b/includes/Pagination/FilePagination.php
index d3519e4..5eee3c8 100644
--- a/includes/Pagination/FilePagination.php
+++ b/includes/Pagination/FilePagination.php
@@ -4,10 +4,8 @@
 
 use File;
 use OutOfBoundsException;
-use ProofreadIndexPage;
 use ProofreadPage\Context;
 use ProofreadPage\PageNumberNotFoundException;
-use ProofreadPagePage;
 use Title;
 
 /**
@@ -16,6 +14,11 @@
  * Pagination of a book based on a multipage file
  */
 class FilePagination extends Pagination {
+
+       /**
+        * @var Title
+        */
+       private $indexTitle;
 
        /**
         * @var PageList representation of the <pagelist> tag
@@ -28,7 +31,7 @@
        private $numberOfPages = 0;
 
        /**
-        * @var ProofreadPagePage[] cache of build pages of the pagination as 
$pageNumber => $page array
+        * @var Title[] cache of build pages of the pagination as $pageNumber 
=> $page array
         */
        private $pages = [];
 
@@ -38,16 +41,15 @@
        private $context;
 
        /**
-        * @param ProofreadIndexPage $index
+        * @param Title $indexTitle
         * @param PageList $pageList representation of the <pagelist> tag that 
configure page numbers
         * @param File $file the pagination file
         * @param Context $context the current context
         */
        public function __construct(
-               ProofreadIndexPage $index, PageList $pageList, File $file, 
Context $context
+               Title $indexTitle, PageList $pageList, File $file, Context 
$context
        ) {
-               parent::__construct( $index );
-
+               $this->indexTitle = $indexTitle;
                $this->pageList = $pageList;
                $this->context = $context;
 
@@ -59,18 +61,18 @@
        /**
         * @see ProofreadPagination::getPageNumber
         */
-       public function getPageNumber( ProofreadPagePage $page ) {
-               $index = 
$this->context->getIndexForPageLookup()->getIndexForPage( $page );
-               if ( $index === null || !$this->index->equals( $index ) ) {
+       public function getPageNumber( Title $pageTitle ) {
+               $indexTitle = 
$this->context->getIndexForPageLookup()->getIndexForPageTitle( $pageTitle );
+               if ( $indexTitle === null || !$this->indexTitle->equals( 
$indexTitle ) ) {
                        throw new PageNotInPaginationException(
-                               $page->getTitle()->getFullText() . ' does not 
belong to the pagination'
+                               $pageTitle->getFullText() . ' does not belong 
to the pagination'
                        );
                }
                try {
-                       return 
$this->context->getFileProvider()->getPageNumberForPagePage( $page );
+                       return 
$this->context->getFileProvider()->getPageNumberForPageTitle( $pageTitle );
                } catch ( PageNumberNotFoundException $e ) {
                        throw new PageNotInPaginationException(
-                               $page->getTitle()->getFullText() . ' does not 
have page numbers'
+                               $pageTitle->getFullText() . ' does not have 
page numbers'
                        );
                }
        }
@@ -95,9 +97,9 @@
        }
 
        /**
-        * @see ProofreadPagination::getPage
+        * @see ProofreadPagination::getPageTitle
         */
-       public function getPage( $pageNumber ) {
+       public function getPageTitle( $pageNumber ) {
                if ( !$this->pageNumberExists( $pageNumber ) ) {
                        throw new OutOfBoundsException(
                                'There is no page number ' . $pageNumber . ' in 
the pagination.'
@@ -105,7 +107,7 @@
                }
 
                if ( !array_key_exists( $pageNumber, $this->pages ) ) {
-                       $this->pages[$pageNumber] = $this->buildPagePage( 
$pageNumber );
+                       $this->pages[$pageNumber] = $this->buildPageTitle( 
$pageNumber );
                }
 
                return $this->pages[$pageNumber];
@@ -113,21 +115,21 @@
 
        /**
         * @param integer $pageNumber
-        * @return ProofreadPagePage
+        * @return Title
         */
-       private function buildPagePage( $pageNumber ) {
-               $i18nNumber = 
$this->index->getTitle()->getPageLanguage()->formatNum( $pageNumber, true );
+       private function buildPageTitle( $pageNumber ) {
+               $i18nNumber = $this->indexTitle->getPageLanguage()->formatNum( 
$pageNumber, true );
                $title = $this->buildPageTitleFromPageNumber( $i18nNumber );
 
                // fallback to arabic number
                if ( $i18nNumber !== $pageNumber && !$title->exists() ) {
                        $arabicTitle = $this->buildPageTitleFromPageNumber( 
$pageNumber );
                        if ( $arabicTitle->exists() ) {
-                               return ProofreadPagePage::newFromTitle( 
$arabicTitle );
+                               return $arabicTitle;
                        }
                }
 
-               return ProofreadPagePage::newFromTitle( $title );
+               return $title;
        }
 
        /**
@@ -137,7 +139,7 @@
        private function buildPageTitleFromPageNumber( $pageNumber ) {
                return Title::makeTitle(
                        $this->context->getPageNamespaceId(),
-                       $this->index->getTitle()->getText() . '/' . $pageNumber
+                       $this->indexTitle->getText() . '/' . $pageNumber
                );
        }
 
diff --git a/includes/Pagination/PagePagination.php 
b/includes/Pagination/PagePagination.php
index 4bb276d..b276ed2 100644
--- a/includes/Pagination/PagePagination.php
+++ b/includes/Pagination/PagePagination.php
@@ -3,8 +3,7 @@
 
 use InvalidArgumentException;
 use OutOfBoundsException;
-use ProofreadIndexPage;
-use ProofreadPagePage;
+use Title;
 
 /**
  * @licence GNU GPL v2+
@@ -14,7 +13,7 @@
 class PagePagination extends Pagination {
 
        /**
-        * @var ProofreadPagePage[]
+        * @var Title[]
         */
        private $pages = [];
 
@@ -24,14 +23,11 @@
        private $pageNumbers = [];
 
        /**
-        * @param ProofreadIndexPage $index
-        * @param ProofreadPagePage[] $pages the ordered pages
+        * @param Title[] $pages the ordered pages
         * @param PageNumber[] $pageNumbers with $pageNumbers[i] the page 
number of the page $pages[i]
         * @throws InvalidArgumentException
         */
-       public function __construct( ProofreadIndexPage $index, array $pages, 
array $pageNumbers ) {
-               parent::__construct( $index );
-
+       public function __construct( array $pages, array $pageNumbers ) {
                if ( count( $pages ) !== count( $pageNumbers ) ) {
                        throw new InvalidArgumentException(
                                'The number of page numbers is not the same as 
the number of pages'
@@ -45,9 +41,9 @@
        /**
         * @see ProofreadPagination::getPageNumber
         */
-       public function getPageNumber( ProofreadPagePage $page ) {
-               foreach ( $this->pages as $i => $page2 ) {
-                       if ( $page->equals( $page2 ) ) {
+       public function getPageNumber( Title $pageTitle ) {
+               foreach ( $this->pages as $i => $pageTitle2 ) {
+                       if ( $pageTitle->equals( $pageTitle2 ) ) {
                                return $i + 1;
                        }
                }
@@ -74,9 +70,9 @@
        }
 
        /**
-        * @see ProofreadPagination::getPage
+        * @see ProofreadPagination::getPageTitle
         */
-       public function getPage( $pageNumber ) {
+       public function getPageTitle( $pageNumber ) {
                if ( !$this->pageNumberExists( $pageNumber ) ) {
                        throw new OutOfBoundsException(
                                'There is no page number ' . $pageNumber . ' in 
the pagination.'
diff --git a/includes/Pagination/Pagination.php 
b/includes/Pagination/Pagination.php
index 54da436..f226c01 100644
--- a/includes/Pagination/Pagination.php
+++ b/includes/Pagination/Pagination.php
@@ -4,8 +4,7 @@
 
 use Iterator;
 use OutOfBoundsException;
-use ProofreadIndexPage;
-use ProofreadPagePage;
+use Title;
 
 /**
  * @licence GNU GPL v2+
@@ -15,39 +14,18 @@
 abstract class Pagination implements Iterator {
 
        /**
-        * @var ProofreadIndexPage
-        */
-       protected $index;
-
-       /**
         * @var integer position of the iterator
         */
        private $position = 1;
 
        /**
-        * @param ProofreadIndexPage $index
-        */
-       public function __construct( ProofreadIndexPage $index ) {
-               $this->index = $index;
-       }
-
-       /**
-        * Returns the index page
-        *
-        * @return ProofreadIndexPage
-        */
-       public function getIndex() {
-               return $this->index;
-       }
-
-       /**
         * Returns the internal page number
         *
-        * @param ProofreadPagePage $page
+        * @param Title $pageTitle
         * @return integer
         * @throws PageNotInPaginationException
         */
-       abstract public function getPageNumber( ProofreadPagePage $page );
+       abstract public function getPageNumber( Title $pageTitle );
 
        /**
         * Returns the page number as it should be displayed from an internal 
page number
@@ -69,10 +47,10 @@
         * Returns the page number $pageNumber of the book
         *
         * @param int $pageNumber page number
-        * @return ProofreadPagePage
+        * @return Title
         * @throws OutOfBoundsException
         */
-       abstract public function getPage( $pageNumber );
+       abstract public function getPageTitle( $pageNumber );
 
        /**
         * Returns if a page number $pageNumber exits
@@ -106,10 +84,10 @@
        /**
         * @see Iterator::current
         *
-        * @return ProofreadPagePage
+        * @return Title
         */
        public function current() {
-               return $this->getPage( $this->position );
+               return $this->getPageTitle( $this->position );
        }
 
        /**
diff --git a/includes/Pagination/PaginationFactory.php 
b/includes/Pagination/PaginationFactory.php
index 18802e4..a8d0c8e 100644
--- a/includes/Pagination/PaginationFactory.php
+++ b/includes/Pagination/PaginationFactory.php
@@ -2,10 +2,9 @@
 
 namespace ProofreadPage\Pagination;
 
-use ProofreadIndexPage;
 use ProofreadPage\Context;
 use ProofreadPage\FileNotFoundException;
-use ProofreadPagePage;
+use Title;
 
 /**
  * @licence GNU GPL v2+
@@ -27,40 +26,35 @@
        }
 
        /**
-        * @param ProofreadIndexPage $indexPage
+        * @param Title $indexTitle
         * @return Pagination
         */
-       public function getPaginationForIndexPage( ProofreadIndexPage 
$indexPage ) {
-               $key = $indexPage->getTitle()->getDBkey();
+       public function getPaginationForIndexTitle( Title $indexTitle ) {
+               $key = $indexTitle->getDBkey();
 
                if ( !array_key_exists( $key, $this->paginations ) ) {
-                       $this->paginations[$key] = 
$this->buildPaginationForIndexPage( $indexPage );
+                       $this->paginations[$key] = 
$this->buildPaginationForIndexTitle( $indexTitle );
                }
 
                return $this->paginations[$key];
        }
 
        /**
-        * @param ProofreadIndexPage $indexPage
+        * @param Title $indexTitle
         * @return Pagination
         */
-       private function buildPaginationForIndexPage( ProofreadIndexPage 
$indexPage ) {
+       private function buildPaginationForIndexTitle( Title $indexTitle ) {
                try {
-                       $file = 
$this->context->getFileProvider()->getForIndexPage( $indexPage );
+                       $file = 
$this->context->getFileProvider()->getFileForIndexTitle( $indexTitle );
                } catch ( FileNotFoundException $e ) {
                        $file = false;
                }
 
                // check if it is using pagelist
-               $indexContent = 
$this->context->getIndexContentLookup()->getIndexContent( $indexPage );
+               $indexContent = 
$this->context->getIndexContentLookup()->getIndexContentForTitle( $indexTitle );
                $pagelist = $indexContent->getPagelistTagContent();
                if ( $pagelist !== null && $file && $file->isMultipage() ) {
-                       return new FilePagination(
-                               $indexPage,
-                               $pagelist,
-                               $file,
-                               $this->context
-                       );
+                       return new FilePagination( $indexTitle, $pagelist, 
$file, $this->context );
                } else {
                        $links = $indexContent->getLinksToNamespace(
                                
Context::getDefaultContext()->getPageNamespaceId()
@@ -68,10 +62,10 @@
                        $pages = [];
                        $pageNumbers = [];
                        foreach ( $links as $link ) {
-                               $pages[] = ProofreadPagePage::newFromTitle( 
$link->getTarget() );
+                               $pages[] = $link->getTarget();
                                $pageNumbers[] = new PageNumber( 
$link->getLabel() );
                        }
-                       return new PagePagination( $indexPage, $pages, 
$pageNumbers );
+                       return new PagePagination( $pages, $pageNumbers );
                }
        }
 }
diff --git a/includes/Parser/PagelistTagParser.php 
b/includes/Parser/PagelistTagParser.php
index 7800b55..999f7d4 100644
--- a/includes/Parser/PagelistTagParser.php
+++ b/includes/Parser/PagelistTagParser.php
@@ -2,7 +2,6 @@
 
 namespace ProofreadPage\Parser;
 
-use ProofreadIndexPage;
 use ProofreadPage\FileNotFoundException;
 use ProofreadPage\Pagination\FilePagination;
 use ProofreadPage\Pagination\PageList;
@@ -23,10 +22,9 @@
                if ( !$title->inNamespace( 
$this->context->getIndexNamespaceId() ) ) {
                        return '';
                }
-               $index = ProofreadIndexPage::newFromTitle( $title );
                $pageList = new PageList( $args );
                try {
-                       $image = 
$this->context->getFileProvider()->getForIndexPage( $index );
+                       $image = 
$this->context->getFileProvider()->getFileForIndexTitle( $title );
                } catch ( FileNotFoundException $e ) {
                        return $this->formatError( 'proofreadpage_nosuch_file' 
);
                }
@@ -34,7 +32,7 @@
                        return $this->formatError( 'proofreadpage_nosuch_file' 
);
                }
 
-               $pagination = new FilePagination( $index, $pageList, $image, 
$this->context );
+               $pagination = new FilePagination( $title, $pageList, $image, 
$this->context );
                $count = $pagination->getNumberOfPages();
 
                $return = '';
@@ -71,7 +69,7 @@
                                }
                                $view = $txt . '</span>' . $view;
                        }
-                       $pageTitle = $pagination->getPage( $i )->getTitle();
+                       $pageTitle = $pagination->getPageTitle( $i );
 
                        if ( $pageNumber->isEmpty() || !$title ) {
                                $return .= $view . ' ';
diff --git a/includes/Parser/PagesTagParser.php 
b/includes/Parser/PagesTagParser.php
index cc09615..9232f96 100644
--- a/includes/Parser/PagesTagParser.php
+++ b/includes/Parser/PagesTagParser.php
@@ -3,11 +3,9 @@
 namespace ProofreadPage\Parser;
 
 use OutOfBoundsException;
-use ProofreadIndexPage;
 use ProofreadPage\Context;
 use ProofreadPage\Pagination\FilePagination;
 use ProofreadPageDbConnector;
-use ProofreadPagePage;
 use Title;
 
 /**
@@ -62,10 +60,8 @@
                if ( $indexTitle === null || !$indexTitle->exists() ) {
                        return $this->formatError( 'proofreadpage_nosuch_index' 
);
                }
-               $indexPage = ProofreadIndexPage::newFromTitle( $indexTitle );
-               $indexContent = 
$this->context->getIndexContentLookup()->getIndexContent( $indexPage );
-               $pagination = $this->context->getPaginationFactory()
-                       ->getPaginationForIndexPage( $indexPage );
+               $indexContent = 
$this->context->getIndexContentLookup()->getIndexContentForTitle( $indexTitle );
+               $pagination = 
$this->context->getPaginationFactory()->getPaginationForIndexTitle( $indexTitle 
);
                $language = $this->parser->getTargetLanguage();
                $this->parser->getOutput()->addTemplate(
                        $indexTitle, $indexTitle->getArticleID(), 
$indexTitle->getLatestRevID()
@@ -150,43 +146,35 @@
                                        if ( $step == 1 || $num % $step == $mod 
) {
                                                $pagenum = 
$pagination->getDisplayedPageNumber( $num )
                                                        
->getFormattedPageNumber( $language );
-                                               $pages[] = [ 
$pagination->getPage( $num )->getTitle(), $pagenum ];
+                                               $pages[] = [ 
$pagination->getPageTitle( $num ), $pagenum ];
                                        }
                                }
 
                        } else {
-                               $adding = true;
-
-                               $fromPage = null;
+                               $fromTitle = null;
                                if ( $from ) {
                                        $fromTitle = Title::makeTitleSafe(
                                                
$this->context->getPageNamespaceId(), $from
                                        );
-                                       if ( $fromTitle !== null ) {
-                                               $fromPage = 
ProofreadPagePage::newFromTitle( $fromTitle );
-                                               $adding = false;
-                                       }
                                }
 
-                               $toPage = null;
+                               $toTitle = null;
                                if ( $to ) {
                                        $toTitle = Title::makeTitleSafe( 
$this->context->getPageNamespaceId(), $to );
-                                       if ( $toTitle !== null ) {
-                                               $toPage = 
ProofreadPagePage::newFromTitle( $toTitle );
-                                       }
                                }
 
+                               $adding = ( $fromTitle === null );
                                $i = 1;
                                foreach ( $pagination as $link ) {
-                                       if ( $fromPage !== null && 
$fromPage->equals( $link ) ) {
+                                       if ( $fromTitle !== null && 
$fromTitle->equals( $link ) ) {
                                                $adding = true;
                                        }
                                        if ( $adding ) {
                                                $pagenum = 
$pagination->getDisplayedPageNumber( $i )
                                                        
->getFormattedPageNumber( $language );
-                                               $pages[] = [ $link->getTitle(), 
$pagenum ];
+                                               $pages[] = [ $link, $pagenum ];
                                        }
-                                       if ( $toPage !== null && 
$toPage->equals( $link ) ) {
+                                       if ( $toTitle !== null && 
$toTitle->equals( $link ) ) {
                                                $adding = false;
                                        }
                                        $i++;
@@ -250,7 +238,7 @@
                        /* table of Contents */
                        $header = 'toc';
                        try {
-                               $firstpage = $pagination->getPage( 1 
)->getTitle();
+                               $firstpage = $pagination->getPageTitle( 1 );
                                $this->parser->getOutput()->addTemplate(
                                        $firstpage,
                                        $firstpage->getArticleID(),
diff --git a/includes/index/DatabaseIndexContentLookup.php 
b/includes/index/DatabaseIndexContentLookup.php
index 8598ebf..36cd727 100644
--- a/includes/index/DatabaseIndexContentLookup.php
+++ b/includes/index/DatabaseIndexContentLookup.php
@@ -2,8 +2,8 @@
 
 namespace ProofreadPage\Index;
 
-use ProofreadIndexPage;
 use Revision;
+use Title;
 
 /**
  * @licence GNU GPL v2+
@@ -15,13 +15,13 @@
        private $cache = [];
 
        /**
-        * @see IndexContentLookup::getIndexContent
+        * @see IndexContentLookup::getIndexContentForTitle
         */
-       public function getIndexContent( ProofreadIndexPage $index ) {
-               $cacheKey = $index->getTitle()->getDBkey();
+       public function getIndexContentForTitle( Title $indexTitle ) {
+               $cacheKey = $indexTitle->getDBkey();
 
                if ( !array_key_exists( $cacheKey, $this->cache ) ) {
-                       $rev = Revision::newFromTitle( $index->getTitle() );
+                       $rev = Revision::newFromTitle( $indexTitle );
                        if ( $rev === null ) {
                                $this->cache[$cacheKey] = new IndexContent( [] 
);
                        } else {
diff --git a/includes/index/IndexContentLookup.php 
b/includes/index/IndexContentLookup.php
index 2eedca7..e644cb1 100644
--- a/includes/index/IndexContentLookup.php
+++ b/includes/index/IndexContentLookup.php
@@ -2,7 +2,7 @@
 
 namespace ProofreadPage\Index;
 
-use ProofreadIndexPage;
+use Title;
 
 /**
  * @licence GNU GPL v2+
@@ -15,5 +15,5 @@
         * Returns content of the page
         * @return IndexContent
         */
-       public function getIndexContent( ProofreadIndexPage $index );
+       public function getIndexContentForTitle( Title $indexTitle );
 }
diff --git a/includes/index/ProofreadIndexPage.php 
b/includes/index/ProofreadIndexPage.php
deleted file mode 100644
index aced236..0000000
--- a/includes/index/ProofreadIndexPage.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-/**
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup ProofreadPage
- */
-
-/**
- * An index page
- */
-class ProofreadIndexPage {
-
-       /**
-        * @var Title
-        */
-       protected $title;
-
-       /**
-        * @param Title $title Reference to a Title object.
-        */
-       public function __construct( Title $title ) {
-               $this->title = $title;
-       }
-
-       /**
-        * Create a new ProofreadIndexPage from a Title object
-        * @param Title $title
-        * @return ProofreadIndexPage
-        */
-       public static function newFromTitle( Title $title ) {
-               return new self( $title );
-       }
-
-       /**
-        * Return Title of the index page
-        * @return Title
-        */
-       public function getTitle() {
-               return $this->title;
-       }
-
-       /**
-        * Check if two ProofreadIndexPage are equals
-        *
-        * @param ProofreadIndexPage $that
-        * @return bool
-        */
-       public function equals( ProofreadIndexPage $that ) {
-               return $this->title->equals( $that->getTitle() );
-       }
-}
diff --git a/includes/page/DatabaseIndexForPageLookup.php 
b/includes/page/DatabaseIndexForPageLookup.php
index a918611..1c5a402 100644
--- a/includes/page/DatabaseIndexForPageLookup.php
+++ b/includes/page/DatabaseIndexForPageLookup.php
@@ -3,8 +3,6 @@
 namespace ProofreadPage\Page;
 
 use ProofreadIndexDbConnector;
-use ProofreadIndexPage;
-use ProofreadPagePage;
 use RepoGroup;
 use Title;
 
@@ -37,17 +35,17 @@
        }
 
        /**
-        * @see IndexForPageLookup::getIndexForPage
+        * @see IndexForPageLookup::getIndexForPageTitle
         */
-       public function getIndexForPage( ProofreadPagePage $page ) {
-               $cacheKey = $page->getTitle()->getDBkey();
+       public function getIndexForPageTitle( Title $pageTitle ) {
+               $cacheKey = $pageTitle->getDBkey();
 
                if ( !array_key_exists( $cacheKey, $this->cache ) ) {
-                       $indexTitle = $this->findIndexTitle( $page->getTitle() 
);
+                       $indexTitle = $this->findIndexTitle( $pageTitle );
                        if ( $indexTitle === null ) {
                                $this->cache[$cacheKey] = null;
                        } else {
-                               $this->cache[$cacheKey] = 
ProofreadIndexPage::newFromTitle( $indexTitle );
+                               $this->cache[$cacheKey] = $indexTitle;
                        }
                }
                return $this->cache[$cacheKey];
diff --git a/includes/page/EditPagePage.php b/includes/page/EditPagePage.php
index fc6e559..b196cea 100644
--- a/includes/page/EditPagePage.php
+++ b/includes/page/EditPagePage.php
@@ -8,18 +8,12 @@
 use MWException;
 use OOUI;
 use ProofreadPage\Context;
-use ProofreadPagePage;
 use User;
 
 /**
  * @licence GNU GPL v2+
  */
 class EditPagePage extends EditPage {
-
-       /**
-        * @var ProofreadPagePage
-        */
-       private $pagePage;
 
        /**
         * @var PageContentBuilder
@@ -33,14 +27,12 @@
 
        /**
         * @param Article $article
-        * @param ProofreadPagePage $pagePage
         * @param Context $context
         * @throws MWException
         */
-       public function __construct( Article $article, ProofreadPagePage 
$pagePage, Context $context ) {
+       public function __construct( Article $article, Context $context ) {
                parent::__construct( $article );
 
-               $this->pagePage = $pagePage;
                $this->pageContentBuilder = new PageContentBuilder( 
$this->context, $context );
                $this->pageDisplayHandler = new PageDisplayHandler( $context );
        }
@@ -66,7 +58,7 @@
         */
        protected function getContentObject( $defContent = null ) {
                if ( !$this->mTitle->exists() ) {
-                       return 
$this->pageContentBuilder->buildDefaultContentForPage( $this->pagePage );
+                       return 
$this->pageContentBuilder->buildDefaultContentForPageTitle( $this->getTitle() );
                }
                return parent::getContentObject( $defContent );
        }
@@ -78,7 +70,7 @@
                $out = $this->context->getOutput();
 
                // custom CSS for preview
-               $css = $this->pageDisplayHandler->getCustomCss( $this->pagePage 
);
+               $css = $this->pageDisplayHandler->getCustomCss( 
$this->getTitle() );
                if ( $css !== '' ) {
                        $out->addInlineStyle( $css );
                }
@@ -114,7 +106,7 @@
                        $inputAttributes + [ 'rows' => '2', 'tabindex' => '1' ]
                );
                // the 3 textarea tabindex are set to 1 because summary 
tabindex is 1 too
-               $out->addHTML( 
$this->pageDisplayHandler->buildPageContainerEnd( $this->pagePage ) );
+               $out->addHTML( 
$this->pageDisplayHandler->buildPageContainerEnd( $this->getTitle() ) );
 
                $out->addModules( 'ext.proofreadpage.page.edit' );
                $out->addModuleStyles( [ 'ext.proofreadpage.base', 
'ext.proofreadpage.page' ] );
diff --git a/includes/page/IndexForPageLookup.php 
b/includes/page/IndexForPageLookup.php
index 4dce31a..8f92da3 100644
--- a/includes/page/IndexForPageLookup.php
+++ b/includes/page/IndexForPageLookup.php
@@ -2,8 +2,7 @@
 
 namespace ProofreadPage\Page;
 
-use ProofreadIndexPage;
-use ProofreadPagePage;
+use Title;
 
 /**
  * @licence GNU GPL v2+
@@ -14,8 +13,7 @@
 
        /**
         * Return index of the page
-        * @param ProofreadPagePage $page
-        * @return ProofreadIndexPage|null
+        * @return Title|null
         */
-       public function getIndexForPage( ProofreadPagePage $page );
+       public function getIndexForPageTitle( Title $pageTitle );
 }
diff --git a/includes/page/PageContentBuilder.php 
b/includes/page/PageContentBuilder.php
index 21fa621..a6ec68b 100644
--- a/includes/page/PageContentBuilder.php
+++ b/includes/page/PageContentBuilder.php
@@ -8,7 +8,7 @@
 use ProofreadPage\FileNotFoundException;
 use ProofreadPage\PageNumberNotFoundException;
 use ProofreadPage\Pagination\PageNotInPaginationException;
-use ProofreadPagePage;
+use Title;
 use WikitextContent;
 
 /**
@@ -38,29 +38,28 @@
        }
 
        /**
-        * @param ProofreadPagePage $page
+        * @param Title $pageTitle
         * @return PageContent
         */
-       public function buildDefaultContentForPage( ProofreadPagePage $page ) {
-               $index = 
$this->context->getIndexForPageLookup()->getIndexForPage( $page );
+       public function buildDefaultContentForPageTitle( Title $pageTitle ) {
+               $indexTitle = 
$this->context->getIndexForPageLookup()->getIndexForPageTitle( $pageTitle );
                $body = '';
 
                // default header and footer
-               if ( $index !== null ) {
+               if ( $indexTitle !== null ) {
                        $params = [];
                        try {
-                               $pagination = 
$this->context->getPaginationFactory()
-                                       ->getPaginationForIndexPage( $index );
-                               $pageNumber = $pagination->getPageNumber( $page 
);
+                               $pagination = 
$this->context->getPaginationFactory()->getPaginationForIndexTitle( $indexTitle 
);
+                               $pageNumber = $pagination->getPageNumber( 
$pageTitle );
                                $displayedPageNumber = 
$pagination->getDisplayedPageNumber( $pageNumber );
                                $params['pagenum'] = $displayedPageNumber
-                                       ->getFormattedPageNumber( 
$page->getTitle()->getPageLanguage() );
+                                       ->getFormattedPageNumber( 
$pageTitle->getPageLanguage() );
                        } catch ( PageNotInPaginationException $e ) {
                        } catch ( OutOfBoundsException $e ) {
                        } // should not happen
 
                        $indexFieldsParser = 
$this->context->getCustomIndexFieldsParser();
-                       $indexContent = 
$this->context->getIndexContentLookup()->getIndexContent( $index );
+                       $indexContent = 
$this->context->getIndexContentLookup()->getIndexContentForTitle( $indexTitle );
                        $header = 
$indexFieldsParser->parseCustomIndexFieldWithVariablesReplacedWithIndexEntries(
                                $indexContent, 'header', $params
                        );
@@ -77,12 +76,12 @@
                // Extract text layer
                try {
                        $fileProvider = $this->context->getFileProvider();
-                       $image = $fileProvider->getForPagePage( $page );
+                       $image = $fileProvider->getFileForPageTitle( $pageTitle 
);
                        if ( $image->exists() ) {
                                $pageNumber = 1;
                                if ( $image->isMultipage() ) {
                                        try {
-                                               $pageNumber = 
$fileProvider->getPageNumberForPagePage( $page );
+                                               $pageNumber = 
$fileProvider->getPageNumberForPageTitle( $pageTitle );
                                        } catch ( PageNumberNotFoundException 
$e ) {
                                        }
                                }
diff --git a/includes/page/PageDisplayHandler.php 
b/includes/page/PageDisplayHandler.php
index c6502ff..cc70981 100644
--- a/includes/page/PageDisplayHandler.php
+++ b/includes/page/PageDisplayHandler.php
@@ -7,8 +7,8 @@
 use ProofreadPage\Context;
 use ProofreadPage\FileNotFoundException;
 use ProofreadPage\PageNumberNotFoundException;
-use ProofreadPagePage;
 use Sanitizer;
+use Title;
 
 /**
  * @licence GNU GPL v2+
@@ -36,14 +36,14 @@
 
        /**
         * Return the scan image width for display
-        * @param ProofreadPagePage $page
+        * @param Title $pageTitle
         * @return int
         */
-       public function getImageWidth( ProofreadPagePage $page ) {
-               $index = 
$this->context->getIndexForPageLookup()->getIndexForPage( $page );
-               if ( $index !== null ) {
+       public function getImageWidth( Title $pageTitle ) {
+               $indexTitle = 
$this->context->getIndexForPageLookup()->getIndexForPageTitle( $pageTitle );
+               if ( $indexTitle !== null ) {
                        try {
-                               $indexContent = 
$this->context->getIndexContentLookup()->getIndexContent( $index );
+                               $indexContent = 
$this->context->getIndexContentLookup()->getIndexContentForTitle( $indexTitle );
                                $width = 
$this->context->getCustomIndexFieldsParser()->parseCustomIndexField(
                                        $indexContent, 'width'
                                )->getStringValue();
@@ -60,16 +60,16 @@
        /**
         * Return custom CSS for the page
         * Is protected against XSS
-        * @param ProofreadPagePage $page
+        * @param Title $pageTitle
         * @return string
         */
-       public function getCustomCss( ProofreadPagePage $page ) {
-               $index = 
$this->context->getIndexForPageLookup()->getIndexForPage( $page );
-               if ( $index === null ) {
+       public function getCustomCss( Title $pageTitle ) {
+               $indexTitle = 
$this->context->getIndexForPageLookup()->getIndexForPageTitle( $pageTitle );
+               if ( $indexTitle === null ) {
                        return '';
                }
                try {
-                       $indexContent = 
$this->context->getIndexContentLookup()->getIndexContent( $index );
+                       $indexContent = 
$this->context->getIndexContentLookup()->getIndexContentForTitle( $indexTitle );
                        $css = 
$this->context->getCustomIndexFieldsParser()->parseCustomIndexField(
                                $indexContent, 'css'
                        );
@@ -95,25 +95,25 @@
         * Return the part of the page container that after page cnotent
         * @return string
         */
-       public function buildPageContainerEnd( ProofreadPagePage $page ) {
+       public function buildPageContainerEnd( Title $pageTitle ) {
                return
                        Html::closeElement( 'div' ) .
                        Html::openElement( 'div', [ 'class' => 'prp-page-image' 
] ) .
-                       $this->buildImageHtml( $page, [ 'max-width' => 
$this->getImageWidth( $page ) ] ) .
+                       $this->buildImageHtml( $pageTitle, [ 'max-width' => 
$this->getImageWidth( $pageTitle ) ] ) .
                        Html::closeElement( 'div' ) .
                        Html::closeElement( 'div' );
        }
 
        /**
         * Return HTML for the image
-        * @param ProofreadPagePage $page
+        * @param Title $pageTitle
         * @param array $options
         * @return null|string
         */
-       private function buildImageHtml( ProofreadPagePage $page, $options ) {
+       private function buildImageHtml( Title $pageTitle, $options ) {
                $fileProvider = $this->context->getFileProvider();
                try {
-                       $image = $fileProvider->getForPagePage( $page );
+                       $image = $fileProvider->getFileForPageTitle( $pageTitle 
);
                } catch ( FileNotFoundException $e ) {
                        return null;
                }
@@ -130,7 +130,7 @@
 
                if ( $image->isMultipage() ) {
                        try {
-                               $transformAttributes['page'] = 
$fileProvider->getPageNumberForPagePage( $page );
+                               $transformAttributes['page'] = 
$fileProvider->getPageNumberForPageTitle( $pageTitle );
                        } catch ( PageNumberNotFoundException $e ) {
                        }
                }
diff --git a/includes/page/PageEditAction.php b/includes/page/PageEditAction.php
index fb6048e..21018c7 100644
--- a/includes/page/PageEditAction.php
+++ b/includes/page/PageEditAction.php
@@ -4,7 +4,6 @@
 
 use EditAction;
 use ProofreadPage\Context;
-use ProofreadPagePage;
 
 /**
  * @licence GNU GPL v2+
@@ -17,8 +16,7 @@
         * @see FormlessAction:show
         */
        public function show() {
-               $pagePage = ProofreadPagePage::newFromTitle( $this->getTitle() 
);
-               $editor = new EditPagePage( $this->page, $pagePage, 
Context::getDefaultContext() );
+               $editor = new EditPagePage( $this->page, 
Context::getDefaultContext() );
                $editor->edit();
        }
 }
diff --git a/includes/page/PageSubmitAction.php 
b/includes/page/PageSubmitAction.php
index 68a9ba2..548d812 100644
--- a/includes/page/PageSubmitAction.php
+++ b/includes/page/PageSubmitAction.php
@@ -3,7 +3,6 @@
 namespace ProofreadPage\Page;
 
 use ProofreadPage\Context;
-use ProofreadPagePage;
 use SubmitAction;
 
 /**
@@ -17,8 +16,7 @@
         * @see FormlessAction:show
         */
        public function show() {
-               $pagePage = ProofreadPagePage::newFromTitle( $this->getTitle() 
);
-               $editor = new EditPagePage( $this->page, $pagePage, 
Context::getDefaultContext() );
+               $editor = new EditPagePage( $this->page, 
Context::getDefaultContext() );
                $editor->edit();
        }
 }
diff --git a/includes/page/PageViewAction.php b/includes/page/PageViewAction.php
index 1dfd22b..41296ac 100644
--- a/includes/page/PageViewAction.php
+++ b/includes/page/PageViewAction.php
@@ -3,7 +3,6 @@
 namespace ProofreadPage\Page;
 
 use ProofreadPage\Context;
-use ProofreadPagePage;
 use Revision;
 use ViewAction;
 
@@ -37,13 +36,12 @@
 
                        return;
                }
-               $page = ProofreadPagePage::newFromTitle( $wikiPage->getTitle() 
);
                $pageDisplayHandler = new PageDisplayHandler( 
Context::getDefaultContext() );
 
                // render HTML
                $out->addHTML( $pageDisplayHandler->buildPageContainerBegin() );
                $this->page->view();
-               $out->addHTML( $pageDisplayHandler->buildPageContainerEnd( 
$page ) );
+               $out->addHTML( $pageDisplayHandler->buildPageContainerEnd( 
$title ) );
 
                // add modules
                $out->addModules( 'ext.proofreadpage.ve.pageTarget.init' );
@@ -53,7 +51,7 @@
                ] );
 
                // custom CSS
-               $css = $pageDisplayHandler->getCustomCss( $page );
+               $css = $pageDisplayHandler->getCustomCss( $title );
                if ( $css !== '' ) {
                        $out->addInlineStyle( $css );
                }
diff --git a/includes/page/ProofreadPagePage.php 
b/includes/page/ProofreadPagePage.php
deleted file mode 100644
index 75343d5..0000000
--- a/includes/page/ProofreadPagePage.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-/**
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup ProofreadPage
- */
-
-/**
- * The content of a page page
- */
-class ProofreadPagePage {
-
-       /**
-        * @var Title
-        */
-       protected $title;
-
-       /**
-        * @param Title $title Reference to a Title object
-        */
-       public function __construct( Title $title ) {
-               $this->title = $title;
-       }
-
-       /**
-        * Create a new ProofreadPagePage from a Title object
-        * @param Title $title
-        * @return ProofreadPagePage
-        */
-       public static function newFromTitle( Title $title ) {
-               return new self( $title );
-       }
-
-       /**
-        * Check if two ProofreadPagePage are equals
-        *
-        * @param ProofreadPagePage $that
-        * @return bool
-        */
-       public function equals( ProofreadPagePage $that ) {
-               return $this->title->equals( $that->getTitle() );
-       }
-
-       /**
-        * Returns Title of the index page
-        * @return Title
-        */
-       public function getTitle() {
-               return $this->title;
-       }
-}
diff --git a/tests/phpunit/FileProviderTest.php 
b/tests/phpunit/FileProviderTest.php
index 3b0373d..b1ab1a9 100644
--- a/tests/phpunit/FileProviderTest.php
+++ b/tests/phpunit/FileProviderTest.php
@@ -3,8 +3,6 @@
 namespace ProofreadPage;
 
 use File;
-use ProofreadIndexPage;
-use ProofreadPagePage;
 use ProofreadPageTestCase;
 use Title;
 
@@ -23,10 +21,10 @@
        /**
         * @dataProvider indexFileProvider
         */
-       public function testGetForIndexPage(
-               ProofreadIndexPage $index, File $file, FileProvider 
$fileProvider
+       public function testGetFileForIndexTitle(
+               Title $indexTitle, File $file, FileProvider $fileProvider
        ) {
-               $this->assertEquals( $file, $fileProvider->getForIndexPage( 
$index ) );
+               $this->assertEquals( $file, 
$fileProvider->getFileForIndexTitle( $indexTitle ) );
        }
 
        public function indexFileProvider() {
@@ -37,7 +35,7 @@
 
                return [
                        [
-                               $this->newIndexPage( 'LoremIpsum.djvu' ),
+                               Title::makeTitle( $this->getIndexNamespaceId(), 
'LoremIpsum.djvu' ),
                                $this->getFileFromName( 'LoremIpsum.djvu' ),
                                $fileProvider
                        ],
@@ -48,10 +46,10 @@
         * @expectedException \ProofreadPage\FileNotFoundException
         * @dataProvider indexFileNotFoundProvider
         */
-       public function testGetForIndexPageWithFileNotFound(
-               ProofreadIndexPage $index, FileProvider $fileProvider
+       public function testGetFileForIndexPageWithFileNotFound(
+               Title $indexTitle, FileProvider $fileProvider
        ) {
-               $fileProvider->getForIndexPage( $index );
+               $fileProvider->getFileForIndexTitle( $indexTitle );
        }
 
        public function indexFileNotFoundProvider() {
@@ -62,11 +60,11 @@
 
                return [
                        [
-                               $this->newIndexPage( 'LoremIpsum2.djvu' ),
+                               Title::makeTitle( $this->getIndexNamespaceId(), 
'LoremIpsum2.djvu' ),
                                $fileProvider
                        ],
                        [
-                               $this->newIndexPage( 'Test' ),
+                               Title::makeTitle( $this->getIndexNamespaceId(), 
'Test' ),
                                $fileProvider
                        ],
                ];
@@ -75,10 +73,10 @@
        /**
         * @dataProvider pageFileProvider
         */
-       public function testGetForPagePage(
-               ProofreadPagePage $page, File $file, FileProvider $fileProvider
+       public function testFileGetForPageTitle(
+               Title $pageTitle, File $file, FileProvider $fileProvider
        ) {
-               $this->assertEquals( $file, $fileProvider->getForPagePage( 
$page ) );
+               $this->assertEquals( $file, $fileProvider->getFileForPageTitle( 
$pageTitle ) );
        }
 
        public function pageFileProvider() {
@@ -89,22 +87,22 @@
 
                return [
                        [
-                               $this->newPagePage( 'LoremIpsum.djvu/4' ),
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'LoremIpsum.djvu/4' ),
                                $this->getFileFromName( 'LoremIpsum.djvu' ),
                                $fileProvider
                        ],
                        [
-                               $this->newPagePage( 'LoremIpsum.djvu/djvu/1' ),
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'LoremIpsum.djvu/djvu/1' ),
                                $this->getFileFromName( 'LoremIpsum.djvu' ),
                                $fileProvider
                        ],
                        [
-                               $this->newPagePage( 'LoremIpsum.djvu' ),
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'LoremIpsum.djvu' ),
                                $this->getFileFromName( 'LoremIpsum.djvu' ),
                                $fileProvider
                        ],
                        [
-                               $this->newPagePage( 'Test.jpg' ),
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'Test.jpg' ),
                                $this->getFileFromName( 'Test.jpg' ),
                                $fileProvider
                        ],
@@ -116,9 +114,9 @@
         * @dataProvider pageFileNotFoundProvider
         */
        public function testGetForPagePageWithFileNotFound(
-               ProofreadPagePage $page, FileProvider $fileProvider
+               Title $pageTitle, FileProvider $fileProvider
        ) {
-               $fileProvider->getForPagePage( $page );
+               $fileProvider->getFileForPageTitle( $pageTitle );
        }
 
        public function pageFileNotFoundProvider() {
@@ -129,20 +127,20 @@
 
                return [
                        [
-                               $this->newPagePage( 'LoremIpsum2.djvu/4' ),
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'LoremIpsum2.djvu/4' ),
                                $fileProvider
                        ],
                        [
-                               $this->newPagePage( 'Test' ),
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'Test' ),
                                $fileProvider
                        ],
                ];
        }
 
-       public function testGetPageNumberForPagePage() {
+       public function testGetPageNumberForPageTitle() {
                $fileProvider = new FileProviderMock( [] );
-               $this->assertEquals( 1, $fileProvider->getPageNumberForPagePage(
-                       $this->newPagePage( 'Test.djvu/1' )
+               $this->assertEquals( 1, 
$fileProvider->getPageNumberForPageTitle(
+                       Title::makeTitle( $this->getPageNamespaceId(), 
'Test.djvu/1' )
                ) );
        }
 
@@ -151,7 +149,9 @@
         */
        public function testGetPageNumberForPageNumberNotFound() {
                $fileProvider = new FileProviderMock( [] );
-               $fileProvider->getPageNumberForPagePage( $this->newPagePage( 
'Test.djvu' ) );
+               $fileProvider->getPageNumberForPageTitle(
+                       Title::makeTitle( $this->getPageNamespaceId(), 
'Test.djvu' )
+               );
        }
 
        /**
@@ -159,7 +159,9 @@
         */
        public function testGetPageNumberForPageNotANumber() {
                $fileProvider = new FileProviderMock( [] );
-               $fileProvider->getPageNumberForPagePage( $this->newPagePage( 
'Test.djvu/foo' ) );
+               $fileProvider->getPageNumberForPageTitle(
+                       Title::makeTitle( $this->getPageNamespaceId(), 
'Test.djvu/foo' )
+               );
        }
 
        /**
@@ -167,6 +169,8 @@
         */
        public function testGetPageNumberForPageBadNumber() {
                $fileProvider = new FileProviderMock( [] );
-               $fileProvider->getPageNumberForPagePage( $this->newPagePage( 
'Test.djvu/-1' ) );
+               $fileProvider->getPageNumberForPageTitle(
+                       Title::makeTitle( $this->getPageNamespaceId(), 
'Test.djvu/-1' )
+               );
        }
 }
diff --git a/tests/phpunit/Pagination/FilePaginationTest.php 
b/tests/phpunit/Pagination/FilePaginationTest.php
index 8c0a320..f5ce725 100644
--- a/tests/phpunit/Pagination/FilePaginationTest.php
+++ b/tests/phpunit/Pagination/FilePaginationTest.php
@@ -5,7 +5,6 @@
 use InvalidArgumentException;
 use MediaHandler;
 use OutOfBoundsException;
-use ProofreadPagePage;
 use ProofreadPageTestCase;
 use Title;
 
@@ -16,12 +15,11 @@
 class FilePaginationTest extends ProofreadPageTestCase {
 
        public function testGetPageNumber() {
-               $index = $this->newIndexPage( 'LoremIpsum.djvu' );
                $context = $this->getContext( [
-                       'LoremIpsum.djvu/2' => $index
+                       'LoremIpsum.djvu/2' => Title::makeTitle( 
$this->getIndexNamespaceId(), 'LoremIpsum.djvu' )
                ] );
                $pagination = new FilePagination(
-                       $index,
+                       Title::makeTitle( $this->getIndexNamespaceId(), 
'LoremIpsum.djvu' ),
                        new PageList( [] ),
                        $context->getFileProvider()->getFileFromTitle(
                                Title::makeTitle( NS_MEDIA, 'LoremIpsum.djvu' )
@@ -29,7 +27,7 @@
                        $context
                );
                $this->assertEquals( 2, $pagination->getPageNumber(
-                       $this->newPagePage( 'LoremIpsum.djvu/2' )
+                       Title::makeTitle( $this->getPageNamespaceId(), 
'LoremIpsum.djvu/2' )
                ) );
        }
 
@@ -38,15 +36,15 @@
         * @dataProvider getPageNumberWithFailureProvider
         */
        public function testGetPageNumberWithFailure(
-               Pagination $pagination, ProofreadPagePage $page
+               Pagination $pagination, Title $pageTitle
        ) {
-               $pagination->getPageNumber( $page );
+               $pagination->getPageNumber( $pageTitle );
        }
 
        public function getPageNumberWithFailureProvider() {
-               $index = $this->newIndexPage( 'LoremIpsum.djvu' );
                $pagination = new FilePagination(
-                       $index, new PageList( [] ),
+                       Title::makeTitle( $this->getIndexNamespaceId(), 
'LoremIpsum.djvu' ),
+                       new PageList( [] ),
                        
$this->getContext()->getFileProvider()->getFileFromTitle(
                                Title::makeTitle( NS_MEDIA, 'LoremIpsum.djvu' )
                        ),
@@ -55,15 +53,15 @@
                return [
                        [
                                $pagination,
-                               $this->newPagePage( 'Test.djvu/2' )
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'Test.djvu/2' )
                        ],
                        [
                                $pagination,
-                               $this->newPagePage( 'Test2.djvu/2' )
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'Test2.djvu/2' )
                        ],
                        [
                                $pagination,
-                               $this->newPagePage( '42.jpg' )
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'42.jpg' )
                        ],
                ];
        }
@@ -72,10 +70,10 @@
                if ( MediaHandler::getHandler( 'image/vnd.djvu' ) === false ) {
                        $this->markTestSkipped( 'There is no support for DjVu 
files, please enable it.' );
                }
-               $index = $this->newIndexPage( 'LoremIpsum.djvu' );
                $pageNumber = new PageNumber( 'TOC' );
                $pagination = new FilePagination(
-                       $index, new PageList( [ '1' => 'TOC' ] ),
+                       Title::makeTitle( $this->getIndexNamespaceId(), 
'LoremIpsum.djvu' ),
+                       new PageList( [ '1' => 'TOC' ] ),
                        
$this->getContext()->getFileProvider()->getFileFromTitle(
                                Title::makeTitle( NS_MEDIA, 'LoremIpsum.djvu' )
                        ),
@@ -88,10 +86,10 @@
                if ( MediaHandler::getHandler( 'image/vnd.djvu' ) === false ) {
                        $this->markTestSkipped( 'There is no support for DjVu 
files, please enable it.' );
                }
-               $index = $this->newIndexPage( 'LoremIpsum.djvu' );
                $pageNumber = new PageNumber( 1 );
                $pagination = new FilePagination(
-                       $index, new PageList( [] ),
+                       Title::makeTitle( $this->getIndexNamespaceId(), 
'LoremIpsum.djvu' ),
+                       new PageList( [] ),
                        
$this->getContext()->getFileProvider()->getFileFromTitle(
                                Title::makeTitle( NS_MEDIA, 'LoremIpsum.djvu' )
                        ),
@@ -104,8 +102,7 @@
         * @expectedException OutOfBoundsException
         */
        public function testGetDisplayedPageNumberWithFailure() {
-               $index = $this->newIndexPage();
-               $pagination = new PagePagination( $index, [], [] );
+               $pagination = new PagePagination( [], [] );
                $pagination->getDisplayedPageNumber( 3 );
        }
 
@@ -113,9 +110,9 @@
                if ( MediaHandler::getHandler( 'image/vnd.djvu' ) === false ) {
                        $this->markTestSkipped( 'There is no support for DjVu 
files, please enable it.' );
                }
-               $index = $this->newIndexPage( 'LoremIpsum.djvu' );
                $pagination = new FilePagination(
-                       $index, new PageList( [] ),
+                       Title::makeTitle( $this->getIndexNamespaceId(), 
'LoremIpsum.djvu' ),
+                       new PageList( [] ),
                        
$this->getContext()->getFileProvider()->getFileFromTitle(
                                Title::makeTitle( NS_MEDIA, 'LoremIpsum.djvu' )
                        ),
@@ -124,49 +121,49 @@
                $this->assertEquals( 5, $pagination->getNumberOfPages() );
        }
 
-       public function testGetPage() {
+       public function testGetPageTitle() {
                if ( MediaHandler::getHandler( 'image/vnd.djvu' ) === false ) {
                        $this->markTestSkipped( 'There is no support for DjVu 
files, please enable it.' );
                }
-               $index = $this->newIndexPage( 'LoremIpsum.djvu' );
-               $page = $this->newPagePage( 'LoremIpsum.djvu/2' );
                $pagination = new FilePagination(
-                       $index, new PageList( [] ),
+                       Title::makeTitle( $this->getIndexNamespaceId(), 
'LoremIpsum.djvu' ),
+                       new PageList( [] ),
                        
$this->getContext()->getFileProvider()->getFileFromTitle(
                                Title::makeTitle( NS_MEDIA, 'LoremIpsum.djvu' )
                        ),
                        $this->getContext()
                );
-               $this->assertEquals( $page, $pagination->getPage( 2 ) );
+               $this->assertEquals(
+                       Title::makeTitle( $this->getPageNamespaceId(), 
'LoremIpsum.djvu/2' ),
+                       $pagination->getPageTitle( 2 )
+               );
        }
 
        /**
         * @expectedException OutOfBoundsException
         */
-       public function testGetPageWithFailure() {
+       public function testGetPageTitleWithFailure() {
                if ( MediaHandler::getHandler( 'image/vnd.djvu' ) === false ) {
                        $this->markTestSkipped( 'There is no support for DjVu 
files, please enable it.' );
                }
-               $index = $this->newIndexPage( 'LoremIpsum.djvu' );
                $pagination = new FilePagination(
-                       $index, new PageList( [] ),
+                       Title::makeTitle( $this->getIndexNamespaceId(), 
'LoremIpsum.djvu' ),
+                       new PageList( [] ),
                        
$this->getContext()->getFileProvider()->getFileFromTitle(
                                Title::makeTitle( NS_MEDIA, 'LoremIpsum.djvu' )
                        ),
                        $this->getContext()
                );
-               $pagination->getPage( 42 );
+               $pagination->getPageTitle( 42 );
        }
 
        public function testIterator() {
                if ( MediaHandler::getHandler( 'image/vnd.djvu' ) === false ) {
                        $this->markTestSkipped( 'There is no support for DjVu 
files, please enable it.' );
                }
-               $index = $this->newIndexPage( 'LoremIpsum.djvu' );
-               $page1 = $this->newPagePage( 'LoremIpsum.djvu/1' );
-               $page2 = $this->newPagePage( 'LoremIpsum.djvu/2' );
                $pagination = new FilePagination(
-                       $index, new PageList( [] ),
+                       Title::makeTitle( $this->getIndexNamespaceId(), 
'LoremIpsum.djvu' ),
+                       new PageList( [] ),
                        
$this->getContext()->getFileProvider()->getFileFromTitle(
                                Title::makeTitle( NS_MEDIA, 'LoremIpsum.djvu' )
                        ),
@@ -177,9 +174,15 @@
                $pagination->next();
                $this->assertEquals( 2, $pagination->key() );
                $this->assertTrue( $pagination->valid() );
-               $this->assertEquals( $page2, $pagination->current() );
+               $this->assertEquals(
+                       Title::makeTitle( $this->getPageNamespaceId(), 
'LoremIpsum.djvu/2' ),
+                       $pagination->current()
+               );
                $pagination->rewind();
                $this->assertEquals( 1, $pagination->key() );
-               $this->assertEquals( $page1, $pagination->current() );
+               $this->assertEquals(
+                       Title::makeTitle( $this->getPageNamespaceId(), 
'LoremIpsum.djvu/1' ),
+                       $pagination->current()
+               );
        }
 }
diff --git a/tests/phpunit/Pagination/PagePaginationTest.php 
b/tests/phpunit/Pagination/PagePaginationTest.php
index ffdbe12..f014353 100644
--- a/tests/phpunit/Pagination/PagePaginationTest.php
+++ b/tests/phpunit/Pagination/PagePaginationTest.php
@@ -5,6 +5,7 @@
 use InvalidArgumentException;
 use OutOfBoundsException;
 use ProofreadPageTestCase;
+use Title;
 
 /**
  * @group ProofreadPage
@@ -13,14 +14,11 @@
 class PagePaginationTest extends ProofreadPageTestCase {
 
        public function testGetPageNumber() {
-               $index = $this->newIndexPage();
-               $page = $this->newPagePage( 'Test 2.tiff' );
                $pagination = new PagePagination(
-                       $index,
                        [
-                               $this->newPagePage( 'Test 1.jpg' ),
-                               $page,
-                               $this->newPagePage( 'Test:3.png' )
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'Test 1.jpg' ),
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'Test 2.tiff' ),
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'Test:3.png' )
                        ],
                        [
                                new PageNumber( 'TOC' ),
@@ -29,7 +27,7 @@
                        ]
                );
                $this->assertEquals( 2, $pagination->getPageNumber(
-                       $this->newPagePage( 'Test 2.tiff' )
+                       Title::makeTitle( $this->getPageNamespaceId(), 'Test 
2.tiff' )
                ) );
        }
 
@@ -37,19 +35,16 @@
         * @expectedException InvalidArgumentException
         */
        public function testGetPageNumberWithFailure() {
-               $index = $this->newIndexPage();
-               $pagination = new PagePagination( $index, [], [] );
+               $pagination = new PagePagination( [], [] );
                $pagination->getPageNumber(
-                       $this->newPagePage( 'Test 2.tiff' )
+                       Title::makeTitle( $this->getPageNamespaceId(), 'Test 
2.tiff' )
                );
        }
 
        public function testGetDisplayedPageNumber() {
-               $index = $this->newIndexPage();
                $pageNumber = new PageNumber( 'TOC' );
                $pagination = new PagePagination(
-                       $index,
-                       [ $this->newPagePage( 'Test 1.jpg' ) ],
+                       [ Title::makeTitle( $this->getPageNamespaceId(), 'Test 
1.jpg' ) ],
                        [ $pageNumber ]
                );
                $this->assertEquals( $pageNumber, 
$pagination->getDisplayedPageNumber( 1 ) );
@@ -59,19 +54,16 @@
         * @expectedException OutOfBoundsException
         */
        public function testGetDisplayedPageNumberWithFailure() {
-               $index = $this->newIndexPage();
-               $pagination = new PagePagination( $index, [], [] );
+               $pagination = new PagePagination( [], [] );
                $pagination->getDisplayedPageNumber( 3 );
        }
 
        public function testGetNumberOfPages() {
-               $index = $this->newIndexPage();
                $pagination = new PagePagination(
-                       $index,
                        [
-                               $this->newPagePage( 'Test 1.jpg' ),
-                               $this->newPagePage( 'Test 2.jpg' ),
-                               $this->newPagePage( 'Test:3.png' )
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'Test 1.jpg' ),
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'Test 2.jpg' ),
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'Test:3.png' )
                        ],
                        [
                                new PageNumber( 'TOC' ),
@@ -82,15 +74,12 @@
                $this->assertEquals( 3, $pagination->getNumberOfPages() );
        }
 
-       public function testGetPage() {
-               $index = $this->newIndexPage();
-               $page = $this->newPagePage( 'Test 1.jpg' );
+       public function testGetPageTitle() {
                $pagination = new PagePagination(
-                       $index,
                        [
-                               $this->newPagePage( 'Test 1.jpg' ),
-                               $this->newPagePage( 'Test 2.tiff' ),
-                               $this->newPagePage( 'Test:3.png' )
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'Test 1.jpg' ),
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'Test 2.tiff' ),
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'Test:3.png' )
                        ],
                        [
                                new PageNumber( 'TOC' ),
@@ -98,25 +87,26 @@
                                new PageNumber( '2' )
                        ]
                );
-               $this->assertEquals( $page, $pagination->getPage( 1 ) );
+               $this->assertEquals(
+                       Title::makeTitle( $this->getPageNamespaceId(), 'Test 
1.jpg' ),
+                       $pagination->getPageTitle( 1 )
+               );
        }
 
        /**
         * @expectedException OutOfBoundsException
         */
-       public function testGetPageWithFailure() {
-               $index = $this->newIndexPage();
-               $pagination = new PagePagination( $index, [], [] );
-               $pagination->getPage( 3 );
+       public function testGetPageTitleWithFailure() {
+               $pagination = new PagePagination( [], [] );
+               $pagination->getPageTitle( 3 );
        }
 
        public function testIterator() {
-               $index = $this->newIndexPage();
-               $page1 = $this->newPagePage( 'Test 1.jpg' );
-               $page2 = $this->newPagePage( 'Test 2.jpg' );
                $pagination = new PagePagination(
-                       $index,
-                       [ $page1, $page2 ],
+                       [
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'Test 1.jpg' ),
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'Test 2.jpg' )
+                       ],
                        [ new PageNumber( '1' ), new PageNumber( '2' ) ]
                );
 
@@ -128,6 +118,8 @@
                $this->assertFalse( $pagination->valid() );
                $pagination->rewind();
                $this->assertEquals( 1, $pagination->key() );
-               $this->assertEquals( $page1, $pagination->current() );
+               $this->assertEquals(
+                       Title::makeTitle( $this->getPageNamespaceId(), 'Test 
1.jpg' ), $pagination->current()
+               );
        }
 }
diff --git a/tests/phpunit/Pagination/PaginationFactoryTest.php 
b/tests/phpunit/Pagination/PaginationFactoryTest.php
index 77ff105..3ef26d7 100644
--- a/tests/phpunit/Pagination/PaginationFactoryTest.php
+++ b/tests/phpunit/Pagination/PaginationFactoryTest.php
@@ -26,7 +26,7 @@
                ] );
                $pageList = new PageList( [ '1to2' => '-', '3' => '1', '4to5' 
=> 'roman' ] );
                $pagination = new FilePagination(
-                       $this->newIndexPage( 'LoremIpsum.djvu' ),
+                       Title::makeTitle( $this->getIndexNamespaceId(), 
'LoremIpsum.djvu' ),
                        $pageList,
                        $context->getFileProvider()->getFileFromTitle(
                                Title::makeTitle( NS_MEDIA, 'LoremIpsum.djvu' )
@@ -35,20 +35,19 @@
                );
                $this->assertEquals(
                        $pagination,
-                       
$context->getPaginationFactory()->getPaginationForIndexPage(
-                               $this->newIndexPage( 'LoremIpsum.djvu' )
+                       
$context->getPaginationFactory()->getPaginationForIndexTitle(
+                               Title::makeTitle( $this->getIndexNamespaceId(), 
'LoremIpsum.djvu' )
                        )
                );
        }
 
        public function testGetPaginationWithoutPagelist() {
-               $index = $this->newIndexPage( 'Test' );
+               $indexTitle = Title::makeTitle( $this->getIndexNamespaceId(), 
'Test' );
                $pagination = new PagePagination(
-                       $index,
                        [
-                               $this->newPagePage( Title::newFromText( 
'Page:Test 1.jpg' ) ),
-                               $this->newPagePage( Title::newFromText( 
'Page:Test 2.tiff' ) ),
-                               $this->newPagePage( Title::newFromText( 
'Page:Test:3.png' ) )
+                               Title::newFromText( 'Page:Test 1.jpg' ),
+                               Title::newFromText( 'Page:Test 2.tiff' ),
+                               Title::newFromText( 'Page:Test:3.png' )
                        ],
                        [
                                new PageNumber( 'TOC' ),
@@ -59,13 +58,13 @@
                $this->assertEquals(
                        $pagination,
                        $this->getContext( [], [
-                               'Test' => new IndexContent( [
+                               $indexTitle->getDBkey() => new IndexContent( [
                                        'Pages' => new WikitextContent(
                                                '[[Page:Test 1.jpg|TOC]] 
[[Page:Test 2.tiff|1]][[Page:Test:3.png|2]]'
                                        ),
                                        'Author' => new WikitextContent( 
'[[Author:Me]]' )
                                ] )
-                       ] )->getPaginationFactory()->getPaginationForIndexPage( 
$index )
+                       ] 
)->getPaginationFactory()->getPaginationForIndexTitle( $indexTitle )
                );
        }
 }
diff --git a/tests/phpunit/ProofreadPageTestCase.php 
b/tests/phpunit/ProofreadPageTestCase.php
index 969720d..a5b71a4 100644
--- a/tests/phpunit/ProofreadPageTestCase.php
+++ b/tests/phpunit/ProofreadPageTestCase.php
@@ -101,7 +101,7 @@
        }
 
        /**
-        * @param ProofreadIndexPage[] $indexForPage
+        * @param Title[] $indexForPage
         * @param IndexContent[] $indexContent
         * @return Context
         */
@@ -114,30 +114,6 @@
                        new IndexForPageLookupMock( $indexForPage ),
                        new IndexContentLookupMock( $indexContent )
                );
-       }
-
-       /**
-        * Constructor of a new ProofreadPagePage
-        * @param Title|string $title
-        * @return ProofreadPagePage
-        */
-       public function newPagePage( $title = 'test.jpg' ) {
-               if ( is_string( $title ) ) {
-                       $title = Title::makeTitle( $this->getPageNamespaceId(), 
$title );
-               }
-               return ProofreadPagePage::newFromTitle( $title );
-       }
-
-       /**
-        * Constructor of a new ProofreadIndexPage
-        * @param Title|string $title
-        * @return ProofreadIndexPage
-        */
-       protected function newIndexPage( $title = 'test.djvu' ) {
-               if ( is_string( $title ) ) {
-                       $title = Title::makeTitle( 
$this->getIndexNamespaceId(), $title );
-               }
-               return new ProofreadIndexPage( $title );
        }
 
        /**
diff --git a/tests/phpunit/index/IndexContentLookupMock.php 
b/tests/phpunit/index/IndexContentLookupMock.php
index 23fc291..0299cd7 100644
--- a/tests/phpunit/index/IndexContentLookupMock.php
+++ b/tests/phpunit/index/IndexContentLookupMock.php
@@ -2,7 +2,7 @@
 
 namespace ProofreadPage\Index;
 
-use ProofreadIndexPage;
+use Title;
 
 /**
  * @licence GNU GPL v2+
@@ -16,13 +16,12 @@
        }
 
        /**
-        * Returns content of the page
-        * @return IndexContent
+        * @see IndexContentLookup::getIndexContentForTitle
         */
-       public function getIndexContent( ProofreadIndexPage $index ) {
-               if ( !array_key_exists( $index->getTitle()->getDBkey(), 
$this->contentForIndex ) ) {
+       public function getIndexContentForTitle( Title $indexTitle ) {
+               if ( !array_key_exists( $indexTitle->getDBkey(), 
$this->contentForIndex ) ) {
                        return null;
                }
-               return $this->contentForIndex[ $index->getTitle()->getDBkey() ];
+               return $this->contentForIndex[ $indexTitle->getDBkey() ];
        }
 }
diff --git a/tests/phpunit/index/ProofreadIndexPageTest.php 
b/tests/phpunit/index/ProofreadIndexPageTest.php
deleted file mode 100644
index ac887c6..0000000
--- a/tests/phpunit/index/ProofreadIndexPageTest.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @group ProofreadPage
- * @covers ProofreadIndexPage
- */
-class ProofreadIndexPageTest extends ProofreadPageTestCase {
-
-       public function testEquals() {
-               $page = $this->newIndexPage( 'Test.djvu' );
-               $page2 = $this->newIndexPage( 'Test.djvu' );
-               $page3 = $this->newIndexPage( 'Test2.djvu' );
-               $this->assertTrue( $page->equals( $page2 ) );
-               $this->assertTrue( $page2->equals( $page ) );
-               $this->assertFalse( $page->equals( $page3 ) );
-               $this->assertFalse( $page3->equals( $page ) );
-       }
-
-       public function testGetTitle() {
-               $title = Title::makeTitle( $this->getIndexNamespaceId(), 
'Test.djvu' );
-               $page = ProofreadIndexPage::newFromTitle( $title );
-               $this->assertEquals( $title, $page->getTitle() );
-       }
-}
diff --git a/tests/phpunit/page/DatabaseIndexForPageLookupTest.php 
b/tests/phpunit/page/DatabaseIndexForPageLookupTest.php
index 1a8656b..5836a0c 100644
--- a/tests/phpunit/page/DatabaseIndexForPageLookupTest.php
+++ b/tests/phpunit/page/DatabaseIndexForPageLookupTest.php
@@ -4,6 +4,7 @@
 
 use ProofreadPageTestCase;
 use RepoGroup;
+use Title;
 
 /**
  * @group ProofreadPage
@@ -21,13 +22,17 @@
                        $repoGroupMock
                );
                $this->assertEquals(
-                       $this->newIndexPage( 'LoremIpsum.djvu' ),
-                       $lookup->getIndexForPage( $this->newPagePage( 
'LoremIpsum.djvu/2' ) )
+                       Title::makeTitle( $this->getIndexNamespaceId(),  
'LoremIpsum.djvu' ),
+                       $lookup->getIndexForPageTitle(
+                               Title::makeTitle( $this->getPageNamespaceId(), 
'LoremIpsum.djvu/2' )
+                       )
                );
        }
 
        public function testGetIndexForPageNotFound() {
                $lookup = new DatabaseIndexForPageLookup( 
$this->getIndexNamespaceId(), RepoGroup::singleton() );
-               $this->assertNull( $lookup->getIndexForPage( 
$this->newPagePage( 'FooBar' ) ) );
+               $this->assertNull( $lookup->getIndexForPageTitle(
+                       Title::makeTitle( $this->getPageNamespaceId(), 'FooBar' 
)
+               ) );
        }
 }
diff --git a/tests/phpunit/page/IndexForPageLookupMock.php 
b/tests/phpunit/page/IndexForPageLookupMock.php
index 8a015eb..52f4241 100644
--- a/tests/phpunit/page/IndexForPageLookupMock.php
+++ b/tests/phpunit/page/IndexForPageLookupMock.php
@@ -2,7 +2,7 @@
 
 namespace ProofreadPage\Page;
 
-use ProofreadPagePage;
+use Title;
 
 /**
  * @licence GNU GPL v2+
@@ -18,12 +18,12 @@
        }
 
        /**
-        * @see IndexForPageLookup::getIndexForPage
+        * @see IndexForPageLookup::getIndexForPageTitle
         */
-       public function getIndexForPage( ProofreadPagePage $page ) {
-               if ( !array_key_exists( $page->getTitle()->getDBkey(), 
$this->indexForPage ) ) {
+       public function getIndexForPageTitle( Title $pageTitle ) {
+               if ( !array_key_exists( $pageTitle->getDBkey(), 
$this->indexForPage ) ) {
                        return null;
                }
-               return $this->indexForPage[ $page->getTitle()->getDBkey() ];
+               return $this->indexForPage[ $pageTitle->getDBkey() ];
        }
 }
diff --git a/tests/phpunit/page/PageContentBuilderTest.php 
b/tests/phpunit/page/PageContentBuilderTest.php
index f335951..20b8fb9 100644
--- a/tests/phpunit/page/PageContentBuilderTest.php
+++ b/tests/phpunit/page/PageContentBuilderTest.php
@@ -4,12 +4,11 @@
 
 use IContextSource;
 use MediaHandler;
-use ProofreadIndexPage;
 use ProofreadPage\FileNotFoundException;
 use ProofreadPage\Index\IndexContent;
-use ProofreadPagePage;
 use ProofreadPageTestCase;
 use RequestContext;
+use Title;
 use User;
 use WikitextContent;
 
@@ -43,19 +42,23 @@
        /**
         * @dataProvider buildDefaultContentForPageProvider
         */
-       public function testBuildDefaultContentForPage(
-               ProofreadPagePage $page, ProofreadIndexPage $index = null,
+       public function testBuildDefaultContentForPageTitle(
+               $pageTitle, $indexTitle = null,
                IndexContent $indexContent = null, PageContent $defaultContent
        ) {
-               $indexContents = [];
-               if ( $indexContent !== null ) {
-                       $indexContents[$index->getTitle()->getDBkey()] = 
$indexContent;
+               $pageTitle = Title::makeTitle( $this->getPageNamespaceId(), 
$pageTitle );
+               if ( $indexTitle !== null ) {
+                       $indexTitle = Title::makeTitle( 
$this->getIndexNamespaceId(), $indexTitle );
+                       $context = $this->getContext( [
+                               $pageTitle->getDBkey() => $indexTitle
+                       ], [
+                               $indexTitle->getDBkey() => $indexContent
+                       ] );
+               } else {
+                       $context = $this->getContext();
                }
-               $context = $this->getContext( [
-                       $page->getTitle()->getDBkey() => $index
-               ], $indexContents );
                try {
-                       $image = $context->getFileProvider()->getForPagePage( 
$page );
+                       $image = 
$context->getFileProvider()->getFileForPageTitle( $pageTitle );
                } catch ( FileNotFoundException $e ) {
                        $image = false;
                }
@@ -65,15 +68,15 @@
                }
                $contentBuilder = new PageContentBuilder( $this->context, 
$context );
                $this->assertEquals(
-                       $defaultContent, 
$contentBuilder->buildDefaultContentForPage( $page )
+                       $defaultContent, 
$contentBuilder->buildDefaultContentForPageTitle( $pageTitle )
                );
        }
 
        public function buildDefaultContentForPageProvider() {
                return [
                        [
-                               $this->newPagePage( 'Test.djvu/1' ),
-                               $this->newIndexPage( 'Test.djvu' ),
+                                'Test.djvu/1',
+                                'Test.djvu',
                                new IndexContent( [
                                        'Title' => new WikitextContent( 'Test 
book' ),
                                        'Header' => new WikitextContent( 
'{{{title}}}' )
@@ -81,14 +84,14 @@
                                self::newContent( 'Test book', '', '<references 
/>', 1 ),
                        ],
                        [
-                               $this->newPagePage( 'LoremIpsum.djvu/2' ),
+                               'LoremIpsum.djvu/2',
                                null,
                                null,
                                self::newContent( '', "Lorem ipsum \n2 \n", 
'<references/>', 1 ),
                        ],
                        [
-                               $this->newPagePage( 'LoremIpsum.djvu/2' ),
-                               $this->newIndexPage( 'LoremIpsum.djvu' ),
+                               'LoremIpsum.djvu/2' ,
+                               'LoremIpsum.djvu' ,
                                new IndexContent( [
                                        'Title' => new WikitextContent( 'Test 
book' ),
                                        'Pages' => new WikitextContent( 
'<pagelist/>' ),
@@ -97,8 +100,8 @@
                                self::newContent( '2', "Lorem ipsum \n2 \n", 
'<references />', 1 ),
                        ],
                        [
-                               $this->newPagePage( 'LoremIpsum.djvu/2' ),
-                               $this->newIndexPage( 'LoremIpsum.djvu' ),
+                               'LoremIpsum.djvu/2',
+                                'LoremIpsum.djvu',
                                new IndexContent( [
                                        'Title' => new WikitextContent( 'Test 
book' ),
                                        'Pages' => new WikitextContent( 
'<pagelist 1to5=roman />' ),
diff --git a/tests/phpunit/page/PageDisplayHandlerTest.php 
b/tests/phpunit/page/PageDisplayHandlerTest.php
index 04e4c20..3bd5faf 100644
--- a/tests/phpunit/page/PageDisplayHandlerTest.php
+++ b/tests/phpunit/page/PageDisplayHandlerTest.php
@@ -4,38 +4,42 @@
 
 use ProofreadPage\Index\IndexContent;
 use ProofreadPageTestCase;
+use Title;
 use WikitextContent;
 
 /**
  * @group ProofreadPage
- * @covers ProofreadPagePage
+ * @covers PageDisplayHandler
  */
 class PageDisplayHandlerTest extends ProofreadPageTestCase {
 
        public function testGetImageWidth() {
                $handler = new PageDisplayHandler( $this->getContext( [
-                       'Test.jpg' => $this->newIndexPage( 'Test' )
+                       'Test.jpg' => Title::makeTitle( 
$this->getIndexNamespaceId(), 'Test' )
                ], [
                        'Test' => new IndexContent( [ 'width' => new 
WikitextContent( '500' ) ] )
                ] ) );
-               $this->assertEquals( 500, $handler->getImageWidth( 
$this->newPagePage( 'Test.jpg' ) ) );
+               $this->assertEquals(
+                       500,
+                       $handler->getImageWidth( Title::makeTitle( 
$this->getPageNamespaceId(), 'Test.jpg' ) )
+               );
        }
 
        public function testGetImageWidthWithDefault() {
                $handler = new PageDisplayHandler( $this->getContext( [
-                       'Test.jpg' => $this->newIndexPage( 'Test' )
+                       'Test.jpg' => Title::makeTitle( 
$this->getIndexNamespaceId(), 'Test' )
                ], [
                        'Test' => new IndexContent( [ 'title' => new 
WikitextContent( '500' ) ] )
                ] ) );
                $this->assertEquals(
                        PageDisplayHandler::DEFAULT_IMAGE_WIDTH,
-                       $handler->getImageWidth( $this->newPagePage( 'Test.jpg' 
) )
+                       $handler->getImageWidth( Title::makeTitle( 
$this->getPageNamespaceId(), 'Test.jpg' ) )
                );
        }
 
        public function testGetCustomCss() {
                $handler = new PageDisplayHandler( $this->getContext( [
-                       'Test.jpg' => $this->newIndexPage( 'Test' )
+                       'Test.jpg' => Title::makeTitle( 
$this->getIndexNamespaceId(), 'Test' )
                ], [
                        'Test' => new IndexContent( [
                                'CSS' => new WikitextContent( 'width:300px;' )
@@ -43,13 +47,13 @@
                ] ) );
                $this->assertEquals(
                        'width:300px;',
-                       $handler->getCustomCss( $this->newPagePage( 'Test.jpg' 
) )
+                       $handler->getCustomCss( Title::makeTitle( 
$this->getPageNamespaceId(), 'Test.jpg' ) )
                );
        }
 
        public function testGetCustomCssWithInsecureInput() {
                $handler = new PageDisplayHandler( $this->getContext( [
-                       'Test.jpg' => $this->newIndexPage( 'Test' )
+                       'Test.jpg' => Title::makeTitle( 
$this->getIndexNamespaceId(), 'Test' )
                ], [
                        'Test' => new IndexContent( [
                                'CSS' => new WikitextContent( 'background: 
url(\'/my-bad-url.jpg\');' )
@@ -57,13 +61,13 @@
                ] ) );
                $this->assertEquals(
                        '/* insecure input */',
-                       $handler->getCustomCss( $this->newPagePage( 'Test.jpg' 
) )
+                       $handler->getCustomCss( Title::makeTitle( 
$this->getPageNamespaceId(),  'Test.jpg' ) )
                );
        }
 
        public function testGetCustomCssWithEscaping() {
                $handler = new PageDisplayHandler( $this->getContext( [
-                       'Test.jpg' => $this->newIndexPage( 'Test' )
+                       'Test.jpg' => Title::makeTitle( 
$this->getIndexNamespaceId(), 'Test' )
                ], [
                        'Test' => new IndexContent( [
                                'CSS' => new WikitextContent( 
'width:300px;<style>' )
@@ -71,7 +75,7 @@
                ] ) );
                $this->assertEquals(
                        'width:300px;&lt;style&gt;',
-                       $handler->getCustomCss( $this->newPagePage( 'Test.jpg' 
) )
+                       $handler->getCustomCss( Title::makeTitle( 
$this->getPageNamespaceId(), 'Test.jpg' ) )
                );
        }
 }
diff --git a/tests/phpunit/page/ProofreadPagePageTest.php 
b/tests/phpunit/page/ProofreadPagePageTest.php
deleted file mode 100644
index 25a38b0..0000000
--- a/tests/phpunit/page/ProofreadPagePageTest.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-/**
- * @group ProofreadPage
- * @covers ProofreadPagePage
- */
-class ProofreadPagePageTest extends ProofreadPageTestCase {
-
-       public function testEquals() {
-               $page = $this->newPagePage( 'Test.djvu' );
-               $page2 = $this->newPagePage( 'Test.djvu' );
-               $page3 = $this->newPagePage( 'Test2.djvu' );
-               $this->assertTrue( $page->equals( $page2 ) );
-               $this->assertTrue( $page2->equals( $page ) );
-               $this->assertFalse( $page->equals( $page3 ) );
-               $this->assertFalse( $page3->equals( $page ) );
-       }
-
-       public function testGetTitle() {
-               $title = Title::makeTitle( $this->getPageNamespaceId(), 
'Test.djvu' );
-               $page = $this->newPagePage( $title );
-               $this->assertEquals( $title, $page->getTitle() );
-       }
-}

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib77a4a0aae7c92fc38e4f97d9caa55d659768d2d
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/ProofreadPage
Gerrit-Branch: master
Gerrit-Owner: Tpt <thoma...@hotmail.fr>
Gerrit-Reviewer: Tpt <thoma...@hotmail.fr>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to