lupus_decoupled-1.x-dev/modules/lupus_decoupled_site_info/tests/src/Functional/LupusDecoupledSiteInfoTest.php

modules/lupus_decoupled_site_info/tests/src/Functional/LupusDecoupledSiteInfoTest.php
<?php

namespace Drupal\Tests\lupus_decoupled_user_login\Functional;

use Drupal\Tests\BrowserTestBase;

/**
 * Test Lupus Decoupled Site Info Endpoint.
 *
 * @group lupus_decoupled
 */
class LupusDecoupledSiteInfoTest extends BrowserTestBase {

  const SITE_NAME = 'Lupus Decoupled Test Site Info';
  const SITE_SLOGAN = 'Testing';
  const SITE_EMAIL = 'test@example.com';

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'system',
    'text',
    'serialization',
    'custom_elements',
    'lupus_ce_renderer',
    'lupus_decoupled',
    'lupus_decoupled_ce_api',
    'lupus_decoupled_schema_metatag',
    'menu_link_content',
    'rest_menu_items',
    'lupus_decoupled_site_info',
    'user',
    'rest',
    'schema_metatag',
    'metatag',
    'token',
    'node',
    'field',
  ];

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

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();
    $configFactory = \Drupal::configFactory();
    $configFactory->getEditable('system.site')
      ->set('name', self::SITE_NAME)
      ->set('slogan', self::SITE_SLOGAN)
      ->set('mail', self::SITE_EMAIL)
      ->save();
    $configFactory->getEditable('lupus_decoupled_ce_api.settings')
      ->set('frontend_base_url', 'https://frontend.example.com')
      ->save();
  }

  /**
   * Test site-info endpoint.
   */
  public function testSiteInfoEndpoint() {
    $response = json_decode($this->drupalGet('api/site-info'), TRUE);
    $this->assertSession()->statusCodeEquals(200);
    $this->assertEquals($response['system.site']['name'], self::SITE_NAME);
    $this->assertEquals($response['system.site']['mail'], self::SITE_EMAIL);
    $this->assertEquals($response['system.site']['slogan'], self::SITE_SLOGAN);
    // Change config and observe the change. Response cache should clear.
    $configFactory = \Drupal::configFactory();
    $new_site_name = $this->randomString();
    $configFactory->getEditable('system.site')
      ->set('name', $new_site_name)
      ->save();
    $site_info_settings = $configFactory->getEditable('lupus_decoupled_site_info.settings');
    $site_info_settings
      ->set('expose', array_merge($site_info_settings->get('expose'), ['system.site:empty']))
      ->save();
    $new_response = json_decode($this->drupalGet('api/site-info'), TRUE);
    $this->assertSession()->statusCodeEquals(200);
    $this->assertNotEquals($new_response['system.site']['name'], self::SITE_NAME);
    $this->assertEquals($new_response['system.site']['name'], $new_site_name);
    $this->assertEquals($new_response['system.site']['empty'], NULL);
  }

}

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

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