Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
project
drupal
Commits
042de884
Commit
042de884
authored
Apr 23, 2012
by
Nathaniel Catchpole
Browse files
Issue
#1477218
by Berdir, Rob Loach: Convert Tracker tests to
PSR-0
, register
PSR-0
test classes.
parent
85a421eb
Changes
5
Hide whitespace changes
Inline
Side-by-side
core/modules/simpletest/simpletest.module
View file @
042de884
...
...
@@ -159,6 +159,7 @@ function simpletest_run_tests($test_list, $reporter = 'drupal') {
* Batch operation callback.
*/
function
_simpletest_batch_operation
(
$test_list_init
,
$test_id
,
&
$context
)
{
simpletest_classloader_register
();
// Get working values.
if
(
!
isset
(
$context
[
'sandbox'
][
'max'
]))
{
// First iteration: initialize working values.
...
...
@@ -291,6 +292,9 @@ function simpletest_log_read($test_id, $prefix, $test_class, $during_test = FALS
* a static variable. In order to list tests provided by disabled modules
* hook_registry_files_alter() is used to forcefully add them to the registry.
*
* PSR-0 classes are found by searching the designated directory for each module
* for files matching the PSR-0 standard.
*
* @return
* An array of tests keyed with the groups specified in each of the tests
* getInfo() method and then keyed by the test class. An example of the array
...
...
@@ -311,6 +315,10 @@ function simpletest_test_get_all() {
$groups
=
&
drupal_static
(
__FUNCTION__
);
if
(
!
$groups
)
{
// Make sure that namespaces for disabled modules are registered so that the
// checks below will find them.
simpletest_classloader_register
();
// Load test information from cache if available, otherwise retrieve the
// information from each tests getInfo() method.
if
(
$cache
=
cache
()
->
get
(
'simpletest'
))
{
...
...
@@ -318,8 +326,33 @@ function simpletest_test_get_all() {
}
else
{
// Select all clases in files ending with .test.
// @todo: Remove this once all tests have been ported to PSR-0.
$classes
=
db_query
(
"SELECT name FROM
{
registry
}
WHERE type = :type AND filename LIKE :name"
,
array
(
':type'
=>
'class'
,
':name'
=>
'%.test'
))
->
fetchCol
();
// Select all PSR-0 classes in the Tests namespace of all modules.
$system_list
=
db_query
(
"SELECT name, filename FROM
{
system
}
"
)
->
fetchAllKeyed
();
foreach
(
$system_list
as
$name
=>
$filename
)
{
// Build directory in which the test files would reside.
$tests_dir
=
DRUPAL_ROOT
.
'/'
.
dirname
(
$filename
)
.
'/lib/Drupal/'
.
$name
.
'/Tests'
;
// Scan it for test files if it exists.
if
(
is_dir
(
$tests_dir
))
{
$files
=
file_scan_directory
(
$tests_dir
,
'/.*\.php/'
);
if
(
!
empty
(
$files
))
{
$basedir
=
DRUPAL_ROOT
.
'/'
.
dirname
(
$filename
)
.
'/lib/'
;
foreach
(
$files
as
$file
)
{
// Convert the file name into the namespaced class name.
$replacements
=
array
(
'/'
=>
'\\'
,
$basedir
=>
''
,
'.php'
=>
''
,
);
$classes
[]
=
strtr
(
$file
->
uri
,
$replacements
);
}
}
}
}
// Check that each class has a getInfo() method and store the information
// in an array keyed with the group specified in the test information.
$groups
=
array
();
...
...
@@ -355,6 +388,19 @@ function simpletest_test_get_all() {
return
$groups
;
}
/**
* Registers namespaces for disabled modules.
*/
function
simpletest_classloader_register
()
{
// Get the cached test modules list and register a test namespace for each.
$disabled_modules
=
db_query
(
"SELECT name, filename FROM
{
system
}
WHERE status = 0"
)
->
fetchAllKeyed
();
if
(
$disabled_modules
)
{
foreach
(
$disabled_modules
as
$name
=>
$filename
)
{
drupal_classloader_register
(
$name
,
dirname
(
$filename
));
}
}
}
/**
* Implements hook_registry_files_alter().
*
...
...
core/modules/simpletest/simpletest.pages.inc
View file @
042de884
...
...
@@ -183,6 +183,7 @@ function theme_simpletest_test_table($variables) {
function
simpletest_test_form_submit
(
$form
,
&
$form_state
)
{
// Get list of tests.
$tests_list
=
array
();
simpletest_classloader_register
();
foreach
(
$form_state
[
'values'
]
as
$class_name
=>
$value
)
{
// Since class_exists() will likely trigger an autoload lookup,
// we do the fast check first.
...
...
@@ -233,6 +234,8 @@ function simpletest_result_form($form, &$form_state, $test_id) {
'#debug'
=>
0
,
);
simpletest_classloader_register
();
// Cycle through each test group.
$header
=
array
(
t
(
'Message'
),
t
(
'Group'
),
t
(
'Filename'
),
t
(
'Line'
),
t
(
'Function'
),
array
(
'colspan'
=>
2
,
'data'
=>
t
(
'Status'
)));
$form
[
'result'
][
'results'
]
=
array
();
...
...
core/modules/tracker/
tracker.test
→
core/modules/tracker/
lib/Drupal/tracker/Tests/TrackerTest.php
View file @
042de884
...
...
@@ -2,9 +2,13 @@
/**
* @file
*
Tests for tracker.module
.
*
Definition of Drupal\tracker\Tests\TrackerTest
.
*/
namespace
Drupal\tracker\Tests
;
use
DrupalWebTestCase
;
/**
* Defines a base class for testing tracker.module.
*/
...
...
core/modules/tracker/tracker.info
View file @
042de884
...
...
@@ -4,4 +4,3 @@ dependencies[] = comment
package
=
Core
version
=
VERSION
core
=
8.
x
files
[]
=
tracker
.
test
core/scripts/run-tests.sh
View file @
042de884
...
...
@@ -363,6 +363,8 @@ function simpletest_script_run_one_test($test_id, $test_class) {
// Bootstrap Drupal.
drupal_bootstrap
(
DRUPAL_BOOTSTRAP_FULL
)
;
simpletest_classloader_register
()
;
$test
=
new
$test_class
(
$test_id
)
;
$test
->run
()
;
$info
=
$test
->getInfo
()
;
...
...
@@ -396,7 +398,7 @@ function simpletest_script_command($test_id, $test_class) {
if
(
$args
[
'color'
])
{
$command
.
=
' --color'
;
}
$command
.
=
" --php "
.
escapeshellarg
(
$php
)
.
" --test-id
$test_id
--execute-test
$test_class
"
;
$command
.
=
" --php "
.
escapeshellarg
(
$php
)
.
" --test-id
$test_id
--execute-test
"
.
escapeshellarg
(
$test_class
)
;
return
$command
;
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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