geolocation-8.x-3.x-dev/tests/src/Functional/GeolocationSchemaCoverageTest.php

tests/src/Functional/GeolocationSchemaCoverageTest.php
<?php

namespace Drupal\Tests\geolocation\Functional;

use Drupal\Tests\BrowserTestBase;
use Drupal\views\Entity\View;

/**
 * Tests schema for providers and features.
 *
 * @group geolocation
 */
class GeolocationSchemaCoverageTest extends BrowserTestBase {

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'node',
    'field',
    'views',
    'taxonomy',
    'geolocation',
    'geolocation_demo',
    'geolocation_google_maps',
    'geolocation_google_maps_demo',
    'geolocation_google_static_maps',
    'geolocation_leaflet',
    'geolocation_yandex',
    'geolocation_here',
    'geolocation_baidu',
  ];

  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';

  /**
   * Test MapProviders.
   */
  public function testMapProvidersDefaults(): void {
    /** @var \Drupal\geolocation\MapProviderManager $mapProviderManager */
    $mapProviderManager = \Drupal::service('plugin.manager.geolocation.mapprovider');
    $mapProviderIds = $mapProviderManager->getDefinitions();

    $view = View::load('geolocation_demo_common_map');
    foreach ($mapProviderIds as $mapProviderId => $definition) {
      $mapProvider = $mapProviderManager->getMapProvider($mapProviderId);

      $display = &$view->getDisplay('default');
      $display['display_options']['style']['options']['map_provider_id'] = $mapProviderId;
      $display['display_options']['style']['options']['map_provider_settings'] = $mapProvider->getSettings([]);
      $view->save();

      $this->drupalGet('geolocation-demo/common-map');
      $this->assertSession()->statusCodeEquals(200);
    }

  }

  /**
   * Test MapFeatures with providers.
   */
  public function testMapProvidersWithMapFeatures(): void {
    /** @var \Drupal\geolocation\MapFeatureManager $mapFeatureManager */
    $mapFeatureManager = \Drupal::service('plugin.manager.geolocation.mapfeature');

    /** @var \Drupal\geolocation\LayerFeatureManager $layerFeatureManager */
    $layerFeatureManager = \Drupal::service('plugin.manager.geolocation.layerfeature');

    /** @var \Drupal\geolocation\MapProviderManager $mapProviderManager */
    $mapProviderManager = \Drupal::service('plugin.manager.geolocation.mapprovider');

    $view = View::load('geolocation_demo_common_map');
    foreach ($mapProviderManager->getDefinitions() as $mapProviderId => $definition) {
      $mapProvider = $mapProviderManager->getMapProvider($mapProviderId);

      $display = &$view->getDisplay('default');
      $display['display_options']['style']['options']['map_provider_id'] = $mapProviderId;
      $display['display_options']['style']['options']['map_provider_settings'] = $mapProvider->getSettings([]);
      $display['display_options']['style']['options']['map_provider_settings']['map_features'] = [];
      foreach ($mapFeatureManager->getMapFeaturesByMapType($mapProviderId) as $mapFeatureId => $mapFeatureDefinition) {
        $mapFeature = $mapFeatureManager->getMapFeature($mapFeatureId);
        $display['display_options']['style']['options']['map_provider_settings']['map_features'][$mapFeatureId] = [
          'enabled' => TRUE,
          'settings' => $mapFeature->getSettings([]),
        ];

        $view->save();

        $this->drupalGet('geolocation-demo/common-map');
        $status_code = $this->getSession()->getStatusCode();
        $this->assertEquals(200, $status_code, "Testing Map provider $mapProviderId: Map feature $mapFeatureId returning Status 200.");
      }

      $display['display_options']['style']['options']['map_provider_settings']['data_layers'] = [];
      $display['display_options']['style']['options']['map_provider_settings']['data_layers']['geolocation_default_layer:default'] = [];
      $display['display_options']['style']['options']['map_provider_settings']['data_layers']['geolocation_default_layer:default']['settings'] = [];
      $display['display_options']['style']['options']['map_provider_settings']['data_layers']['geolocation_default_layer:default']['enabled'] = 1;
      $display['display_options']['style']['options']['map_provider_settings']['data_layers']['geolocation_default_layer:default']['weight'] = 1;
      foreach ($layerFeatureManager->getLayerFeaturesByMapType($mapProviderId) as $layerFeatureId => $layerFeatureDefinition) {
        $layerFeature = $layerFeatureManager->getLayerFeature($layerFeatureId);
        $display['display_options']['style']['options']['map_provider_settings']['data_layers']['geolocation_default_layer:default']['settings']['features'][$layerFeatureId] = [
          'enabled' => TRUE,
          'settings' => $layerFeature->getSettings([]),
        ];

        $view->save();

        $this->drupalGet('geolocation-demo/common-map');
        $status_code = $this->getSession()->getStatusCode();
        $this->assertEquals(200, $status_code, "Testing Map provider $mapProviderId: Layer feature $layerFeatureId returning Status 200.");
      }
    }
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc