示例#1
0
 /**
  * Test main newusermail() function.
  */
 public function test_version1importnewuseremail()
 {
     global $CFG;
     // This is needed by the required files.
     require_once dirname(__FILE__) . '/other/rlip_importplugin_version1elis_fakeemail.php';
     $importplugin = new rlip_importplugin_version1elis_fakeemail();
     $testuser = new stdClass();
     $testuser->username = '******';
     $testuser->idnumber = 'testidnumber';
     $testuser->firstname = 'testfirstname';
     $testuser->lastname = 'testlastname';
     $testuser->email = '*****@*****.**';
     // Test false return when not enabled.
     set_config('newuseremailenabled', '0', 'dhimport_version1elis');
     set_config('newuseremailsubject', 'Test Subject', 'dhimport_version1elis');
     set_config('newuseremailtemplate', 'Test Body', 'dhimport_version1elis');
     $result = $importplugin->newuseremail($testuser);
     $this->assertFalse($result);
     // Test false return when enabled but empty template.
     set_config('newuseremailenabled', '1', 'dhimport_version1elis');
     set_config('newuseremailsubject', 'Test Subject', 'dhimport_version1elis');
     set_config('newuseremailtemplate', '', 'dhimport_version1elis');
     $result = $importplugin->newuseremail($testuser);
     $this->assertFalse($result);
     // Test false return when enabled and has template, but user has empty email.
     set_config('newuseremailenabled', '1', 'dhimport_version1elis');
     set_config('newuseremailsubject', 'Test Subject', 'dhimport_version1elis');
     set_config('newuseremailtemplate', 'Test Body', 'dhimport_version1elis');
     $testuser->email = '';
     $result = $importplugin->newuseremail($testuser);
     $this->assertFalse($result);
     $testuser->email = '*****@*****.**';
     // Test success when enabled, has template text, and user has email.
     $testsubject = 'Test Subject';
     $testbody = 'Test Body';
     set_config('newuseremailenabled', '1', 'dhimport_version1elis');
     set_config('newuseremailsubject', $testsubject, 'dhimport_version1elis');
     set_config('newuseremailtemplate', $testbody, 'dhimport_version1elis');
     $result = $importplugin->newuseremail($testuser);
     $this->assertNotEmpty($result);
     $this->assertInternalType('array', $result);
     $this->assertArrayHasKey('user', $result);
     $this->assertEquals($testuser, $result['user']);
     $this->assertArrayHasKey('subject', $result);
     $this->assertEquals($testsubject, $result['subject']);
     $this->assertArrayHasKey('body', $result);
     $this->assertEquals($testbody, $result['body']);
     // Test that subject is replaced by empty string when not present.
     $testsubject = null;
     $testbody = 'Test Body';
     set_config('newuseremailenabled', '1', 'dhimport_version1elis');
     set_config('newuseremailsubject', $testsubject, 'dhimport_version1elis');
     set_config('newuseremailtemplate', $testbody, 'dhimport_version1elis');
     $result = $importplugin->newuseremail($testuser);
     $this->assertNotEmpty($result);
     $this->assertInternalType('array', $result);
     $this->assertArrayHasKey('user', $result);
     $this->assertEquals($testuser, $result['user']);
     $this->assertArrayHasKey('subject', $result);
     $this->assertEquals('', $result['subject']);
     $this->assertArrayHasKey('body', $result);
     $this->assertEquals($testbody, $result['body']);
     // Full testing of replacement is done below, but just test that it's being done at all from the main function.
     $testsubject = 'Test Subject';
     $testbody = 'Test Body %%username%%';
     $expectedtestbody = 'Test Body ' . $testuser->username;
     set_config('newuseremailenabled', '1', 'dhimport_version1elis');
     set_config('newuseremailsubject', $testsubject, 'dhimport_version1elis');
     set_config('newuseremailtemplate', $testbody, 'dhimport_version1elis');
     $result = $importplugin->newuseremail($testuser);
     $this->assertNotEmpty($result);
     $this->assertInternalType('array', $result);
     $this->assertArrayHasKey('user', $result);
     $this->assertEquals($testuser, $result['user']);
     $this->assertArrayHasKey('subject', $result);
     $this->assertEquals($testsubject, $result['subject']);
     $this->assertArrayHasKey('body', $result);
     $this->assertEquals($expectedtestbody, $result['body']);
 }