コード例 #1
0
 /**
  * Testing whether a configexecutable setting is executable.
  */
 public function test_admin_setting_configexecutable()
 {
     global $CFG;
     $this->resetAfterTest();
     $executable = new admin_setting_configexecutable('test1', 'Text 1', 'Help Path', '');
     // Check for an invalid path.
     $result = $executable->output_html($CFG->dirroot . '/lib/tests/other/file_does_not_exist');
     $this->assertRegexp('/class="patherror"/', $result);
     // Check for a directory.
     $result = $executable->output_html($CFG->dirroot);
     $this->assertRegexp('/class="patherror"/', $result);
     // Check for a file which is not executable.
     $result = $executable->output_html($CFG->dirroot . '/filter/tex/readme_moodle.txt');
     $this->assertRegexp('/class="patherror"/', $result);
     // Check for an executable file.
     if ($CFG->ostype == 'WINDOWS') {
         $filetocheck = 'mimetex.exe';
     } else {
         $filetocheck = 'mimetex.darwin';
     }
     $result = $executable->output_html($CFG->dirroot . '/filter/tex/' . $filetocheck);
     $this->assertRegexp('/class="pathok"/', $result);
     // Check for no file specified.
     $result = $executable->output_html('');
     $this->assertRegexp('/name="s__test1" value=""/', $result);
 }
コード例 #2
0
ファイル: admintree_test.php プロジェクト: evltuma/moodle
 public function test_preventexecpath()
 {
     $this->resetAfterTest();
     set_config('preventexecpath', 0);
     set_config('execpath', null, 'abc_cde');
     $this->assertFalse(get_config('abc_cde', 'execpath'));
     $setting = new admin_setting_configexecutable('abc_cde/execpath', 'some desc', '', '/xx/yy');
     $setting->write_setting('/oo/pp');
     $this->assertSame('/oo/pp', get_config('abc_cde', 'execpath'));
     // Prevent changes.
     set_config('preventexecpath', 1);
     $setting->write_setting('/mm/nn');
     $this->assertSame('/oo/pp', get_config('abc_cde', 'execpath'));
     // Use default in install.
     set_config('execpath', null, 'abc_cde');
     $setting->write_setting('/mm/nn');
     $this->assertSame('/xx/yy', get_config('abc_cde', 'execpath'));
     // Use empty value if no default.
     $setting = new admin_setting_configexecutable('abc_cde/execpath', 'some desc', '', null);
     set_config('execpath', null, 'abc_cde');
     $setting->write_setting('/mm/nn');
     $this->assertSame('', get_config('abc_cde', 'execpath'));
     // This also affects admin_setting_configfile and admin_setting_configdirectory.
     set_config('preventexecpath', 0);
     set_config('execpath', null, 'abc_cde');
     $this->assertFalse(get_config('abc_cde', 'execpath'));
     $setting = new admin_setting_configfile('abc_cde/execpath', 'some desc', '', '/xx/yy');
     $setting->write_setting('/oo/pp');
     $this->assertSame('/oo/pp', get_config('abc_cde', 'execpath'));
     // Prevent changes.
     set_config('preventexecpath', 1);
     $setting->write_setting('/mm/nn');
     $this->assertSame('/oo/pp', get_config('abc_cde', 'execpath'));
     // Use default in install.
     set_config('execpath', null, 'abc_cde');
     $setting->write_setting('/mm/nn');
     $this->assertSame('/xx/yy', get_config('abc_cde', 'execpath'));
     // Use empty value if no default.
     $setting = new admin_setting_configfile('abc_cde/execpath', 'some desc', '', null);
     set_config('execpath', null, 'abc_cde');
     $setting->write_setting('/mm/nn');
     $this->assertSame('', get_config('abc_cde', 'execpath'));
     set_config('preventexecpath', 0);
     set_config('execpath', null, 'abc_cde');
     $this->assertFalse(get_config('abc_cde', 'execpath'));
     $setting = new admin_setting_configdirectory('abc_cde/execpath', 'some desc', '', '/xx/yy');
     $setting->write_setting('/oo/pp');
     $this->assertSame('/oo/pp', get_config('abc_cde', 'execpath'));
     // Prevent changes.
     set_config('preventexecpath', 1);
     $setting->write_setting('/mm/nn');
     $this->assertSame('/oo/pp', get_config('abc_cde', 'execpath'));
     // Use default in install.
     set_config('execpath', null, 'abc_cde');
     $setting->write_setting('/mm/nn');
     $this->assertSame('/xx/yy', get_config('abc_cde', 'execpath'));
     // Use empty value if no default.
     $setting = new admin_setting_configdirectory('abc_cde/execpath', 'some desc', '', null);
     set_config('execpath', null, 'abc_cde');
     $setting->write_setting('/mm/nn');
     $this->assertSame('', get_config('abc_cde', 'execpath'));
 }