diff --git a/.editorconfig b/.editorconfig
index 45d516e66f442dd84d81ea615bf240a92eb0224b..1cb779bf73ad33ef4d98e815d5fa867e50176a9e 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -11,5 +11,5 @@ indent_style = space
 indent_size = 2
 charset = utf-8
 
-[*.php]
+[*.{php,json}]
 indent_size = 4
diff --git a/src/transformer/events/mod_quiz/attempt_submitted.php b/src/transformer/events/mod_quiz/attempt_submitted/attempt_submitted.php
similarity index 97%
rename from src/transformer/events/mod_quiz/attempt_submitted.php
rename to src/transformer/events/mod_quiz/attempt_submitted/attempt_submitted.php
index 042b63db0b187543f77bf755d596f527a1f608ff..58d8d33556e84dadb0350910c6a8281bfc01304a 100644
--- a/src/transformer/events/mod_quiz/attempt_submitted.php
+++ b/src/transformer/events/mod_quiz/attempt_submitted/attempt_submitted.php
@@ -14,7 +14,7 @@
 // You should have received a copy of the GNU General Public License
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
-namespace src\transformer\events\mod_quiz;
+namespace src\transformer\events\mod_quiz\attempt_submitted;
 
 defined('MOODLE_INTERNAL') || die();
 
