MDL-47667 profile unit tests: don't assume none by default.

E.g. if an add-on creates a user profile field on install, the test was
failing.
This commit is contained in:
Tim Hunt
2014-10-14 12:12:05 +01:00
parent 6a10ec4260
commit fd03bcae29
+6 -13
View File
@@ -45,12 +45,6 @@ class core_user_profilelib_testcase extends advanced_testcase {
$this->resetAfterTest();
$user = $this->getDataGenerator()->create_user();
// Check function with no custom fields.
$this->assertEquals(array(), profile_get_custom_fields());
// Check that profile_user_record returns same (no) fields.
$this->assertEquals(array(), array_keys((array)profile_user_record($user->id)));
// Add a custom field of textarea type.
$id1 = $DB->insert_record('user_info_field', array(
'shortname' => 'frogdesc', 'name' => 'Description of frog', 'categoryid' => 1,
@@ -58,15 +52,15 @@ class core_user_profilelib_testcase extends advanced_testcase {
// Check the field is returned.
$result = profile_get_custom_fields();
$this->assertEquals(array($id1), array_keys($result));
$this->assertArrayHasKey($id1, $result);
$this->assertEquals('frogdesc', $result[$id1]->shortname);
// Textarea types are not included in user data though, so if we
// use the 'only in user data' parameter, there is still nothing.
$this->assertEquals(array(), profile_get_custom_fields(true));
$this->assertArrayNotHasKey($id1, profile_get_custom_fields(true));
// Check that profile_user_record returns same (no) fields.
$this->assertEquals(array(), array_keys((array)profile_user_record($user->id)));
$this->assertObjectNotHasAttribute('frogdesc', profile_user_record($user->id));
// Add another custom field, this time of normal text type.
$id2 = $DB->insert_record('user_info_field', array(
@@ -75,15 +69,14 @@ class core_user_profilelib_testcase extends advanced_testcase {
// Check both are returned using normal option.
$result = profile_get_custom_fields();
$this->assertEquals(array($id1, $id2), array_keys($result));
$this->assertArrayHasKey($id2, $result);
$this->assertEquals('frogname', $result[$id2]->shortname);
// And check that only the one is returned the other way.
$result = profile_get_custom_fields(true);
$this->assertEquals(array($id2), array_keys($result));
$this->assertArrayHasKey($id2, profile_get_custom_fields(true));
// Check profile_user_record returns same field.
$this->assertEquals(array('frogname'), array_keys((array)profile_user_record($user->id)));
$this->assertObjectHasAttribute('frogname', profile_user_record($user->id));
}
/**