whitelabel-8.x-2.x-dev/tests/src/Functional/WhiteLabelCacheTest.php

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

namespace Drupal\Tests\whitelabel\Functional;

use Drupal\file\Entity\File;

/**
 * Tests the caching system during white label switching.
 *
 * @group whitelabel
 */
class WhiteLabelCacheTest extends WhiteLabelTestBase {

  /**
   * Holds the second generated white label throughout the different tests.
   *
   * @var \Drupal\whitelabel\Entity\WhiteLabelInterface
   */
  private $whiteLabel2;

  /**
   * Holds the site's default name (Drupal).
   *
   * @var string
   */
  private $defaultName;

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'block',
  ];

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();

    $image_files = $this->drupalGetTestFiles('image');

    // Create a secondary white label.
    $this->whiteLabel2 = $this->drupalCreateWhiteLabel([
      'token' => 'token2',
      'uid' => $this->whiteLabelOwner->id(),
      'name' => 'Another name for white label 2',
      'slogan' => 'Still rocking :)',
      'logo' => File::create((array) current($image_files)),
    ]);

    $this->defaultName = $this->config('system.site')->get('name');
  }

  /**
   * Test to see if the HTML titles get overwritten.
   */
  public function testWhiteLabelHtmlTitles() {
    // No white label.
    $this->drupalGet('<front>');
    $this->assertSession()->statusCodeEquals(200);
    // Check page title.
    $this->assertSession()->elementTextContains('css', 'title', $this->defaultName);

    // White label 1.
    $this->setCurrentWhiteLabel($this->whiteLabel);
    $this->drupalGet('<front>');
    $this->assertSession()->statusCodeEquals(200);
    // Check page title.
    $this->assertSession()->elementTextContains('css', 'title', $this->whiteLabel->getName());

    // White label 2.
    $this->setCurrentWhiteLabel($this->whiteLabel2);
    $this->drupalGet('<front>');
    $this->assertSession()->statusCodeEquals(200);
    // Check page title.
    $this->assertSession()->elementTextContains('css', 'title', $this->whiteLabel2->getName());

    // White label 2 (updated).
    $this->whiteLabel2
      ->setName('Updated name')
      ->setSlogan('Rocking some more.')
      ->save();
    $this->drupalGet('<front>');
    $this->assertSession()->statusCodeEquals(200);
    // Check page title.
    $this->assertSession()->elementTextContains('css', 'title', $this->whiteLabel2->getName());

    // White label 1.
    $this->setCurrentWhiteLabel($this->whiteLabel);
    $this->drupalGet('<front>');
    $this->assertSession()->statusCodeEquals(200);
    // Check page title.
    $this->assertSession()->elementTextContains('css', 'title', $this->whiteLabel->getName());

    // No white label (again).
    $this->unsetWhiteLabel();
    $this->drupalGet('<front>');
    $this->assertSession()->statusCodeEquals(200);
    // Check page title.
    $this->assertSession()->elementTextContains('css', 'title', $this->defaultName);
  }

  /**
   * Test to see if the system branding block shows the right values.
   */
  public function testWhiteLabelPageCaching() {
    // Place branding block with site name and slogan into header region.
    $this->drupalPlaceBlock('system_branding_block', ['region' => 'header', 'id' => 'site_branding']);

    // No white label.
    $this->drupalGet('<front>');
    $this->assertSession()->statusCodeEquals(200);
    // Should contain.
    $this->inBrandingBlock($this->defaultName);
    // Should not contain.
    $this->notInBrandingBlock($this->whiteLabel->getName());
    $this->notInBrandingBlock($this->whiteLabel->getSlogan());
    $this->notInImagePath(\Drupal::service('file_url_generator')->generateString($this->whiteLabel->getLogo()->getFileUri()));
    $this->notInBrandingBlock($this->whiteLabel2->getName());
    $this->notInBrandingBlock($this->whiteLabel2->getSlogan());
    $this->notInImagePath(\Drupal::service('file_url_generator')->generateString($this->whiteLabel2->getLogo()->getFileUri()));

    // White label 1.
    $this->setCurrentWhiteLabel($this->whiteLabel);
    $this->drupalGet('<front>');
    $this->assertSession()->statusCodeEquals(200);
    // Should contain.
    $this->inBrandingBlock($this->whiteLabel->getName());
    $this->inBrandingBlock($this->whiteLabel->getSlogan());
    $this->inImagePath(\Drupal::service('file_url_generator')->generateString($this->whiteLabel->getLogo()->getFileUri()));
    // Should not contain.
    $this->notInBrandingBlock($this->defaultName);
    $this->notInBrandingBlock($this->whiteLabel2->getName());
    $this->notInBrandingBlock($this->whiteLabel2->getSlogan());
    $this->notInImagePath(\Drupal::service('file_url_generator')->generateString($this->whiteLabel2->getLogo()->getFileUri()));

    // White label 2.
    $this->setCurrentWhiteLabel($this->whiteLabel2);
    $this->drupalGet('<front>');
    $this->assertSession()->statusCodeEquals(200);
    // Should contain.
    $this->inBrandingBlock($this->whiteLabel2->getName());
    $this->inBrandingBlock($this->whiteLabel2->getSlogan());
    $this->inImagePath(\Drupal::service('file_url_generator')->generateString($this->whiteLabel2->getLogo()->getFileUri()));
    // Should not contain.
    $this->notInBrandingBlock($this->defaultName);
    $this->notInBrandingBlock($this->whiteLabel->getName());
    $this->notInBrandingBlock($this->whiteLabel->getSlogan());
    $this->notInImagePath(\Drupal::service('file_url_generator')->generateString($this->whiteLabel->getLogo()->getFileUri()));

    // White label 2 (updated).
    $this->whiteLabel2
      ->setName('Updated name')
      ->setSlogan('Rocking some more.')
      ->save();
    $this->drupalGet('<front>');
    $this->assertSession()->statusCodeEquals(200);
    // Should contain.
    $this->inBrandingBlock($this->whiteLabel2->getName());
    $this->inBrandingBlock($this->whiteLabel2->getSlogan());
    $this->inImagePath(\Drupal::service('file_url_generator')->generateString($this->whiteLabel2->getLogo()->getFileUri()));
    // Should not contain.
    $this->notInBrandingBlock($this->defaultName);
    $this->notInBrandingBlock($this->whiteLabel->getName());
    $this->notInBrandingBlock($this->whiteLabel->getSlogan());
    $this->notInImagePath(\Drupal::service('file_url_generator')->generateString($this->whiteLabel->getLogo()->getFileUri()));

    // White label 1 (again).
    $this->setCurrentWhiteLabel($this->whiteLabel);
    $this->drupalGet('<front>');
    $this->assertSession()->statusCodeEquals(200);
    // Should contain.
    $this->inBrandingBlock($this->whiteLabel->getName());
    $this->inBrandingBlock($this->whiteLabel->getSlogan());
    $this->inImagePath(\Drupal::service('file_url_generator')->generateString($this->whiteLabel->getLogo()->getFileUri()));
    // Should not contain.
    $this->notInBrandingBlock($this->defaultName);
    $this->notInBrandingBlock($this->whiteLabel2->getName());
    $this->notInBrandingBlock($this->whiteLabel2->getSlogan());
    $this->notInImagePath(\Drupal::service('file_url_generator')->generateString($this->whiteLabel2->getLogo()->getFileUri()));

    // No white label (again).
    $this->unsetWhiteLabel();
    $this->drupalGet('<front>');
    $this->assertSession()->statusCodeEquals(200);
    // Should contain.
    $this->inBrandingBlock($this->defaultName);
    // Should not contain.
    $this->notInBrandingBlock($this->whiteLabel->getName());
    $this->notInBrandingBlock($this->whiteLabel->getSlogan());
    $this->notInImagePath(\Drupal::service('file_url_generator')->generateString($this->whiteLabel->getLogo()->getFileUri()));
    $this->notInBrandingBlock($this->whiteLabel2->getName());
    $this->notInBrandingBlock($this->whiteLabel2->getSlogan());
    $this->notInImagePath(\Drupal::service('file_url_generator')->generateString($this->whiteLabel2->getLogo()->getFileUri()));
  }

}

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

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