function LanguageNegotiatorPluginTest::testLanguageNegotiatorNoPlugin

Same name and namespace in other branches
  1. 9 core/modules/language/tests/src/Kernel/LanguageNegotiatorPluginTest.php \Drupal\Tests\language\Kernel\LanguageNegotiatorPluginTest::testLanguageNegotiatorNoPlugin()
  2. 11.x core/modules/language/tests/src/Kernel/LanguageNegotiatorPluginTest.php \Drupal\Tests\language\Kernel\LanguageNegotiatorPluginTest::testLanguageNegotiatorNoPlugin()

Tests for PluginNotFoundException.

File

core/modules/language/tests/src/Kernel/LanguageNegotiatorPluginTest.php, line 28

Class

LanguageNegotiatorPluginTest
Tests PluginNotFoundException.

Namespace

Drupal\Tests\language\Kernel

Code

public function testLanguageNegotiatorNoPlugin() : void {
  $logger = new BufferingLogger();
  $logger_factory = $this->createMock(LoggerChannelFactory::class);
  $logger_factory->expects($this->once())
    ->method('get')
    ->with('language')
    ->willReturn($logger);
  $this->container
    ->set('logger.factory', $logger_factory);
  $this->installEntitySchema('user');
  // Test unavailable plugin.
  $config = $this->config('language.types');
  $config->set('configurable', [
    LanguageInterface::TYPE_URL,
  ]);
  $config->set('negotiation.language_url.enabled', [
    self::CLASS => -3,
  ]);
  $config->save();
  $languageNegotiator = $this->container
    ->get('language_negotiator');
  $languageNegotiator->setCurrentUser($this->prophesize('Drupal\\Core\\Session\\AccountInterface')
    ->reveal());
  try {
    $languageNegotiator->initializeType(LanguageInterface::TYPE_URL);
  } catch (PluginNotFoundException $exception) {
    $this->fail('Plugin not found exception unhandled.');
  }
  $log_message = $logger->cleanLogs()[0];
  $this->assertEquals('error', $log_message[0]);
  $this->assertStringContainsString('The "Drupal\\Tests\\language\\Kernel\\LanguageNegotiatorPluginTest" plugin does not exist.', $log_message[1]);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.