mirror of
https://github.com/moodle/moodle.git
synced 2025-03-13 20:26:32 +01:00
Merge branch 'MDL-30643_master-log-speed' of git://github.com/tbannister/moodle
This commit is contained in:
commit
79fc5f5294
@ -2882,7 +2882,7 @@
|
||||
<KEY NAME="fk_raterid" TYPE="foreign" FIELDS="raterid" REFTABLE="user" REFFIELDS="id" PREVIOUS="fk_definitionid"/>
|
||||
</KEYS>
|
||||
</TABLE>
|
||||
<TABLE NAME="event_subscriptions" COMMENT="Tracks subscriptions to remote calendars." PREVIOUS="grading_instances">
|
||||
<TABLE NAME="event_subscriptions" COMMENT="Tracks subscriptions to remote calendars." PREVIOUS="grading_instances" NEXT="temp_enroled_template">
|
||||
<FIELDS>
|
||||
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true" NEXT="url"/>
|
||||
<FIELD NAME="url" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" PREVIOUS="id" NEXT="courseid"/>
|
||||
@ -2897,5 +2897,38 @@
|
||||
<KEY NAME="primary" TYPE="primary" FIELDS="id"/>
|
||||
</KEYS>
|
||||
</TABLE>
|
||||
<TABLE NAME="temp_enroled_template" COMMENT="Temporary storage for course enrolments" PREVIOUS="event_subscriptions" NEXT="temp_log_template">
|
||||
<FIELDS>
|
||||
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true" NEXT="userid"/>
|
||||
<FIELD NAME="userid" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="id" NEXT="courseid"/>
|
||||
<FIELD NAME="courseid" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="userid" NEXT="roleid"/>
|
||||
<FIELD NAME="roleid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false" PREVIOUS="courseid"/>
|
||||
</FIELDS>
|
||||
<KEYS>
|
||||
<KEY NAME="primary" TYPE="primary" FIELDS="id"/>
|
||||
</KEYS>
|
||||
<INDEXES>
|
||||
<INDEX NAME="userid" UNIQUE="false" FIELDS="userid" NEXT="courseid"/>
|
||||
<INDEX NAME="courseid" UNIQUE="false" FIELDS="courseid" PREVIOUS="userid" NEXT="roleid"/>
|
||||
<INDEX NAME="roleid" UNIQUE="false" FIELDS="roleid" PREVIOUS="courseid"/>
|
||||
</INDEXES>
|
||||
</TABLE>
|
||||
<TABLE NAME="temp_log_template" COMMENT="Temporary storage for daily logs" PREVIOUS="temp_enroled_template">
|
||||
<FIELDS>
|
||||
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true" NEXT="userid"/>
|
||||
<FIELD NAME="userid" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="id" NEXT="course"/>
|
||||
<FIELD NAME="course" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="userid" NEXT="action"/>
|
||||
<FIELD NAME="action" TYPE="char" LENGTH="40" NOTNULL="true" SEQUENCE="false" PREVIOUS="course"/>
|
||||
</FIELDS>
|
||||
<KEYS>
|
||||
<KEY NAME="primary" TYPE="primary" FIELDS="id"/>
|
||||
</KEYS>
|
||||
<INDEXES>
|
||||
<INDEX NAME="action" UNIQUE="false" FIELDS="action" NEXT="course"/>
|
||||
<INDEX NAME="course" UNIQUE="false" FIELDS="course" PREVIOUS="action" NEXT="user"/>
|
||||
<INDEX NAME="user" UNIQUE="false" FIELDS="userid" PREVIOUS="course" NEXT="usercourseaction"/>
|
||||
<INDEX NAME="usercourseaction" UNIQUE="false" FIELDS="userid, course, action" PREVIOUS="user"/>
|
||||
</INDEXES>
|
||||
</TABLE>
|
||||
</TABLES>
|
||||
</XMLDB>
|
||||
|
796
lib/statslib.php
796
lib/statslib.php
File diff suppressed because it is too large
Load Diff
35
lib/tests/fixtures/statslib-test00.xml
vendored
Normal file
35
lib/tests/fixtures/statslib-test00.xml
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Tests no logs - Only query 3 should be processed -->
|
||||
<dataset>
|
||||
<table name="log">
|
||||
<column>time</column>
|
||||
<column>userid</column>
|
||||
<column>course</column>
|
||||
<column>action</column>
|
||||
</table>
|
||||
<table name="stats_daily">
|
||||
<column>courseid</column>
|
||||
<column>timeend</column>
|
||||
<column>roleid</column>
|
||||
<column>stattype</column>
|
||||
<column>stat1</column>
|
||||
<column>stat2</column>
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end_no_logs]</value>
|
||||
<value>5</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_user_daily">
|
||||
<column>courseid</column>
|
||||
<column>userid</column>
|
||||
<column>roleid</column>
|
||||
<column>timeend</column>
|
||||
<column>statsreads</column>
|
||||
<column>statswrites</column>
|
||||
<column>stattype</column>
|
||||
</table>
|
||||
</dataset>
|
116
lib/tests/fixtures/statslib-test01.xml
vendored
Normal file
116
lib/tests/fixtures/statslib-test01.xml
vendored
Normal file
@ -0,0 +1,116 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- No login test - Tests queries 2, 3, 5, 7, 9 (and 8), 10 (read) -->
|
||||
<dataset>
|
||||
<table name="log">
|
||||
<column>time</column>
|
||||
<column>userid</column>
|
||||
<column>course</column>
|
||||
<column>action</column>
|
||||
<row>
|
||||
<value>[start_1]</value>
|
||||
<value>[guest_id]</value>
|
||||
<value>[site_id]</value>
|
||||
<value>view</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_daily">
|
||||
<column>courseid</column>
|
||||
<column>timeend</column>
|
||||
<column>roleid</column>
|
||||
<column>stattype</column>
|
||||
<column>stat1</column>
|
||||
<column>stat2</column>
|
||||
<!-- Query 2 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 3 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[student_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 5 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 7 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 9 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[frontpage_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 11 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 16 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[guest_roleid]</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_user_daily">
|
||||
<column>courseid</column>
|
||||
<column>userid</column>
|
||||
<column>roleid</column>
|
||||
<column>timeend</column>
|
||||
<column>statsreads</column>
|
||||
<column>statswrites</column>
|
||||
<column>stattype</column>
|
||||
<!-- Query 10 - read -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[guest_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
<!-- Query 10 - default record -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
</table>
|
||||
</dataset>
|
117
lib/tests/fixtures/statslib-test02.xml
vendored
Normal file
117
lib/tests/fixtures/statslib-test02.xml
vendored
Normal file
@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Single login - Tests queries 1, 2 (with logins), 4 -->
|
||||
<dataset>
|
||||
<table name="log">
|
||||
<column>time</column>
|
||||
<column>userid</column>
|
||||
<column>course</column>
|
||||
<column>action</column>
|
||||
<row>
|
||||
<value>[start_1]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>[site_id]</value>
|
||||
<value>login</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_daily">
|
||||
<column>courseid</column>
|
||||
<column>timeend</column>
|
||||
<column>roleid</column>
|
||||
<column>stattype</column>
|
||||
<column>stat1</column>
|
||||
<column>stat2</column>
|
||||
<!-- Query 2 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 3 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[student_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 5 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 7 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 9 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[frontpage_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 11 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_user_daily">
|
||||
<column>courseid</column>
|
||||
<column>userid</column>
|
||||
<column>roleid</column>
|
||||
<column>timeend</column>
|
||||
<column>statsreads</column>
|
||||
<column>statswrites</column>
|
||||
<column>stattype</column>
|
||||
<!-- Query 1 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
</row>
|
||||
<!-- Query 10 - read -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
<!-- Query 10 - default record -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
</table>
|
||||
</dataset>
|
151
lib/tests/fixtures/statslib-test03.xml
vendored
Normal file
151
lib/tests/fixtures/statslib-test03.xml
vendored
Normal file
@ -0,0 +1,151 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Guest login and view course - Tests queries 11 (read), 13 (guest) -->
|
||||
<dataset>
|
||||
<table name="log">
|
||||
<column>time</column>
|
||||
<column>userid</column>
|
||||
<column>course</column>
|
||||
<column>action</column>
|
||||
<row>
|
||||
<value>[start_1]</value>
|
||||
<value>[guest_id]</value>
|
||||
<value>[site_id]</value>
|
||||
<value>login</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>[start_2]</value>
|
||||
<value>[guest_id]</value>
|
||||
<value>[course1_id]</value>
|
||||
<value>view</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_daily">
|
||||
<column>courseid</column>
|
||||
<column>timeend</column>
|
||||
<column>roleid</column>
|
||||
<column>stattype</column>
|
||||
<column>stat1</column>
|
||||
<column>stat2</column>
|
||||
<!-- Query 2 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 3 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[student_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 5 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 7 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 9 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[frontpage_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 11 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 11 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 13 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[guest_roleid]</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_user_daily">
|
||||
<column>courseid</column>
|
||||
<column>userid</column>
|
||||
<column>roleid</column>
|
||||
<column>timeend</column>
|
||||
<column>statsreads</column>
|
||||
<column>statswrites</column>
|
||||
<column>stattype</column>
|
||||
<!-- Query 1 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[guest_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
</row>
|
||||
<!-- Query 10 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[guest_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
<!-- Query 10 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[guest_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
<!-- Query 10 - default record -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
</table>
|
||||
</dataset>
|
157
lib/tests/fixtures/statslib-test04.xml
vendored
Normal file
157
lib/tests/fixtures/statslib-test04.xml
vendored
Normal file
@ -0,0 +1,157 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Guest login, view course, and upload assignment - Tests queries 10+11 (write) -->
|
||||
<dataset>
|
||||
<table name="log">
|
||||
<column>time</column>
|
||||
<column>userid</column>
|
||||
<column>course</column>
|
||||
<column>action</column>
|
||||
<row>
|
||||
<value>[start_1]</value>
|
||||
<value>[guest_id]</value>
|
||||
<value>[site_id]</value>
|
||||
<value>login</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>[start_2]</value>
|
||||
<value>[guest_id]</value>
|
||||
<value>[course1_id]</value>
|
||||
<value>view</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>[start_3]</value>
|
||||
<value>[guest_id]</value>
|
||||
<value>[course1_id]</value>
|
||||
<value>add post</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_daily">
|
||||
<column>courseid</column>
|
||||
<column>timeend</column>
|
||||
<column>roleid</column>
|
||||
<column>stattype</column>
|
||||
<column>stat1</column>
|
||||
<column>stat2</column>
|
||||
<!-- Query 2 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 3 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[student_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 5 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 7 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 9 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[frontpage_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 11 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 11 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 13 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[guest_roleid]</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_user_daily">
|
||||
<column>courseid</column>
|
||||
<column>userid</column>
|
||||
<column>roleid</column>
|
||||
<column>timeend</column>
|
||||
<column>statsreads</column>
|
||||
<column>statswrites</column>
|
||||
<column>stattype</column>
|
||||
<!-- Query 1 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[guest_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
</row>
|
||||
<!-- Query 10 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[guest_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
<!-- Query 10 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[guest_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
<!-- Query 10 - default record -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
</table>
|
||||
</dataset>
|
151
lib/tests/fixtures/statslib-test05.xml
vendored
Normal file
151
lib/tests/fixtures/statslib-test05.xml
vendored
Normal file
@ -0,0 +1,151 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- User login and view course - Tests queries 4, 6, 10, 12, 14 (read) -->
|
||||
<dataset>
|
||||
<table name="log">
|
||||
<column>time</column>
|
||||
<column>userid</column>
|
||||
<column>course</column>
|
||||
<column>action</column>
|
||||
<row>
|
||||
<value>[start_1]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>[site_id]</value>
|
||||
<value>login</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>[start_2]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>[course1_id]</value>
|
||||
<value>view</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_daily">
|
||||
<column>courseid</column>
|
||||
<column>timeend</column>
|
||||
<column>roleid</column>
|
||||
<column>stattype</column>
|
||||
<column>stat1</column>
|
||||
<column>stat2</column>
|
||||
<!-- Query 2 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Queris 3 (stat1) and 4 (stat2) -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[student_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Queries 5 (stat1) and 6 (stat2) -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 7 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 9 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[frontpage_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 11 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 11 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 12 (read) -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[student_roleid]</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_user_daily">
|
||||
<column>courseid</column>
|
||||
<column>userid</column>
|
||||
<column>roleid</column>
|
||||
<column>timeend</column>
|
||||
<column>statsreads</column>
|
||||
<column>statswrites</column>
|
||||
<column>stattype</column>
|
||||
<!-- Query 1 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
</row>
|
||||
<!-- Query 10 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
<!-- Query 10 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
<!-- Query 10 - default record -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
</table>
|
||||
</dataset>
|
157
lib/tests/fixtures/statslib-test06.xml
vendored
Normal file
157
lib/tests/fixtures/statslib-test06.xml
vendored
Normal file
@ -0,0 +1,157 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- User login, view course and post - Tests queries 10, 12, 14 (write) -->
|
||||
<dataset>
|
||||
<table name="log">
|
||||
<column>time</column>
|
||||
<column>userid</column>
|
||||
<column>course</column>
|
||||
<column>action</column>
|
||||
<row>
|
||||
<value>[start_1]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>[site_id]</value>
|
||||
<value>login</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>[start_2]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>[course1_id]</value>
|
||||
<value>view</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>[start_3]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>[course1_id]</value>
|
||||
<value>add post</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_daily">
|
||||
<column>courseid</column>
|
||||
<column>timeend</column>
|
||||
<column>roleid</column>
|
||||
<column>stattype</column>
|
||||
<column>stat1</column>
|
||||
<column>stat2</column>
|
||||
<!-- Query 2 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Queris 3 (stat1) and 4 (stat2) -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[student_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Queries 5 (stat1) and 6 (stat2) -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 7 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 9 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[frontpage_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 11 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 11 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 12 (read) -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[student_roleid]</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_user_daily">
|
||||
<column>courseid</column>
|
||||
<column>userid</column>
|
||||
<column>roleid</column>
|
||||
<column>timeend</column>
|
||||
<column>statsreads</column>
|
||||
<column>statswrites</column>
|
||||
<column>stattype</column>
|
||||
<!-- Query 1 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
</row>
|
||||
<!-- Query 10 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
<!-- Query 10 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
<!-- Query 10 - default record -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
</table>
|
||||
</dataset>
|
166
lib/tests/fixtures/statslib-test07.xml
vendored
Normal file
166
lib/tests/fixtures/statslib-test07.xml
vendored
Normal file
@ -0,0 +1,166 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- User login and view course (not enrolled) - Tests queries 13 (not enroled), 14 (not default) -->
|
||||
<dataset>
|
||||
<table name="log">
|
||||
<column>time</column>
|
||||
<column>userid</column>
|
||||
<column>course</column>
|
||||
<column>action</column>
|
||||
<row>
|
||||
<value>[start_1]</value>
|
||||
<value>[user2_id]</value>
|
||||
<value>[site_id]</value>
|
||||
<value>login</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>[start_2]</value>
|
||||
<value>[user2_id]</value>
|
||||
<value>[site_id]</value>
|
||||
<value>view</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>[start_3]</value>
|
||||
<value>[user2_id]</value>
|
||||
<value>[course1_id]</value>
|
||||
<value>view</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_daily">
|
||||
<column>courseid</column>
|
||||
<column>timeend</column>
|
||||
<column>roleid</column>
|
||||
<column>stattype</column>
|
||||
<column>stat1</column>
|
||||
<column>stat2</column>
|
||||
<!-- Query 2 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 3 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[student_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 5 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 7 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 9 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[frontpage_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 11 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 11 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 13 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[guest_roleid]</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 14 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[frontpage_roleid]</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_user_daily">
|
||||
<column>courseid</column>
|
||||
<column>userid</column>
|
||||
<column>roleid</column>
|
||||
<column>timeend</column>
|
||||
<column>statsreads</column>
|
||||
<column>statswrites</column>
|
||||
<column>stattype</column>
|
||||
<!-- Query 1 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[user2_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
</row>
|
||||
<!-- Query 10 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[user2_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
<!-- Query 10 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[user2_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
<!-- Query 10 - default record -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
</table>
|
||||
</dataset>
|
132
lib/tests/fixtures/statslib-test08.xml
vendored
Normal file
132
lib/tests/fixtures/statslib-test08.xml
vendored
Normal file
@ -0,0 +1,132 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- User login and view site - Tests query 15 (front page views) -->
|
||||
<dataset>
|
||||
<table name="log">
|
||||
<column>time</column>
|
||||
<column>userid</column>
|
||||
<column>course</column>
|
||||
<column>action</column>
|
||||
<row>
|
||||
<value>[start_1]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>[site_id]</value>
|
||||
<value>login</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>[start_2]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>[site_id]</value>
|
||||
<value>view</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_daily">
|
||||
<column>courseid</column>
|
||||
<column>timeend</column>
|
||||
<column>roleid</column>
|
||||
<column>stattype</column>
|
||||
<column>stat1</column>
|
||||
<column>stat2</column>
|
||||
<!-- Query 2 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 3 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[student_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 5 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 7 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 9 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[frontpage_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 11 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 15 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[frontpage_roleid]</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_user_daily">
|
||||
<column>courseid</column>
|
||||
<column>userid</column>
|
||||
<column>roleid</column>
|
||||
<column>timeend</column>
|
||||
<column>statsreads</column>
|
||||
<column>statswrites</column>
|
||||
<column>stattype</column>
|
||||
<!-- Query 1 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
</row>
|
||||
<!-- Query 10 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
<!-- Query 10 - default record -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
</table>
|
||||
</dataset>
|
129
lib/tests/fixtures/statslib-test09.xml
vendored
Normal file
129
lib/tests/fixtures/statslib-test09.xml
vendored
Normal file
@ -0,0 +1,129 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Multiple logins on different days -->
|
||||
<dataset>
|
||||
<table name="log">
|
||||
<column>time</column>
|
||||
<column>userid</column>
|
||||
<column>course</column>
|
||||
<column>action</column>
|
||||
<row>
|
||||
<value>[start_0]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>[site_id]</value>
|
||||
<value>login</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>[start_1]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>[site_id]</value>
|
||||
<value>login</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>[start_4]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>[site_id]</value>
|
||||
<value>login</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_daily">
|
||||
<column>courseid</column>
|
||||
<column>timeend</column>
|
||||
<column>roleid</column>
|
||||
<column>stattype</column>
|
||||
<column>stat1</column>
|
||||
<column>stat2</column>
|
||||
<!-- Query 2 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 3 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[student_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 5 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 7 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 9 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[frontpage_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 11 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_user_daily">
|
||||
<column>courseid</column>
|
||||
<column>userid</column>
|
||||
<column>roleid</column>
|
||||
<column>timeend</column>
|
||||
<column>statsreads</column>
|
||||
<column>statswrites</column>
|
||||
<column>stattype</column>
|
||||
<!-- Query 1 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
</row>
|
||||
<!-- Query 10 - read -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[user1_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
<!-- Query 10 - default record -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
</table>
|
||||
</dataset>
|
107
lib/tests/fixtures/statslib-test10.xml
vendored
Normal file
107
lib/tests/fixtures/statslib-test10.xml
vendored
Normal file
@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- No default profile id test -->
|
||||
<dataset>
|
||||
<table name="log">
|
||||
<column>time</column>
|
||||
<column>userid</column>
|
||||
<column>course</column>
|
||||
<column>action</column>
|
||||
<row>
|
||||
<value>[start_1]</value>
|
||||
<value>[guest_id]</value>
|
||||
<value>[site_id]</value>
|
||||
<value>view</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_daily">
|
||||
<column>courseid</column>
|
||||
<column>timeend</column>
|
||||
<column>roleid</column>
|
||||
<column>stattype</column>
|
||||
<column>stat1</column>
|
||||
<column>stat2</column>
|
||||
<!-- Query 2 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>logins</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 3 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[student_roleid]</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 5 -->
|
||||
<row>
|
||||
<value>[course1_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 7 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>enrolments</value>
|
||||
<value>4</value>
|
||||
<value>1</value>
|
||||
</row>
|
||||
<!-- Query 11 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<!-- Query 16 -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[end]</value>
|
||||
<value>[guest_roleid]</value>
|
||||
<value>activity</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="stats_user_daily">
|
||||
<column>courseid</column>
|
||||
<column>userid</column>
|
||||
<column>roleid</column>
|
||||
<column>timeend</column>
|
||||
<column>statsreads</column>
|
||||
<column>statswrites</column>
|
||||
<column>stattype</column>
|
||||
<!-- Query 10 - read -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>[guest_id]</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
<!-- Query 10 - default record -->
|
||||
<row>
|
||||
<value>[site_id]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>[end]</value>
|
||||
<value>0</value>
|
||||
<value>0</value>
|
||||
<value>activity</value>
|
||||
</row>
|
||||
</table>
|
||||
</dataset>
|
581
lib/tests/statslib_test.php
Normal file
581
lib/tests/statslib_test.php
Normal file
@ -0,0 +1,581 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
//
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* Tests for ../statslib.php
|
||||
*
|
||||
* @package core
|
||||
* @subpackage stats
|
||||
* @copyright 2012 Tyler Bannister
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
global $CFG;
|
||||
require_once($CFG->libdir . '/adminlib.php');
|
||||
require_once($CFG->libdir . '/statslib.php');
|
||||
|
||||
/**
|
||||
* Test functions that affect daily stats
|
||||
*/
|
||||
class statslib_daily_testcase extends advanced_testcase {
|
||||
/** The student role ID **/
|
||||
const STID = 5;
|
||||
|
||||
/** The day to use for testing **/
|
||||
const DAY = 1272700810; // 1272758400
|
||||
|
||||
/** @var array The list of temporary tables created for the statistic calculations **/
|
||||
protected $tables = array('temp_log1', 'temp_log2', 'temp_stats_daily', 'temp_stats_user_daily');
|
||||
|
||||
/** @var array The replacements to be used when loading XML files **/
|
||||
protected $replacements = null;
|
||||
|
||||
/**
|
||||
* Set up the database for tests
|
||||
*
|
||||
* This function is needed so that daily_log_provider has the before-test set up from setUp()
|
||||
*/
|
||||
public function setUpDB() {
|
||||
global $DB;
|
||||
|
||||
if ($DB->record_exists('user', array('username' => 'user1'))) {
|
||||
return;
|
||||
}
|
||||
|
||||
$datagen = self::getDataGenerator();
|
||||
|
||||
$user1 = $datagen->create_user(array('username'=>'user1'));
|
||||
$user2 = $datagen->create_user(array('username'=>'user2'));
|
||||
|
||||
$course1 = $datagen->create_course(array('shortname'=>'course1'));
|
||||
|
||||
$success = enrol_try_internal_enrol($course1->id, $user1->id, 5);
|
||||
|
||||
if (! $success) {
|
||||
trigger_error('User enrollment failed', E_USER_ERROR);
|
||||
}
|
||||
|
||||
$context = context_system::instance();
|
||||
role_assign(self::STID, $user2->id, $context->id);
|
||||
|
||||
$this->generate_replacement_list();
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup function
|
||||
* - Allow changes to CFG->debug for testing purposes.
|
||||
*/
|
||||
protected function setUp() {
|
||||
global $CFG;
|
||||
parent::setUp();
|
||||
|
||||
// Settings to force statistic to run during testing
|
||||
$CFG->timezone = 99;
|
||||
$CFG->statsfirstrun = 'all';
|
||||
$CFG->statslastdaily = 0;
|
||||
$CFG->statslastexecution = 0;
|
||||
$CFG->statsruntimestarthour = date('H');
|
||||
$CFG->statsruntimestartminute = 0;
|
||||
|
||||
$this->setUpDB();
|
||||
|
||||
$this->resetAfterTest(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to setup database.
|
||||
*
|
||||
* @param array $dataset An array of tables including the log table.
|
||||
*/
|
||||
protected function prepare_db($dataset, $tables) {
|
||||
global $DB;
|
||||
|
||||
foreach ($tables as $tablename) {
|
||||
$DB->delete_records($tablename);
|
||||
|
||||
foreach ($dataset as $name => $table) {
|
||||
|
||||
if ($tablename == $name) {
|
||||
|
||||
$rows = $table->getRowCount();
|
||||
|
||||
for ($i = 0; $i < $rows; $i++) {
|
||||
$row = $table->getRow($i);
|
||||
|
||||
$DB->insert_record($tablename, $row, false, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Load dataset from XML file
|
||||
*
|
||||
* @param string $file The name of the file to load
|
||||
*/
|
||||
protected function generate_replacement_list() {
|
||||
global $CFG, $DB;
|
||||
|
||||
if ($this->replacements !== null) {
|
||||
return;
|
||||
}
|
||||
|
||||
$guest = $DB->get_record('user', array('id' => $CFG->siteguest));
|
||||
$user1 = $DB->get_record('user', array('username' => 'user1'));
|
||||
$user2 = $DB->get_record('user', array('username' => 'user2'));
|
||||
|
||||
if (($guest === false) || ($user1 === false) || ($user2 === false)) {
|
||||
trigger_error('User setup incomplete', E_USER_ERROR);
|
||||
}
|
||||
|
||||
$site = $DB->get_record('course', array('id' => SITEID));
|
||||
$course1 = $DB->get_record('course', array('shortname' => 'course1'));
|
||||
|
||||
if (($site === false) || ($course1 === false)) {
|
||||
trigger_error('Course setup incomplete', E_USER_ERROR);
|
||||
}
|
||||
|
||||
$start = stats_get_base_daily(self::DAY + 3600);
|
||||
$startnolog = stats_get_base_daily(stats_get_start_from('daily'));
|
||||
$gr = get_guest_role();
|
||||
|
||||
$this->replacements = array(
|
||||
// Start and end times
|
||||
'[start_0]' => $start - 14410, // 4 hours before
|
||||
'[start_1]' => $start + 14410, // 4 hours after
|
||||
'[start_2]' => $start + 14420,
|
||||
'[start_3]' => $start + 14430,
|
||||
'[start_4]' => $start + 100800, // 28 hours after
|
||||
'[end]' => stats_get_next_day_start($start),
|
||||
'[end_no_logs]' => stats_get_next_day_start($startnolog),
|
||||
|
||||
// User ids
|
||||
'[guest_id]' => $guest->id,
|
||||
'[user1_id]' => $user1->id,
|
||||
'[user2_id]' => $user2->id,
|
||||
|
||||
// Course ids
|
||||
'[course1_id]' => $course1->id,
|
||||
'[site_id]' => SITEID,
|
||||
|
||||
// Role ids
|
||||
'[frontpage_roleid]' => (int) $CFG->defaultfrontpageroleid,
|
||||
'[guest_roleid]' => $gr->id,
|
||||
'[student_roleid]' => self::STID,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Load dataset from XML file
|
||||
*
|
||||
* @param string $file The name of the file to load
|
||||
*/
|
||||
protected function load_xml_data_file($file) {
|
||||
static $replacements = null;
|
||||
|
||||
$raw = $this->createXMLDataSet($file);
|
||||
$clean = new PHPUnit_Extensions_Database_DataSet_ReplacementDataSet($raw);
|
||||
|
||||
foreach ($this->replacements as $placeholder => $value) {
|
||||
$clean->addFullReplacement($placeholder, $value);
|
||||
}
|
||||
|
||||
$logs = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($clean);
|
||||
$logs->addIncludeTables(array('log'));
|
||||
|
||||
$stats = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($clean);
|
||||
$stats->addIncludeTables(array('stats_daily', 'stats_user_daily'));
|
||||
|
||||
return array($logs, $stats);
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides the log data for test_statslib_cron_daily
|
||||
*/
|
||||
public function daily_log_provider() {
|
||||
global $CFG, $DB;
|
||||
|
||||
$this->setUpDB();
|
||||
|
||||
$tests = array('00', '01', '02', '03', '04', '05', '06', '07', '08');
|
||||
|
||||
$dataset = array();
|
||||
|
||||
foreach ($tests as $test) {
|
||||
$dataset[] = $this->load_xml_data_file(__DIR__."/fixtures/statslib-test{$test}.xml");
|
||||
}
|
||||
|
||||
return $dataset;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compare the expected stats to those in the database.
|
||||
*
|
||||
* @param array $stats An array of arrays of arrays of both types of stats
|
||||
*/
|
||||
protected function verify_stats($expected) {
|
||||
global $DB;
|
||||
|
||||
// Note: We can not use $this->assertDataSetEqual($expected, $actual) because there's no
|
||||
// $this->getConnection() in advanced_testcase.
|
||||
|
||||
foreach ($expected as $type => $table) {
|
||||
$records = $DB->get_records($type);
|
||||
|
||||
$rows = $table->getRowCount();
|
||||
|
||||
$this->assertEquals($rows, sizeof($records),
|
||||
'Incorrect number of results returned for '. $type);
|
||||
|
||||
for ($i = 0; $i < $rows; $i++) {
|
||||
$row = $table->getRow($i);
|
||||
$found = 0;
|
||||
|
||||
foreach ($records as $key => $record) {
|
||||
$record = (array) $record;
|
||||
unset($record['id']);
|
||||
$diff = array_merge(array_diff_assoc($row, $record),
|
||||
array_diff_assoc($record, $row));
|
||||
|
||||
if (empty($diff)) {
|
||||
$found = $key;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$this->assertGreaterThan(0, $found, 'Expected log '. var_export($row, true)
|
||||
." was not found in $type ". var_export($records, true));
|
||||
unset($records[$found]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test progress output when debug is on
|
||||
*/
|
||||
public function test_statslib_progress_debug() {
|
||||
global $CFG;
|
||||
|
||||
$CFG->debug = DEBUG_ALL;
|
||||
$this->expectOutputString('1:0 ');
|
||||
stats_progress('init');
|
||||
stats_progress('1');
|
||||
}
|
||||
|
||||
/**
|
||||
* Test progress output when debug is off
|
||||
*/
|
||||
public function test_statslib_progress_no_debug() {
|
||||
global $CFG;
|
||||
|
||||
$CFG->debug = DEBUG_NONE;
|
||||
$this->expectOutputString('.');
|
||||
stats_progress('init');
|
||||
stats_progress('1');
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the function that gets the start date from the config
|
||||
*/
|
||||
public function test_statslib_get_start_from() {
|
||||
global $CFG, $DB;
|
||||
|
||||
$dataset = $this->load_xml_data_file(__DIR__."/fixtures/statslib-test01.xml");
|
||||
|
||||
$time = time();
|
||||
$DB->delete_records('log');
|
||||
|
||||
$CFG->statsfirstrun = 'all';
|
||||
// Allow 1 second difference in case we cross a second boundary.
|
||||
$this->assertLessThanOrEqual(1, stats_get_start_from('daily') - ($time - (3 * 24 * 3600)), 'All start time');
|
||||
|
||||
$this->prepare_db($dataset[0], array('log'));
|
||||
$records = $DB->get_records('log');
|
||||
|
||||
$this->assertEquals(self::DAY, stats_get_start_from('daily'), 'Log entry start');
|
||||
|
||||
$CFG->statsfirstrun = 'none';
|
||||
$this->assertLessThanOrEqual(1, stats_get_start_from('daily') - ($time - (3 * 24 * 3600)), 'None start time');
|
||||
|
||||
$CFG->statsfirstrun = 14515200;
|
||||
$this->assertLessThanOrEqual(1, stats_get_start_from('daily') - ($time - (14515200)), 'Specified start time');
|
||||
|
||||
$this->prepare_db($dataset[1], array('stats_daily'));
|
||||
$this->assertEquals(self::DAY - 14410 + (24 * 3600), stats_get_start_from('daily'), 'Daily stats start time');
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the function that calculates the start of the day
|
||||
*/
|
||||
public function test_statslib_get_base_daily() {
|
||||
global $CFG;
|
||||
|
||||
$CFG->timezone = 0;
|
||||
$this->assertEquals(1272672000, stats_get_base_daily(1272686410));
|
||||
$CFG->timezone = 5;
|
||||
$this->assertEquals(1272654000, stats_get_base_daily(1272686410));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the function that gets the start of the next day
|
||||
*/
|
||||
public function test_statslib_get_next_day_start() {
|
||||
global $CFG;
|
||||
|
||||
$CFG->timezone = 0;
|
||||
$this->assertEquals(1272758400, stats_get_next_day_start(1272686410));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the function that gets the action names
|
||||
*
|
||||
* Note: The function results depend on installed modules. The hard coded lists are the
|
||||
* defaults for a new Moodle 2.3 install.
|
||||
*/
|
||||
public function test_statslib_get_action_names() {
|
||||
$basepostactions = array (
|
||||
0 => 'add',
|
||||
1 => 'delete',
|
||||
2 => 'edit',
|
||||
3 => 'add mod',
|
||||
4 => 'delete mod',
|
||||
5 => 'edit sectionenrol',
|
||||
6 => 'loginas',
|
||||
7 => 'new',
|
||||
8 => 'unenrol',
|
||||
9 => 'update',
|
||||
10 => 'update mod',
|
||||
11 => 'upload',
|
||||
12 => 'submit',
|
||||
13 => 'submit for grading',
|
||||
14 => 'talk',
|
||||
15 => 'choose',
|
||||
16 => 'choose again',
|
||||
17 => 'record delete',
|
||||
18 => 'add discussion',
|
||||
19 => 'add post',
|
||||
20 => 'delete discussion',
|
||||
21 => 'delete post',
|
||||
22 => 'move discussion',
|
||||
23 => 'prune post',
|
||||
24 => 'update post',
|
||||
25 => 'add category',
|
||||
26 => 'add entry',
|
||||
27 => 'approve entry',
|
||||
28 => 'delete category',
|
||||
29 => 'delete entry',
|
||||
30 => 'edit category',
|
||||
31 => 'update entry',
|
||||
32 => 'end',
|
||||
33 => 'start',
|
||||
34 => 'attempt',
|
||||
35 => 'close attempt',
|
||||
36 => 'preview',
|
||||
37 => 'editquestions',
|
||||
38 => 'delete attempt',
|
||||
39 => 'manualgrade',
|
||||
);
|
||||
|
||||
$baseviewactions = array (
|
||||
0 => 'view',
|
||||
1 => 'view all',
|
||||
2 => 'history',
|
||||
3 => 'view submission',
|
||||
4 => 'view feedback',
|
||||
5 => 'print',
|
||||
6 => 'report',
|
||||
7 => 'view discussion',
|
||||
8 => 'search',
|
||||
9 => 'forum',
|
||||
10 => 'forums',
|
||||
11 => 'subscribers',
|
||||
12 => 'view forum',
|
||||
13 => 'view entry',
|
||||
14 => 'review',
|
||||
15 => 'pre-view',
|
||||
16 => 'download',
|
||||
17 => 'view form',
|
||||
18 => 'view graph',
|
||||
19 => 'view report',
|
||||
);
|
||||
|
||||
$postactions = stats_get_action_names('post');
|
||||
|
||||
foreach ($basepostactions as $action) {
|
||||
$this->assertContains($action, $postactions);
|
||||
}
|
||||
|
||||
$viewactions = stats_get_action_names('view');
|
||||
|
||||
foreach ($baseviewactions as $action) {
|
||||
$this->assertContains($action, $viewactions);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the temporary table creation and deletion.
|
||||
*/
|
||||
public function test_statslib_temp_table_create_and_drop() {
|
||||
global $DB;
|
||||
|
||||
foreach ($this->tables as $table) {
|
||||
$this->assertFalse($DB->get_manager()->table_exists($table));
|
||||
}
|
||||
|
||||
stats_temp_table_create();
|
||||
|
||||
foreach ($this->tables as $table) {
|
||||
$this->assertTrue($DB->get_manager()->table_exists($table));
|
||||
}
|
||||
|
||||
stats_temp_table_drop();
|
||||
|
||||
foreach ($this->tables as $table) {
|
||||
$this->assertFalse($DB->get_manager()->table_exists($table));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the temporary table creation and deletion.
|
||||
*
|
||||
* @depends test_statslib_temp_table_create_and_drop
|
||||
*/
|
||||
public function test_statslib_temp_table_fill() {
|
||||
global $DB;
|
||||
|
||||
$dataset = $this->load_xml_data_file(__DIR__."/fixtures/statslib-test09.xml");
|
||||
|
||||
$this->prepare_db($dataset[0], array('log'));
|
||||
|
||||
stats_temp_table_create();
|
||||
stats_temp_table_fill(1272686410, 1272758400);
|
||||
|
||||
$this->assertEquals(1, $DB->count_records('temp_log1'));
|
||||
$this->assertEquals(1, $DB->count_records('temp_log2'));
|
||||
|
||||
stats_temp_table_drop();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the temporary table creation and deletion.
|
||||
*
|
||||
* @depends test_statslib_temp_table_create_and_drop
|
||||
*/
|
||||
public function test_statslib_temp_table_setup() {
|
||||
global $DB;
|
||||
|
||||
$logs = array();
|
||||
$this->prepare_db($logs, array('log'));
|
||||
|
||||
stats_temp_table_create();
|
||||
stats_temp_table_setup();
|
||||
|
||||
$this->assertEquals(1, $DB->count_records('temp_enroled'));
|
||||
|
||||
stats_temp_table_drop();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the function that clean out the temporary tables.
|
||||
*
|
||||
* @depends test_statslib_temp_table_create_and_drop
|
||||
*/
|
||||
public function test_statslib_temp_table_clean() {
|
||||
global $DB;
|
||||
|
||||
$rows = array(
|
||||
'temp_log1' => array('id' => 1, 'course' => 1),
|
||||
'temp_log2' => array('id' => 1, 'course' => 1),
|
||||
'temp_stats_daily' => array('id' => 1, 'courseid' => 1),
|
||||
'temp_stats_user_daily' => array('id' => 1, 'courseid' => 1),
|
||||
);
|
||||
|
||||
stats_temp_table_create();
|
||||
|
||||
foreach ($rows as $table => $row) {
|
||||
$DB->insert_record_raw($table, $row);
|
||||
$this->assertEquals(1, $DB->count_records($table));
|
||||
}
|
||||
|
||||
stats_temp_table_clean();
|
||||
|
||||
foreach ($rows as $table => $row) {
|
||||
$this->assertEquals(0, $DB->count_records($table));
|
||||
}
|
||||
|
||||
$this->assertEquals(1, $DB->count_records('stats_daily'));
|
||||
$this->assertEquals(1, $DB->count_records('stats_user_daily'));
|
||||
|
||||
stats_temp_table_drop();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the daily stats function
|
||||
*
|
||||
* @depends test_statslib_get_base_daily
|
||||
* @depends test_statslib_get_next_day_start
|
||||
* @depends test_statslib_temp_table_create_and_drop
|
||||
* @depends test_statslib_temp_table_setup
|
||||
* @depends test_statslib_temp_table_fill
|
||||
* @dataProvider daily_log_provider
|
||||
*/
|
||||
public function test_statslib_cron_daily($logs, $stats) {
|
||||
global $CFG;
|
||||
|
||||
$CFG->debug = DEBUG_NONE;
|
||||
|
||||
$this->prepare_db($logs, array('log'));
|
||||
|
||||
// Stats cron daily uses mtrace, turn on buffering to silence output.
|
||||
ob_start();
|
||||
stats_cron_daily(1);
|
||||
ob_end_clean();
|
||||
|
||||
$this->verify_stats($stats);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the daily stats function
|
||||
* @depends test_statslib_get_base_daily
|
||||
* @depends test_statslib_get_next_day_start
|
||||
*/
|
||||
public function test_statslib_cron_daily_no_default_profile_id() {
|
||||
global $CFG, $DB;
|
||||
$CFG->defaultfrontpageroleid = 0;
|
||||
|
||||
$course1 = $DB->get_record('course', array('shortname' => 'course1'));
|
||||
$guestid = $CFG->siteguest;
|
||||
$start = stats_get_base_daily(1272758400);
|
||||
$end = stats_get_next_day_start($start);
|
||||
$fpid = (int) $CFG->defaultfrontpageroleid;
|
||||
$gr = get_guest_role();
|
||||
|
||||
$dataset = $this->load_xml_data_file(__DIR__."/fixtures/statslib-test10.xml");
|
||||
|
||||
$CFG->debug = DEBUG_NONE;
|
||||
|
||||
$this->prepare_db($dataset[0], array('log'));
|
||||
|
||||
// Stats cron daily uses mtrace, turn on buffering to silence output.
|
||||
ob_start();
|
||||
stats_cron_daily($maxdays=1);
|
||||
ob_end_clean();
|
||||
|
||||
$this->verify_stats($dataset[1]);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user