diff --git a/badges/assertion.php b/badges/assertion.php index 0c41062851e..29f1d9ec82f 100644 --- a/badges/assertion.php +++ b/badges/assertion.php @@ -52,7 +52,7 @@ if (!is_null($action)) { } else { // Revoked badge. header("HTTP/1.0 410 Gone"); $assertion = array(); - if ($obversion == OPEN_BADGES_V2) { + if ($obversion >= OPEN_BADGES_V2) { $assertionurl = new moodle_url('/badges/assertion.php', array('b' => $hash)); $assertion['id'] = $assertionurl->out(); } diff --git a/badges/classes/assertion.php b/badges/classes/assertion.php index 9121b9d9fbc..bbfa50b4f0c 100644 --- a/badges/classes/assertion.php +++ b/badges/classes/assertion.php @@ -128,7 +128,7 @@ class core_badges_assertion { $email = empty($this->_data->backpackemail) ? $this->_data->email : $this->_data->backpackemail; $assertionurl = new moodle_url('/badges/assertion.php', array('b' => $hash, 'obversion' => $this->_obversion)); - if ($this->_obversion == OPEN_BADGES_V2) { + if ($this->_obversion >= OPEN_BADGES_V2) { $classurl = new moodle_url('/badges/badge_json.php', array('id' => $this->get_badge_id())); } else { $classurl = new moodle_url('/badges/assertion.php', array('b' => $hash, 'action' => 1)); @@ -325,7 +325,7 @@ class core_badges_assertion { */ protected function embed_data_badge_version2 (&$json, $type = OPEN_BADGES_V2_TYPE_ASSERTION) { // Specification Version 2.0. - if ($this->_obversion == OPEN_BADGES_V2) { + if ($this->_obversion >= OPEN_BADGES_V2) { $badge = new badge($this->_data->id); if (empty($this->_data->courseid)) { $context = context_system::instance(); diff --git a/badges/tests/badgeslib_test.php b/badges/tests/badgeslib_test.php index 475f818658f..fa0baa75c14 100644 --- a/badges/tests/badgeslib_test.php +++ b/badges/tests/badgeslib_test.php @@ -32,7 +32,7 @@ require_once($CFG->dirroot . '/badges/lib.php'); use core_badges\helper; -class core_badges_badgeslib_testcase extends advanced_testcase { +class badgeslib_test extends advanced_testcase { protected $badgeid; protected $course; protected $user; @@ -698,6 +698,16 @@ class core_badges_badgeslib_testcase extends advanced_testcase { $this->assertStringMatchesFormat($testassertion2->badge, json_encode($assertion2->get_badge_assertion())); $this->assertStringMatchesFormat($testassertion2->class, json_encode($assertion2->get_badge_class())); $this->assertStringMatchesFormat($testassertion2->issuer, json_encode($assertion2->get_issuer())); + + // Test Openbadge specification version 2.1. It has the same format as OBv2.0. + // Get assertion version 2.1. + $award = reset($awards); + $assertion2 = new core_badges_assertion($award->uniquehash, OPEN_BADGES_V2P1); + + // Make sure JSON strings have the same structure. + $this->assertStringMatchesFormat($testassertion2->badge, json_encode($assertion2->get_badge_assertion())); + $this->assertStringMatchesFormat($testassertion2->class, json_encode($assertion2->get_badge_class())); + $this->assertStringMatchesFormat($testassertion2->issuer, json_encode($assertion2->get_issuer())); } /** diff --git a/badges/tests/events_test.php b/badges/tests/events_test.php index e6c464fb67b..ab411a9b542 100644 --- a/badges/tests/events_test.php +++ b/badges/tests/events_test.php @@ -31,7 +31,7 @@ require_once($CFG->dirroot . '/badges/tests/badgeslib_test.php'); * @copyright 2015 onwards Simey Lameze * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_badges_events_testcase extends core_badges_badgeslib_testcase { +class events_test extends badgeslib_test { /** * Test badge awarded event.