From b145fe216c375b30d3b58879ec390e24e7cf2291 Mon Sep 17 00:00:00 2001 From: Jake Dallimore Date: Tue, 31 Dec 2019 14:38:50 +0800 Subject: [PATCH 1/2] MDL-67593 core_iplookup: use MaxMind test database in unit tests Instead of downloading a live database (now not available publicly) use a local test database. --- iplookup/tests/fixtures/GeoIP2-City-Test.mmdb | Bin 0 -> 20831 bytes iplookup/tests/fixtures/README.txt | 10 ++++ iplookup/tests/geoip_test.php | 48 ++---------------- lib/maxmind/readme_moodle.txt | 2 +- 4 files changed, 14 insertions(+), 46 deletions(-) create mode 100644 iplookup/tests/fixtures/GeoIP2-City-Test.mmdb create mode 100644 iplookup/tests/fixtures/README.txt diff --git a/iplookup/tests/fixtures/GeoIP2-City-Test.mmdb b/iplookup/tests/fixtures/GeoIP2-City-Test.mmdb new file mode 100644 index 0000000000000000000000000000000000000000..c304794f62ff1c7e534a434eae6f7287a0a2f76f GIT binary patch literal 20831 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 BeK7z4 literal 0 HcmV?d00001 diff --git a/iplookup/tests/fixtures/README.txt b/iplookup/tests/fixtures/README.txt new file mode 100644 index 00000000000..f12faa2ac00 --- /dev/null +++ b/iplookup/tests/fixtures/README.txt @@ -0,0 +1,10 @@ +GeoIP2-City-Test.mmdb: + Copyright: maxmind (github.com/maxmind) + + https://github.com/maxmind/MaxMind-DB/blob/master/test-data/GeoIP2-City-Test.mmdb + + Licence: Creative Commons Attribution-ShareAlike 3.0 Unported License + + http://creativecommons.org/licenses/by-sa/3.0/ + + No changes have been made to this file. diff --git a/iplookup/tests/geoip_test.php b/iplookup/tests/geoip_test.php index b65be599621..d553bd8938a 100644 --- a/iplookup/tests/geoip_test.php +++ b/iplookup/tests/geoip_test.php @@ -36,56 +36,15 @@ require_once("{$CFG->dirroot}/iplookup/lib.php"); */ class core_iplookup_geoip_testcase extends advanced_testcase { public function setUp() { - if (!PHPUNIT_LONGTEST) { - // These tests are intensive and required downloads. - $this->markTestSkipped('PHPUNIT_LONGTEST is not defined'); - } - $this->resetAfterTest(); } - /** * Setup the GeoIP2File system. */ public function setup_geoip2file() { global $CFG; - - // Store the file somewhere where it won't be wiped out.. - $gzfile = "$CFG->dataroot/phpunit/geoip/GeoLite2-City.mmdb.gz"; - check_dir_exists(dirname($gzfile)); - if (file_exists($gzfile) and (filemtime($gzfile) < time() - 60*60*24*30)) { - // Delete file if older than 1 month. - unlink($gzfile); - } - - if (!file_exists($gzfile)) { - download_file_content('http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz', - null, null, false, 300, 20, false, $gzfile); - } - - $this->assertTrue(file_exists($gzfile)); - - $geoipfile = str_replace('.gz', '', $gzfile); - - // Open our files (in binary mode). - $file = gzopen($gzfile, 'rb'); - $geoipfilebuf = fopen($geoipfile, 'wb'); - - // Keep repeating until the end of the input file. - while (!gzeof($file)) { - // Read buffer-size bytes. - // Both fwrite and gzread and binary-safe. - fwrite($geoipfilebuf, gzread($file, 4096)); - } - - // Files are done, close files. - fclose($geoipfilebuf); - gzclose($file); - - $this->assertTrue(file_exists($geoipfile)); - - $CFG->geoip2file = $geoipfile; + $CFG->geoip2file = "$CFG->dirroot/iplookup/tests/fixtures/GeoIP2-City-Test.mmdb"; } /** @@ -121,9 +80,8 @@ class core_iplookup_geoip_testcase extends advanced_testcase { */ public function ip_provider() { return [ - 'IPv4: Sample suggested by maxmind themselves' => ['24.24.24.24'], - 'IPv4: github.com' => ['192.30.255.112'], - 'IPv6: UCLA' => ['2607:f010:3fe:fff1::ff:fe00:25'], + 'IPv4: IPV4 test' => ['81.2.69.142'], + 'IPv6: IPV6 test' => ['2001:252:1::1:1:1'], ]; } } diff --git a/lib/maxmind/readme_moodle.txt b/lib/maxmind/readme_moodle.txt index 8b90c90685a..dd8e5947857 100644 --- a/lib/maxmind/readme_moodle.txt +++ b/lib/maxmind/readme_moodle.txt @@ -27,4 +27,4 @@ unzip v1.4.1.zip mv GeoIP2-php-2.9.0/src/ /path/to/moodle/lib/maxmind/GeoIp2/ mv MaxMind-DB-Reader-php-1.4.1/src/MaxMind/ /path/to/moodle/lib/maxmind/MaxMind/ -4) Run unit tests on iplookup/tests/geoip_test.php with PHPUNIT_LONGTEST defined. +4) Run unit tests on iplookup/tests/geoip_test.php. From dbf29da73f460918a00f39d7b163d0fda83e765a Mon Sep 17 00:00:00 2001 From: Jake Dallimore Date: Tue, 31 Dec 2019 15:31:11 +0800 Subject: [PATCH 2/2] MDL-67593 core_iplookup: update lang string describing download process Let users know they need to register on maxmind before granted download access. --- lang/en/admin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/en/admin.php b/lang/en/admin.php index 3ec73135297..f4c2cab2d6c 100644 --- a/lang/en/admin.php +++ b/lang/en/admin.php @@ -256,7 +256,7 @@ $string['configfrontpageloggedin'] = 'The items selected above will be displayed $string['configfullnamedisplay'] = 'This defines how names are shown when they are displayed in full. The default value, "language", leaves it to the string "fullnamedisplay" in the current language pack to decide. Some languages have different name display conventions. For most mono-lingual sites the most efficient setting is "firstname lastname", but you may choose to hide surnames altogether. Placeholders that can be used are: firstname, lastname, firstnamephonetic, lastnamephonetic, middlename, and alternatename.'; -$string['configgeoipfile'] = 'Location of GeoLite2 City binary data file. This file is not part of Moodle distribution and must be obtained separately from MaxMind. You can either buy a commercial version or use the free version. Simply download https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz and extract it into "{$a}" directory on your server.'; +$string['configgeoipfile'] = 'Location of GeoLite2 City binary data file. This file is not part of Moodle distribution and must be obtained separately from MaxMind. You can either buy a commercial version or use the free version. You\'ll need to register to download the City database file, which you can do at https://dev.maxmind.com/geoip/geoip2/geolite2/. Once you\'ve registered and downloaded the file, extract it into "{$a}" directory on your server.'; $string['configgetremoteaddrconf'] = 'If your server is behind a reverse proxy, you can use this setting to specify which HTTP headers can be trusted to contain the remote IP address. The headers are read in order, using the first one that is available.'; $string['configgradebookroles'] = 'This setting allows you to control who appears on the gradebook. Users need to have at least one of these roles in a course to be shown in the gradebook for that course.'; $string['configgradeexport'] = 'Choose which gradebook export formats are your primary methods for exporting grades. Chosen plugins will then set and use a "last exported" field for every grade. For example, this might result in exported records being identified as being "new" or "updated". If you are not sure about this then leave everything unchecked.';