diff --git a/src/transformer/events/mod_quiz/attempt_submitted/handler.php b/src/transformer/events/mod_quiz/attempt_submitted/handler.php
new file mode 100644
index 0000000000000000000000000000000000000000..01b2bf6762bfb0447a02700d27b410d568b9fb78
--- /dev/null
+++ b/src/transformer/events/mod_quiz/attempt_submitted/handler.php
@@ -0,0 +1,36 @@
+<?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/>.
+
+namespace src\transformer\events\mod_quiz\attempt_submitted;
+
+defined('MOODLE_INTERNAL') || die();
+
+use src\transformer\utils as utils;
+use src\transformer\events\mod_quiz\question_answered as question_answered;
+
+function handler(array $config, \stdClass $event) {
+    $repo = $config['repo'];
+    $questionattempts = $repo->read_records('question_attempts', [
+        'questionusageid' => $event->objectid
+    ]);
+
+    return array_merge(
+        attempt_submitted($config, $event),
+        array_reduce($questionattempts, function ($result, $questionattempt) use ($config, $event) {
+            return array_merge($result, question_answered\handler($config, $event, $questionattempt));
+        }, [])
+    );
+}
\ No newline at end of file
diff --git a/src/transformer/events/mod_quiz/question_answered/essay.php b/src/transformer/events/mod_quiz/question_answered/essay.php
new file mode 100644
index 0000000000000000000000000000000000000000..5fafad56be7818727b01869504071e01215675da
--- /dev/null
+++ b/src/transformer/events/mod_quiz/question_answered/essay.php
@@ -0,0 +1,74 @@
+<?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/>.
+
+namespace src\transformer\events\mod_quiz\question_answered;
+
+defined('MOODLE_INTERNAL') || die();
+
+use src\transformer\utils as utils;
+
+function essay(array $config, \stdClass $event, \stdClass $questionattempt, \stdClass $question) {
+    $repo = $config['repo'];
+    $user = $repo->read_record_by_id('user', $event->relateduserid);
+    $course = $repo->read_record_by_id('course', $event->courseid);
+    $attempt = $repo->read_record_by_id('quiz_attempts', $questionattempt->questionusageid);
+    $quiz = $repo->read_record_by_id('quiz', $attempt->quiz);
+    $coursemodule = $repo->read_record_by_id('course_modules', $event->contextinstanceid);
+    $lang = utils\get_course_lang($course);
+
+    return [[
+        'actor' => utils\get_user($config, $user),
+        'verb' => [
+            'id' => 'http://adlnet.gov/expapi/verbs/answered',
+            'display' => [
+                $lang => 'answered'
+            ],
+        ],
+        'object' => [
+            'id' => $config['app_url'].'/question/question.php?cmid='.$coursemodule->id.'&id='.$question->id,
+            'definition' => [
+                'type' => 'http://adlnet.gov/expapi/activities/question',
+                'name' => [
+                    $lang => $questionattempt->questionsummary,
+                ],
+                'interactionType' => 'long-fill-in',
+            ]
+        ],
+        'timestamp' => utils\get_event_timestamp($event),
+        'result' => [
+            'response' => $questionattempt->responsesummary,
+            'completion' => $questionattempt->responsesummary !== '',
+        ],
+        'context' => [
+            'platform' => $config['source_name'],
+            'language' => $lang,
+            'extensions' => [
+                utils\INFO_EXTENSION => utils\get_info($config, $event),
+            ],
+            'contextActivities' => [
+                'grouping' => [
+                    utils\get_activity\site($config),
+                    utils\get_activity\course($config, $course),
+                    utils\get_activity\module($config, 'quiz', $quiz, $lang),
+                    utils\get_activity\module($config, 'attempt', $attempt, $lang),
+                ],
+                'category' => [
+                    utils\get_activity\source($config),
+                ]
+            ],
+        ]
+    ]];
+}
\ No newline at end of file
diff --git a/src/transformer/events/mod_quiz/question_answered/handler.php b/src/transformer/events/mod_quiz/question_answered/handler.php
new file mode 100644
index 0000000000000000000000000000000000000000..cf8d6485008b63b1b374fd4e4a7d891efcea05dc
--- /dev/null
+++ b/src/transformer/events/mod_quiz/question_answered/handler.php
@@ -0,0 +1,33 @@
+<?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/>.
+
+namespace src\transformer\events\mod_quiz\question_answered;
+
+defined('MOODLE_INTERNAL') || die();
+
+use src\transformer\utils as utils;
+
+function handler(array $config, \stdClass $event, \stdClass $questionattempt) {
+    $repo = $config['repo'];
+    $question = $repo->read_record_by_id('question', $questionattempt->questionid);
+
+    switch ($question->qtype) {
+        case 'essay':
+            return essay($config, $event, $questionattempt, $question);
+        default:
+            return [];
+    }
+}
\ No newline at end of file
diff --git a/src/transformer/get_event_function_map.php b/src/transformer/get_event_function_map.php
index a46f820282c4179dc7d0b8d7c779425e8323a427..e0b46d64ea12aa827e5553d326f75e42302c9d5a 100644
--- a/src/transformer/get_event_function_map.php
+++ b/src/transformer/get_event_function_map.php
@@ -47,10 +47,10 @@ function get_event_function_map() {
         '\mod_lti\event\course_module_viewed' => 'all\course_module_viewed',
         '\mod_page\event\course_module_viewed' => 'all\course_module_viewed',
         '\mod_quiz\event\course_module_viewed' => 'all\course_module_viewed',
-        '\mod_quiz\event\attempt_abandoned' => 'mod_quiz\attempt_submitted',
+        '\mod_quiz\event\attempt_abandoned' => 'mod_quiz\attempt_submitted\handler',
         '\mod_quiz\event\attempt_started' => 'mod_quiz\attempt_started',
         '\mod_quiz\event\attempt_reviewed' => 'mod_quiz\attempt_reviewed',
-        '\mod_quiz\event\attempt_submitted' => 'mod_quiz\attempt_submitted',
+        '\mod_quiz\event\attempt_submitted' => 'mod_quiz\attempt_submitted\handler',
         '\mod_quiz\event\attempt_viewed' => 'all\course_module_viewed',
         '\mod_resource\event\course_module_viewed' => 'all\course_module_viewed',
         '\mod_scorm\event\course_module_viewed' => 'all\course_module_viewed',
diff --git a/tests/mod_quiz/attempt_submitted/essay/data.json b/tests/mod_quiz/attempt_submitted/essay/data.json
new file mode 100644
index 0000000000000000000000000000000000000000..fe479690e1fe8ec2932d12651fbc5b58874b8cf7
--- /dev/null
+++ b/tests/mod_quiz/attempt_submitted/essay/data.json
@@ -0,0 +1,65 @@
+{
+    "user": [
+        {
+            "id": 1,
+            "firstname": "test_fullname",
+            "email": "test@test.com"
+        }
+    ],
+    "course": [
+        {
+            "id": 1,
+            "fullname": "test_name",
+            "lang": "en"
+        }
+    ],
+    "course_modules": [
+        {
+            "id": 1,
+            "course": 1,
+            "module": 1,
+            "instance": 1
+        }
+    ],
+    "quiz_attempts": [
+        {
+            "id": 1,
+            "quiz": 1,
+            "sumgrades": 50,
+            "state": "finished",
+            "timefinish": 1,
+            "timestart": 0
+        }
+    ],
+    "quiz": [
+        {
+            "id": 1,
+            "name": "test_quiz_name"
+        }
+    ],
+    "grade_items": [
+        {
+            "id": 1,
+            "iteminstance": 1,
+            "itemmodule": "quiz",
+            "grademin": 0,
+            "grademax": 100,
+            "gradepass": 50
+        }
+    ],
+    "question_attempts": [
+        {
+            "id": 1,
+            "questionusageid": 1,
+            "questionid": 1,
+            "questionsummary": "test_question",
+            "responsesummary": "test_answer"
+        }
+    ],
+    "question": [
+        {
+            "id": 1,
+            "qtype": "essay"
+        }
+    ]
+}
\ No newline at end of file
diff --git a/tests/mod_quiz/attempt_submitted/existing_attempt_submitted/event.json b/tests/mod_quiz/attempt_submitted/essay/event.json
similarity index 87%
rename from tests/mod_quiz/attempt_submitted/existing_attempt_submitted/event.json
rename to tests/mod_quiz/attempt_submitted/essay/event.json
index 665267df3b6c73bdf60242c93e9f7998715e050f..0f8370b233b1bff46b1c6461ef983b5b944764ae 100644
--- a/tests/mod_quiz/attempt_submitted/existing_attempt_submitted/event.json
+++ b/tests/mod_quiz/attempt_submitted/essay/event.json
@@ -5,5 +5,6 @@
     "timecreated": 1433946701,
     "objecttable": "attempt",
     "objectid": 1,
+    "contextinstanceid": 1,
     "eventname": "\\mod_quiz\\event\\attempt_submitted"
 }
