mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 00:12:56 +02:00
MDL-16486 Only using one test $DB connection. Completed most of the implementation. Tests working well now.
This commit is contained in:
parent
8540f8f93c
commit
274e2947a2
@ -31,6 +31,7 @@ $string['showsearch'] = 'Show the search for test files.';
|
||||
$string['stacktrace'] = 'Stack trace:';
|
||||
$string['summary'] = '{$a->run}/{$a->total} test cases complete: <strong>{$a->passes}</strong> passes, <strong>{$a->fails}</strong> fails and <strong>{$a->exceptions}</strong> exceptions.';
|
||||
$string['tablesnotsetup'] = 'Unit test tables are not yet built. Do you want to build them now?.';
|
||||
$string['testtablesok'] = 'The test DB tables were successfully installed.';
|
||||
$string['testtablescsvfileunwritable'] = 'The test tables CSV file is not writable ($a->filename)';
|
||||
$string['thorough'] = 'Run a thorough test (may be slow).';
|
||||
$string['updatingnoninsertedrecord'] = 'Trying to update a record that was not inserted by these unit tests (id $a->id in table $a->table).';
|
||||
|
@ -52,10 +52,10 @@ Mock::generate('grade_outcome', 'mock_grade_outcome');
|
||||
class grade_test extends MoodleUnitTestCase {
|
||||
|
||||
public $grade_tables = array('grade_categories',
|
||||
'scale',
|
||||
'grade_items',
|
||||
'grade_grades',
|
||||
'grade_outcomes');
|
||||
'scale',
|
||||
'grade_items',
|
||||
'grade_grades',
|
||||
'grade_outcomes');
|
||||
|
||||
|
||||
public $grade_items = array();
|
||||
@ -67,7 +67,6 @@ class grade_test extends MoodleUnitTestCase {
|
||||
public $activities = array();
|
||||
public $courseid = 1;
|
||||
public $userid = 1;
|
||||
public $dbmanager;
|
||||
|
||||
/**
|
||||
* Create temporary test tables and entries in the database for these tests.
|
||||
@ -75,7 +74,6 @@ class grade_test extends MoodleUnitTestCase {
|
||||
*/
|
||||
function setUp() {
|
||||
global $CFG, $DB;
|
||||
$this->dbmanager = $DB->get_manager();
|
||||
|
||||
parent::setup();
|
||||
$CFG->grade_droplow = -1;
|
||||
@ -85,532 +83,12 @@ class grade_test extends MoodleUnitTestCase {
|
||||
$CFG->grade_aggregateoutcomes = -1;
|
||||
$CFG->grade_aggregatesubcats = -1;
|
||||
|
||||
if (!$this->prepare_test_tables()) {
|
||||
die("Could not create all the test tables!");
|
||||
}
|
||||
|
||||
if (!$this->prepare_test_history_tables()) {
|
||||
die("Could not create all the test tables!");
|
||||
}
|
||||
|
||||
foreach ($this->grade_tables as $table) {
|
||||
$function = "load_$table";
|
||||
$this->$function();
|
||||
}
|
||||
}
|
||||
|
||||
function prepare_test_tables() {
|
||||
global $CFG, $DB;
|
||||
$result = true;
|
||||
|
||||
/// Define table course_modules to be created
|
||||
$table = new xmldb_table('course_modules');
|
||||
|
||||
if (!$this->dbmanager->table_exists($table)) {
|
||||
/// Adding fields to table course_modules
|
||||
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
||||
$table->add_field('course', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('module', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('instance', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('section', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('idnumber', XMLDB_TYPE_CHAR, '100', null, null, null, null, null, null);
|
||||
$table->add_field('added', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('score', XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('indent', XMLDB_TYPE_INTEGER, '5', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('visible', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, null, null, '1');
|
||||
$table->add_field('visibleold', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, null, null, '1');
|
||||
$table->add_field('groupmode', XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('groupingid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('groupmembersonly', XMLDB_TYPE_INTEGER, '4', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
|
||||
/// Adding keys to table course_modules
|
||||
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
|
||||
$table->add_key('groupingid', XMLDB_KEY_FOREIGN, array('groupingid'), 'groupings', array('id'));
|
||||
|
||||
/// Adding indexes to table course_modules
|
||||
$table->add_index('visible', XMLDB_INDEX_NOTUNIQUE, array('visible'));
|
||||
$table->add_index('course', XMLDB_INDEX_NOTUNIQUE, array('course'));
|
||||
$table->add_index('module', XMLDB_INDEX_NOTUNIQUE, array('module'));
|
||||
$table->add_index('instance', XMLDB_INDEX_NOTUNIQUE, array('instance'));
|
||||
$table->add_index('idnumber-course', XMLDB_INDEX_NOTUNIQUE, array('idnumber', 'course'));
|
||||
|
||||
/// Launch create table for course_modules
|
||||
$this->dbmanager->create_table($table);
|
||||
} else {
|
||||
$DB->delete_records($table->name, null);
|
||||
}
|
||||
|
||||
/// Define table modules to be created
|
||||
$table = new xmldb_table('modules');
|
||||
|
||||
if (!$this->dbmanager->table_exists($table)) {
|
||||
|
||||
/// Adding fields to table modules
|
||||
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
||||
$table->add_field('name', XMLDB_TYPE_CHAR, '20', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('version', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('cron', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('lastcron', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('search', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('visible', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, null, null, '1');
|
||||
|
||||
/// Adding keys to table modules
|
||||
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
|
||||
|
||||
/// Adding indexes to table modules
|
||||
$table->add_index('name', XMLDB_INDEX_NOTUNIQUE, array('name'));
|
||||
|
||||
/// Launch create table for modules
|
||||
$this->dbmanager->create_table($table);
|
||||
} else {
|
||||
$DB->delete_records($table->name, null);
|
||||
}
|
||||
|
||||
/// Define table grade_items to be created
|
||||
$table = new xmldb_table('grade_items');
|
||||
|
||||
if (!$this->dbmanager->table_exists($table)) {
|
||||
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
||||
$table->add_field('courseid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('categoryid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('itemname', XMLDB_TYPE_CHAR, '255', null, null, null, null, null, null);
|
||||
$table->add_field('itemtype', XMLDB_TYPE_CHAR, '30', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('itemmodule', XMLDB_TYPE_CHAR, '30', null, null, null, null, null, null);
|
||||
$table->add_field('iteminstance', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('itemnumber', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('iteminfo', XMLDB_TYPE_TEXT, 'medium', null, null, null, null, null, null);
|
||||
$table->add_field('idnumber', XMLDB_TYPE_CHAR, '255', null, null, null, null, null, null);
|
||||
$table->add_field('calculation', XMLDB_TYPE_TEXT, 'medium', null, null, null, null, null, null);
|
||||
$table->add_field('gradetype', XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, null, null, '1');
|
||||
$table->add_field('grademax', XMLDB_TYPE_NUMBER, '10, 5', null, XMLDB_NOTNULL, null, null, null, '100');
|
||||
$table->add_field('grademin', XMLDB_TYPE_NUMBER, '10, 5', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('scaleid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('outcomeid', XMLDB_TYPE_INTEGER, '10', null, null, null, null, null, null);
|
||||
$table->add_field('gradepass', XMLDB_TYPE_NUMBER, '10, 5', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('multfactor', XMLDB_TYPE_NUMBER, '10, 5', null, XMLDB_NOTNULL, null, null, null, '1.0');
|
||||
$table->add_field('plusfactor', XMLDB_TYPE_NUMBER, '10, 5', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('sortorder', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('display', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('decimals', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('hidden', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('locked', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('locktime', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('deleted', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('needsupdate', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
|
||||
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
|
||||
$table->add_key('courseid', XMLDB_KEY_FOREIGN, array('courseid'), 'course', array('id'));
|
||||
$table->add_key('categoryid', XMLDB_KEY_FOREIGN, array('categoryid'), 'grade_categories', array('id'));
|
||||
$table->add_key('scaleid', XMLDB_KEY_FOREIGN, array('scaleid'), 'scale', array('id'));
|
||||
$table->add_key('outcomeid', XMLDB_KEY_FOREIGN, array('outcomeid'), 'grade_outcomes', array('id'));
|
||||
|
||||
/// Launch create table for grade_items
|
||||
$this->dbmanager->create_table($table);
|
||||
|
||||
} else {
|
||||
$DB->delete_records($table->name, null);
|
||||
}
|
||||
|
||||
|
||||
/// Define table grade_categories to be created
|
||||
$table = new xmldb_table('grade_categories');
|
||||
|
||||
if ($result && !$this->dbmanager->table_exists($table)) {
|
||||
|
||||
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
||||
$table->add_field('courseid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('parent', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('depth', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('path', XMLDB_TYPE_CHAR, '255', null, null, null, null, null, null);
|
||||
$table->add_field('fullname', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('aggregation', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('keephigh', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('droplow', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('aggregateonlygraded', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('aggregateoutcomes', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('aggregatesubcats', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null);
|
||||
|
||||
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
|
||||
$table->add_key('courseid', XMLDB_KEY_FOREIGN, array('courseid'), 'course', array('id'));
|
||||
$table->add_key('parent', XMLDB_KEY_FOREIGN, array('parent'), 'grade_categories', array('id'));
|
||||
|
||||
/// Launch create table for grade_categories
|
||||
$this->dbmanager->create_table($table);
|
||||
|
||||
} else {
|
||||
$DB->delete_records($table->name, null);
|
||||
}
|
||||
|
||||
|
||||
/// Define table grade_grades to be created
|
||||
$table = new xmldb_table('grade_grades');
|
||||
|
||||
if ($result && !$this->dbmanager->table_exists($table)) {
|
||||
|
||||
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
||||
$table->add_field('itemid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('userid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('rawgrade', XMLDB_TYPE_NUMBER, '10, 5', null, null, null, null, null, null);
|
||||
$table->add_field('rawgrademax', XMLDB_TYPE_NUMBER, '10, 5', null, XMLDB_NOTNULL, null, null, null, '100');
|
||||
$table->add_field('rawgrademin', XMLDB_TYPE_NUMBER, '10, 5', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('rawscaleid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('usermodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('finalgrade', XMLDB_TYPE_NUMBER, '10, 5', null, null, null, null, null, null);
|
||||
$table->add_field('hidden', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('locked', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('locktime', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('exported', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('overridden', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('excluded', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('feedback', XMLDB_TYPE_TEXT, 'medium', null, null, null, null, null, null);
|
||||
$table->add_field('feedbackformat', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('information', XMLDB_TYPE_TEXT, 'medium', null, null, null, null, null, null);
|
||||
$table->add_field('informationformat', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
|
||||
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
|
||||
$table->add_key('itemid', XMLDB_KEY_FOREIGN, array('itemid'), 'grade_items', array('id'));
|
||||
$table->add_key('userid', XMLDB_KEY_FOREIGN, array('userid'), 'user', array('id'));
|
||||
$table->add_key('rawscaleid', XMLDB_KEY_FOREIGN, array('rawscaleid'), 'scale', array('id'));
|
||||
$table->add_key('usermodified', XMLDB_KEY_FOREIGN, array('usermodified'), 'user', array('id'));
|
||||
|
||||
/// Launch create table for grade_grades
|
||||
$this->dbmanager->create_table($table);
|
||||
|
||||
} else {
|
||||
$DB->delete_records($table->name, null);
|
||||
}
|
||||
|
||||
|
||||
/// Define table grade_outcomes to be created
|
||||
$table = new xmldb_table('grade_outcomes');
|
||||
|
||||
if ($result && !$this->dbmanager->table_exists($table)) {
|
||||
|
||||
/// Adding fields to table grade_outcomes
|
||||
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
||||
$table->add_field('courseid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('shortname', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('fullname', XMLDB_TYPE_TEXT, 'small', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('scaleid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('usermodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
|
||||
/// Adding keys to table grade_outcomes
|
||||
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
|
||||
$table->add_key('courseid', XMLDB_KEY_FOREIGN, array('courseid'), 'course', array('id'));
|
||||
$table->add_key('scaleid', XMLDB_KEY_FOREIGN, array('scaleid'), 'scale', array('id'));
|
||||
$table->add_key('usermodified', XMLDB_KEY_FOREIGN, array('usermodified'), 'user', array('id'));
|
||||
|
||||
/// Launch create table for grade_outcomes
|
||||
$this->dbmanager->create_table($table);
|
||||
|
||||
} else {
|
||||
$DB->delete_records($table->name, null);
|
||||
}
|
||||
|
||||
|
||||
/// Define table scale to be created
|
||||
$table = new xmldb_table('scale');
|
||||
|
||||
if ($result && !$this->dbmanager->table_exists($table)) {
|
||||
|
||||
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
||||
$table->add_field('courseid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('userid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('name', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('scale', XMLDB_TYPE_TEXT, 'small', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('description', XMLDB_TYPE_TEXT, 'small', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
|
||||
$table->add_index('courseid', XMLDB_INDEX_NOTUNIQUE, array('courseid'));
|
||||
|
||||
/// Launch create table for scale
|
||||
$this->dbmanager->create_table($table);
|
||||
|
||||
} else {
|
||||
$DB->delete_records($table->name, null);
|
||||
}
|
||||
|
||||
/// Define table quiz to be created
|
||||
$table = new xmldb_table('quiz');
|
||||
|
||||
if ($result && !$this->dbmanager->table_exists($table)) {
|
||||
/// Adding fields to table quiz
|
||||
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
||||
$table->add_field('course', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('name', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('intro', XMLDB_TYPE_TEXT, 'small', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('timeopen', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('timeclose', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('optionflags', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('penaltyscheme', XMLDB_TYPE_INTEGER, '4', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('attempts', XMLDB_TYPE_INTEGER, '6', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('attemptonlast', XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('grademethod', XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, null, null, '1');
|
||||
$table->add_field('decimalpoints', XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, null, null, '2');
|
||||
$table->add_field('review', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('questionsperpage', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('shufflequestions', XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('shuffleanswers', XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('questions', XMLDB_TYPE_TEXT, 'small', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('sumgrades', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('grade', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('timelimit', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('password', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('subnet', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('popup', XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('delay1', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('delay2', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
|
||||
/// Adding keys to table quiz
|
||||
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
|
||||
|
||||
/// Adding indexes to table quiz
|
||||
$table->add_index('course', XMLDB_INDEX_NOTUNIQUE, array('course'));
|
||||
|
||||
/// Launch create table for quiz
|
||||
$this->dbmanager->create_table($table);
|
||||
} else {
|
||||
$DB->delete_records($table->name, null);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
function prepare_test_history_tables() {
|
||||
global $DB;
|
||||
$result = true;
|
||||
|
||||
/// Define table grade_items to be created
|
||||
$table = new xmldb_table('grade_items_history');
|
||||
|
||||
if (!$this->dbmanager->table_exists($table)) {
|
||||
|
||||
/// Adding fields to table grade_items_history
|
||||
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
||||
$table->add_field('action', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('oldid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('source', XMLDB_TYPE_CHAR, '255', null, null, null, null, null, null);
|
||||
$table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('loggeduser', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('courseid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('categoryid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('itemname', XMLDB_TYPE_CHAR, '255', null, null, null, null, null, null);
|
||||
$table->add_field('itemtype', XMLDB_TYPE_CHAR, '30', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('itemmodule', XMLDB_TYPE_CHAR, '30', null, null, null, null, null, null);
|
||||
$table->add_field('iteminstance', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('itemnumber', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('iteminfo', XMLDB_TYPE_TEXT, 'medium', null, null, null, null, null, null);
|
||||
$table->add_field('idnumber', XMLDB_TYPE_CHAR, '255', null, null, null, null, null, null);
|
||||
$table->add_field('calculation', XMLDB_TYPE_TEXT, 'medium', null, null, null, null, null, null);
|
||||
$table->add_field('gradetype', XMLDB_TYPE_INTEGER, '4', null, XMLDB_NOTNULL, null, null, null, '1');
|
||||
$table->add_field('grademax', XMLDB_TYPE_NUMBER, '10, 5', null, XMLDB_NOTNULL, null, null, null, '100');
|
||||
$table->add_field('grademin', XMLDB_TYPE_NUMBER, '10, 5', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('scaleid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('outcomeid', XMLDB_TYPE_INTEGER, '10', null, null, null, null, null, null);
|
||||
$table->add_field('gradepass', XMLDB_TYPE_NUMBER, '10, 5', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('multfactor', XMLDB_TYPE_NUMBER, '10, 5', null, XMLDB_NOTNULL, null, null, null, '1.0');
|
||||
$table->add_field('plusfactor', XMLDB_TYPE_NUMBER, '10, 5', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('sortorder', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('display', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('decimals', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('hidden', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('locked', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('locktime', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('needsupdate', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
|
||||
/// Adding keys to table grade_items_history
|
||||
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
|
||||
$table->add_key('oldid', XMLDB_KEY_FOREIGN, array('oldid'), 'grade_items', array('id'));
|
||||
$table->add_key('courseid', XMLDB_KEY_FOREIGN, array('courseid'), 'course', array('id'));
|
||||
$table->add_key('categoryid', XMLDB_KEY_FOREIGN, array('categoryid'), 'grade_categories', array('id'));
|
||||
$table->add_key('scaleid', XMLDB_KEY_FOREIGN, array('scaleid'), 'scale', array('id'));
|
||||
$table->add_key('outcomeid', XMLDB_KEY_FOREIGN, array('outcomeid'), 'grade_outcomes', array('id'));
|
||||
|
||||
/// Adding indexes to table grade_items_history
|
||||
$table->add_index('action', XMLDB_INDEX_NOTUNIQUE, array('action'));
|
||||
|
||||
/// Launch create table for grade_items_history
|
||||
$this->dbmanager->create_table($table);
|
||||
|
||||
} else {
|
||||
$DB->delete_records($table->name, null);
|
||||
}
|
||||
|
||||
/// Define table grade_categories to be created
|
||||
$table = new xmldb_table('grade_categories_history');
|
||||
|
||||
|
||||
if ($result && !$this->dbmanager->table_exists($table)) {
|
||||
|
||||
/// Adding fields to table grade_categories_history
|
||||
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
||||
$table->add_field('action', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('oldid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('source', XMLDB_TYPE_CHAR, '255', null, null, null, null, null, null);
|
||||
$table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('loggeduser', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('courseid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('parent', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('depth', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('path', XMLDB_TYPE_CHAR, '255', null, null, null, null, null, null);
|
||||
$table->add_field('fullname', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('aggregation', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('keephigh', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('droplow', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('aggregateonlygraded', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('aggregateoutcomes', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('aggregatesubcats', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
|
||||
/// Adding keys to table grade_categories_history
|
||||
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
|
||||
$table->add_key('oldid', XMLDB_KEY_FOREIGN, array('oldid'), 'grade_categories', array('id'));
|
||||
$table->add_key('courseid', XMLDB_KEY_FOREIGN, array('courseid'), 'course', array('id'));
|
||||
$table->add_key('parent', XMLDB_KEY_FOREIGN, array('parent'), 'grade_categories', array('id'));
|
||||
|
||||
/// Adding indexes to table grade_categories_history
|
||||
$table->add_index('action', XMLDB_INDEX_NOTUNIQUE, array('action'));
|
||||
|
||||
/// Launch create table for grade_categories_history
|
||||
$this->dbmanager->create_table($table);
|
||||
|
||||
} else {
|
||||
$DB->delete_records($table->name, null);
|
||||
}
|
||||
|
||||
|
||||
/// Define table grade_grades to be created
|
||||
$table = new xmldb_table('grade_grades_history');
|
||||
|
||||
if ($result && !$this->dbmanager->table_exists($table)) {
|
||||
|
||||
/// Adding fields to table grade_grades_history
|
||||
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
||||
$table->add_field('action', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('oldid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('source', XMLDB_TYPE_CHAR, '255', null, null, null, null, null, null);
|
||||
$table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('loggeduser', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('itemid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('userid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('rawgrade', XMLDB_TYPE_NUMBER, '10, 5', null, null, null, null, null, null);
|
||||
$table->add_field('rawgrademax', XMLDB_TYPE_NUMBER, '10, 5', null, XMLDB_NOTNULL, null, null, null, '100');
|
||||
$table->add_field('rawgrademin', XMLDB_TYPE_NUMBER, '10, 5', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('rawscaleid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('usermodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('finalgrade', XMLDB_TYPE_NUMBER, '10, 5', null, null, null, null, null, null);
|
||||
$table->add_field('hidden', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('locked', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('locktime', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('exported', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('overridden', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('excluded', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('feedback', XMLDB_TYPE_TEXT, 'medium', null, null, null, null, null, null);
|
||||
$table->add_field('feedbackformat', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('information', XMLDB_TYPE_TEXT, 'medium', null, null, null, null, null, null);
|
||||
$table->add_field('informationformat', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
|
||||
/// Adding keys to table grade_grades_history
|
||||
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
|
||||
$table->add_key('oldid', XMLDB_KEY_FOREIGN, array('oldid'), 'grade_grades', array('id'));
|
||||
$table->add_key('itemid', XMLDB_KEY_FOREIGN, array('itemid'), 'grade_items', array('id'));
|
||||
$table->add_key('userid', XMLDB_KEY_FOREIGN, array('userid'), 'user', array('id'));
|
||||
$table->add_key('rawscaleid', XMLDB_KEY_FOREIGN, array('rawscaleid'), 'scale', array('id'));
|
||||
$table->add_key('usermodified', XMLDB_KEY_FOREIGN, array('usermodified'), 'user', array('id'));
|
||||
$table->add_key('loggeduser', XMLDB_KEY_FOREIGN, array('loggeduser'), 'user', array('id'));
|
||||
|
||||
/// Adding indexes to table grade_grades_history
|
||||
$table->add_index('action', XMLDB_INDEX_NOTUNIQUE, array('action'));
|
||||
|
||||
/// Launch create table for grade_grades_history
|
||||
$this->dbmanager->create_table($table);
|
||||
|
||||
} else {
|
||||
$DB->delete_records($table->name, null);
|
||||
}
|
||||
|
||||
|
||||
/// Define table grade_outcomes to be created
|
||||
$table = new xmldb_table('grade_outcomes_history');
|
||||
|
||||
if ($result && !$this->dbmanager->table_exists($table)) {
|
||||
|
||||
/// Adding fields to table grade_outcomes_history
|
||||
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
||||
$table->add_field('action', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('oldid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('source', XMLDB_TYPE_CHAR, '255', null, null, null, null, null, null);
|
||||
$table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('loggeduser', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('courseid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('shortname', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('fullname', XMLDB_TYPE_TEXT, 'small', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('scaleid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
|
||||
/// Adding keys to table grade_outcomes_history
|
||||
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
|
||||
$table->add_key('oldid', XMLDB_KEY_FOREIGN, array('oldid'), 'grade_outcomes', array('id'));
|
||||
$table->add_key('courseid', XMLDB_KEY_FOREIGN, array('courseid'), 'course', array('id'));
|
||||
$table->add_key('scaleid', XMLDB_KEY_FOREIGN, array('scaleid'), 'scale', array('id'));
|
||||
$table->add_key('loggeduser', XMLDB_KEY_FOREIGN, array('loggeduser'), 'user', array('id'));
|
||||
|
||||
/// Adding indexes to table grade_outcomes_history
|
||||
$table->add_index('action', XMLDB_INDEX_NOTUNIQUE, array('action'));
|
||||
|
||||
/// Launch create table for grade_outcomes_history
|
||||
$this->dbmanager->create_table($table);
|
||||
|
||||
} else {
|
||||
$DB->delete_records($table->name, null);
|
||||
}
|
||||
|
||||
/// Define table scale to be created
|
||||
$table = new xmldb_table('scale_history');
|
||||
|
||||
|
||||
if ($result && !$this->dbmanager->table_exists($table)) {
|
||||
|
||||
/// Adding fields to table scale_history
|
||||
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null, null);
|
||||
$table->add_field('action', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('oldid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('source', XMLDB_TYPE_CHAR, '255', null, null, null, null, null, null);
|
||||
$table->add_field('timemodified', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('loggeduser', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, null, null, null, null, null);
|
||||
$table->add_field('courseid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('userid', XMLDB_TYPE_INTEGER, '10', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, null, null, '0');
|
||||
$table->add_field('name', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('scale', XMLDB_TYPE_TEXT, 'small', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
$table->add_field('description', XMLDB_TYPE_TEXT, 'small', null, XMLDB_NOTNULL, null, null, null, null);
|
||||
|
||||
/// Adding keys to table scale_history
|
||||
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
|
||||
$table->add_key('oldid', XMLDB_KEY_FOREIGN, array('oldid'), 'scales', array('id'));
|
||||
$table->add_key('courseid', XMLDB_KEY_FOREIGN, array('courseid'), 'course', array('id'));
|
||||
|
||||
/// Adding indexes to table scale_history
|
||||
$table->add_index('action', XMLDB_INDEX_NOTUNIQUE, array('action'));
|
||||
|
||||
/// Launch create table for scale_history
|
||||
$this->dbmanager->create_table($table);
|
||||
|
||||
} else {
|
||||
$DB->delete_records($table->name, null);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Drop test tables from DB.
|
||||
*/
|
||||
|
@ -153,6 +153,7 @@ class MoodleUnitTestCase extends UnitTestCase {
|
||||
public $tables = array();
|
||||
public $pkfile;
|
||||
public $cfg;
|
||||
public $DB;
|
||||
|
||||
/**
|
||||
* In the constructor, record the max(id) of each test table into a csv file.
|
||||
@ -163,12 +164,12 @@ class MoodleUnitTestCase extends UnitTestCase {
|
||||
*/
|
||||
public function __construct($label = false) {
|
||||
parent::UnitTestCase($label);
|
||||
|
||||
// MDL-16483 Get PKs and save data to text file
|
||||
global $DB, $CFG;
|
||||
$this->pkfile = $CFG->dataroot.'/testtablespks.csv';
|
||||
$this->cfg = $CFG;
|
||||
$this->setup();
|
||||
|
||||
UnitTestDB::instantiate();
|
||||
|
||||
$tables = $DB->get_tables();
|
||||
|
||||
@ -244,6 +245,8 @@ class MoodleUnitTestCase extends UnitTestCase {
|
||||
public function setUp() {
|
||||
parent::setUp();
|
||||
UnitTestDB::instantiate();
|
||||
global $DB;
|
||||
$this->DB =& $DB;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -251,6 +254,9 @@ class MoodleUnitTestCase extends UnitTestCase {
|
||||
*/
|
||||
public function tearDown() {
|
||||
global $DB;
|
||||
if (empty($DB)) {
|
||||
$DB = $this->DB;
|
||||
}
|
||||
$DB->cleanup();
|
||||
parent::tearDown();
|
||||
}
|
||||
@ -282,10 +288,6 @@ class UnitTestDB {
|
||||
|
||||
public $table_data = array();
|
||||
|
||||
public function __construct() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this statically to connect to the DB using the unittest prefix, instantiate
|
||||
* the unit test db, store it as a member variable, instantiate $this and use it as the new global $DB.
|
||||
@ -298,8 +300,11 @@ class UnitTestDB {
|
||||
print_error("prefixnotset", 'simpletest');
|
||||
}
|
||||
|
||||
UnitTestDB::$DB = moodle_database::get_driver_instance($CFG->dbtype, $CFG->dblibrary);
|
||||
UnitTestDB::$DB->connect($CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->dbpersist, $CFG->unittestprefix);
|
||||
if (empty(UnitTestDB::$DB)) {
|
||||
UnitTestDB::$DB = moodle_database::get_driver_instance($CFG->dbtype, $CFG->dblibrary);
|
||||
UnitTestDB::$DB->connect($CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->dbpersist, $CFG->unittestprefix);
|
||||
}
|
||||
|
||||
$manager = UnitTestDB::$DB->get_manager();
|
||||
|
||||
if (!$manager->table_exists('user')) {
|
||||
@ -352,12 +357,12 @@ class UnitTestDB {
|
||||
public function update_record($table, $dataobject, $bulk=false) {
|
||||
global $DB;
|
||||
if (empty($this->table_data[$table]) || !in_array($dataobject->id, $this->table_data[$table])) {
|
||||
return UnitTestDB::$DB->update_record($table, $dataobject, $bulk);
|
||||
// $a = new stdClass();
|
||||
// $a->id = $dataobject->id;
|
||||
// $a->table = $table;
|
||||
// debug_print_backtrace();
|
||||
// throw new moodle_exception('updatingnoninsertedrecord', 'simpletest', '', $a);
|
||||
// return UnitTestDB::$DB->update_record($table, $dataobject, $bulk);
|
||||
$a = new stdClass();
|
||||
$a->id = $dataobject->id;
|
||||
$a->table = $table;
|
||||
debug_print_backtrace();
|
||||
throw new moodle_exception('updatingnoninsertedrecord', 'simpletest', '', $a);
|
||||
} else {
|
||||
return UnitTestDB::$DB->update_record($table, $dataobject, $bulk);
|
||||
}
|
||||
@ -368,7 +373,7 @@ class UnitTestDB {
|
||||
* throw an exception and cancel delete.
|
||||
* @throws moodle_exception If trying to delete a record not inserted by unit tests.
|
||||
*/
|
||||
public function delete_records($table, array $conditions=null) {
|
||||
public function delete_records($table, array $conditions=array()) {
|
||||
global $DB;
|
||||
$a = new stdClass();
|
||||
$a->table = $table;
|
||||
@ -385,7 +390,7 @@ class UnitTestDB {
|
||||
}
|
||||
|
||||
foreach ($ids_to_delete as $id) {
|
||||
if (!in_array($id, $this->table_data[$table])) {
|
||||
if (empty($this->table_data[$table]) || !in_array($id, $this->table_data[$table])) {
|
||||
$proceed_with_delete = false;
|
||||
$a->id = $id;
|
||||
break;
|
||||
|
@ -4066,7 +4066,7 @@ function forum_add_attachment($post, $forum, $cm, $mform=null, &$message=null, $
|
||||
if (!isset($forum->maxattachments)) { // TODO - delete this once we add a field to the forum table
|
||||
$forum->maxattachments = 3;
|
||||
}
|
||||
|
||||
|
||||
for ($i=0; $i<$forum->maxattachments; $i++) {
|
||||
$elementname = 'attachment'.$i;
|
||||
if (empty($values->$elementname)) { // Nothing defined
|
||||
@ -4089,7 +4089,7 @@ function forum_add_attachment($post, $forum, $cm, $mform=null, &$message=null, $
|
||||
*/
|
||||
function forum_relink_inline_attachments($post, $forum, $cm){
|
||||
global $DB;
|
||||
|
||||
|
||||
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
|
||||
$authorcontext = get_context_instance(CONTEXT_USER, $post->userid);
|
||||
|
||||
@ -4120,7 +4120,7 @@ function forum_add_new_post($post, $mform, &$message) {
|
||||
return false;
|
||||
}
|
||||
|
||||
forum_relink_inline_attachments($post, $forum, $cm);
|
||||
forum_relink_inline_attachments($post, $forum, $cm);
|
||||
forum_add_attachment($post, $forum, $cm, $mform, $message, false);
|
||||
|
||||
// Update discussion modified date
|
||||
@ -4226,8 +4226,10 @@ function forum_add_discussion($discussion, $mform=null, &$message=null) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
forum_relink_inline_attachments($post, $forum, $cm);
|
||||
forum_add_attachment($post, $forum, $cm, $mform, $message, false);
|
||||
if (!empty($cm->id)) {
|
||||
forum_relink_inline_attachments($post, $forum, $cm);
|
||||
forum_add_attachment($post, $forum, $cm, $mform, $message, false);
|
||||
}
|
||||
|
||||
if (forum_tp_can_track_forums($forum) && forum_tp_is_tracked($forum)) {
|
||||
forum_tp_mark_post_read($post->userid, $post, $post->forum);
|
||||
@ -4570,7 +4572,7 @@ function forum_get_tracking_link($forum, $messages=array(), $fakelink=true) {
|
||||
} else {
|
||||
$linktitle = $strtrackforum;
|
||||
$linktext = $strtrackforum;
|
||||
}
|
||||
}
|
||||
|
||||
$link = '';
|
||||
if ($fakelink) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user