- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
< ? php
// $Id$
/**
* Test case for typical Drupal tests .
*/
2008-06-24 21:51:03 +00:00
class DrupalWebTestCase {
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
protected $_logged_in = FALSE ;
protected $_content ;
2008-08-16 07:31:01 +00:00
protected $_url ;
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
protected $plain_text ;
protected $ch ;
2008-05-22 19:32:52 +00:00
protected $elements ;
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
// We do not reuse the cookies in further runs, so we do not need a file
// but we still need cookie handling, so we set the jar to NULL
protected $cookie_file = NULL ;
// Overwrite this any time to supply cURL options as necessary,
// DrupalTestCase itself never sets this but always obeys whats set.
2008-05-28 13:11:11 +00:00
protected $curl_options = array ();
protected $db_prefix_original ;
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
protected $original_file_directory ;
2008-06-24 21:51:03 +00:00
var $_results = array ( '#pass' => 0 , '#fail' => 0 , '#exception' => 0 );
2008-07-05 07:19:31 +00:00
var $_assertions = array ();
2008-06-24 21:51:03 +00:00
/**
* Constructor for DrupalWebTestCase .
*
* @ param @ test_id
* Tests with the same id are reported together .
*/
function __construct ( $test_id = NULL ) {
$this -> test_id = $test_id ;
}
/**
* This function stores the assert . Do not call directly .
*
* @ param $status
* Can be 'pass' , 'fail' , 'exception' . TRUE is a synonym for 'pass' , FALSE
* for 'fail' .
* @ param $message
* The message string .
* @ param $group
* WHich group this assert belongs to .
2008-09-10 04:13:01 +00:00
* @ param $caller
2008-06-24 21:51:03 +00:00
* By default , the assert comes from a function which names start with
* 'test' . Instead , you can specify where this assert originates from
2008-09-10 04:13:01 +00:00
* by passing in an associative array as $caller . Key 'file' is
2008-06-24 21:51:03 +00:00
* the name of the source file , 'line' is the line number and 'function'
* is the caller function itself .
*/
2008-09-10 04:13:01 +00:00
protected function _assert ( $status , $message = '' , $group = 'Other' , $caller = NULL ) {
2008-06-24 21:51:03 +00:00
global $db_prefix ;
2008-09-10 04:13:01 +00:00
// Convert boolean status to string status.
2008-06-24 21:51:03 +00:00
if ( is_bool ( $status )) {
$status = $status ? 'pass' : 'fail' ;
}
2008-09-10 04:13:01 +00:00
// Increment summary result counter.
2008-06-24 21:51:03 +00:00
$this -> _results [ '#' . $status ] ++ ;
2008-09-10 04:13:01 +00:00
// Get the function information about the call to the assertion method.
if ( ! $caller ) {
$caller = $this -> getAssertionCall ();
2008-06-24 21:51:03 +00:00
}
2008-09-10 04:13:01 +00:00
// Switch to non-testing database to store results in.
2008-06-24 21:51:03 +00:00
$current_db_prefix = $db_prefix ;
$db_prefix = $this -> db_prefix_original ;
2008-09-10 04:13:01 +00:00
// Creation assertion array that can be displayed while tests are running.
$this -> _assertions [] = $assertion = array (
2008-08-21 19:36:39 +00:00
'test_id' => $this -> test_id ,
2008-09-10 04:13:01 +00:00
'test_class' => get_class ( $this ),
2008-07-05 07:19:31 +00:00
'status' => $status ,
'message' => $message ,
2008-09-10 04:13:01 +00:00
'message_group' => $group ,
'function' => $caller [ 'function' ],
'line' => $caller [ 'line' ],
'file' => $caller [ 'file' ],
2008-07-05 07:19:31 +00:00
);
2008-09-10 04:13:01 +00:00
// Store assertion for display after the test has completed.
db_insert ( 'simpletest' ) -> fields ( $assertion ) -> execute ();
// Return to testing prefix.
2008-06-24 21:51:03 +00:00
$db_prefix = $current_db_prefix ;
return $status ;
}
2008-09-10 04:13:01 +00:00
/**
* Cycles through backtrace until the first non - assertion method is found .
*
* @ return
* Array representing the true caller .
*/
protected function getAssertionCall () {
$backtrace = debug_backtrace ();
// The first element is the call. The second element is the caller.
// We skip calls that occured in one of the methods of DrupalWebTestCase
// or in an assertion function.
while (( $caller = $backtrace [ 1 ]) &&
(( isset ( $caller [ 'class' ]) && $caller [ 'class' ] == 'DrupalWebTestCase' ) ||
substr ( $caller [ 'function' ], 0 , 6 ) == 'assert' )) {
// We remove that call.
array_shift ( $backtrace );
}
return _drupal_get_last_caller ( $backtrace );
}
2008-06-24 21:51:03 +00:00
/**
* Check to see if a value is not false ( not an empty string , 0 , NULL , or FALSE ) .
*
* @ param $value
* The value on which the assertion is to be done .
* @ param $message
* The message to display along with the assertion .
* @ param $group
* The type of assertion - examples are " Browser " , " PHP " .
* @ return
* The status passed in .
*/
protected function assertTrue ( $value , $message = '' , $group = 'Other' ) {
2008-08-30 09:42:25 +00:00
return $this -> _assert (( bool ) $value , $message ? $message : t ( 'Value is TRUE' ), $group );
2008-06-24 21:51:03 +00:00
}
/**
* Check to see if a value is false ( an empty string , 0 , NULL , or FALSE ) .
*
* @ param $value
* The value on which the assertion is to be done .
* @ param $message
* The message to display along with the assertion .
* @ param $group
* The type of assertion - examples are " Browser " , " PHP " .
* @ return
* The status passed in .
*/
protected function assertFalse ( $value , $message = '' , $group = 'Other' ) {
2008-08-30 09:42:25 +00:00
return $this -> _assert ( ! $value , $message ? $message : t ( 'Value is FALSE' ), $group );
2008-06-24 21:51:03 +00:00
}
/**
* Check to see if a value is NULL .
*
* @ param $value
* The value on which the assertion is to be done .
* @ param $message
* The message to display along with the assertion .
* @ param $group
* The type of assertion - examples are " Browser " , " PHP " .
* @ return
* The status passed in .
*/
protected function assertNull ( $value , $message = '' , $group = 'Other' ) {
2008-08-30 09:42:25 +00:00
return $this -> _assert ( ! isset ( $value ), $message ? $message : t ( 'Value is NULL' ), $group );
2008-06-24 21:51:03 +00:00
}
/**
* Check to see if a value is not NULL .
*
* @ param $value
* The value on which the assertion is to be done .
* @ param $message
* The message to display along with the assertion .
* @ param $group
* The type of assertion - examples are " Browser " , " PHP " .
* @ return
* The status passed in .
*/
protected function assertNotNull ( $value , $message = '' , $group = 'Other' ) {
2008-08-30 09:42:25 +00:00
return $this -> _assert ( isset ( $value ), $message ? $message : t ( 'Value is not NULL' ), $group );
2008-06-24 21:51:03 +00:00
}
/**
* Check to see if two values are equal .
*
* @ param $first
* The first value to check .
* @ param $second
* The second value to check .
* @ param $message
* The message to display along with the assertion .
* @ param $group
* The type of assertion - examples are " Browser " , " PHP " .
* @ return
* The status passed in .
*/
protected function assertEqual ( $first , $second , $message = '' , $group = 'Other' ) {
2008-08-30 09:42:25 +00:00
return $this -> _assert ( $first == $second , $message ? $message : t ( 'First value is equal to second value' ), $group );
2008-06-24 21:51:03 +00:00
}
/**
* Check to see if two values are not equal .
*
* @ param $first
* The first value to check .
* @ param $second
* The second value to check .
* @ param $message
* The message to display along with the assertion .
* @ param $group
* The type of assertion - examples are " Browser " , " PHP " .
* @ return
* The status passed in .
*/
protected function assertNotEqual ( $first , $second , $message = '' , $group = 'Other' ) {
2008-08-30 09:42:25 +00:00
return $this -> _assert ( $first != $second , $message ? $message : t ( 'First value is not equal to second value' ), $group );
2008-06-24 21:51:03 +00:00
}
/**
* Check to see if two values are identical .
*
* @ param $first
* The first value to check .
* @ param $second
* The second value to check .
* @ param $message
* The message to display along with the assertion .
* @ param $group
* The type of assertion - examples are " Browser " , " PHP " .
* @ return
* The status passed in .
*/
protected function assertIdentical ( $first , $second , $message = '' , $group = 'Other' ) {
2008-08-30 09:42:25 +00:00
return $this -> _assert ( $first === $second , $message ? $message : t ( 'First value is identical to second value' ), $group );
2008-06-24 21:51:03 +00:00
}
/**
* Check to see if two values are not identical .
*
* @ param $first
* The first value to check .
* @ param $second
* The second value to check .
* @ param $message
* The message to display along with the assertion .
* @ param $group
* The type of assertion - examples are " Browser " , " PHP " .
* @ return
* The status passed in .
*/
protected function assertNotIdentical ( $first , $second , $message = '' , $group = 'Other' ) {
2008-08-30 09:42:25 +00:00
return $this -> _assert ( $first !== $second , $message ? $message : t ( 'First value is not identical to second value' ), $group );
2008-06-24 21:51:03 +00:00
}
/**
* Fire an assertion that is always positive .
*
* @ param $message
* The message to display along with the assertion .
* @ param $group
* The type of assertion - examples are " Browser " , " PHP " .
* @ return
* TRUE .
*/
protected function pass ( $message = NULL , $group = 'Other' ) {
return $this -> _assert ( TRUE , $message , $group );
}
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
/**
2008-06-24 21:51:03 +00:00
* Fire an assertion that is always negative .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*
2008-06-24 21:51:03 +00:00
* @ param $message
* The message to display along with the assertion .
* @ param $group
* The type of assertion - examples are " Browser " , " PHP " .
* @ return
* FALSE .
*/
protected function fail ( $message = NULL , $group = 'Other' ) {
return $this -> _assert ( FALSE , $message , $group );
}
/**
* Fire an error assertion .
*
* @ param $message
* The message to display along with the assertion .
* @ param $group
* The type of assertion - examples are " Browser " , " PHP " .
2008-09-10 04:13:01 +00:00
* @ param $caller
2008-06-24 21:51:03 +00:00
* The caller of the error .
*/
2008-09-10 04:13:01 +00:00
protected function error ( $message = '' , $group = 'Other' , $caller = NULL ) {
return $this -> _assert ( 'exception' , $message , $group , $caller );
2008-06-24 21:51:03 +00:00
}
/**
* Run all tests in this class .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
2008-06-24 21:51:03 +00:00
function run () {
set_error_handler ( array ( $this , 'errorHandler' ));
$methods = array ();
// Iterate through all the methods in this class.
foreach ( get_class_methods ( get_class ( $this )) as $method ) {
// If the current method starts with "test", run it - it's a test.
if ( strtolower ( substr ( $method , 0 , 4 )) == 'test' ) {
2008-07-02 19:34:13 +00:00
$this -> setUp ();
2008-09-10 04:13:01 +00:00
try {
$this -> $method ();
// Finish up.
}
catch ( Exception $e ) {
$this -> exceptionHandler ( $e );
}
2008-07-02 19:34:13 +00:00
$this -> tearDown ();
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
}
2008-09-20 07:35:53 +00:00
// Clear out the error messages and restore error handler.
drupal_get_messages ();
2008-06-24 21:51:03 +00:00
restore_error_handler ();
}
/**
* Handle errors .
*
* @ see set_error_handler
*/
function errorHandler ( $severity , $message , $file = NULL , $line = NULL ) {
2008-10-15 16:05:51 +00:00
if ( $severity & error_reporting ()) {
2008-06-24 21:51:03 +00:00
$error_map = array (
E_STRICT => 'Run-time notice' ,
E_WARNING => 'Warning' ,
E_NOTICE => 'Notice' ,
E_CORE_ERROR => 'Core error' ,
E_CORE_WARNING => 'Core warning' ,
E_USER_ERROR => 'User error' ,
E_USER_WARNING => 'User warning' ,
E_USER_NOTICE => 'User notice' ,
E_RECOVERABLE_ERROR => 'Recoverable error' ,
);
2008-09-10 04:13:01 +00:00
$backtrace = debug_backtrace ();
$this -> error ( $message , $error_map [ $severity ], _drupal_get_last_caller ( $backtrace ));
2008-06-24 21:51:03 +00:00
}
return TRUE ;
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
2008-09-10 04:13:01 +00:00
/**
* Handle exceptions .
*
* @ see set_exception_handler
*/
function exceptionHandler ( $exception ) {
$backtrace = $exception -> getTrace ();
// Push on top of the backtrace the call that generated the exception.
array_unshift ( $backtrace , array (
'line' => $exception -> getLine (),
'file' => $exception -> getFile (),
));
$this -> error ( $exception -> getMessage (), 'Uncaught exception' , _drupal_get_last_caller ( $backtrace ));
}
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
/**
* Creates a node based on default settings .
*
2008-06-24 21:51:03 +00:00
* @ param $settings
* An associative array of settings to change from the defaults , keys are
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
* node properties , for example 'body' => 'Hello, world!' .
* @ return object Created node object .
*/
function drupalCreateNode ( $settings = array ()) {
// Populate defaults array
$defaults = array (
'body' => $this -> randomName ( 32 ),
'title' => $this -> randomName ( 8 ),
'comment' => 2 ,
2008-09-17 07:11:59 +00:00
'changed' => REQUEST_TIME ,
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
'format' => FILTER_FORMAT_DEFAULT ,
'moderate' => 0 ,
'promote' => 0 ,
'revision' => 1 ,
'log' => '' ,
'status' => 1 ,
'sticky' => 0 ,
'type' => 'page' ,
'revisions' => NULL ,
'taxonomy' => NULL ,
);
$defaults [ 'teaser' ] = $defaults [ 'body' ];
// If we already have a node, we use the original node's created time, and this
2008-06-24 21:51:03 +00:00
if ( isset ( $defaults [ 'created' ])) {
$defaults [ 'date' ] = format_date ( $defaults [ 'created' ], 'custom' , 'Y-m-d H:i:s O' );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
if ( empty ( $settings [ 'uid' ])) {
global $user ;
$defaults [ 'uid' ] = $user -> uid ;
}
$node = ( $settings + $defaults );
$node = ( object ) $node ;
node_save ( $node );
// small hack to link revisions to our test user
db_query ( 'UPDATE {node_revisions} SET uid = %d WHERE vid = %d' , $node -> uid , $node -> vid );
return $node ;
}
/**
* Creates a custom content type based on default settings .
*
2008-06-24 21:51:03 +00:00
* @ param $settings
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
* An array of settings to change from the defaults .
* Example : 'type' => 'foo' .
2008-06-24 21:51:03 +00:00
* @ return
* Created content type .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function drupalCreateContentType ( $settings = array ()) {
// find a non-existent random type name.
do {
$name = strtolower ( $this -> randomName ( 3 , 'type_' ));
} while ( node_get_types ( 'type' , $name ));
// Populate defaults array
$defaults = array (
'type' => $name ,
'name' => $name ,
'description' => '' ,
'help' => '' ,
'min_word_count' => 0 ,
'title_label' => 'Title' ,
'body_label' => 'Body' ,
'has_title' => 1 ,
'has_body' => 1 ,
);
// imposed values for a custom type
$forced = array (
'orig_type' => '' ,
'old_type' => '' ,
'module' => 'node' ,
'custom' => 1 ,
'modified' => 1 ,
'locked' => 0 ,
);
$type = $forced + $settings + $defaults ;
$type = ( object ) $type ;
2008-08-22 12:40:32 +00:00
$saved_type = node_type_save ( $type );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
node_types_rebuild ();
2008-08-22 12:40:32 +00:00
$this -> assertEqual ( $saved_type , SAVED_NEW , t ( 'Created content type %type.' , array ( '%type' => $type -> type )));
2008-09-10 04:13:01 +00:00
2008-08-22 12:40:32 +00:00
// Reset permissions so that permissions for this content type are available.
$this -> checkPermissions ( array (), TRUE );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
return $type ;
}
/**
* Get a list files that can be used in tests .
*
2008-06-24 21:51:03 +00:00
* @ param $type
* File type , possible values : 'binary' , 'html' , 'image' , 'javascript' , 'php' , 'sql' , 'text' .
* @ param $size
* File size in bytes to match . Please check the tests / files folder .
* @ return
* List of files that match filter .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function drupalGetTestFiles ( $type , $size = NULL ) {
$files = array ();
// Make sure type is valid.
if ( in_array ( $type , array ( 'binary' , 'html' , 'image' , 'javascript' , 'php' , 'sql' , 'text' ))) {
// Use original file directory instead of one created during setUp().
2008-05-10 06:55:09 +00:00
$path = $this -> original_file_directory . '/simpletest' ;
2008-09-20 03:49:24 +00:00
$files = file_scan_directory ( $path , '/' . $type . '\-.*/' );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
// If size is set then remove any files that are not of that size.
if ( $size !== NULL ) {
foreach ( $files as $file ) {
$stats = stat ( $file -> filename );
if ( $stats [ 'size' ] != $size ) {
unset ( $files [ $file -> filename ]);
}
}
}
}
usort ( $files , array ( $this , 'drupalCompareFiles' ));
return $files ;
}
/**
2008-10-12 08:30:05 +00:00
* Compare two files based on size and file name .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function drupalCompareFiles ( $file1 , $file2 ) {
2008-10-12 08:30:05 +00:00
// Determine which file is larger.
$compare_size = ( filesize ( $file1 -> filename ) > filesize ( $file2 -> filename ));
if ( ! $compare_size ) {
// Both files were the same size, so return whichever one is alphabetically greater.
return strnatcmp ( $file1 -> name , $file2 -> name );
}
else {
// Return TRUE if $file1 is larger than $file2.
return $compare_size ;
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
}
/**
* Generates a random string .
*
2008-06-24 21:51:03 +00:00
* @ param $number
* Number of characters in length to append to the prefix .
* @ param $prefix
* Prefix to use .
* @ return
* Randomly generated string .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function randomName ( $number = 4 , $prefix = 'simpletest_' ) {
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_' ;
for ( $x = 0 ; $x < $number ; $x ++ ) {
$prefix .= $chars { mt_rand ( 0 , strlen ( $chars ) - 1 )};
if ( $x == 0 ) {
$chars .= '0123456789' ;
}
}
return $prefix ;
}
/**
* Create a user with a given set of permissions . The permissions correspond to the
* names given on the privileges page .
*
2008-06-24 21:51:03 +00:00
* @ param $permissions
* Array of permission names to assign to user .
* @ return
* A fully loaded user object with pass_raw property , or FALSE if account
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
* creation fails .
*/
function drupalCreateUser ( $permissions = NULL ) {
// Create a role with the given permission set.
2008-06-08 19:09:50 +00:00
if ( ! ( $rid = $this -> _drupalCreateRole ( $permissions ))) {
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
return FALSE ;
}
// Create a user assigned to that role.
$edit = array ();
$edit [ 'name' ] = $this -> randomName ();
2008-05-10 06:55:09 +00:00
$edit [ 'mail' ] = $edit [ 'name' ] . '@example.com' ;
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
$edit [ 'roles' ] = array ( $rid => $rid );
$edit [ 'pass' ] = user_password ();
$edit [ 'status' ] = 1 ;
$account = user_save ( '' , $edit );
$this -> assertTrue ( ! empty ( $account -> uid ), t ( 'User created with name %name and pass %pass' , array ( '%name' => $edit [ 'name' ], '%pass' => $edit [ 'pass' ])), t ( 'User login' ));
if ( empty ( $account -> uid )) {
return FALSE ;
}
// Add the raw password so that we can log in as this user.
$account -> pass_raw = $edit [ 'pass' ];
return $account ;
}
/**
* Internal helper function ; Create a role with specified permissions .
*
2008-06-24 21:51:03 +00:00
* @ param $permissions
* Array of permission names to assign to role .
* @ return
* Role ID of newly created role , or FALSE if role creation failed .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
private function _drupalCreateRole ( $permissions = NULL ) {
// Generate string version of permissions list.
if ( $permissions === NULL ) {
2008-05-07 19:34:24 +00:00
$permissions = array ( 'access comments' , 'access content' , 'post comments' , 'post comments without approval' );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
2008-06-08 19:09:50 +00:00
if ( ! $this -> checkPermissions ( $permissions )) {
return FALSE ;
}
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
// Create new role.
$role_name = $this -> randomName ();
db_query ( " INSERT INTO { role} (name) VALUES ('%s') " , $role_name );
$role = db_fetch_object ( db_query ( " SELECT * FROM { role} WHERE name = '%s' " , $role_name ));
$this -> assertTrue ( $role , t ( 'Created role of name: @role_name, id: @rid' , array ( '@role_name' => $role_name , '@rid' => ( isset ( $role -> rid ) ? $role -> rid : t ( '-n/a-' )))), t ( 'Role' ));
if ( $role && ! empty ( $role -> rid )) {
// Assign permissions to role and mark it for clean-up.
2008-05-07 19:34:24 +00:00
foreach ( $permissions as $permission_string ) {
db_query ( " INSERT INTO { role_permission} (rid, permission) VALUES (%d, '%s') " , $role -> rid , $permission_string );
}
$count = db_result ( db_query ( " SELECT COUNT(*) FROM { role_permission} WHERE rid = %d " , $role -> rid ));
$this -> assertTrue ( $count == count ( $permissions ), t ( 'Created permissions: @perms' , array ( '@perms' => implode ( ', ' , $permissions ))), t ( 'Role' ));
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
return $role -> rid ;
}
else {
return FALSE ;
}
}
2008-06-08 19:09:50 +00:00
/**
* Check to make sure that the array of permissions are valid .
*
2008-06-24 21:51:03 +00:00
* @ param $permissions
* Permissions to check .
* @ param $reset
* Reset cached available permissions .
* @ return
* TRUE or FALSE depending on whether the permissions are valid .
2008-06-08 19:09:50 +00:00
*/
private function checkPermissions ( array $permissions , $reset = FALSE ) {
static $available ;
if ( ! isset ( $available ) || $reset ) {
$available = array_keys ( module_invoke_all ( 'perm' ));
}
$valid = TRUE ;
foreach ( $permissions as $permission ) {
if ( ! in_array ( $permission , $available )) {
$this -> fail ( t ( 'Invalid permission %permission.' , array ( '%permission' => $permission )), t ( 'Role' ));
$valid = FALSE ;
}
}
return $valid ;
}
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
/**
* Logs in a user with the internal browser . If already logged in then logs the current
* user out before logging in the specified user . If no user is specified then a new
* user will be created and logged in .
*
2008-06-24 21:51:03 +00:00
* @ param $user
* User object representing the user to login .
* @ return
* User that was logged in . Useful if no user was passed in order to retrieve
* the created user .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function drupalLogin ( $user = NULL ) {
if ( $this -> _logged_in ) {
$this -> drupalLogout ();
}
if ( ! isset ( $user )) {
$user = $this -> _drupalCreateRole ();
}
$edit = array (
'name' => $user -> name ,
'pass' => $user -> pass_raw
);
$this -> drupalPost ( 'user' , $edit , t ( 'Log in' ));
$pass = $this -> assertText ( $user -> name , t ( 'Found name: %name' , array ( '%name' => $user -> name )), t ( 'User login' ));
$pass = $pass && $this -> assertNoText ( t ( 'The username %name has been blocked.' , array ( '%name' => $user -> name )), t ( 'No blocked message at login page' ), t ( 'User login' ));
$pass = $pass && $this -> assertNoText ( t ( 'The name %name is a reserved username.' , array ( '%name' => $user -> name )), t ( 'No reserved message at login page' ), t ( 'User login' ));
$this -> _logged_in = $pass ;
return $user ;
}
/*
* Logs a user out of the internal browser , then check the login page to confirm logout .
*/
function drupalLogout () {
// Make a request to the logout page.
$this -> drupalGet ( 'logout' );
// Load the user page, the idea being if you were properly logged out you should be seeing a login screen.
$this -> drupalGet ( 'user' );
$pass = $this -> assertField ( 'name' , t ( 'Username field found.' ), t ( 'Logout' ));
$pass = $pass && $this -> assertField ( 'pass' , t ( 'Password field found.' ), t ( 'Logout' ));
$this -> _logged_in = ! $pass ;
}
/**
2008-06-09 08:11:45 +00:00
* Generates a random database prefix , runs the install scripts on the
* prefixed database and enable the specified modules . After installation
* many caches are flushed and the internal browser is setup so that the
* page requests will run on the new prefix . A temporary files directory
2008-06-05 21:55:45 +00:00
* is created with the same name as the database prefix .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*
2008-06-09 08:11:45 +00:00
* @ param ...
2008-06-05 21:55:45 +00:00
* List of modules to enable for the duration of the test .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function setUp () {
global $db_prefix ;
2008-05-28 13:11:11 +00:00
// Store necessary current values before switching to prefixed database.
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
$this -> db_prefix_original = $db_prefix ;
$clean_url_original = variable_get ( 'clean_url' , 0 );
2008-05-28 13:11:11 +00:00
// Generate temporary prefixed database to ensure that tests have a clean starting point.
2008-11-01 21:21:35 +00:00
$db_prefix = Database :: getActiveConnection () -> prefixTables ( '{simpletest' . mt_rand ( 1000 , 1000000 ) . '}' );
2008-09-10 04:13:01 +00:00
2008-09-20 20:22:25 +00:00
include_once DRUPAL_ROOT . '/includes/install.inc' ;
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
drupal_install_system ();
2008-05-28 13:11:11 +00:00
// Add the specified modules to the list of modules in the default profile.
2008-06-02 17:39:12 +00:00
$args = func_get_args ();
2008-10-01 00:27:29 +00:00
$modules = array_unique ( array_merge ( drupal_get_profile_modules ( 'default' , 'en' ), $args ));
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
drupal_install_modules ( $modules );
2008-05-28 13:11:11 +00:00
2008-08-21 19:36:39 +00:00
// Because the schema is static cached, we need to flush
// it between each run. If we don't, then it will contain
// stale data for the previous run's database prefix and all
// calls to it will fail.
drupal_get_schema ( NULL , TRUE );
2008-09-10 04:13:01 +00:00
2008-06-05 21:55:45 +00:00
// Run default profile tasks.
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
$task = 'profile' ;
default_profile_tasks ( $task , '' );
2008-05-28 13:11:11 +00:00
// Rebuild caches.
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
menu_rebuild ();
actions_synchronize ();
_drupal_flush_css_js ();
2008-05-28 13:11:11 +00:00
$this -> refreshVariables ();
2008-06-08 19:09:50 +00:00
$this -> checkPermissions ( array (), TRUE );
2008-05-28 13:11:11 +00:00
// Restore necessary variables.
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
variable_set ( 'install_profile' , 'default' );
variable_set ( 'install_task' , 'profile-finished' );
variable_set ( 'clean_url' , $clean_url_original );
// Use temporary files directory with the same prefix as database.
$this -> original_file_directory = file_directory_path ();
2008-05-10 06:55:09 +00:00
variable_set ( 'file_directory_path' , file_directory_path () . '/' . $db_prefix );
2008-10-12 03:46:08 +00:00
$directory = file_directory_path ();
2008-10-20 13:06:15 +00:00
file_check_directory ( $directory , FILE_CREATE_DIRECTORY ); // Create the files directory.
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
2008-05-28 13:11:11 +00:00
/**
* Refresh the in - memory set of variables . Useful after a page request is made
* that changes a variable in a different thread .
*
* In other words calling a settings page with $this -> drupalPost () with a changed
* value would update a variable to reflect that change , but in the thread that
* made the call ( thread running the test ) the changed variable would not be
* picked up .
*
* This method clears the variables cache and loads a fresh copy from the database
* to ensure that the most up - to - date set of variables is loaded .
*/
function refreshVariables () {
global $conf ;
cache_clear_all ( 'variables' , 'cache' );
$conf = variable_init ();
}
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
/**
* Delete created files and temporary files directory , delete the tables created by setUp (),
* and reset the database prefix .
*/
function tearDown () {
global $db_prefix ;
if ( preg_match ( '/simpletest\d+/' , $db_prefix )) {
// Delete temporary files directory and reset files directory path.
2008-04-30 06:45:43 +00:00
simpletest_clean_temporary_directory ( file_directory_path ());
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
variable_set ( 'file_directory_path' , $this -> original_file_directory );
2008-05-28 13:11:11 +00:00
// Remove all prefixed tables (all the tables in the schema).
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
$schema = drupal_get_schema ( NULL , TRUE );
$ret = array ();
foreach ( $schema as $name => $table ) {
db_drop_table ( $ret , $name );
}
2008-05-28 13:11:11 +00:00
// Return the database prefix to the original.
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
$db_prefix = $this -> db_prefix_original ;
2008-05-28 13:11:11 +00:00
// Ensure that the internal logged in variable is reset.
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
$this -> _logged_in = FALSE ;
2008-05-28 13:11:11 +00:00
2008-11-05 15:54:56 +00:00
// Reload module list and implementations to ensure that test module hooks
// aren't called after tests.
2008-06-03 19:53:42 +00:00
module_list ( TRUE );
2008-11-05 15:54:56 +00:00
module_implements ( MODULE_IMPLEMENTS_CLEAR_CACHE );
2008-06-03 19:53:42 +00:00
// Rebuild caches.
$this -> refreshVariables ();
2008-05-28 13:11:11 +00:00
// Close the CURL handler.
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
$this -> curlClose ();
}
}
/**
* Initializes the cURL connection and gets a session cookie .
*
2008-06-24 21:51:03 +00:00
* This function will add authentication headers as specified in
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
* simpletest_httpauth_username and simpletest_httpauth_pass variables .
* Also , see the description of $curl_options among the properties .
*/
protected function curlConnect () {
global $base_url , $db_prefix ;
if ( ! isset ( $this -> ch )) {
$this -> ch = curl_init ();
$curl_options = $this -> curl_options + array (
CURLOPT_COOKIEJAR => $this -> cookie_file ,
CURLOPT_URL => $base_url ,
CURLOPT_FOLLOWLOCATION => TRUE ,
CURLOPT_RETURNTRANSFER => TRUE ,
2008-08-18 19:25:52 +00:00
CURLOPT_SSL_VERIFYPEER => FALSE , // Required to make the tests run on https://
CURLOPT_SSL_VERIFYHOST => FALSE , // Required to make the tests run on https://
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
);
2008-11-01 21:21:35 +00:00
if ( preg_match ( '/simpletest\d+/' , $db_prefix , $matches )) {
$curl_options [ CURLOPT_USERAGENT ] = $matches [ 0 ];
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
if ( ! isset ( $curl_options [ CURLOPT_USERPWD ]) && ( $auth = variable_get ( 'simpletest_httpauth_username' , '' ))) {
if ( $pass = variable_get ( 'simpletest_httpauth_pass' , '' )) {
2008-05-10 06:55:09 +00:00
$auth .= ':' . $pass ;
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
$curl_options [ CURLOPT_USERPWD ] = $auth ;
}
return $this -> curlExec ( $curl_options );
}
}
/**
2008-06-24 21:51:03 +00:00
* Performs a cURL exec with the specified options after calling curlConnect () .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*
2008-06-24 21:51:03 +00:00
* @ param
* $curl_options Custom cURL options .
* @ return
* Content returned from the exec .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
protected function curlExec ( $curl_options ) {
$this -> curlConnect ();
$url = empty ( $curl_options [ CURLOPT_URL ]) ? curl_getinfo ( $this -> ch , CURLINFO_EFFECTIVE_URL ) : $curl_options [ CURLOPT_URL ];
curl_setopt_array ( $this -> ch , $this -> curl_options + $curl_options );
2008-08-16 07:31:01 +00:00
$this -> drupalSetContent ( curl_exec ( $this -> ch ), curl_getinfo ( $this -> ch , CURLINFO_EFFECTIVE_URL ));
2008-07-17 21:10:39 +00:00
$this -> assertTrue ( $this -> _content !== FALSE , t ( '!method to !url, response is !length bytes.' , array ( '!method' => ! empty ( $curl_options [ CURLOPT_NOBODY ]) ? 'HEAD' : ( empty ( $curl_options [ CURLOPT_POSTFIELDS ]) ? 'GET' : 'POST' ), '!url' => $url , '!length' => strlen ( $this -> _content ))), t ( 'Browser' ));
2008-08-16 07:31:01 +00:00
return $this -> drupalGetContent ();
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
/**
* Close the cURL handler and unset the handler .
*/
protected function curlClose () {
if ( isset ( $this -> ch )) {
curl_close ( $this -> ch );
unset ( $this -> ch );
}
}
/**
2008-06-24 21:51:03 +00:00
* Parse content returned from curlExec using DOM and SimpleXML .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*
2008-06-24 21:51:03 +00:00
* @ return
* A SimpleXMLElement or FALSE on failure .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
protected function parse () {
if ( ! $this -> elements ) {
// DOM can load HTML soup. But, HTML soup can throw warnings, supress
// them.
@ $htmlDom = DOMDocument :: loadHTML ( $this -> _content );
if ( $htmlDom ) {
2008-09-10 04:13:01 +00:00
$this -> pass ( t ( 'Valid HTML found on "@path"' , array ( '@path' => $this -> getUrl ())), t ( 'Browser' ));
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
// It's much easier to work with simplexml than DOM, luckily enough
// we can just simply import our DOM tree.
$this -> elements = simplexml_import_dom ( $htmlDom );
}
}
2008-05-22 19:32:52 +00:00
if ( ! $this -> elements ) {
$this -> fail ( t ( 'Parsed page successfully.' ), t ( 'Browser' ));
}
2008-06-26 19:31:31 +00:00
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
return $this -> elements ;
}
/**
* Retrieves a Drupal path or an absolute path .
*
2008-06-24 21:51:03 +00:00
* @ param $path
2008-07-17 21:10:39 +00:00
* Drupal path or URL to load into internal browser
2008-06-24 21:51:03 +00:00
* @ param $options
* Options to be forwarded to url () .
* @ return
* The retrieved HTML string , also available as $this -> drupalGetContent ()
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function drupalGet ( $path , $options = array ()) {
$options [ 'absolute' ] = TRUE ;
2008-04-28 08:36:06 +00:00
// We re-using a CURL connection here. If that connection still has certain
// options set, it might change the GET into a POST. Make sure we clear out
// previous options.
2008-07-17 21:10:39 +00:00
$out = $this -> curlExec ( array ( CURLOPT_HTTPGET => TRUE , CURLOPT_URL => url ( $path , $options ), CURLOPT_HEADER => FALSE , CURLOPT_NOBODY => FALSE ));
2008-05-28 13:11:11 +00:00
$this -> refreshVariables (); // Ensure that any changes to variables in the other thread are picked up.
2008-10-09 02:49:36 +00:00
// Replace original page output with new output from redirected page(s).
if (( $new = $this -> checkForMetaRefresh ())) {
$out = $new ;
}
2008-05-28 13:11:11 +00:00
return $out ;
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
/**
2008-06-03 13:45:07 +00:00
* Execute a POST request on a Drupal page .
* It will be done as usual POST request with SimpleBrowser .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*
2008-06-24 21:51:03 +00:00
* @ param $path
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
* Location of the post form . Either a Drupal path or an absolute path or
2008-08-18 18:40:07 +00:00
* NULL to post to the current page . For multi - stage forms you can set the
* path to NULL and have it post to the last received page . Example :
*
* // First step in form.
* $edit = array ( ... );
* $this -> drupalPost ( 'some_url' , $edit , t ( 'Save' ));
*
* // Second step in form.
* $edit = array ( ... );
* $this -> drupalPost ( NULL , $edit , t ( 'Save' ));
2008-06-24 21:51:03 +00:00
* @ param $edit
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
* Field data in an assocative array . Changes the current input fields
* ( where possible ) to the values indicated . A checkbox can be set to
2008-07-05 07:19:31 +00:00
* TRUE to be checked and FALSE to be unchecked . Note that when a form
* contains file upload fields , other fields cannot start with the '@'
* character .
2008-08-18 18:40:07 +00:00
*
* Multiple select fields can be set using name [] and setting each of the
* possible values . Example :
* $edit = array ();
* $edit [ 'name[]' ] = array ( 'value1' , 'value2' );
2008-06-24 21:51:03 +00:00
* @ param $submit
2008-06-03 13:45:07 +00:00
* Value of the submit button .
2008-06-26 19:31:31 +00:00
* @ param $options
* Options to be forwarded to url () .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
2008-06-26 19:31:31 +00:00
function drupalPost ( $path , $edit , $submit , $options = array ()) {
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
$submit_matches = FALSE ;
if ( isset ( $path )) {
2008-06-26 19:31:31 +00:00
$html = $this -> drupalGet ( $path , $options );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
if ( $this -> parse ()) {
$edit_save = $edit ;
// Let's iterate over all the forms.
2008-08-22 12:35:55 +00:00
$forms = $this -> xpath ( '//form' );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
foreach ( $forms as $form ) {
2008-06-26 19:31:31 +00:00
// We try to set the fields of this form as specified in $edit.
$edit = $edit_save ;
$post = array ();
$upload = array ();
$submit_matches = $this -> handleForm ( $post , $edit , $upload , $submit , $form );
$action = isset ( $form [ 'action' ]) ? $this -> getAbsoluteUrl ( $form [ 'action' ]) : $this -> getUrl ();
2008-07-02 20:05:11 +00:00
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
// We post only if we managed to handle every field in edit and the
2008-06-03 13:45:07 +00:00
// submit button matches.
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
if ( ! $edit && $submit_matches ) {
2008-07-05 07:19:31 +00:00
if ( $upload ) {
// TODO: cURL handles file uploads for us, but the implementation
// is broken. This is a less than elegant workaround. Alternatives
// are being explored at #253506.
foreach ( $upload as $key => $file ) {
$post [ $key ] = '@' . realpath ( $file );
}
}
else {
foreach ( $post as $key => $value ) {
// Encode according to application/x-www-form-urlencoded
// Both names and values needs to be urlencoded, according to
// http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1
$post [ $key ] = urlencode ( $key ) . '=' . urlencode ( $value );
}
$post = implode ( '&' , $post );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
2008-09-14 06:46:34 +00:00
$out = $this -> curlExec ( array ( CURLOPT_URL => $action , CURLOPT_POST => TRUE , CURLOPT_POSTFIELDS => $post , CURLOPT_HEADER => FALSE ));
2008-06-03 13:45:07 +00:00
// Ensure that any changes to variables in the other thread are picked up.
2008-06-09 08:11:45 +00:00
$this -> refreshVariables ();
2008-10-09 02:49:36 +00:00
// Replace original page output with new output from redirected page(s).
if (( $new = $this -> checkForMetaRefresh ())) {
$out = $new ;
}
2008-05-28 13:11:11 +00:00
return $out ;
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
}
// We have not found a form which contained all fields of $edit.
foreach ( $edit as $name => $value ) {
$this -> fail ( t ( 'Failed to set field @name to @value' , array ( '@name' => $name , '@value' => $value )));
}
2008-08-18 18:40:07 +00:00
$this -> assertTrue ( $submit_matches , t ( 'Found the @submit button' , array ( '@submit' => $submit )));
$this -> fail ( t ( 'Found the requested form fields at @path' , array ( '@path' => $path )));
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
}
2008-10-09 02:49:36 +00:00
/**
* Check for meta refresh tag and if found call drupalGet () recursively . This
* function looks for the http - equiv attribute to be set to " Refresh "
* and is case - sensitive .
*
* @ return
* Either the new page content or FALSE .
*/
private function checkForMetaRefresh () {
if ( $this -> drupalGetContent () != '' && $this -> parse ()) {
$refresh = $this -> xpath ( '//meta[@http-equiv="Refresh"]' );
if ( ! empty ( $refresh )) {
// Parse the content attribute of the meta tag for the format:
// "[delay]: URL=[page_to_redirect_to]".
if ( preg_match ( '/\d+;\s*URL=(?P<url>.*)/i' , $refresh [ 0 ][ 'content' ], $match )) {
return $this -> drupalGet ( $this -> getAbsoluteUrl ( decode_entities ( $match [ 'url' ])));
}
}
}
return FALSE ;
}
2008-07-17 21:10:39 +00:00
/**
* Retrieves only the headers for a Drupal path or an absolute path .
*
* @ param $path
* Drupal path or URL to load into internal browser
* @ param $options
* Options to be forwarded to url () .
* @ return
* The retrieved headers , also available as $this -> drupalGetContent ()
*/
function drupalHead ( $path , $options = array ()) {
$options [ 'absolute' ] = TRUE ;
$out = $this -> curlExec ( array ( CURLOPT_HEADER => TRUE , CURLOPT_NOBODY => TRUE , CURLOPT_URL => url ( $path , $options )));
$this -> refreshVariables (); // Ensure that any changes to variables in the other thread are picked up.
return $out ;
}
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
/**
* Handle form input related to drupalPost () . Ensure that the specified fields
2008-06-03 13:45:07 +00:00
* exist and attempt to create POST data in the correct manner for the particular
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
* field type .
*
2008-06-24 21:51:03 +00:00
* @ param $post
2008-06-03 13:45:07 +00:00
* Reference to array of post values .
2008-06-24 21:51:03 +00:00
* @ param $edit
2008-06-03 13:45:07 +00:00
* Reference to array of edit values to be checked against the form .
2008-06-24 21:51:03 +00:00
* @ param $submit
2008-06-03 13:45:07 +00:00
* Form submit button value .
2008-06-24 21:51:03 +00:00
* @ param $form
2008-06-03 13:45:07 +00:00
* Array of form elements .
2008-06-24 21:51:03 +00:00
* @ return
2008-06-03 13:45:07 +00:00
* Submit value matches a valid submit input in the form .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
protected function handleForm ( & $post , & $edit , & $upload , $submit , $form ) {
// Retrieve the form elements.
$elements = $form -> xpath ( './/input|.//textarea|.//select' );
$submit_matches = FALSE ;
foreach ( $elements as $element ) {
// SimpleXML objects need string casting all the time.
2008-06-10 19:39:29 +00:00
$name = ( string ) $element [ 'name' ];
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
// This can either be the type of <input> or the name of the tag itself
// for <select> or <textarea>.
$type = isset ( $element [ 'type' ]) ? ( string ) $element [ 'type' ] : $element -> getName ();
$value = isset ( $element [ 'value' ]) ? ( string ) $element [ 'value' ] : '' ;
$done = FALSE ;
2008-06-24 21:51:03 +00:00
if ( isset ( $edit [ $name ])) {
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
switch ( $type ) {
case 'text' :
case 'textarea' :
case 'password' :
$post [ $name ] = $edit [ $name ];
unset ( $edit [ $name ]);
break ;
case 'radio' :
if ( $edit [ $name ] == $value ) {
$post [ $name ] = $edit [ $name ];
unset ( $edit [ $name ]);
}
break ;
case 'checkbox' :
// To prevent checkbox from being checked.pass in a FALSE,
// otherwise the checkbox will be set to its value regardless
// of $edit.
if ( $edit [ $name ] === FALSE ) {
unset ( $edit [ $name ]);
continue 2 ;
}
else {
unset ( $edit [ $name ]);
$post [ $name ] = $value ;
}
break ;
case 'select' :
$new_value = $edit [ $name ];
$index = 0 ;
$key = preg_replace ( '/\[\]$/' , '' , $name );
$options = $this -> getAllOptions ( $element );
foreach ( $options as $option ) {
if ( is_array ( $new_value )) {
$option_value = ( string ) $option [ 'value' ];
if ( in_array ( $option_value , $new_value )) {
2008-05-10 06:55:09 +00:00
$post [ $key . '[' . $index ++ . ']' ] = $option_value ;
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
$done = TRUE ;
unset ( $edit [ $name ]);
}
}
elseif ( $new_value == $option [ 'value' ]) {
$post [ $name ] = $new_value ;
unset ( $edit [ $name ]);
$done = TRUE ;
}
}
break ;
case 'file' :
$upload [ $name ] = $edit [ $name ];
unset ( $edit [ $name ]);
break ;
}
}
if ( ! isset ( $post [ $name ]) && ! $done ) {
switch ( $type ) {
case 'textarea' :
$post [ $name ] = ( string ) $element ;
break ;
case 'select' :
$single = empty ( $element [ 'multiple' ]);
$first = TRUE ;
$index = 0 ;
$key = preg_replace ( '/\[\]$/' , '' , $name );
$options = $this -> getAllOptions ( $element );
foreach ( $options as $option ) {
// For single select, we load the first option, if there is a
// selected option that will overwrite it later.
if ( $option [ 'selected' ] || ( $first && $single )) {
$first = FALSE ;
if ( $single ) {
$post [ $name ] = ( string ) $option [ 'value' ];
}
else {
2008-05-10 06:55:09 +00:00
$post [ $key . '[' . $index ++ . ']' ] = ( string ) $option [ 'value' ];
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
}
}
break ;
case 'file' :
break ;
case 'submit' :
case 'image' :
if ( $submit == $value ) {
$post [ $name ] = $value ;
$submit_matches = TRUE ;
}
break ;
case 'radio' :
case 'checkbox' :
if ( ! isset ( $element [ 'checked' ])) {
break ;
}
// Deliberate no break.
default :
$post [ $name ] = $value ;
}
}
}
return $submit_matches ;
}
2008-08-22 12:35:55 +00:00
/**
* Peform an xpath search on the contents of the internal browser . The search
* is relative to the root element ( HTML tag normally ) of the page .
*
* @ param $xpath
* The xpath string to use in the search .
* @ return
* The return value of the xpath search . For details on the xpath string
* format and return values see the SimpleXML documentation .
* http :// us . php . net / manual / function . simplexml - element - xpath . php
*/
public function xpath ( $xpath ) {
if ( $this -> parse ()) {
return $this -> elements -> xpath ( $xpath );
}
return FALSE ;
}
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
/**
* Get all option elements , including nested options , in a select .
*
2008-06-24 21:51:03 +00:00
* @ param $element
* The element for which to get the options .
* @ return
* Option elements in select .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
private function getAllOptions ( SimpleXMLElement $element ) {
$options = array ();
// Add all options items.
foreach ( $element -> option as $option ) {
$options [] = $option ;
}
// Search option group children.
if ( isset ( $element -> optgroup )) {
2008-08-30 09:27:21 +00:00
foreach ( $element -> optgroup as $group ) {
$options = array_merge ( $options , $this -> getAllOptions ( $group ));
}
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
return $options ;
}
2008-08-23 07:42:54 +00:00
/**
* Pass if a link with the specified label is found , and optional with the
* specified index .
*
* @ param $label
* Text between the anchor tags .
* @ param $index
* Link position counting from zero .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to , defaults to 'Other' .
*/
public function assertLink ( $label , $index = 0 , $message = '' , $group = 'Other' ) {
$links = $this -> xpath ( '//a[text()="' . $label . '"]' );
$message = ( $message ? $message : t ( 'Link with label "!label" found.' , array ( '!label' => $label )));
$this -> _assert ( isset ( $links [ $index ]), $message , $group );
}
/**
* Pass if a link with the specified label is not found .
*
* @ param $label
* Text between the anchor tags .
* @ param $index
* Link position counting from zero .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to , defaults to 'Other' .
*/
public function assertNoLink ( $label , $message = '' , $group = 'Other' ) {
$links = $this -> xpath ( '//a[text()="' . $label . '"]' );
$message = ( $message ? $message : t ( 'Link with label "!label" not found.' , array ( '!label' => $label )));
$this -> _assert ( empty ( $links ), $message , $group );
}
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
/**
* Follows a link by name .
*
* Will click the first link found with this link text by default , or a
* later one if an index is given . Match is case insensitive with
* normalized space . The label is translated label . There is an assert
* for successful click .
*
2008-06-24 21:51:03 +00:00
* @ param $label
* Text between the anchor tags .
* @ param $index
* Link position counting from zero .
* @ return
* Page on success , or FALSE on failure .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function clickLink ( $label , $index = 0 ) {
$url_before = $this -> getUrl ();
2008-08-22 12:35:55 +00:00
$urls = $this -> xpath ( '//a[text()="' . $label . '"]' );
2008-09-19 02:47:38 +00:00
2008-08-22 12:35:55 +00:00
if ( isset ( $urls [ $index ])) {
$url_target = $this -> getAbsoluteUrl ( $urls [ $index ][ 'href' ]);
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
2008-09-19 02:47:38 +00:00
$this -> assertTrue ( isset ( $urls [ $index ]), t ( 'Clicked link "!label" (!url_target) from !url_before' , array ( '!label' => $label , '!url_target' => $url_target , '!url_before' => $url_before )), t ( 'Browser' ));
if ( isset ( $urls [ $index ])) {
return $this -> drupalGet ( $url_target );
}
return FALSE ;
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
/**
* Takes a path and returns an absolute path .
*
2008-06-24 21:51:03 +00:00
* @ param $path
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
* The path , can be a Drupal path or a site - relative path . It might have a
* query , too . Can even be an absolute path which is just passed through .
* @ return
* An absolute path .
*/
function getAbsoluteUrl ( $path ) {
$options = array ( 'absolute' => TRUE );
$parts = parse_url ( $path );
// This is more crude than the menu_is_external but enough here.
if ( empty ( $parts [ 'host' ])) {
$path = $parts [ 'path' ];
$base_path = base_path ();
$n = strlen ( $base_path );
if ( substr ( $path , 0 , $n ) == $base_path ) {
$path = substr ( $path , $n );
}
if ( isset ( $parts [ 'query' ])) {
$options [ 'query' ] = $parts [ 'query' ];
}
$path = url ( $path , $options );
}
return $path ;
}
/**
* Get the current url from the cURL handler .
*
2008-06-24 21:51:03 +00:00
* @ return
* The current url .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function getUrl () {
2008-08-16 07:31:01 +00:00
return $this -> _url ;
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
/**
* Gets the current raw HTML of requested page .
*/
function drupalGetContent () {
return $this -> _content ;
}
2008-08-16 07:31:01 +00:00
/**
* Sets the raw HTML content . This can be useful when a page has been fetched
* outside of the internal browser and assertions need to be made on the
* returned page .
*
* A good example would be when testing drupal_http_request () . After fetching
* the page the content can be set and page elements can be checked to ensure
* that the function worked properly .
*/
function drupalSetContent ( $content , $url = 'internal:' ) {
$this -> _content = $content ;
$this -> _url = $url ;
$this -> plain_text = FALSE ;
$this -> elements = FALSE ;
}
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
/**
* Pass if the raw text IS found on the loaded page , fail otherwise . Raw text
* refers to the raw HTML that the page generated .
*
2008-06-24 21:51:03 +00:00
* @ param $raw
* Raw ( HTML ) string to look for .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to , defaults to 'Other' .
* @ return
* TRUE on pass , FALSE on fail .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
2008-08-30 09:42:25 +00:00
function assertRaw ( $raw , $message = '%s found' , $group = 'Other' ) {
2008-06-24 21:51:03 +00:00
return $this -> _assert ( strpos ( $this -> _content , $raw ) !== FALSE , $message , $group );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
/**
* Pass if the raw text is NOT found on the loaded page , fail otherwise . Raw text
* refers to the raw HTML that the page generated .
*
2008-06-24 21:51:03 +00:00
* @ param $raw
* Raw ( HTML ) string to look for .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to , defaults to 'Other' .
* @ return
* TRUE on pass , FALSE on fail .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
2008-08-30 09:42:25 +00:00
function assertNoRaw ( $raw , $message = '%s found' , $group = 'Other' ) {
2008-06-24 21:51:03 +00:00
return $this -> _assert ( strpos ( $this -> _content , $raw ) === FALSE , $message , $group );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
/**
* Pass if the text IS found on the text version of the page . The text version
* is the equivilent of what a user would see when viewing through a web browser .
* In other words the HTML has been filtered out of the contents .
*
2008-06-24 21:51:03 +00:00
* @ param $text
* Plain text to look for .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to , defaults to 'Other' .
* @ return
* TRUE on pass , FALSE on fail .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function assertText ( $text , $message = '' , $group = 'Other' ) {
2008-09-10 04:13:01 +00:00
return $this -> assertTextHelper ( $text , $message , $group , FALSE );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
/**
* Pass if the text is NOT found on the text version of the page . The text version
* is the equivilent of what a user would see when viewing through a web browser .
* In other words the HTML has been filtered out of the contents .
*
2008-06-24 21:51:03 +00:00
* @ param $text
* Plain text to look for .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to , defaults to 'Other' .
* @ return
* TRUE on pass , FALSE on fail .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function assertNoText ( $text , $message = '' , $group = 'Other' ) {
return $this -> assertTextHelper ( $text , $message , $group , TRUE );
}
/**
2008-06-24 21:51:03 +00:00
* Helper for assertText and assertNoText .
*
* It is not recommended to call this function directly .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*
2008-06-24 21:51:03 +00:00
* @ param $text
* Plain text to look for .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to .
* @ param $not_exists
* TRUE if this text should not exist , FALSE if it should .
* @ return
* TRUE on pass , FALSE on fail .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
protected function assertTextHelper ( $text , $message , $group , $not_exists ) {
if ( $this -> plain_text === FALSE ) {
$this -> plain_text = filter_xss ( $this -> _content , array ());
}
if ( ! $message ) {
2008-08-30 09:42:25 +00:00
$message = '"' . $text . '"' . ( $not_exists ? ' not found' : ' found' );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
2008-06-24 21:51:03 +00:00
return $this -> _assert ( $not_exists == ( strpos ( $this -> plain_text , $text ) === FALSE ), $message , $group );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
/**
* Will trigger a pass if the Perl regex pattern is found in the raw content .
*
2008-06-24 21:51:03 +00:00
* @ param $pattern
* Perl regex to look for including the regex delimiters .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to .
* @ return
* TRUE on pass , FALSE on fail .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
2008-08-30 09:42:25 +00:00
function assertPattern ( $pattern , $message = 'Pattern %s found' , $group = 'Other' ) {
2008-06-24 21:51:03 +00:00
return $this -> _assert (( bool ) preg_match ( $pattern , $this -> drupalGetContent ()), $message , $group );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
/**
* Will trigger a pass if the perl regex pattern is not present in raw content .
*
2008-06-24 21:51:03 +00:00
* @ param $pattern
* Perl regex to look for including the regex delimiters .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to .
* @ return
* TRUE on pass , FALSE on fail .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
2008-08-30 09:42:25 +00:00
function assertNoPattern ( $pattern , $message = 'Pattern %s not found' , $group = 'Other' ) {
2008-06-24 21:51:03 +00:00
return $this -> _assert ( ! preg_match ( $pattern , $this -> drupalGetContent ()), $message , $group );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
/**
* Pass if the page title is the given string .
*
2008-06-24 21:51:03 +00:00
* @ param $title
* The string the title should be .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to .
* @ return
* TRUE on pass , FALSE on fail .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function assertTitle ( $title , $message , $group = 'Other' ) {
2008-08-22 12:35:55 +00:00
return $this -> _assert ( $this -> xpath ( '//title[text()="' . $title . '"]' ) !== FALSE , $message , $group );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
/**
* Assert that a field exists in the current page by the given XPath .
*
2008-06-24 21:51:03 +00:00
* @ param $xpath
* XPath used to find the field .
* @ param $value
* Value of the field to assert .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to .
* @ return
* TRUE on pass , FALSE on fail .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function assertFieldByXPath ( $xpath , $value , $message , $group = 'Other' ) {
2008-08-22 12:35:55 +00:00
$fields = $this -> xpath ( $xpath );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
// If value specified then check array for match.
$found = TRUE ;
if ( $value ) {
$found = FALSE ;
2008-08-22 12:35:55 +00:00
if ( $fields ) {
foreach ( $fields as $field ) {
2008-09-17 00:46:44 +00:00
if ( isset ( $field [ 'value' ]) && $field [ 'value' ] == $value ) {
// Input element with correct value.
$found = TRUE ;
}
2008-10-12 04:30:09 +00:00
elseif ( isset ( $field -> option )) {
2008-09-17 00:46:44 +00:00
// Select element found.
if ( $this -> getSelectedItem ( $field ) == $value ) {
$found = TRUE ;
}
else {
// No item selected so use first item.
$items = $this -> getAllOptions ( $field );
if ( ! empty ( $items ) && $items [ 0 ][ 'value' ] == $value ) {
$found = TRUE ;
}
}
}
2008-10-12 04:30:09 +00:00
elseif ( isset ( $field [ 0 ]) && $field [ 0 ] == $value ) {
2008-09-17 00:46:44 +00:00
// Text area with correct text.
2008-08-22 12:35:55 +00:00
$found = TRUE ;
}
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
}
}
return $this -> assertTrue ( $fields && $found , $message , $group );
}
2008-09-17 00:46:44 +00:00
/**
* Get the selected value from a select field .
*
* @ param $element
* SimpleXMLElement select element .
* @ return
* The selected value or FALSE .
*/
function getSelectedItem ( SimpleXMLElement $element ) {
foreach ( $element -> children () as $item ) {
if ( isset ( $item [ 'selected' ])) {
return $item [ 'value' ];
}
2008-10-12 04:30:09 +00:00
elseif ( $item -> getName () == 'optgroup' ) {
2008-09-17 00:46:44 +00:00
if ( $value = $this -> getSelectedItem ( $item )) {
return $value ;
}
}
}
return FALSE ;
}
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
/**
2008-06-24 21:51:03 +00:00
* Assert that a field does not exist in the current page by the given XPath .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*
2008-06-24 21:51:03 +00:00
* @ param $xpath
* XPath used to find the field .
* @ param $value
* Value of the field to assert .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to .
* @ return
* TRUE on pass , FALSE on fail .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function assertNoFieldByXPath ( $xpath , $value , $message , $group = 'Other' ) {
2008-08-22 12:35:55 +00:00
$fields = $this -> xpath ( $xpath );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
// If value specified then check array for match.
$found = TRUE ;
if ( $value ) {
$found = FALSE ;
2008-08-22 12:35:55 +00:00
if ( $fields ) {
foreach ( $fields as $field ) {
if ( $field [ 'value' ] == $value ) {
$found = TRUE ;
}
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
}
}
return $this -> assertFalse ( $fields && $found , $message , $group );
}
/**
* Assert that a field exists in the current page with the given name and value .
*
2008-06-24 21:51:03 +00:00
* @ param $name
* Name of field to assert .
* @ param $value
* Value of the field to assert .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to .
* @ return
* TRUE on pass , FALSE on fail .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function assertFieldByName ( $name , $value = '' , $message = '' ) {
return $this -> assertFieldByXPath ( $this -> _constructFieldXpath ( 'name' , $name ), $value , $message ? $message : t ( 'Found field by name @name' , array ( '@name' => $name )), t ( 'Browser' ));
}
/**
2008-06-24 21:51:03 +00:00
* Assert that a field does not exist with the given name and value .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*
2008-06-24 21:51:03 +00:00
* @ param $name
* Name of field to assert .
* @ param $value
* Value of the field to assert .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to .
* @ return
* TRUE on pass , FALSE on fail .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function assertNoFieldByName ( $name , $value = '' , $message = '' ) {
return $this -> assertNoFieldByXPath ( $this -> _constructFieldXpath ( 'name' , $name ), $value , $message ? $message : t ( 'Did not find field by name @name' , array ( '@name' => $name )), t ( 'Browser' ));
}
/**
* Assert that a field exists in the current page with the given id and value .
*
2008-06-24 21:51:03 +00:00
* @ param $id
* Id of field to assert .
* @ param $value
* Value of the field to assert .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to .
* @ return
* TRUE on pass , FALSE on fail .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function assertFieldById ( $id , $value = '' , $message = '' ) {
return $this -> assertFieldByXPath ( $this -> _constructFieldXpath ( 'id' , $id ), $value , $message ? $message : t ( 'Found field by id @id' , array ( '@id' => $id )), t ( 'Browser' ));
}
/**
2008-06-24 21:51:03 +00:00
* Assert that a field does not exist with the given id and value .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*
2008-06-24 21:51:03 +00:00
* @ param $id
* Id of field to assert .
* @ param $value
* Value of the field to assert .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to .
* @ return
* TRUE on pass , FALSE on fail .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function assertNoFieldById ( $id , $value = '' , $message = '' ) {
return $this -> assertNoFieldByXPath ( $this -> _constructFieldXpath ( 'id' , $id ), $value , $message ? $message : t ( 'Did not find field by id @id' , array ( '@id' => $id )), t ( 'Browser' ));
}
/**
2008-06-24 21:51:03 +00:00
* Assert that a field exists with the given name or id .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*
2008-06-24 21:51:03 +00:00
* @ param $field
* Name or id of field to assert .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to .
* @ return
* TRUE on pass , FALSE on fail .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function assertField ( $field , $message = '' , $group = 'Other' ) {
2008-05-10 06:55:09 +00:00
return $this -> assertFieldByXPath ( $this -> _constructFieldXpath ( 'name' , $field ) . '|' . $this -> _constructFieldXpath ( 'id' , $field ), '' , $message , $group );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
/**
2008-06-24 21:51:03 +00:00
* Assert that a field does not exist with the given name or id .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*
2008-06-24 21:51:03 +00:00
* @ param $field
* Name or id of field to assert .
* @ param $message
* Message to display .
* @ param $group
* The group this message belongs to .
* @ return
* TRUE on pass , FALSE on fail .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function assertNoField ( $field , $message = '' , $group = 'Other' ) {
2008-05-10 06:55:09 +00:00
return $this -> assertNoFieldByXPath ( $this -> _constructFieldXpath ( 'name' , $field ) . '|' . $this -> _constructFieldXpath ( 'id' , $field ), '' , $message , $group );
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
/**
* Construct an XPath for the given set of attributes and value .
*
2008-06-24 21:51:03 +00:00
* @ param $attribute
* Field attributes .
* @ param $value
* Value of field .
* @ return
* XPath for specified values .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function _constructFieldXpath ( $attribute , $value ) {
2008-05-10 06:55:09 +00:00
return '//textarea[@' . $attribute . '="' . $value . '"]|//input[@' . $attribute . '="' . $value . '"]|//select[@' . $attribute . '="' . $value . '"]' ;
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
}
/**
* Assert the page responds with the specified response code .
*
2008-06-24 21:51:03 +00:00
* @ param $code
* Reponse code . For example 200 is a successful page request . For a list
* of all codes see http :// www . w3 . org / Protocols / rfc2616 / rfc2616 - sec10 . html .
* @ param $message
* Message to display .
* @ return
* Assertion result .
- Added a test framework to Drupal along with a first batch of tests for
Drupal core! This is an important milestone for the project so enable
the module and check it out ... :)
Thanks to Rok Žlender, Károly Négyesi, Jimmy Berry, Kevin Bridges, Charlie
Gordon, Douglas Hubler, Miglius Alaburda, Andy Kirkham, Dimitri13, Kieran
Lal, Moshe Weitzman, and the many other people that helped with testing
over the past years and that drove this home.
It all works but it is still rough around the edges (i.e. documentation
is still being written, the coding style is not 100% yet, a number of
tests still fail) but we spent the entire weekend working on it in Paris
and made a ton of progress. The best way to help and to get up to speed,
is to start writing and contributing some tests ... as well as fixing
some of the failures.
For those willing to help with improving the test framework, here are
some next steps and issues to resolve:
- How to best approach unit tests and mock functions?
- How to test drupal_mail() and drupal_http_request()?
- How to improve the admin UI so we have a nice progress bar?
- How best to do code coverage?
- See http://g.d.o/node/10099 for more ...
2008-04-20 18:34:43 +00:00
*/
function assertResponse ( $code , $message = '' ) {
$curl_code = curl_getinfo ( $this -> ch , CURLINFO_HTTP_CODE );
$match = is_array ( $code ) ? in_array ( $curl_code , $code ) : $curl_code == $code ;
return $this -> assertTrue ( $match , $message ? $message : t ( 'HTTP response expected !code, actual !curl_code' , array ( '!code' => $code , '!curl_code' => $curl_code )), t ( 'Browser' ));
}
}