\ No newline at end of file
diff --git a/tests/mod_quiz/attempt_submitted/essay/statements.json b/tests/mod_quiz/attempt_submitted/essay/statements.json
new file mode 100644
index 0000000000000000000000000000000000000000..13a960436f0f4019f5911ae201c7bd9420d1fae2
--- /dev/null
+++ b/tests/mod_quiz/attempt_submitted/essay/statements.json
@@ -0,0 +1,187 @@
+[
+    {
+        "actor": {
+            "name": "test_fullname",
+            "account": {
+                "homePage": "http:\/\/www.example.org",
+                "name": "1"
+            }
+        },
+        "verb": {
+            "id": "http:\/\/adlnet.gov\/expapi\/verbs\/completed",
+            "display": {
+                "en": "completed"
+            }
+        },
+        "object": {
+            "id": "http:\/\/www.example.org\/mod\/quiz\/view.php?id=1",
+            "definition": {
+                "type": "http:\/\/id.tincanapi.com\/activitytype\/lms\/module",
+                "name": {
+                    "en": "test_quiz_name"
+                }
+            }
+        },
+        "timestamp": "2015-06-10T15:31:41+01:00",
+        "result": {
+            "score": {
+                "raw": 50,
+                "min": 0,
+                "max": 100,
+                "scaled": 0.5
+            },
+            "completion": true,
+            "success": true,
+            "duration": "PT1S"
+        },
+        "context": {
+            "platform": "Moodle",
+            "language": "en",
+            "extensions": {
+                "http:\/\/lrs.learninglocker.net\/define\/extensions\/info": {
+                    "http:\/\/moodle.org": "1.0.0",
+                    "https:\/\/github.com\/xAPI-vle\/moodle-logstore_xapi": "0.0.0-development",
+                    "event_name": "\\mod_quiz\\event\\attempt_submitted",
+                    "event_function": "\\src\\transformer\\events\\mod_quiz\\attempt_submitted\\handler"
+                }
+            },
+            "contextActivities": {
+                "other": [
+                    {
+                        "id": "http:\/\/www.example.org\/mod\/attempt\/view.php?id=1",
+                        "definition": {
+                            "type": "http:\/\/id.tincanapi.com\/activitytype\/lms\/module",
+                            "name": {
+                                "en": "attempt"
+                            }
+                        }
+                    }
+                ],
+                "grouping": [
+                    {
+                        "id": "http:\/\/www.example.org",
+                        "definition": {
+                            "type": "http:\/\/id.tincanapi.com\/activitytype\/lms",
+                            "name": {
+                                "en": "test_name"
+                            }
+                        }
+                    },
+                    {
+                        "id": "http:\/\/www.example.org\/course\/view.php?id=1",
+                        "definition": {
+                            "type": "http:\/\/id.tincanapi.com\/activitytype\/lms\/course",
+                            "name": {
+                                "en": "test_name"
+                            }
+                        }
+                    }
+                ],
+                "category": [
+                    {
+                        "id": "http:\/\/moodle.org",
+                        "definition": {
+                            "type": "http:\/\/id.tincanapi.com\/activitytype\/source",
+                            "name": {
+                                "en": "Moodle"
+                            }
+                        }
+                    }
+                ]
+            }
+        }
+    },
+    {
+        "actor": {
+            "name": "test_fullname",
+            "account": {
+                "homePage": "http:\/\/www.example.org",
+                "name": "1"
+            }
+        },
+        "verb": {
+            "id": "http:\/\/adlnet.gov\/expapi\/verbs\/answered",
+            "display": {
+                "en": "answered"
+            }
+        },
+        "object": {
+            "id": "http:\/\/www.example.org\/question\/question.php?cmid=1&id=1",
+            "definition": {
+                "type": "http:\/\/adlnet.gov\/expapi\/activities\/question",
+                "name": {
+                    "en": "test_question"
+                },
+                "interactionType": "long-fill-in"
+            }
+        },
+        "timestamp": "2015-06-10T15:31:41+01:00",
+        "result": {
+            "response": "test_answer",
+            "completion": true
+        },
+        "context": {
+            "platform": "Moodle",
+            "language": "en",
+            "extensions": {
+                "http:\/\/lrs.learninglocker.net\/define\/extensions\/info": {
+                    "http:\/\/moodle.org": "1.0.0",
+                    "https:\/\/github.com\/xAPI-vle\/moodle-logstore_xapi": "0.0.0-development",
+                    "event_name": "\\mod_quiz\\event\\attempt_submitted",
+                    "event_function": "\\src\\transformer\\events\\mod_quiz\\attempt_submitted\\handler"
+                }
+            },
+            "contextActivities": {
+                "grouping": [
+                    {
+                        "id": "http:\/\/www.example.org",
+                        "definition": {
+                            "type": "http:\/\/id.tincanapi.com\/activitytype\/lms",
+                            "name": {
+                                "en": "test_name"
+                            }
+                        }
+                    },
+                    {
+                        "id": "http:\/\/www.example.org\/course\/view.php?id=1",
+                        "definition": {
+                            "type": "http:\/\/id.tincanapi.com\/activitytype\/lms\/course",
+                            "name": {
+                                "en": "test_name"
+                            }
+                        }
+                    },
+                    {
+                        "id": "http:\/\/www.example.org\/mod\/quiz\/view.php?id=1",
+                        "definition": {
+                            "type": "http:\/\/id.tincanapi.com\/activitytype\/lms\/module",
+                            "name": {
+                                "en": "test_quiz_name"
+                            }
+                        }
+                    },
+                    {
+                        "id": "http:\/\/www.example.org\/mod\/attempt\/view.php?id=1",
+                        "definition": {
+                            "type": "http:\/\/id.tincanapi.com\/activitytype\/lms\/module",
+                            "name": {
+                                "en": "attempt"
+                            }
+                        }
+                    }
+                ],
+                "category": [
+                    {
+                        "id": "http:\/\/moodle.org",
+                        "definition": {
+                            "type": "http:\/\/id.tincanapi.com\/activitytype\/source",
+                            "name": {
+                                "en": "Moodle"
+                            }
+                        }
+                    }
+                ]
+            }
+        }
+    }
+]
\ No newline at end of file
diff --git a/tests/mod_quiz/attempt_submitted/existing_attempt_submitted/test.php b/tests/mod_quiz/attempt_submitted/essay/test.php
similarity index 92%
rename from tests/mod_quiz/attempt_submitted/existing_attempt_submitted/test.php
rename to tests/mod_quiz/attempt_submitted/essay/test.php
index d849593764d8c4d51db2475810816a78c3c205e4..28a56ec5162d2b508caf1fe95636f6358b5b7f37 100644
--- a/tests/mod_quiz/attempt_submitted/existing_attempt_submitted/test.php
+++ b/tests/mod_quiz/attempt_submitted/essay/test.php
@@ -14,7 +14,7 @@
 // You should have received a copy of the GNU General Public License
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
-namespace tests\mod_quiz\attempt_submitted\existing_attempt_submitted;
+namespace tests\mod_quiz\attempt_submitted\essay;
 defined('MOODLE_INTERNAL') || die();
 
 class test extends \tests\xapi_test_case {
diff --git a/tests/mod_quiz/attempt_submitted/existing_attempt_submitted/data.json b/tests/mod_quiz/attempt_submitted/no_questions/data.json
similarity index 79%
rename from tests/mod_quiz/attempt_submitted/existing_attempt_submitted/data.json
rename to tests/mod_quiz/attempt_submitted/no_questions/data.json
index d0e5ba8ecc0958964af3439954edf8df2b867f3e..310e35a8531393f9810ea0012d6f185f83ddc28f 100644
--- a/tests/mod_quiz/attempt_submitted/existing_attempt_submitted/data.json
+++ b/tests/mod_quiz/attempt_submitted/no_questions/data.json
@@ -13,6 +13,14 @@
             "lang": "en"
         }
     ],
