MDL-32149 some more cleanup and testing of PHPUnit asserts

This commit is contained in:
Petr Skoda
2012-04-03 22:30:56 +02:00
parent 1cbf2a20ca
commit 7ddef99455
4 changed files with 93 additions and 14 deletions
+7 -6
View File
@@ -14,7 +14,6 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Unit tests for (some of) ../ajaxlib.php.
*
@@ -36,7 +35,7 @@ require_once($CFG->libdir . '/ajax/ajaxlib.php');
* @copyright 2008 Tim Hunt
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class ajax_test extends UnitTestCase {
class ajax_test extends advanced_testcase {
var $user_agents = array(
'MSIE' => array(
@@ -65,11 +64,13 @@ class ajax_test extends UnitTestCase {
/**
* Uses the array of user agents to test ajax_lib::ajaxenabled
*/
function test_ajaxenabled()
{
function test_ajaxenabled() {
global $CFG, $USER;
$CFG->enableajax = true;
$USER->ajax = true;
$this->resetAfterTest(true);
$CFG->enableajax = 1;
$USER->ajax = 1;
// Should be true
$_SERVER['HTTP_USER_AGENT'] = $this->user_agents['Firefox']['2.0']['Windows XP'];
-4
View File
@@ -17,10 +17,6 @@
/**
* Full functional accesslib test
*
* It is implemented as one test case because it would take hours
* to prepare the fake test site for each test, at the same time
* we have to work around multiple problems in UnitTestCaseUsingDatabase.
*
* @package core
* @category phpunit
* @copyright 2011 Petr Skoda {@link http://skodak.org}
+1 -1
View File
@@ -29,7 +29,7 @@ global $CFG;
require_once($CFG->libdir . '/externallib.php');
class externallib_test extends UnitTestCase {
class externallib_test extends basic_testcase {
public function test_validate_params() {
$params = array('text'=>'aaa', 'someid'=>'6',);
$description = new external_function_parameters(array('someid' => new external_value(PARAM_INT, 'Some int value'),
+85 -3
View File
@@ -47,12 +47,94 @@ class core_phpunit_basic_testcase extends basic_testcase {
$this->assertEquals($CFG->prefix, $CFG->phpunit_prefix);
}
/*
public function test_borked_tests() {
global $DB;
/**
* This is just a verification if I understand the PHPUnit assert docs right --skodak
* @return void
*/
public function test_assert_behaviour() {
// arrays
$a = array('a', 'b', 'c');
$b = array('a', 'c', 'b');
$c = array('a', 'b', 'c');
$d = array('a', 'b', 'C');
$this->assertNotEquals($a, $b);
$this->assertNotEquals($a, $d);
$this->assertEquals($a, $c);
$this->assertEquals($a, $b, '', 0, 10, true);
// objects
$a = new stdClass();
$a->x = 'x';
$a->y = 'y';
$b = new stdClass(); // switched order
$b->y = 'y';
$b->x = 'x';
$c = $a;
$d = new stdClass();
$d->x = 'x';
$d->y = 'y';
$d->z = 'z';
$this->assertEquals($a, $b);
$this->assertNotSame($a, $b);
$this->assertEquals($a, $c);
$this->assertSame($a, $c);
$this->assertNotEquals($a, $d);
// string comparison
$this->assertEquals(1, '1');
$this->assertEquals(null, '');
$this->assertNotEquals(1, '1 ');
$this->assertNotEquals(0, '');
$this->assertNotEquals(null, '0');
$this->assertNotEquals(array(), '');
// other comparison
$this->assertEquals(null, null);
$this->assertEquals(false, null);
$this->assertEquals(0, null);
// emptiness
$this->assertEmpty(0);
$this->assertEmpty(0.0);
$this->assertEmpty('');
$this->assertEmpty('0');
$this->assertEmpty(false);
$this->assertEmpty(null);
$this->assertEmpty(array());
$this->assertNotEmpty(1);
$this->assertNotEmpty(0.1);
$this->assertNotEmpty(-1);
$this->assertNotEmpty(' ');
$this->assertNotEmpty('0 ');
$this->assertNotEmpty(true);
$this->assertNotEmpty(array(null));
$this->assertNotEmpty(new stdClass());
}
// Uncomment following tests to see logging of unexpected changes in global state and database
/*
public function test_db_modification() {
global $DB;
$DB->set_field('user', 'confirmed', 1, array('id'=>-1));
}
public function test_cfg_modification() {
global $CFG;
$CFG->xx = 'yy';
unset($CFG->admin);
$CFG->rolesactive = 0;
}
public function test_user_modification() {
global $USER;
$USER->id = 10;
}
public function test_course_modification() {
global $COURSE;
$COURSE->id = 10;
}
*/
}