/** * @dataProvider user_agents_providers */ public function test_useragent_gecko($useragent, $tests) { // Setup the core_useragent instance. core_useragent::instance(true, $useragent); if (isset($tests['is_gecko']) && $tests['is_gecko']) { $this->assertTrue(core_useragent::is_gecko(), "Browser was not identified as a gecko browser"); $this->assertTrue(core_useragent::check_gecko_version()); } else { $this->assertFalse(core_useragent::is_gecko(), "Browser was incorrectly identified as a gecko browser"); $this->assertFalse(core_useragent::check_gecko_version()); } $versions = array('1' => false, '2' => false, '3.6' => false, '4.0' => false, '20030516' => false, '20051116' => false, '2006010100' => false, '20100101' => false, '15.0' => false, '18.0' => false, '19.0' => false); if (isset($tests['check_gecko_version'])) { // The test provider has overwritten some of the above checks. // Must use the '+' operator, because array_merge will incorrectly rewrite the array keys for integer-based indexes. $versions = $tests['check_gecko_version'] + $versions; } foreach ($versions as $version => $result) { $this->assertEquals($result, core_useragent::check_gecko_version($version), "Version incorrectly determined for Gecko version '{$version}'"); } }