VuFind API Documentation

RecordActionsTest extends MinkTestCase
in package
Uses AutocompleteTrait, LiveDatabaseTrait, SearchSortTrait, UserCreationTrait

Mink record actions test class.

Class must be final due to use of "new static()" by LiveDatabaseTrait.

Tags
category

VuFind

author

Demian Katz demian.katz@villanova.edu

author

Juha Luoma juha.luoma@helsinki.fi

license

http://opensource.org/licenses/gpl-2.0.php GNU General Public License

link

Main Page

Table of Contents

DEFAULT_TIMEOUT  = 5000
$hasLiveDatabaseTrait  : bool
Flag to allow other traits to test for the presence of this one (to enforce dependencies).
$hasLiveDetectionTrait  : bool
Flag to allow other traits to test for the presence of this one (to enforce dependencies).
$activeRecordTabSelector  : string
Selector for active record tab
$btnGroupDropdownMenuSelector  : string
Selector for an open button group dropdown menu
$defaultSortOptions  : array<string|int, string>
VuFind default sort options
$firstOpenDropdownMenuItemSelector  : string
Selector for first item in a dropdown menu
$liveDatabaseContainer  : MockContainer|null
Container connected to live database.
$modifiedConfigs  : array<string|int, mixed>
Modified configurations
$modifiedYamlConfigs  : array<string|int, mixed>
Modified yaml configurations
$openModalButtonLinkSelector  : string
Selector for a button link in an open modal dialog
$openModalSelector  : string
Selector for an open modal dialog
$openModalUsernameFieldSelector  : string
Selector for a username field in open modal dialog
$pageNextSelector  : string
Selector for next page link
$pagePrevSelector  : string
Selector for previous page link
$pathResolver  : PathResolver
Configuration file path resolver
$popoverContentSelector  : string
Selector for popover content
$session  : Session
Mink session
$sortControlSelector  : string
Selector for sort control
continuousIntegrationRunning()  : bool
Is this test running in a continuous integration context?
getAndAssertFirstAutocompleteValue()  : NodeElement
Get an autocomplete item, and assert its value.
getDbService()  : DbServiceInterface
Get a database service.
getFavoritesService()  : FavoritesService
Get the favorites service.
getLiveDatabaseContainer()  : MockContainer
Get a real, working table manager.
getLiveDbServiceManager()  : PluginManager
Get a real, working database service manager.
getLiveTableManager()  : PluginManager
Get a real, working table manager.
getRemoteCoverageDirectory()  : string|null
Get the remote coverage directory (or return null if remote coverage disabled)
getTable()  : Gateway
Get a table object.
getTagSearchSortData()  : array<string|int, mixed>
Data provider for testTagSearchSort
getTestRatingData()  : array<string|int, mixed>
Data provider for testRating
setUp()  : void
Standard setup method.
setUpBeforeClass()  : void
Standard setup method.
tearDown()  : void
Standard teardown method.
tearDownAfterClass()  : void
Standard teardown method.
testAddComment()  : void
Test adding comments on records.
testAddCommentWithCaptcha()  : void
Test adding comments on records (with Captcha enabled).
testAddSensitiveTag()  : void
Test adding case sensitive tags on records.
testAddTag()  : void
Test adding tags on records.
testEmail()  : void
Test record view email.
testPrint()  : void
Test record view print button.
testRating()  : void
Test star ratings on records.
testRatingDisabled()  : void
Test rating disabled.
testRefWorksExportButton()  : void
Test export button found in toolbar
testSMS()  : void
Test record view SMS.
testTagAdminHome()  : void
Test that the tag admin module works.
testTagAdminList()  : void
Test that listing tags in Admin works.
testTagAdminManage()  : void
Test that managing tags in Admin works.
testTagAutocomplete()  : void
Test that default autocomplete behavior is correct on a non-default search handler.
testTagSearch()  : void
Test searching for one of the tags created above.
testTagSearchSort()  : void
Test sorting the tag search results.
addPathResolverToContainer()  : void
Add PathResolverFactory to a mock container
addTagsToRecord()  : void
Add tags to a record
assertAutocompleteValueAndReturnItem()  : NodeElement
For the provided search, assert the first autocomplete value and return the associated page element.
assertEqualsWithTimeout()  : void
Wait for a callback to return the expected value
assertLightboxTitle()  : void
Verify that lightbox title contains the expected value
assertLightboxWarning()  : void
Mink support function: assert a warning message in the lightbox.
assertResultTitles()  : void
Check that first and last record of the results are correct
assertSelectedSort()  : void
Assert the selected sort option.
assertStringContainsStringWithTimeout()  : void
Wait for a callback to return a string containing the expected value
assertWithTimeout()  : void
Wait for a callback to return the expected value
changeConfigFile()  : void
Support method for changeConfig; act on a single file.
changeConfigs()  : void
Reconfigure VuFind for the current test.
changeYamlConfigFile()  : void
Support method for changeYamlConfig; act on a single file.
changeYamlConfigs()  : void
Reconfigure VuFind for the current test.
checkVisibility()  : bool
Test an element for visibility.
clickCss()  : mixed
Click on a CSS element.
closeLightbox()  : void
Verify that lightbox title contains the expected value
failIfDataExists()  : void
Static setup support function to fail if there is already data in the database. We want to ensure a clean state for each test!
fillInAccountForm()  : void
Mink support function: fill in the account creation form.
fillInChangePasswordForm()  : void
Mink support function: fill in the change password form.
fillInLoginForm()  : void
Mink support function: fill in the login form.
findAndAssertLink()  : mixed
Retrieve a link and assert that it exists before returning it.
findCss()  : mixed
Wait for an element to exist, then retrieve it.
findCssAndCallMethod()  : string
Return value of a method of an element selected via CSS; retry if it fails due to DOM change.
findCssAndGetHtml()  : string
Get text of an element selected via CSS; retry if it fails due to DOM change.
findCssAndGetText()  : string
Get text of an element selected via CSS; retry if it fails due to DOM change.
findCssAndGetValue()  : string
Get value of an element selected via CSS; retry if it fails due to DOM change.
findCssAndSetValue()  : mixed
Set a value within an element selected via CSS; retry if set fails due to browser bugs.
getCurrentQueryString()  : string
Get query string for the current page
getCurrentUrlWithoutSid()  : string
Get current URL without any sid parameter in the query string
getDefaultTimeout()  : int
Get the default timeout in milliseconds
getFirstMethodAttributeValue()  : mixed
Extract the first parameter of the first attribute matching the specified criteria.
getMinkDriver()  : Selenium2Driver
Get the Mink driver, initializing it if necessary.
getMinkSession()  : Session
Get a Mink session.
getPathResolver()  : PathResolver
Get a config file path resolver
getSearchHomePage()  : Element
Load the Search/Home page as a foundation for searching.
getSnoozeMultiplier()  : float
Get the snooze multiplier.
getTestName()  : string
Get name of the current test
getVuFindUrl()  : string
Get base URL of running VuFind instance.
gotoRecord()  : Element
Move the current page to a record by performing a search.
goToTagAdmin()  : Element
Set up and access the Tag Admin page.
hasElementsMatchingText()  : bool
Check whether an element containing the specified text exists.
htmlValidationMsgToStr()  : string
Convert a NU HTML Validator message to a string
logWarning()  : void
Log a warning message
makeAccount()  : void
Make new account
outputHtmlValidationMessages()  : void
Output HTML validation messages to log file and/or console
performSearch()  : Element
Search for the specified query.
removeUsername2And3And4()  : void
Retry cleanup method in case of failure during testRating.
removeUsers()  : void
Static teardown support function to destroy user accounts. Accounts are expected to exist, and the method will fail if they are missing.
restoreConfigs()  : void
Restore configurations to the state they were in prior to a call to changeConfig().
snooze()  : void
Sleep if necessary.
sortResults()  : void
Change sort order of search results
stopMinkSession()  : void
Shut down the Mink session.
submitLoginForm()  : void
Submit the login form (assuming it's open).
submitSearchForm()  : void
Submit a search on the provided page.
unFindCss()  : void
Wait for an element to NOT exist.
validateHtml()  : void
Validate current page HTML if validation is enabled and a session exists
waitForLightboxHidden()  : void
Wait for Lightbox to become hidden if it isn't already.
waitForPageLoad()  : void
Wait for page load (full page or any element) to complete
waitStatement()  : mixed
Wait for a JavaScript statement to result in true.

Constants

Properties

$hasLiveDatabaseTrait

Flag to allow other traits to test for the presence of this one (to enforce dependencies).

public bool $hasLiveDatabaseTrait = true

$hasLiveDetectionTrait

Flag to allow other traits to test for the presence of this one (to enforce dependencies).

public bool $hasLiveDetectionTrait = true

$activeRecordTabSelector

Selector for active record tab

protected string $activeRecordTabSelector = 'li.record-tab.active, li.record-tab a.active'

First for Bootstrap 3, second for Bootstrap 5

$btnGroupDropdownMenuSelector

Selector for an open button group dropdown menu

protected string $btnGroupDropdownMenuSelector = '.btn-group.open .dropdown-menu, .btn-group .dropdown-menu.show'

First for Bootstrap 3, second for Bootstrap 5

$defaultSortOptions

VuFind default sort options

protected array<string|int, string> $defaultSortOptions = ['Relevance', 'Date Descending', 'Date Ascending', 'Call Number', 'Author']

$firstOpenDropdownMenuItemSelector

Selector for first item in a dropdown menu

protected string $firstOpenDropdownMenuItemSelector = '.mainbody .open .dropdown-menu li:nth-child(1) a, .mainbody .dropdown-menu.show li:nth-child(1) a'

First for Bootstrap 3, second for Bootstrap 5

$modifiedConfigs

Modified configurations

protected array<string|int, mixed> $modifiedConfigs = []

$modifiedYamlConfigs

Modified yaml configurations

protected array<string|int, mixed> $modifiedYamlConfigs = []

$openModalButtonLinkSelector

Selector for a button link in an open modal dialog

protected string $openModalButtonLinkSelector = '#modal.in a.btn, #modal.show a.btn'

First for Bootstrap 3, second for Bootstrap 5

$openModalSelector

Selector for an open modal dialog

protected string $openModalSelector = '#modal.in, #modal.show'

First for Bootstrap 3, second for Bootstrap 5

$openModalUsernameFieldSelector

Selector for a username field in open modal dialog

protected string $openModalUsernameFieldSelector = '#modal.in [name="username"], #modal.show [name="username"]'

First for Bootstrap 3, second for Bootstrap 5

$pageNextSelector

Selector for next page link

protected string $pageNextSelector = 'a.page-next, .page-next a'

First for Bootstrap 3, second for Bootstrap 5

$pagePrevSelector

Selector for previous page link

protected string $pagePrevSelector = 'a.page-prev, .page-prev a'

First for Bootstrap 3, second for Bootstrap 5

$popoverContentSelector

Selector for popover content

protected string $popoverContentSelector = '.popover-body, .popover-content'

First for Bootstrap 3, second for Bootstrap 5

$sortControlSelector

Selector for sort control

protected string $sortControlSelector = '#sort_options_1'

Methods

continuousIntegrationRunning()

Is this test running in a continuous integration context?

public continuousIntegrationRunning() : bool
Return values
bool

getAndAssertFirstAutocompleteValue()

Get an autocomplete item, and assert its value.

public getAndAssertFirstAutocompleteValue(Element $page, string $text) : NodeElement
Parameters
$page : Element

Page element

$text : string

Expected text

Return values
NodeElement

getRemoteCoverageDirectory()

Get the remote coverage directory (or return null if remote coverage disabled)

public getRemoteCoverageDirectory() : string|null
Return values
string|null

getTable()

Get a table object.

public getTable(string $table) : Gateway
Parameters
$table : string

Name of table to load

Return values
Gateway

getTagSearchSortData()

Data provider for testTagSearchSort

public static getTagSearchSortData() : array<string|int, mixed>
Return values
array<string|int, mixed>

getTestRatingData()

Data provider for testRating

public static getTestRatingData() : array<string|int, mixed>
Return values
array<string|int, mixed>

setUp()

Standard setup method.

public setUp() : void
Return values
void

setUpBeforeClass()

Standard setup method.

public static setUpBeforeClass() : void
Return values
void

tearDown()

Standard teardown method.

public tearDown() : void
Return values
void

tearDownAfterClass()

Standard teardown method.

public static tearDownAfterClass() : void
Return values
void

testAddComment()

Test adding comments on records.

public testAddComment() : void
Return values
void

testAddCommentWithCaptcha()

Test adding comments on records (with Captcha enabled).

public testAddCommentWithCaptcha() : void
Tags
depends

testAddComment

Return values
void

testAddSensitiveTag()

Test adding case sensitive tags on records.

public testAddSensitiveTag() : void
Tags
depends

testAddTag

Return values
void

testAddTag()

Test adding tags on records.

public testAddTag() : void
Tags
depends

testAddComment

Return values
void

testEmail()

Test record view email.

public testEmail() : void
Return values
void

testPrint()

Test record view print button.

public testPrint() : void
Return values
void

testRating()

Test star ratings on records.

public testRating(bool $allowRemove) : void
Parameters
$allowRemove : bool

Value for remove_rating config

Tags
dataProvider

getTestRatingData

Return values
void

testRatingDisabled()

Test rating disabled.

public testRatingDisabled() : void
Return values
void

testRefWorksExportButton()

Test export button found in toolbar

public testRefWorksExportButton() : void
Return values
void

testSMS()

Test record view SMS.

public testSMS() : void
Return values
void

testTagAdminHome()

Test that the tag admin module works.

public testTagAdminHome() : void
Tags
depends

testTagSearch

depends

testAddSensitiveTag

Return values
void

testTagAdminList()

Test that listing tags in Admin works.

public testTagAdminList() : void
Tags
depends

testTagSearch

depends

testAddSensitiveTag

Return values
void

testTagAdminManage()

Test that managing tags in Admin works.

public testTagAdminManage() : void
Tags
depends

testTagAdminList

Return values
void

testTagAutocomplete()

Test that default autocomplete behavior is correct on a non-default search handler.

public testTagAutocomplete() : void
Tags
depends

testTagSearch

Return values
void

testTagSearch()

Test searching for one of the tags created above.

public testTagSearch() : void
Tags
depends

testAddTag

Return values
void

testTagSearchSort()

Test sorting the tag search results.

public testTagSearchSort(int $index, string $expectedSort, string $expectedFirst, string $expectedLast) : void
Parameters
$index : int

Sort drop-down index to test

$expectedSort : string

Expected sort value at $index

$expectedFirst : string

Expected first title after sorting

$expectedLast : string

Expected last title after sorting

Tags
dataProvider

getTagSearchSortData

depends

testTagSearch

Return values
void

addPathResolverToContainer()

Add PathResolverFactory to a mock container

protected addPathResolverToContainer(MockContainer $container) : void
Parameters
$container : MockContainer

Mock Container

Return values
void

addTagsToRecord()

Add tags to a record

protected addTagsToRecord(Element $page, string $tags[, string|null $user = null ][, string|null $pass = null ]) : void
Parameters
$page : Element

Page object

$tags : string

Tag(s) to add

$user : string|null = null

Username to log in with (null if already logged in)

$pass : string|null = null

Password to log in with (null if already logged in)

Return values
void

assertAutocompleteValueAndReturnItem()

For the provided search, assert the first autocomplete value and return the associated page element.

protected assertAutocompleteValueAndReturnItem(Element $page, string $search, string $expected[, string|null $type = null ]) : NodeElement
Parameters
$page : Element

Page to use for searching

$search : string

Search term(s)

$expected : string

First expected Autocomplete suggestion

$type : string|null = null

Search type (null for default)

Return values
NodeElement

assertEqualsWithTimeout()

Wait for a callback to return the expected value

protected assertEqualsWithTimeout(mixed $expected, callable $callback[, int $timeout = null ]) : void
Parameters
$expected : mixed

Expected value

$callback : callable

Callback

$timeout : int = null

Wait timeout (in ms)

Return values
void

assertLightboxTitle()

Verify that lightbox title contains the expected value

protected assertLightboxTitle(Element $page, string $title) : void
Parameters
$page : Element

Page element

$title : string

Expected title

Return values
void

assertLightboxWarning()

Mink support function: assert a warning message in the lightbox.

protected assertLightboxWarning(Element $page, string $message) : void
Parameters
$page : Element

Page element

$message : string

Expected message

Return values
void

assertResultTitles()

Check that first and last record of the results are correct

protected assertResultTitles(Element $page, int $count, string $first, string $last) : void
Parameters
$page : Element

Current page

$count : int

Expected total result count

$first : string

Expected first title

$last : string

Expected last title

Return values
void

assertSelectedSort()

Assert the selected sort option.

protected assertSelectedSort(Element $page, string $active) : void
Parameters
$page : Element

Current page

$active : string

Selected sort option

Return values
void

assertStringContainsStringWithTimeout()

Wait for a callback to return a string containing the expected value

protected assertStringContainsStringWithTimeout(string $expected, callable $callback[, int $timeout = null ]) : void
Parameters
$expected : string

Expected value

$callback : callable

Callback

$timeout : int = null

Wait timeout (in ms)

Return values
void

assertWithTimeout()

Wait for a callback to return the expected value

protected assertWithTimeout(mixed $expected, callable $callback, callable $compareFunc, callable $assertion[, int $timeout = null ]) : void
Parameters
$expected : mixed

Expected value

$callback : callable

Callback used to get the results

$compareFunc : callable

Callback used to compare the results

$assertion : callable

Assertion to make

$timeout : int = null

Wait timeout (in ms)

Return values
void

changeConfigFile()

Support method for changeConfig; act on a single file.

protected changeConfigFile(string $configName, array<string|int, mixed> $settings[, bool $replace = false ]) : void
Parameters
$configName : string

Configuration to modify.

$settings : array<string|int, mixed>

Settings to change.

$replace : bool = false

Should we replace the existing config entirely (as opposed to extending it with new settings)?

Return values
void

changeConfigs()

Reconfigure VuFind for the current test.

protected changeConfigs(array<string|int, mixed> $configs[, array<string|int, mixed> $replace = [] ]) : void
Parameters
$configs : array<string|int, mixed>

Array of settings to change. Top-level keys correspond with config filenames (i.e. use 'config' for config.ini, etc.); within each file's array, top-level key is config section. Within each section's array are key-value configuration pairs.

$replace : array<string|int, mixed> = []

Array of config files to completely override (as opposed to modifying); if a config file from $configs is included in this array, the $configs setting will be used as the entire configuration, and the defaults from the config/vufind directory will be ignored.

Return values
void

changeYamlConfigFile()

Support method for changeYamlConfig; act on a single file.

protected changeYamlConfigFile(string $configName, array<string|int, mixed> $settings[, bool $replace = false ]) : void
Parameters
$configName : string

Configuration to modify.

$settings : array<string|int, mixed>

Settings to change.

$replace : bool = false

Should we replace the existing config entirely (as opposed to extending it with new settings)?

Return values
void

changeYamlConfigs()

Reconfigure VuFind for the current test.

protected changeYamlConfigs(array<string|int, mixed> $configs[, array<string|int, mixed> $replace = [] ]) : void
Parameters
$configs : array<string|int, mixed>

Array of settings to change. Top-level keys correspond with yaml config filenames (i.e. use 'searchspecs' for searchspecs.yaml, etc.);

$replace : array<string|int, mixed> = []

Array of config files to completely override (as opposed to modifying); if a config file from $configs is included in this array, the $configs setting will be used as the entire configuration, and the defaults from the config/vufind directory will be ignored.

Return values
void

checkVisibility()

Test an element for visibility.

protected checkVisibility(Element $element) : bool
Parameters
$element : Element

Element to test

Return values
bool

clickCss()

Click on a CSS element.

protected clickCss(Element $page, string $selector[, int $timeout = null ], int $index) : mixed
Parameters
$page : Element

Page element

$selector : string

CSS selector

$timeout : int = null

Wait timeout (in ms)

$index : int

Index of the element (0-based)

Return values
mixed

closeLightbox()

Verify that lightbox title contains the expected value

protected closeLightbox(Element $page[, bool $closeButton = false ]) : void
Parameters
$page : Element

Page element

$closeButton : bool = false

Whether there should be a close button in the modal body

Return values
void

failIfDataExists()

Static setup support function to fail if there is already data in the database. We want to ensure a clean state for each test!

protected static failIfDataExists([string|null $failMessage = null ]) : void
Parameters
$failMessage : string|null = null

Failure message to display if data exists (null for default).

Return values
void

fillInAccountForm()

Mink support function: fill in the account creation form.

protected fillInAccountForm(Element $page[, array<string|int, mixed> $overrides = [] ]) : void
Parameters
$page : Element

Page element.

$overrides : array<string|int, mixed> = []

Optional overrides for form values.

Return values
void

fillInChangePasswordForm()

Mink support function: fill in the change password form.

protected fillInChangePasswordForm(Element $page, string $old, string $new[, bool $inModal = false ][, string $prefix = '#newpassword ' ]) : void
Parameters
$page : Element

Page element.

$old : string

Old password

$new : string

New password

$inModal : bool = false

Should we assume the login box is in a lightbox?

$prefix : string = '#newpassword '

Extra selector prefix

Return values
void

fillInLoginForm()

Mink support function: fill in the login form.

protected fillInLoginForm(Element $page, string $username, string $password[, bool $inModal = true ][, string $prefix = '' ]) : void
Parameters
$page : Element

Page element.

$username : string

Username to set (null to skip)

$password : string

Password to set (null to skip)

$inModal : bool = true

Should we assume the login box is in a lightbox?

$prefix : string = ''

Extra selector prefix

Return values
void

Retrieve a link and assert that it exists before returning it.

protected findAndAssertLink(Element $page, string $text) : mixed
Parameters
$page : Element

Page element

$text : string

Link text to match

Return values
mixed

findCss()

Wait for an element to exist, then retrieve it.

protected findCss(Element $page, string $selector[, int $timeout = null ], int $index) : mixed
Parameters
$page : Element

Page element

$selector : string

CSS selector

$timeout : int = null

Wait timeout (in ms)

$index : int

Index of the element (0-based)

Return values
mixed

findCssAndCallMethod()

Return value of a method of an element selected via CSS; retry if it fails due to DOM change.

protected findCssAndCallMethod(Element $page, string $selector, callable $method[, int $timeout = null ], int $index[, int $retries = 6 ]) : string
Parameters
$page : Element

Page element

$selector : string

CSS selector

$method : callable

Method to call

$timeout : int = null

Wait timeout for CSS selection (in ms)

$index : int

Index of the element (0-based)

$retries : int = 6

Retry count for set loop

Return values
string

findCssAndGetHtml()

Get text of an element selected via CSS; retry if it fails due to DOM change.

protected findCssAndGetHtml(Element $page, string $selector[, int $timeout = null ], int $index[, int $retries = 6 ]) : string
Parameters
$page : Element

Page element

$selector : string

CSS selector

$timeout : int = null

Wait timeout for CSS selection (in ms)

$index : int

Index of the element (0-based)

$retries : int = 6

Retry count for set loop

Return values
string

findCssAndGetText()

Get text of an element selected via CSS; retry if it fails due to DOM change.

protected findCssAndGetText(Element $page, string $selector[, int $timeout = null ], int $index[, int $retries = 6 ]) : string
Parameters
$page : Element

Page element

$selector : string

CSS selector

$timeout : int = null

Wait timeout for CSS selection (in ms)

$index : int

Index of the element (0-based)

$retries : int = 6

Retry count for set loop

Return values
string

findCssAndGetValue()

Get value of an element selected via CSS; retry if it fails due to DOM change.

protected findCssAndGetValue(Element $page, string $selector[, int $timeout = null ], int $index[, int $retries = 6 ]) : string
Parameters
$page : Element

Page element

$selector : string

CSS selector

$timeout : int = null

Wait timeout for CSS selection (in ms)

$index : int

Index of the element (0-based)

$retries : int = 6

Retry count for set loop

Return values
string

findCssAndSetValue()

Set a value within an element selected via CSS; retry if set fails due to browser bugs.

protected findCssAndSetValue(Element $page, string $selector, string $value[, int $timeout = null ][, int $retries = 6 ][, bool $verifyValue = true ]) : mixed
Parameters
$page : Element

Page element

$selector : string

CSS selector

$value : string

Value to set

$timeout : int = null

Wait timeout for CSS selection (in ms)

$retries : int = 6

Retry count for set loop

$verifyValue : bool = true

Whether to verify that the value was written

Return values
mixed

getCurrentQueryString()

Get query string for the current page

protected getCurrentQueryString([bool $excludeSid = false ]) : string
Parameters
$excludeSid : bool = false

Whether to remove any sid from the query string

Return values
string

getCurrentUrlWithoutSid()

Get current URL without any sid parameter in the query string

protected getCurrentUrlWithoutSid() : string
Return values
string

getDefaultTimeout()

Get the default timeout in milliseconds

protected getDefaultTimeout() : int
Return values
int

getFirstMethodAttributeValue()

Extract the first parameter of the first attribute matching the specified criteria.

protected getFirstMethodAttributeValue(string $method, string $attribute[, mixed $default = null ]) : mixed
Parameters
$method : string

Method name to check for attributes

$attribute : string

Attribute class name to look up

$default : mixed = null

Default value to use if no match found

Tags
throws
ReflectionException
Return values
mixed

getMinkDriver()

Get the Mink driver, initializing it if necessary.

protected getMinkDriver() : Selenium2Driver
Return values
Selenium2Driver

getPathResolver()

Get a config file path resolver

protected getPathResolver([string|null $baseDirectory = null ]) : PathResolver
Parameters
$baseDirectory : string|null = null

Optional directory to override APPLICATION_PATH

Return values
PathResolver

getSearchHomePage()

Load the Search/Home page as a foundation for searching.

protected getSearchHomePage([Session|null $session = null ]) : Element
Parameters
$session : Session|null = null

Mink session (will be automatically established if not provided).

Return values
Element

getSnoozeMultiplier()

Get the snooze multiplier.

protected getSnoozeMultiplier() : float
Return values
float

getTestName()

Get name of the current test

protected getTestName() : string
Return values
string

getVuFindUrl()

Get base URL of running VuFind instance.

protected getVuFindUrl([string $path = '' ]) : string
Parameters
$path : string = ''

Relative path to add to base URL.

Return values
string

gotoRecord()

Move the current page to a record by performing a search.

protected gotoRecord([string $query = 'Dewey' ]) : Element
Parameters
$query : string = 'Dewey'

Search query to perform.

Return values
Element

goToTagAdmin()

Set up and access the Tag Admin page.

protected goToTagAdmin([string $subPage = '' ]) : Element
Parameters
$subPage : string = ''

The tag admin sub-page (optional)

Return values
Element

hasElementsMatchingText()

Check whether an element containing the specified text exists.

protected hasElementsMatchingText(Element $page, string $selector, string $text) : bool
Parameters
$page : Element

Page element

$selector : string

CSS selector

$text : string

Expected text

Return values
bool

htmlValidationMsgToStr()

Convert a NU HTML Validator message to a string

protected htmlValidationMsgToStr(array<string|int, mixed> $message) : string
Parameters
$message : array<string|int, mixed>

Validation message

Return values
string

logWarning()

Log a warning message

protected logWarning(string $consoleMsg[, string $logMsg = '' ]) : void
Parameters
$consoleMsg : string

Message to output to console

$logMsg : string = ''

Message to output to PHP error log

Return values
void

makeAccount()

Make new account

protected makeAccount(Element $page, string $username) : void
Parameters
$page : Element

Page element

$username : string

Username to create

Return values
void

outputHtmlValidationMessages()

Output HTML validation messages to log file and/or console

protected outputHtmlValidationMessages(array<string|int, mixed> $messages, string $level, string $logFile, bool $quiet) : void
Parameters
$messages : array<string|int, mixed>

Messages

$level : string

Message level (info or error)

$logFile : string

Log file name

$quiet : bool

Whether the console output should be quiet

Return values
void

performSearch()

Search for the specified query.

protected performSearch(string $query[, string $handler = null ][, string $path = '/Search' ]) : Element
Parameters
$query : string

Search term(s)

$handler : string = null

Search type (optional)

$path : string = '/Search'

Path to use as search starting point (optional)

Return values
Element

removeUsername2And3And4()

Retry cleanup method in case of failure during testRating.

protected removeUsername2And3And4() : void
Return values
void

removeUsers()

Static teardown support function to destroy user accounts. Accounts are expected to exist, and the method will fail if they are missing.

protected static removeUsers(array<string|int, string>|string $users) : void
Parameters
$users : array<string|int, string>|string

User(s) to delete

Tags
throws
Exception
Return values
void

restoreConfigs()

Restore configurations to the state they were in prior to a call to changeConfig().

protected restoreConfigs() : void
Return values
void

snooze()

Sleep if necessary.

protected snooze([int $secs = 1 ]) : void
Parameters
$secs : int = 1

Seconds to sleep

Return values
void

sortResults()

Change sort order of search results

protected sortResults(Element $page, string $value) : void
Parameters
$page : Element

Current page

$value : string

Sort option

Return values
void

stopMinkSession()

Shut down the Mink session.

protected stopMinkSession() : void
Return values
void

submitLoginForm()

Submit the login form (assuming it's open).

protected submitLoginForm(Element $page[, bool $inModal = true ][, string $prefix = '' ]) : void
Parameters
$page : Element

Page element.

$inModal : bool = true

Should we assume the login box is in a lightbox?

$prefix : string = ''

Extra selector prefix

Return values
void

submitSearchForm()

Submit a search on the provided page.

protected submitSearchForm(Element $page, string $query[, string $handler = null ]) : void
Parameters
$page : Element

Current page object

$query : string

Search term(s)

$handler : string = null

Search type (optional)

Tags
throws
Exception
Return values
void

unFindCss()

Wait for an element to NOT exist.

protected unFindCss(Element $page, string $selector[, int $timeout = null ], int $index) : void
Parameters
$page : Element

Page element

$selector : string

CSS selector

$timeout : int = null

Wait timeout (in ms)

$index : int

Index of the element (0-based)

Return values
void

validateHtml()

Validate current page HTML if validation is enabled and a session exists

protected validateHtml([Element|null $page = null ]) : void
Parameters
$page : Element|null = null

Page to check (optional; uses the page from session by default)

Tags
throws
RuntimeException
Return values
void

waitForLightboxHidden()

Wait for Lightbox to become hidden if it isn't already.

protected waitForLightboxHidden() : void
Return values
void

waitForPageLoad()

Wait for page load (full page or any element) to complete

protected waitForPageLoad(Element $page[, int $timeout = null ]) : void
Parameters
$page : Element

Page element

$timeout : int = null

Wait timeout (in ms)

Return values
void

waitStatement()

Wait for a JavaScript statement to result in true.

protected waitStatement(string $statement[, int $timeout = null ]) : mixed

Includes a check for $ to be available to make sure jQuery has been loaded.

Parameters
$statement : string

JavaScript statement to evaluate

$timeout : int = null

Wait timeout (in ms)

Return values
mixed

Search results