Skip to content
Snippets Groups Projects
Commit 86168af0 authored by Viktor Holovachek's avatar Viktor Holovachek
Browse files

Issue #3424824 - Fix tests

parent 4d1749a8
No related branches found
No related tags found
1 merge request!3Issue #3424824 - Fix tests
Pipeline #107722 canceled
......@@ -2,10 +2,11 @@
namespace Drupal\Tests\browscap\Functional;
use Drupal\browscap\BrowscapEndpoint;
use Drupal\Tests\BrowserTestBase;
/**
* Tests import of browscap data.
* Tests browscap service.
*
* @group browscap
*/
......@@ -25,27 +26,22 @@ class BrowscapImportTest extends BrowserTestBase {
* Tests importing then querying Browscap data.
*/
public function testImport() {
$config = \Drupal::config('browscap.settings');
$versionBefore = $config->get('version');
$result = \Drupal::service('browscap.importer')->import(new MockBrowscapEndpoint());
$this->assertTrue($result, 'Import completed successfully.');
$versionAfter = $config->get('version');
$this->assertNotEquals($versionBefore, $versionAfter, 'Data version number has changed');
// Force import all data.
$endpoint = new BrowscapEndpoint();
\Drupal::service('browscap.importer')->import($endpoint, FALSE);
// Make browscap service call to check that data was loaded.
$user_agent = 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)';
$user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36';
$properties = \Drupal::service('browscap')->getBrowser($user_agent);
$this->assertEquals($properties['browser'], "IE", "Uncached browser is correct.");
$this->assertEquals($properties['version'], "9.0", "Uncached browser version is correct.");
$this->assertEquals($properties['platform'], "Win7", "Uncached platform is correct.");
$this->assertEquals($properties['browser'], 'Chrome', 'Uncached browser is correct.');
$this->assertEquals($properties['version'], '101.0', 'Uncached browser version is correct.');
$this->assertEquals($properties['platform'], 'Linux', 'Uncached platform is correct.');
// Now that the data is cached, try again.
$properties = \Drupal::service('browscap')->getBrowser($user_agent);
$this->assertEquals($properties['browser'], "IE", "Cached browser is correct.");
$this->assertEquals($properties['version'], "9.0", "Cached browser is correct.");
$this->assertEquals($properties['platform'], "Win7", "Cached browser is correct.");
$this->assertEquals($properties['browser'], 'Chrome', 'Cached browser is correct.');
$this->assertEquals($properties['version'], '101.0', 'Cached browser is correct.');
$this->assertEquals($properties['platform'], 'Linux', 'Cached browser is correct.');
}
}
<?php
namespace Drupal\Tests\browscap\Functional;
use Drupal\browscap\BrowscapEndpoint;
/**
* Mock Browscap endpoint.
*
* Defines methods for simulating communication with Browscap project website
* using local information.
*/
class MockBrowscapEndpoint extends BrowscapEndpoint {
/**
* Gets version of latest Browscap data.
*
* @return int|string
* The latest Browscap data version.
*/
public function getVersion() {
// Check the local browscap data version number.
$config = \Drupal::config('browscap.settings');
$local_version = $config->get('version');
return $local_version . '1';
}
/**
* Gets latest Browscap data.
*
* @param bool $cron
* Whether this method is being invoked by cron.
*
* @return int|string
* The Browscap data.
*/
public function getBrowscapData($cron = TRUE) {
$ini_path = \Drupal::service('extension.list.module')->getPath('browscap') . '/tests/src/Functional/test_browscap_data.ini';
return file_get_contents($ini_path);
}
}
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment