diff --git a/lib/google/curlio.php b/lib/google/curlio.php index 72e7d2fb859..ed2ceb54e6d 100644 --- a/lib/google/curlio.php +++ b/lib/google/curlio.php @@ -124,7 +124,7 @@ class moodle_google_curlio extends Google_IO_Curl { $curlerrornum = $curl->get_errno(); $curlerror = $curl->error; - if ($respdata != CURLE_OK) { + if ($curlerrornum != CURLE_OK) { throw new Google_IO_Exception($curlerror); } diff --git a/lib/tests/googlelib_test.php b/lib/tests/googlelib_test.php new file mode 100644 index 00000000000..4489fcf64cc --- /dev/null +++ b/lib/tests/googlelib_test.php @@ -0,0 +1,40 @@ +. + +/** + * Tests for google library + * + * @package core + * @copyright 2021 Marina Glancy + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class core_googlelib_testcase extends advanced_testcase { + + public function test_invalid_google_api_key() { + global $CFG; + require_once($CFG->libdir . '/google/lib.php'); + $client = get_google_client(); + $client->setDeveloperKey('invalid'); + $client->setScopes(array(Google_Service_YouTube::YOUTUBE_READONLY)); + $service = new Google_Service_YouTube($client); + try { + $service->videoCategories->listVideoCategories('snippet', ['regionCode' => 'us']); + $this->fail('Exception expected'); + } catch (Google_Service_Exception $e) { + $this->assertMatchesRegularExpression('/API key not valid/', $e->getMessage()); + } + } +}