+    "course_modules": [
+        {
+            "id": 1,
+            "course": 1,
+            "module": 1,
+            "instance": 1
+        }
+    ],
     "quiz_attempts": [
         {
             "id": 1,
@@ -38,5 +46,7 @@
             "grademax": 100,
             "gradepass": 50
         }
-    ]
+    ],
+    "question_attempts": [],
+    "question": []
 }
\ No newline at end of file
diff --git a/tests/mod_quiz/attempt_submitted/no_questions/event.json b/tests/mod_quiz/attempt_submitted/no_questions/event.json
new file mode 100644
index 0000000000000000000000000000000000000000..0f8370b233b1bff46b1c6461ef983b5b944764ae
--- /dev/null
+++ b/tests/mod_quiz/attempt_submitted/no_questions/event.json
@@ -0,0 +1,10 @@
+{
+    "id": 1,
+    "relateduserid": 1,
+    "courseid": 1,
+    "timecreated": 1433946701,
+    "objecttable": "attempt",
+    "objectid": 1,
+    "contextinstanceid": 1,
+    "eventname": "\\mod_quiz\\event\\attempt_submitted"
+}
\ No newline at end of file
diff --git a/tests/mod_quiz/attempt_submitted/existing_attempt_submitted/statements.json b/tests/mod_quiz/attempt_submitted/no_questions/statements.json
similarity index 98%
rename from tests/mod_quiz/attempt_submitted/existing_attempt_submitted/statements.json
rename to tests/mod_quiz/attempt_submitted/no_questions/statements.json
index 2dcfc406853b3c76a2352ba0fa89cf359d8615d1..8a51be8f9b078b79f9289b56319424dfe71e4361 100644
--- a/tests/mod_quiz/attempt_submitted/existing_attempt_submitted/statements.json
+++ b/tests/mod_quiz/attempt_submitted/no_questions/statements.json
@@ -42,7 +42,7 @@
                     "http:\/\/moodle.org": "1.0.0",
                     "https:\/\/github.com\/xAPI-vle\/moodle-logstore_xapi": "0.0.0-development",
                     "event_name": "\\mod_quiz\\event\\attempt_submitted",
