Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
D
drupal
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Custom Issue Tracker
Custom Issue Tracker
Labels
Merge Requests
300
Merge Requests
300
Requirements
Requirements
List
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Analytics
Analytics
Code Review
Insights
Issue
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
project
drupal
Commits
e4512d63
Commit
e4512d63
authored
Oct 16, 2013
by
catch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Issue
#1754254
by dawehner, damiankloip: Add a generic testcase for the pager base.
parent
691a5301
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
266 additions
and
0 deletions
+266
-0
core/modules/views/tests/Drupal/views/Tests/Plugin/pager/PagerPluginBaseTest.php
...s/Drupal/views/Tests/Plugin/pager/PagerPluginBaseTest.php
+266
-0
No files found.
core/modules/views/tests/Drupal/views/Tests/Plugin/pager/PagerPluginBaseTest.php
0 → 100644
View file @
e4512d63
<?php
/**
* @file
* Contains \Drupal\views\Tests\Plugin\pager\PagerPluginBaseTest
*/
namespace
Drupal\views\Tests\Plugin\pager
;
use
Drupal\Tests\UnitTestCase
;
use
Drupal\Core\Database\StatementInterface
;
/**
* Tests the PagerPluginBase class
*
* @group Views
*
* @see \Drupal\views\Plugin\views\pager\PagerPluginBase
*/
class
PagerPluginBaseTest
extends
UnitTestCase
{
/**
* The mock pager plugin instance.
*
* @var \Drupal\views\Plugin\views\pager\PagerPluginBase|\PHPUnit_Framework_MockObject_MockObject
*/
protected
$pager
;
public
static
function
getInfo
()
{
return
array
(
'name'
=>
'PagerPluginBase test'
,
'description'
=>
'Tests the \Drupal\views\Plugin\views\pager\PagerPluginBase class.'
,
'group'
=>
'Views Handlers'
,
);
}
public
function
setUp
()
{
$this
->
pager
=
$this
->
getMockBuilder
(
'Drupal\views\Plugin\views\pager\PagerPluginBase'
)
->
disableOriginalConstructor
()
->
getMockForAbstractClass
();
$view
=
$this
->
getMockBuilder
(
'Drupal\views\ViewExecutable'
)
->
disableOriginalConstructor
()
->
getMock
();
$display
=
$this
->
getMockBuilder
(
'Drupal\views\Plugin\views\display\DisplayPluginBase'
)
->
disableOriginalConstructor
()
->
getMock
();
$options
=
array
(
'items_per_page'
=>
5
,
'offset'
=>
1
,
);
$this
->
pager
->
init
(
$view
,
$display
,
$options
);
$this
->
pager
->
current_page
=
1
;
}
/**
* Tests the getItemsPerPage() method.
*
* @see \Drupal\views\Plugin\views\pager\PagerPluginBase::getItemsPerPage()
*/
public
function
testGetItemsPerPage
()
{
$this
->
assertEquals
(
5
,
$this
->
pager
->
getItemsPerPage
());
}
/**
* Tests the setItemsPerPage() method.
*
* @see \Drupal\views\Plugin\views\pager\PagerPluginBase::setItemsPerPage()
*/
public
function
testSetItemsPerPage
()
{
$this
->
pager
->
setItemsPerPage
(
6
);
$this
->
assertEquals
(
6
,
$this
->
pager
->
getItemsPerPage
());
}
/**
* Tests the getOffset() method.
*
* @see \Drupal\views\Plugin\views\pager\PagerPluginBase::getOffset()
*/
public
function
testGetOffset
()
{
$this
->
assertEquals
(
1
,
$this
->
pager
->
getOffset
());
}
/**
* Tests the setOffset() method.
*
* @see \Drupal\views\Plugin\views\pager\PagerPluginBase::setOffset()
*/
public
function
testSetOffset
()
{
$this
->
pager
->
setOffset
(
2
);
$this
->
assertEquals
(
2
,
$this
->
pager
->
getOffset
());
}
/**
* Tests the getCurrentPage() method.
*
* @see \Drupal\views\Plugin\views\pager\PagerPluginBase::getCurrentPage()
*/
public
function
testGetCurrentPage
()
{
$this
->
assertEquals
(
1
,
$this
->
pager
->
getCurrentPage
());
}
/**
* Tests the setCurrentPage() method.
*
* @see \Drupal\views\Plugin\views\pager\PagerPluginBase::setCurrentPage()
*/
public
function
testSetCurrentPage
()
{
$this
->
pager
->
setCurrentPage
(
2
);
$this
->
assertEquals
(
2
,
$this
->
pager
->
getCurrentPage
());
// A non numeric number or number below 0 should return 0.
$this
->
pager
->
setCurrentPage
(
'two'
);
$this
->
assertEquals
(
0
,
$this
->
pager
->
getCurrentPage
());
$this
->
pager
->
setCurrentPage
(
-
2
);
$this
->
assertEquals
(
0
,
$this
->
pager
->
getCurrentPage
());
}
/**
* Tests the getTotalItems() method.
*
* @see \Drupal\views\Plugin\views\pager\PagerPluginBase::getTotalItems()
*/
public
function
testGetTotalItems
()
{
// Should return 0 by default.
$this
->
assertEquals
(
0
,
$this
->
pager
->
getTotalItems
());
$this
->
pager
->
total_items
=
10
;
$this
->
assertEquals
(
10
,
$this
->
pager
->
getTotalItems
());
}
/**
* Tests the getPagerId() method.
*
* @see \Drupal\views\Plugin\views\pager\PagerPluginBase::getPagerId()
*/
public
function
testGetPagerId
()
{
// Should return 0 if 'id' is not set.
$this
->
assertEquals
(
0
,
$this
->
pager
->
getPagerId
());
$this
->
pager
->
options
[
'id'
]
=
1
;
$this
->
assertEquals
(
1
,
$this
->
pager
->
getPagerId
());
}
/**
* Tests the usePager() method.
*
* @see \Drupal\views\Plugin\views\pager\PagerPluginBase::usePager()
*/
public
function
testUsePager
()
{
$this
->
assertTrue
(
$this
->
pager
->
usePager
());
}
/**
* Tests the useCountQuery() method.
*
* @see \Drupal\views\Plugin\views\pager\PagerPluginBase::useCountQuery()
*/
public
function
testUseCountQuery
()
{
$this
->
assertTrue
(
$this
->
pager
->
useCountQuery
());
}
/**
* Tests the usesExposed() method.
*
* @see \Drupal\views\Plugin\views\pager\PagerPluginBase::usedExposed()
*/
public
function
testUsesExposed
()
{
$this
->
assertFalse
(
$this
->
pager
->
usesExposed
());
}
/**
* Tests the hasMoreRecords() method.
*
* @dataProvider providerTestHasMoreRecords
*
* @see \Drupal\views\Plugin\views\pager\PagerPluginBase::hasMoreRecords()
*/
public
function
testHasMoreRecords
(
$items_per_page
,
$total_items
,
$current_page
,
$has_more_records
)
{
$this
->
pager
->
setItemsPerPage
(
$items_per_page
);
$this
->
pager
->
total_items
=
$total_items
;
$this
->
pager
->
setCurrentPage
(
$current_page
);
$this
->
assertEquals
(
$has_more_records
,
$this
->
pager
->
hasMoreRecords
());
}
/**
* Provides test data for the hasMoreRecord method test.
*
* @see self::testHasMoreRecords
*/
public
function
providerTestHasMoreRecords
()
{
return
array
(
// No items per page, so there can't be more available records.
array
(
0
,
0
,
0
,
FALSE
),
array
(
0
,
10
,
0
,
FALSE
),
// The amount of total items equals the items per page, so there is no
// next page available.
array
(
5
,
5
,
0
,
FALSE
),
// There is one more item, and we are at the first page.
array
(
5
,
6
,
0
,
TRUE
),
// Now we are on the second page, which has just a single one left.
array
(
5
,
6
,
1
,
FALSE
),
// Increase the total items, so we have some available on the third page.
array
(
5
,
12
,
1
,
TRUE
)
);
}
/**
* Tests the executeCountQuery method without a set offset.
*
* @see \Drupal\views\Plugin\views\pager\PagerPluginBase::executeCountQuery()
*/
public
function
testExecuteCountQueryWithoutOffset
()
{
$statement
=
$this
->
getMock
(
'\Drupal\views\Tests\Plugin\pager\TestStatementInterface'
);
$statement
->
expects
(
$this
->
once
())
->
method
(
'fetchField'
)
->
will
(
$this
->
returnValue
(
3
));
$query
=
$this
->
getMockBuilder
(
'\Drupal\Core\Database\Query\Select'
)
->
disableOriginalConstructor
()
->
getMock
();
$query
->
expects
(
$this
->
once
())
->
method
(
'execute'
)
->
will
(
$this
->
returnValue
(
$statement
));
$this
->
pager
->
setOffset
(
0
);
$this
->
assertEquals
(
3
,
$this
->
pager
->
executeCountQuery
(
$query
));
}
/**
* Tests the executeCountQuery method with a set offset.
*
* @see \Drupal\views\Plugin\views\pager\PagerPluginBase::executeCountQuery()
*/
public
function
testExecuteCountQueryWithOffset
()
{
$statement
=
$this
->
getMock
(
'\Drupal\views\Tests\Plugin\pager\TestStatementInterface'
);
$statement
->
expects
(
$this
->
once
())
->
method
(
'fetchField'
)
->
will
(
$this
->
returnValue
(
3
));
$query
=
$this
->
getMockBuilder
(
'\Drupal\Core\Database\Query\Select'
)
->
disableOriginalConstructor
()
->
getMock
();
$query
->
expects
(
$this
->
once
())
->
method
(
'execute'
)
->
will
(
$this
->
returnValue
(
$statement
));
$this
->
pager
->
setOffset
(
2
);
$this
->
assertEquals
(
1
,
$this
->
pager
->
executeCountQuery
(
$query
));
}
}
// As StatementInterface extends \Transversable, which though always needs
// an additional interface. The Statement class itself can't be mocked because
// of its __wakeup function.
interface
TestStatementInterface
extends
StatementInterface
,
\
Iterator
{}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment