Welcome To Our Shell

Mister Spy & Souheyl Bypass Shell

Current Path : /var/www/html/rocksensor1/web/modules/contrib/visitors/tests/src/Unit/Form/

Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
Upload File :
Current File : /var/www/html/rocksensor1/web/modules/contrib/visitors/tests/src/Unit/Form/SettingsTest.php

<?php

declare(strict_types=1);

namespace Drupal\Tests\visitors\Unit\Form;

use Drupal\Tests\UnitTestCase;
use Drupal\user\RoleInterface;
use Drupal\visitors\Form\Settings;
use Prophecy\PhpUnit\ProphecyTrait;
use Symfony\Component\DependencyInjection\ContainerBuilder;

/**
 * Tests settings form.
 *
 * @group visitors
 * @coversDefaultClass \Drupal\visitors\Form\Settings
 * @uses \Drupal\visitors\Form\Settings
 */
class SettingsTest extends UnitTestCase {

  use ProphecyTrait;

  /**
   * The form under test.
   *
   * @var \Drupal\visitors\Form\Settings
   */
  protected $form;

  /**
   * The extension theme list.
   *
   * @var \Drupal\Core\Extension\ThemeExtensionList|\PHPUnit\Framework\MockObject\MockObject
   */
  protected $extensionThemeList;

  /**
   * The entity type manager.
   *
   * @var \Drupal\Core\Entity\EntityTypeManagerInterface|\PHPUnit\Framework\MockObject\MockObject
   */
  protected $entityTypeManager;

  /**
   * The config factory.
   *
   * @var \Drupal\Core\Config\ConfigFactoryInterface|\PHPUnit\Framework\MockObject\MockObject
   */
  protected $configFactory;

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

    $container = new ContainerBuilder();

    $string_translation = $this->getStringTranslationStub();
    $container->set('string_translation', $string_translation);

    $this->extensionThemeList = $this->createMock('Drupal\Core\Extension\ThemeExtensionList');
    $container->set('extension.list.theme', $this->extensionThemeList);

    $this->entityTypeManager = $this->createMock('Drupal\Core\Entity\EntityTypeManagerInterface');
    $container->set('entity_type.manager', $this->entityTypeManager);

    $this->configFactory = $this->createMock('Drupal\Core\Config\ConfigFactoryInterface');
    $container->set('config.factory', $this->configFactory);

    $unrouted_url_assembler = $this->createMock('Drupal\Core\Utility\UnroutedUrlAssemblerInterface');
    $container->set('unrouted_url_assembler', $unrouted_url_assembler);

    $url_generator = $this->createMock('Drupal\Core\Routing\UrlGeneratorInterface');
    $container->set('url_generator', $url_generator);

    $messenger = $this->createMock('Drupal\Core\Messenger\MessengerInterface');
    $container->set('messenger', $messenger);

    \Drupal::setContainer($container);

    $this->form = Settings::create($container);
  }

  /**
   * Test the getFormId method.
   *
   * @covers ::getFormId
   */
  public function testGetFormId() {
    $this->assertEquals('visitors_admin_settings', $this->form->getFormId());
  }

  /**
   * Test the buildForm method.
   *
   * @covers ::buildForm
   * @covers ::roleOptions
   * @covers ::entityTypes
   */
  public function testBuildForm() {
    $user_role_storage = $this->createMock('Drupal\Core\Entity\EntityStorageInterface');
    $this->entityTypeManager->expects($this->exactly(2))
      ->method('getStorage')
      ->with('user_role')
      ->willReturn($user_role_storage);
    $anonymous_role = $this->createMock('Drupal\user\RoleInterface');
    $anonymous_role->expects($this->exactly(1))
      ->method('id')
      ->willReturn(RoleInterface::ANONYMOUS_ID);
    $anonymous_role->expects($this->exactly(2))
      ->method('label')
      ->willReturn('Anonymous');
    $authenticate_role = $this->createMock('Drupal\user\RoleInterface');
    $authenticate_role->expects($this->exactly(1))
      ->method('id')
      ->willReturn(RoleInterface::AUTHENTICATED_ID);
    $authenticate_role->expects($this->exactly(2))
      ->method('label')
      ->willReturn('Authenticated');
    $administrator_role = $this->createMock('Drupal\user\RoleInterface');
    $administrator_role->expects($this->exactly(1))
      ->method('id')
      ->willReturn('administrator');
    $administrator_role->expects($this->exactly(2))
      ->method('label')
      ->willReturn('Administrator');
    $user_roles = [$anonymous_role, $authenticate_role, $administrator_role];
    $user_role_storage->expects($this->exactly(2))
      ->method('loadMultiple')
      ->willReturn($user_roles);

    $config = $this->createMock('Drupal\Core\Config\Config');
    $config
      ->expects($this->exactly(15))
      ->method('get');
    $system_config = $this->createMock('Drupal\Core\Config\Config');
    $system_config->expects($this->exactly(2))
      ->method('get')
      ->willReturn('bartik', 'claro');
    $this->configFactory->expects($this->once())
      ->method('get')
      ->with('system.theme')
      ->willReturn($system_config);

    $this->configFactory->expects($this->once())
      ->method('getEditable')
      ->with('visitors.config')
      ->willReturn($config);

    $bartik_theme = $this->createMock('\Drupal\Core\Extension\Extension');
    $bartik_theme->info = ['name' => 'bartik'];
    // @phpstan-ignore-next-line
    $bartik_theme->status = 1;

    $claro_theme = $this->createMock('\Drupal\Core\Extension\Extension');
    $claro_theme->info = ['name' => 'claro'];
    // @phpstan-ignore-next-line
    $claro_theme->status = 1;
    $this->extensionThemeList->expects($this->once())
      ->method('getList')
      ->willReturn(['bartik' => $bartik_theme, 'claro' => $claro_theme]);

    $request = $this->createMock('Symfony\Component\HttpFoundation\Request');
    $request_stack = $this->createMock('Symfony\Component\HttpFoundation\RequestStack');

    $node_definition = $this->createMock('Drupal\Core\Entity\ContentEntityType');
    $node_type_definition = $this->createMock('Drupal\Core\Config\Entity\ConfigEntityType');

    $this->entityTypeManager->expects($this->once())
      ->method('getDefinitions')
      ->willReturn([$node_definition, $node_type_definition]);

    $form_state = $this->createMock('Drupal\Core\Form\FormStateInterface');
    $form = $this->form->buildForm([], $form_state);

    $this->assertIsArray($form);
    $this->assertArrayHasKey('actions', $form);
    $this->assertArrayHasKey('#theme', $form);
    $this->assertArrayHasKey('theme', $form);
    $this->assertArrayHasKey('tracking_scope', $form);
    $this->assertArrayHasKey('miscellaneous', $form);
    $this->assertArrayHasKey('entity', $form);
  }

  /**
   * Test the buildForm method with different options.
   *
   * @covers ::buildForm
   */
  public function testBuildFormOtherSettings() {
    $user_role_storage = $this->createMock('Drupal\Core\Entity\EntityStorageInterface');
    $this->entityTypeManager->expects($this->exactly(2))
      ->method('getStorage')
      ->with('user_role')
      ->willReturn($user_role_storage);
    $anonymous_role = $this->createMock('Drupal\user\RoleInterface');
    $anonymous_role->expects($this->exactly(1))
      ->method('id')
      ->willReturn(RoleInterface::ANONYMOUS_ID);
    $anonymous_role->expects($this->exactly(2))
      ->method('label')
      ->willReturn('Anonymous');
    $authenticate_role = $this->createMock('Drupal\user\RoleInterface');
    $authenticate_role->expects($this->exactly(1))
      ->method('id')
      ->willReturn(RoleInterface::AUTHENTICATED_ID);
    $authenticate_role->expects($this->exactly(2))
      ->method('label')
      ->willReturn('Authenticated');
    $administrator_role = $this->createMock('Drupal\user\RoleInterface');
    $administrator_role->expects($this->exactly(1))
      ->method('id')
      ->willReturn('administrator');
    $administrator_role->expects($this->exactly(2))
      ->method('label')
      ->willReturn('Administrator');
    $user_roles = [$anonymous_role, $authenticate_role, $administrator_role];
    $user_role_storage->expects($this->exactly(2))
      ->method('loadMultiple')
      ->willReturn($user_roles);

    $config = $this->createMock('Drupal\Core\Config\Config');
    $config
      ->expects($this->exactly(15))
      ->method('get')
      ->willReturnMap([
        ['flush_log_timer', 0],
        ['bot_retention_log', 0],
        ['items_per_page', 10],
        ['theme', 'admin'],
        ['disable_tracking', FALSE],
        ['visibility.request_path_mode', 1],
        ['script_type', 'minified'],
      ]);
    $system_config = $this->createMock('Drupal\Core\Config\Config');
    $system_config->expects($this->exactly(2))
      ->method('get')
      ->willReturn('bartik', 'claro');
    $this->configFactory->expects($this->once())
      ->method('get')
      ->with('system.theme')
      ->willReturn($system_config);

    $this->configFactory->expects($this->once())
      ->method('getEditable')
      ->with('visitors.config')
      ->willReturn($config);

    $bartik_theme = $this->createMock('\Drupal\Core\Extension\Extension');
    $bartik_theme->info = ['name' => 'bartik'];
    // @phpstan-ignore-next-line
    $bartik_theme->status = 1;

    $claro_theme = $this->createMock('\Drupal\Core\Extension\Extension');
    $claro_theme->info = ['name' => 'claro'];
    // @phpstan-ignore-next-line
    $claro_theme->status = 1;
    $this->extensionThemeList->expects($this->once())
      ->method('getList')
      ->willReturn(['bartik' => $bartik_theme, 'claro' => $claro_theme]);

    $request = $this->createMock('Symfony\Component\HttpFoundation\Request');
    $request_stack = $this->createMock('Symfony\Component\HttpFoundation\RequestStack');

    $node_definition = $this->createMock('Drupal\Core\Entity\ContentEntityType');
    $node_type_definition = $this->createMock('Drupal\Core\Config\Entity\ConfigEntityType');

    $this->entityTypeManager->expects($this->once())
      ->method('getDefinitions')
      ->willReturn([$node_definition, $node_type_definition]);

    $form_state = $this->createMock('Drupal\Core\Form\FormStateInterface');
    $form = $this->form->buildForm([], $form_state);

    $this->assertIsArray($form);
    $this->assertArrayHasKey('actions', $form);
    $this->assertArrayHasKey('#theme', $form);
    $this->assertArrayHasKey('theme', $form);
    $this->assertArrayHasKey('tracking_scope', $form);
    $this->assertArrayHasKey('miscellaneous', $form);
    $this->assertArrayHasKey('entity', $form);
  }

  /**
   * Test the submitForm method.
   *
   * @covers ::submitForm
   * @covers ::getEditableConfigNames
   */
  public function testSubmitForm() {
    $form = [];
    $form_state = $this->createMock('Drupal\Core\Form\FormStateInterface');
    $form_state->expects($this->once())
      ->method('getValues')
      ->willReturn([
        'theme' => 'theme',
        'items_per_page' => 'items_per_page',
        'flush_log_timer' => 'flush_log_timer',
        'bot_retention_log' => 'bot_retention_log',
        'visitors_trackuserid' => 'visitors_trackuserid',
        'counter_enabled' => 'counter_enabled',
        'disable_cookies' => '0',
        'visitors_disable_tracking' => 'visitors_disable_tracking',
        'visitors_visibility_request_path_mode' => 'visitors_visibility_request_path_mode',
        'visitors_visibility_request_path_pages' => 'visitors_visibility_request_path_pages',
        'visitors_visibility_user_account_mode' => 'visitors_visibility_user_account_mode',
        'visitors_visibility_user_role_mode' => 'visitors_visibility_user_role_mode',
        'visitors_visibility_user_role_roles' => ['visitors_visibility_user_role_roles'],
        'visibility_exclude_user1' => 'visibility_exclude_user1',
      ]);

    $config = $this->createMock('Drupal\Core\Config\Config');
    $this->configFactory->expects($this->once())
      ->method('getEditable')
      ->with('visitors.config')
      ->willReturn($config);

    $config->method('set')
      ->willReturnSelf();
    $config->expects($this->once())
      ->method('save');

    $this->form->submitForm($form, $form_state);
  }

  /**
   * Test the create method.
   *
   * @covers ::create
   */
  public function testCreate() {
    $container = \Drupal::getContainer();
    $form = Settings::create($container);
    $this->assertInstanceOf('Drupal\visitors\Form\Settings', $form);
  }

  /**
   * Test the construct method.
   *
   * @covers ::__construct
   */
  public function testConstruct() {
    $form = new Settings(
      $this->extensionThemeList,
      $this->entityTypeManager,
    );
    $this->assertInstanceOf(Settings::class, $form);
  }

}

bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped)
Email: contact@elmoujehidin.net bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped) Email: contact@elmoujehidin.net