-                    "event_function": "\\src\\transformer\\events\\mod_quiz\\attempt_submitted"
+                    "event_function": "\\src\\transformer\\events\\mod_quiz\\attempt_submitted\\handler"
                 }
             },
             "contextActivities": {
diff --git a/tests/mod_quiz/attempt_submitted/no_questions/test.php b/tests/mod_quiz/attempt_submitted/no_questions/test.php
new file mode 100644
index 0000000000000000000000000000000000000000..9ac10434a2a113795a1d0810b78e1d5a0093ff26
--- /dev/null
+++ b/tests/mod_quiz/attempt_submitted/no_questions/test.php
@@ -0,0 +1,24 @@
+<?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/>.
+
+namespace tests\mod_quiz\attempt_submitted\no_questions;
+defined('MOODLE_INTERNAL') || die();
+
+class test extends \tests\xapi_test_case {
+    protected function get_test_dir() {
+        return __DIR__;
+    }
+}
\ No newline at end of file
diff --git a/tests/mod_quiz/attempt_submitted/unknown_qtype/data.json b/tests/mod_quiz/attempt_submitted/unknown_qtype/data.json
new file mode 100644
index 0000000000000000000000000000000000000000..7bb846932687667812408932992e38eba0645413
--- /dev/null
+++ b/tests/mod_quiz/attempt_submitted/unknown_qtype/data.json
@@ -0,0 +1,65 @@
+{
+    "user": [
+        {
+            "id": 1,
+            "firstname": "test_fullname",
+            "email": "test@test.com"
+        }
+    ],
+    "course": [
+        {
+            "id": 1,
+            "fullname": "test_name",
+            "lang": "en"
+        }
+    ],
+    "course_modules": [
+        {
+            "id": 1,
+            "course": 1,
+            "module": 1,
+            "instance": 1
+        }
+    ],
+    "quiz_attempts": [
+        {
+            "id": 1,
+            "quiz": 1,
+            "sumgrades": 50,
+            "state": "finished",
+            "timefinish": 1,
+            "timestart": 0
+        }
+    ],
+    "quiz": [
+        {
+            "id": 1,
+            "name": "test_quiz_name"
+        }
+    ],
+    "grade_items": [
+        {
+            "id": 1,
+            "iteminstance": 1,
+            "itemmodule": "quiz",
+            "grademin": 0,
+            "grademax": 100,
+            "gradepass": 50
+        }
+    ],
+    "question_attempts": [
+        {
+            "id": 1,
+            "questionusageid": 1,
+            "questionid": 1,
+            "questionsummary": "test_question",
+            "responsesummary": "test_answer"
+        }
+    ],
+    "question": [
+        {
+            "id": 1,
+            "qtype": "unknown"
+        }
+    ]
+}
\ No newline at end of file
diff --git a/tests/mod_quiz/attempt_submitted/unknown_qtype/event.json b/tests/mod_quiz/attempt_submitted/unknown_qtype/event.json
new file mode 100644
index 0000000000000000000000000000000000000000..0f8370b233b1bff46b1c6461ef983b5b944764ae
--- /dev/null
+++ b/tests/mod_quiz/attempt_submitted/unknown_qtype/event.json
@@ -0,0 +1,10 @@
+{
+    "id": 1,
+    "relateduserid": 1,
+    "courseid": 1,
+    "timecreated": 1433946701,
+    "objecttable": "attempt",
+    "objectid": 1,
+    "contextinstanceid": 1,
+    "eventname": "\\mod_quiz\\event\\attempt_submitted"
+}
\ No newline at end of file
diff --git a/tests/mod_quiz/attempt_submitted/unknown_qtype/statements.json b/tests/mod_quiz/attempt_submitted/unknown_qtype/statements.json
new file mode 100644
index 0000000000000000000000000000000000000000..8a51be8f9b078b79f9289b56319424dfe71e4361
--- /dev/null
+++ b/tests/mod_quiz/attempt_submitted/unknown_qtype/statements.json
@@ -0,0 +1,94 @@
+[
+    {
+        "actor": {
+            "name": "test_fullname",
+            "account": {
+                "homePage": "http:\/\/www.example.org",
+                "name": "1"
+            }
+        },
+        "verb": {
+            "id": "http:\/\/adlnet.gov\/expapi\/verbs\/completed",
+            "display": {
+                "en": "completed"
+            }
+        },
+        "object": {
+            "id": "http:\/\/www.example.org\/mod\/quiz\/view.php?id=1",
+            "definition": {
+                "type": "http:\/\/id.tincanapi.com\/activitytype\/lms\/module",
+                "name": {
+                    "en": "test_quiz_name"
+                }
+            }
+        },
+        "timestamp": "2015-06-10T15:31:41+01:00",
+        "result": {
+            "score": {
+                "raw": 50,
+                "min": 0,
+                "max": 100,
+                "scaled": 0.5
+            },
+            "completion": true,
+            "success": true,
+            "duration": "PT1S"
+        },
+        "context": {
+            "platform": "Moodle",
+            "language": "en",
+            "extensions": {
+                "http:\/\/lrs.learninglocker.net\/define\/extensions\/info": {
+                    "http:\/\/moodle.org": "1.0.0",
+                    "https:\/\/github.com\/xAPI-vle\/moodle-logstore_xapi": "0.0.0-development",
+                    "event_name": "\\mod_quiz\\event\\attempt_submitted",
+                    "event_function": "\\src\\transformer\\events\\mod_quiz\\attempt_submitted\\handler"
+                }
+            },
+            "contextActivities": {
+                "other": [
+                    {
+                        "id": "http:\/\/www.example.org\/mod\/attempt\/view.php?id=1",
+                        "definition": {
+                            "type": "http:\/\/id.tincanapi.com\/activitytype\/lms\/module",
+                            "name": {
+                                "en": "attempt"
+                            }
+                        }
+                    }
+                ],
+                "grouping": [
+                    {
+                        "id": "http:\/\/www.example.org",
+                        "definition": {
+                            "type": "http:\/\/id.tincanapi.com\/activitytype\/lms",
+                            "name": {
+                                "en": "test_name"
+                            }
+                        }
+                    },
+                    {
+                        "id": "http:\/\/www.example.org\/course\/view.php?id=1",
+                        "definition": {
+                            "type": "http:\/\/id.tincanapi.com\/activitytype\/lms\/course",
+                            "name": {
+                                "en": "test_name"
+                            }
+                        }
+                    }
+                ],
+                "category": [
+                    {
+                        "id": "http:\/\/moodle.org",
+                        "definition": {
+                            "type": "http:\/\/id.tincanapi.com\/activitytype\/source",
+                            "name": {
+                                "en": "Moodle"
+                            }
+                        }
+                    }
+                ]
+            }
+        }
+    }
+]
\ No newline at end of file
diff --git a/tests/mod_quiz/attempt_submitted/unknown_qtype/test.php b/tests/mod_quiz/attempt_submitted/unknown_qtype/test.php
new file mode 100644
index 0000000000000000000000000000000000000000..93b4f0d1eca98ddce6a632583c93197a2786ae29
--- /dev/null
+++ b/tests/mod_quiz/attempt_submitted/unknown_qtype/test.php
@@ -0,0 +1,24 @@
+<?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/>.
+
+namespace tests\mod_quiz\attempt_submitted\unknown_qtype;
+defined('MOODLE_INTERNAL') || die();
+
+class test extends \tests\xapi_test_case {
+    protected function get_test_dir() {
+        return __DIR__;
+    }
+}
\ No newline at end of file