diff options
Diffstat (limited to 'lib/t')
-rw-r--r-- | lib/t/00_downloads.t | 40 | ||||
-rw-r--r-- | lib/t/01_mga_geoip.t | 29 | ||||
-rw-r--r-- | lib/t/02_downloads_definitions.t | 45 | ||||
-rw-r--r-- | lib/t/03_lang_redirection.t | 13 |
4 files changed, 127 insertions, 0 deletions
diff --git a/lib/t/00_downloads.t b/lib/t/00_downloads.t new file mode 100644 index 000000000..f30f9bf51 --- /dev/null +++ b/lib/t/00_downloads.t @@ -0,0 +1,40 @@ +<?php + + +require realpath(__DIR__ . '/../testmore.php'); +require realpath(__DIR__ . '/../Downloads.php'); + +plan('no_plan'); + +diag('Testing prepare_download(). Countries/continents should match.'); + +$wsd = new Downloads(); + +$countries = array( + 'FR' => array('FR', 'EU'), + 'DE' => array('DE', 'EU'), + 'AU' => array('AU', 'OC') +); + +foreach ($countries as $k => $v) { + $one = $wsd->prepare_download(true, $k); + + //is($one['country'], $v[0], "countries match"); + is($one['continent'], $v[1], "continents match"); +} + +diag('Testing get_mirror(). Note, this depends on the actual mirrors list.'); + +$ccs = array( + array('FR', 'EU'), + array('DE', 'EU'), + array('CN', 'AS') +); + +foreach ($ccs as $cc) { + $mir = $wsd->get_mirror($cc[0], $cc[1]); + + //is($mir['country'], $cc[0], 'country match'); + is($mir['continent'], $cc[1], 'continents match'); +} + diff --git a/lib/t/01_mga_geoip.t b/lib/t/01_mga_geoip.t new file mode 100644 index 000000000..aa3daa674 --- /dev/null +++ b/lib/t/01_mga_geoip.t @@ -0,0 +1,29 @@ +<?php + +require_once realpath(__DIR__ . '/../testmore.php'); +require_once realpath(__DIR__ . '/../mga_geoip.php'); + +plan('no_plan'); + +diag('Testing mga_geoip_* functions against defined IP/locations.'); + +$ips = array( + '46.33.75.17' + => array('DE', 'EU'), + + '2a01:e35:8a03:9990:223:dfff:fe7e:e7f0' + => array('FR', 'EU'), + + '2a00:1450:8006::93' + => array('IE', 'EU'), + + '173.194.67.99' + => array('US', 'NA') +); + +foreach ($ips as $ip => $cc) { + + $country = MGA_Geoip::mga_geoip_country_by_ip($ip, false); + is($country, $cc[0], 'country match for ' . $ip); + is(MGA_Geoip::mga_geoip_continent_by_country($country), $cc[1], 'continent match for ' . $ip); +} diff --git a/lib/t/02_downloads_definitions.t b/lib/t/02_downloads_definitions.t new file mode 100644 index 000000000..feb679092 --- /dev/null +++ b/lib/t/02_downloads_definitions.t @@ -0,0 +1,45 @@ +<?php + +require realpath(__DIR__ . '/../testmore.php'); +require realpath(__DIR__ . '/../../en/downloads/get/lib.php'); +require realpath(__DIR__ . '/../Downloads.php'); + +plan('no_plan'); + +diag('Testing functions'); + +$mirrors = get_mirrors_for('dummy', 'de', 'DE'); + + +$testProd = array( + 'file' => 'file', + 'path' => 'path', + 'torrent' => 'torrent/path.torrent' +); + +is('$MIRROR/path/file', get_download_link($testProd)); + + +diag('Testing downloads definitions.'); + + +$ini_file = realpath(__DIR__ . '/../../en/downloads/get/definitions.ini'); +$defs = parse_ini_file($ini_file, true); + +$keysRequired = array('path', 'file', 'name', 'size'); +$keysPreferred = array('sha1', 'md5'); + +foreach ($defs as $prodKey => $values) { + diag(sprintf('Testing config for %s', $prodKey)); + foreach ($keysRequired as $k) + ok($values[$k], 'has ' . $k); + + foreach ($keysPreferred as $k) { + if (!array_key_exists($k, $values)) { + diag(sprintf('Beware, missing %s!', $k)); + } + } + + is(sprintf('$MIRROR/%s/%s', $values['path'], $values['file']), get_download_link($values), 'download link ok'); +} + diff --git a/lib/t/03_lang_redirection.t b/lib/t/03_lang_redirection.t new file mode 100644 index 000000000..cb799c71b --- /dev/null +++ b/lib/t/03_lang_redirection.t @@ -0,0 +1,13 @@ +<?php + +require realpath(__DIR__ . '/../testmore.php'); +require realpath(__DIR__ . '/../../langs.inc.php'); + +plan('no_plan'); + +diag('Testing langs.inc.php functions.'); + + +is(relocate($langs, null, 'en', 'en'), '/en/'); +is(relocate($langs, null, 'en', 'pt-BR,pt;q=0.8,es;q=0.6,en-US;q=0.4,en;q=0.2'), '/pt-br/'); + |